diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-11-17 19:44:09 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-11-17 19:44:09 (GMT) |
| commit | 058a2edd75debbd0297f92572316daa704bd379f (patch) | |
| tree | ad303f091f9a08b209b91eb34a9fcad996a3de69 /src/interface/Label.h | |
| parent | e3594aba9e05c6865d396418c028049cda92c2f3 (diff) | |
| parent | 7a21ae192fe19868539956f3fe28e62b2c7c4429 (diff) | |
| download | powder-058a2edd75debbd0297f92572316daa704bd379f.zip powder-058a2edd75debbd0297f92572316daa704bd379f.tar.gz | |
Merge branch 'master' of github.com:FacialTurd/PowderToypp
Diffstat (limited to 'src/interface/Label.h')
| -rw-r--r-- | src/interface/Label.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/interface/Label.h b/src/interface/Label.h new file mode 100644 index 0000000..f5fa1a7 --- /dev/null +++ b/src/interface/Label.h @@ -0,0 +1,72 @@ +#ifndef LABEL_H +#define LABEL_H + +#include <string> + +#include "Component.h" +#include "Misc.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 |
