diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2013-03-24 12:24:17 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2013-03-24 12:24:17 (GMT) |
| commit | 9b5b85f9b01cbda7ef9a7ec2a15b2a35630a5b9d (patch) | |
| tree | ac7d040253b459ce102e476cb19ab59e3cfa90d7 /src/gui/interface/Label.h | |
| parent | 6bf98ccdca39936a3c51367862eed7c49f8786ec (diff) | |
| parent | bdc69f31c0be94191015838886bdcc2bc67f1acb (diff) | |
| download | powder-9b5b85f9b01cbda7ef9a7ec2a15b2a35630a5b9d.zip powder-9b5b85f9b01cbda7ef9a7ec2a15b2a35630a5b9d.tar.gz | |
Merge branch 'reorganisation' of github.com:FacialTurd/The-Powder-Toy
Diffstat (limited to 'src/gui/interface/Label.h')
| -rw-r--r-- | src/gui/interface/Label.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/gui/interface/Label.h b/src/gui/interface/Label.h new file mode 100644 index 0000000..d4e5088 --- /dev/null +++ b/src/gui/interface/Label.h @@ -0,0 +1,72 @@ +#ifndef LABEL_H +#define LABEL_H + +#include <string> + +#include "Component.h" +#include "PowderToy.h" +#include "Colour.h" + +namespace ui +{ + class Label : public Component + { + protected: + std::string textFragments; + std::string textLines; + std::string displayText; + std::string tDisplayText; + + std::string text; + Colour textColour; + int caret; + int selectionIndex0; + int selectionIndex1; + + int selectionXL; + int selectionXH; + int selectionYL; + int selectionYH; + int selectionLineL; + int selectionLineH; + + bool multiline; + bool selecting; + bool autoHeight; + + void updateMultiline(); + void updateSelection(); + + int getLowerSelectionBound(); + int getHigherSelectionBound(); + + virtual void copySelection(); + public: + //Label(Window* parent_state, std::string labelText); + Label(Point position, Point size, std::string labelText); + //Label(std::string labelText); + virtual ~Label(); + + virtual void SetMultiline(bool status); + + virtual void SetText(std::string text); + virtual void SetDisplayText(std::string newText); + virtual std::string GetText(); + + virtual bool HasSelection(); + virtual void ClearSelection(); + virtual void AutoHeight(); + + void SetTextColour(Colour textColour) { this->textColour = textColour; } + + virtual void OnContextMenuAction(int item); + virtual void OnMouseClick(int x, int y, unsigned button); + virtual void OnMouseUp(int x, int y, unsigned button); + virtual void OnMouseMoved(int localx, int localy, int dx, int dy); + virtual void OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool alt); + virtual void Draw(const Point& screenPos); + virtual void Tick(float dt); + }; +} + +#endif // LABEL_H |
