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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
#ifndef NULLSOFT_WASABI_TEXTBASE_H
#define NULLSOFT_WASABI_TEXTBASE_H
#include <api/wnd/wndclass/bufferpaintwnd.h>
#include <tataki/color/filteredcolor.h>
#include <tataki/color/skinclr.h>
#include <bfc/string/StringW.h>
#define TEXTBASE_PARENT BufferPaintWnd
class TextBase : public TEXTBASE_PARENT, public SkinCallbackI
{
public:
TextBase();
virtual ~TextBase();
ARGB32 GetColor(int alt=0);
void GetFontInfo(Wasabi::FontInfo *_font, int alt=0);
void SetTextColor(ARGB32 c, int alt=0);
void SetFontSize(const wchar_t *strvalue, int alt=0);
void SetFont(const wchar_t *name, int alt=0);
void SetAntialias(int a, int alt=0);
void SetFontAlign(int al);
virtual void setDblClickParam(const wchar_t *p);
virtual const wchar_t *getDblClickParam();
virtual void setRClickParam(const wchar_t *p);
virtual const wchar_t *getRClickParam();
protected:
/* Virtual methods to override */
virtual void invalidateTextBuffer()=0;
/*static */void CreateXMLParameters(int master_handle);
private:
StringW dblClickAction;
StringW rClickAction;
/* Font Info */
FilteredColor color[2];
SkinColor scolor[2];
int color_mode[2];
StringW font[2];
int bold[2];
int italic[2];
int antialias[2];
int align;
protected:
int fontsize[2];
int lpadding, rpadding;
int grab;
private:
/* XML Parameters */
enum
{
TEXTBASE_SETCOLOR,
TEXTBASE_SETALTCOLOR,
TEXTBASE_SETFONTSIZE,
TEXTBASE_SETFONT,
TEXTBASE_SETALTFONT,
TEXTBASE_SETALTFONTSIZE,
TEXTBASE_SETBOLD,
TEXTBASE_SETITALIC,
TEXTBASE_SETALTBOLD,
TEXTBASE_SETALTITALIC,
TEXTBASE_SETANTIALIAS,
TEXTBASE_SETALTANTIALIAS,
TEXTBASE_SETDBLCLKACTION,
TEXTBASE_SETRCLKACTION,
TEXTBASE_SETALIGN,
TEXTBASE_SETLPADDING,
TEXTBASE_SETRPADDING,
TEXTBASE_RCLICKPARAM,
TEXTBASE_DBLCLICKPARAM,
};
static XMLParamPair params[];
int xuihandle;
StringW dblclickparam;
StringW rclickparam;
protected:
/* Methods that TextBase overrides */
int setXuiParam(int _xuihandle, int attrid, const wchar_t *name, const wchar_t *strval);
int onInit();
int skincb_onColorThemeChanged(const wchar_t *newcolortheme);
int onLeftButtonDblClk(int x, int y);
int onRightButtonDown(int x, int y);
virtual int wantAutoContextMenu() { return rClickAction.isempty(); }
};
#endif
|