Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
cXEditText.h
Go to the documentation of this file.
1 //
4 //
5 #ifndef _INC_cXEditText_H
6 #define _INC_cXEditText_H
7 #pragma once
8 
9 #include "../Window/cXWindow.h"
10 
11 namespace GrayGUI
12 {
13  class cXEditText : public cXWindowText
14  {
18  public:
19  cXEditText(cXWindow* pParent, DLGID_t id = k_DLGID_Static, bool bSingleLine = true);
20  virtual ~cXEditText();
21 
22  virtual bool OnRender();
23 
24  virtual bool OnMouseDown(MBUTTON_TYPE uButton, PIXELS_t X, PIXELS_t Y);
25  virtual bool OnMouseDblClk(MBUTTON_TYPE uButton, PIXELS_t X, PIXELS_t Y);
26  virtual bool OnMouseMove(MBUTTON_TYPE uButton, PIXELS_t X, PIXELS_t Y);
27  virtual bool OnMouseUp(MBUTTON_TYPE uButton, PIXELS_t X, PIXELS_t Y);
28 
29  virtual bool OnKeyDown(VK_TYPE vKey);
30  virtual bool OnChar(VK_TYPE vKey);
31  virtual bool OnKeyUp(VK_TYPE vKey);
32  virtual bool OnCommand(DLGID_t id, cXWindow* pCtrl, WORD wNotify);
33 
34  virtual bool OnKeyFocus(bool bActive);
35  virtual void OnSize(UINT uType, PIXELS_t cx, PIXELS_t cy);
36  virtual void OnContextMenu(cXMenu* pMenu, cXWindow* pCtrl);
37 
38  virtual cString get_Text() const
39  {
41  }
42  virtual void put_Text(const GChar_t* pszText);
43 
44  void Clipboard_Paste();
45  void Clipboard_Copy() const;
46 
47  long get_CaretPos() const
48  {
49  return m_CaretCharPos;
50  }
51  void put_CaretPos(long Pos);
53  {
54  return(m_CaretColor);
55  }
57  {
58  m_CaretColor = color;
59  }
60 
61  bool get_SelectLength() const
62  {
63  return ABS(m_iSelEnd - m_iSelStart);
64  }
65 
67  {
68  return m_TextColor;
69  }
70  void put_TextColor(D3DCOLOR color)
71  {
72  m_TextColor = color;
73  }
74  DWORD get_TextFormat() const
75  {
77  return m_dwTextFormat;
78  }
79  void put_TextFormat(DWORD format) //Change format
80  {
82  m_dwTextFormat = format;
83  }
84  void put_TextFormatAdd(DWORD format) //Add formating to current format
85  {
86  m_dwTextFormat = m_dwTextFormat & format;
87  }
89  {
90  return m_sScreenText.size() + m_sHiddenText.size();
91  }
93  {
94  if (iLimit < 0)
95  iLimit = 0;
96  m_iLengthLimit = iLimit;
97  }
98  int put_CaretSizeOverride(int iSize) //0 = do not override, set to font size
99  {
100  m_iCaretSizeOverride = iSize;
101  return m_iCaretSizeOverride;
102  }
104  {
105  return m_iCaretSizeOverride;
106  }
107  int put_TextBottomOffset(int iOffset) //set the single line bottom offset, default is 5
108  {
109  m_iTextBottomOffset = iOffset;
110  return m_iTextBottomOffset;
111  }
113  {
114  return m_iTextBottomOffset;
115  }
116  bool put_SingleLineMode(bool bMode)
117  {
118  m_bSingleLineMode = bMode;
119  put_TextFormat(DT_WORDBREAK);
120  return m_bSingleLineMode;
121  }
122  bool IsSingleLineMode() const
123  {
124  return m_bSingleLineMode;
125  }
126 
127  int GetCharAtPos(int X, int Y);
128  bool IsCursorIntersectChar(int X, int Y) const;
129  long GetStringPixelWidth(cStringW sString);
130 
131  bool InsertText(const GChar_t* pszText)
132  {
133  return InsertText(cStringW(pszText));
134  }
135  bool InsertText(cStringW Text);
136  long RemoveText(long Quantity);
137  void ClearText();
138 
139  public:
143 
144  protected:
149 
152  long m_CaretCharPos; // StrLen_t ?
155  PIXELS_t m_iCaretSizeOverride; // Manually override the size of the caret, taken off top
156  PIXELS_t m_iTextBottomOffset; // number of pixels to raise text off bottom line (single line mode) default: 5
157 
158  int m_TextWidth; // PIXELS_t?
163  StrLen_t m_iLengthLimit; //Limit on the length of the text. 0 = NO LIMIT
164 
165  bool m_bSingleLineMode; //if true this is a single line only, no returns, no wrapping, defaults TRUE
166  };
167 
169 
170 #if 0
171  class CXTextScroll : public CEditText
172  {
173  // A text box with a scroll bar.
174  };
175  typedef cRefPtr<CXTextScroll> CXTextScrollPtr;
176 #endif
177 };
178 
179 #endif
#define ABS(n)
Definition: SysTypes.h:460
DWORD D3DCOLOR
Stuff normally defined in windows.h or DirectX headers.
Definition: cColorRef.h:24
int VK_TYPE
a type of physical key in _WIN32. "#define VK_UP" etc. NOT the same as a scan code.
Definition: cInputBase.h:27
Definition: cXEditText.h:14
virtual void OnContextMenu(cXMenu *pMenu, cXWindow *pCtrl)
Definition: cXEditText.cpp:596
long RemoveText(long Quantity)
Definition: cXEditText.cpp:174
int put_TextBottomOffset(int iOffset)
Definition: cXEditText.h:107
void ClearText()
Definition: cXEditText.cpp:166
int get_TextBottomOffset() const
Definition: cXEditText.h:112
void put_TextFormatAdd(DWORD format)
Definition: cXEditText.h:84
PIXELS_t m_iTextBottomOffset
Definition: cXEditText.h:156
virtual bool OnMouseDblClk(MBUTTON_TYPE uButton, PIXELS_t X, PIXELS_t Y)
Definition: cXEditText.cpp:444
D3DCOLOR get_TextColor() const
Definition: cXEditText.h:66
virtual bool OnChar(VK_TYPE vKey)
Definition: cXEditText.cpp:540
D3DCOLOR m_CaretColor
Definition: cXEditText.h:150
bool m_bUnicodeInput
full Unicode-UTF8 input. This is disabled by default, enable where you know it won't cause trouble
Definition: cXEditText.h:141
void put_TextFormat(DWORD format)
Definition: cXEditText.h:79
D3DCOLOR m_TextColor
Definition: cXEditText.h:148
void Clipboard_Paste()
Definition: cXEditText.cpp:248
virtual bool OnKeyFocus(bool bActive)
Definition: cXEditText.cpp:456
cStringW m_sScreenText
Definition: cXEditText.h:146
PIXELS_t m_CaretPixelPos
Definition: cXEditText.h:153
bool IsSingleLineMode() const
Definition: cXEditText.h:122
bool IsCursorIntersectChar(int X, int Y) const
Definition: cXEditText.cpp:70
int m_TextWidth
Definition: cXEditText.h:158
long GetStringPixelWidth(cStringW sString)
Definition: cXEditText.cpp:47
TIMESYS_t m_timeCaretBlinkLast
Definition: cXEditText.h:154
virtual void put_Text(const GChar_t *pszText)
Definition: cXEditText.cpp:106
virtual bool OnKeyUp(VK_TYPE vKey)
Definition: cXEditText.cpp:506
long get_CaretPos() const
Definition: cXEditText.h:47
virtual ~cXEditText()
Definition: cXEditText.cpp:43
bool InsertText(const GChar_t *pszText)
Definition: cXEditText.h:131
void put_TextColor(D3DCOLOR color)
Definition: cXEditText.h:70
virtual bool OnMouseDown(MBUTTON_TYPE uButton, PIXELS_t X, PIXELS_t Y)
Definition: cXEditText.cpp:412
void put_CaretColor(D3DCOLOR color)
Definition: cXEditText.h:56
bool m_bSelectMode
Definition: cXEditText.h:160
virtual bool OnRender()
Definition: cXEditText.cpp:273
PIXELS_t m_iCaretSizeOverride
Definition: cXEditText.h:155
void Clipboard_Copy() const
Definition: cXEditText.cpp:258
virtual bool OnMouseUp(MBUTTON_TYPE uButton, PIXELS_t X, PIXELS_t Y)
Definition: cXEditText.cpp:437
DWORD get_TextFormat() const
Definition: cXEditText.h:74
void put_LengthLimit(StrLen_t iLimit)
Definition: cXEditText.h:92
void put_CaretPos(long Pos)
Definition: cXEditText.cpp:112
virtual bool OnKeyDown(VK_TYPE vKey)
Definition: cXEditText.cpp:463
DWORD m_dwTextFormat
DT_CENTER | DT_VCENTER;.
Definition: cXEditText.h:147
bool m_bSingleLineMode
Definition: cXEditText.h:165
virtual void OnSize(UINT uType, PIXELS_t cx, PIXELS_t cy)
Definition: cXEditText.cpp:586
StrLen_t m_iLengthLimit
Definition: cXEditText.h:163
bool m_bScaleTextWithWindow
automatically scale the text to the window
Definition: cXEditText.h:142
bool get_SelectLength() const
Definition: cXEditText.h:61
D3DCOLOR get_CaretColor(void) const
Definition: cXEditText.h:52
virtual cString get_Text() const
Definition: cXEditText.h:38
virtual bool OnCommand(DLGID_t id, cXWindow *pCtrl, WORD wNotify)
Definition: cXEditText.cpp:607
int m_TempWidth
Definition: cXEditText.h:159
StrLen_t m_iSelEnd
Definition: cXEditText.h:162
int put_CaretSizeOverride(int iSize)
Definition: cXEditText.h:98
bool m_CaretVisible
Definition: cXEditText.h:151
int GetCharAtPos(int X, int Y)
Definition: cXEditText.cpp:83
virtual bool OnMouseMove(MBUTTON_TYPE uButton, PIXELS_t X, PIXELS_t Y)
Definition: cXEditText.cpp:429
long m_CaretCharPos
Definition: cXEditText.h:152
int get_CaretSizeOverride() const
Definition: cXEditText.h:103
StrLen_t get_Length() const
Definition: cXEditText.h:88
bool put_SingleLineMode(bool bMode)
Definition: cXEditText.h:116
cStringW m_sHiddenText
What is this??? use cStringW.
Definition: cXEditText.h:145
bool m_bIgnoreArrows
pass along arrows if we see them (for chat control)
Definition: cXEditText.h:140
StrLen_t m_iSelStart
Definition: cXEditText.h:161
cXEditText(cXWindow *pParent, DLGID_t id=k_DLGID_Static, bool bSingleLine=true)
Definition: cXEditText.cpp:18
Definition: cXMenu.h:17
Definition: cXWindow.h:484
Definition: cXWindow.h:94
StrLen_t size() const
Definition: cString.h:567
Definition: GrayGUI.cpp:11
const DLGID_t k_DLGID_Static
Definition: cXWindow.h:27
cRefPtr< cXEditText > cXEditTextPtr
Definition: cXEditText.h:168
UINT DLGID_t
old window format this was a WORD, EX format this is UINT32.
Definition: cResDialog.h:68
MBUTTON_TYPE
Definition: cInputBase.h:40
int PIXELS_t
Count of pixels in a dimension of some image/surface.
Definition: cSurfaceInfo.h:20
int StrLen_t
the length of a string in chars (bytes for UTF8, wchar_t for UNICODE). or offset in characters....
Definition: StrConst.h:32
cStringT< wchar_t > cStringW
Definition: cString.h:634
char GChar_t
My version of TCHAR, _TCHAR.
Definition: StrConst.h:26
UINT32 TIMESYS_t
TIMESYS_t = The normal system tick timer. milli-seconds since start of system/app ?
Definition: cTimeSys.h:27