1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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
|