Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
cXStatic.h
Go to the documentation of this file.
1 //
4 //
5 #ifndef _INC_cXStatic_H
6 #define _INC_cXStatic_H
7 #pragma once
8 
9 #include "../Window/cXWindow.h"
10 
11 namespace GrayGUI
12 {
14  {
17  friend class cXStatic;
18  friend class cXGroupBox;
19  public:
20  cXStaticTextData(const GChar_t* pszText = _GT(""), D3DCOLOR TextColor = D3DCOLOR_White, DWORD dwTextFormat = DT_LEFT | DT_TOP);
21 
22  bool get_TextEmbossed(void) const noexcept
23  {
24  return m_bTextEmbossed ;
25  }
26  void put_TextEmbossed(bool bTextEmbossed) noexcept
27  {
28  m_bTextEmbossed = bTextEmbossed;
29  }
30 
31  DWORD get_TextFormat(void) const noexcept // DT_CENTER etc
32  {
33  return m_dwTextFormat ;
34  }
35  void put_TextFormat(DWORD dwTextFormat) noexcept
36  {
37  // set DT_CENTER etc
38  m_dwTextFormat = dwTextFormat;
39  }
40 
41  D3DCOLOR get_TextColor(void) const noexcept
42  {
43  return m_TextColor;
44  }
45  void put_TextColor(D3DCOLOR TextColor) noexcept
46  {
47 #ifdef _DEBUG
48  if (m_TextColor == TextColor)
49  return;
50 #endif
51  m_TextColor = TextColor;
52  }
53  void put_TextAlpha(COLOR_ELEM_t bAlpha) noexcept
54  {
55  // COLOR_ALPHA_OPAQUE
56  m_TextColor &= ~cColorDX::k_ALPHA_MASK;
57  m_TextColor |= ((DWORD)bAlpha) << cColorDX::k_ALPHA_SHIFT;
58  }
59 
60  HRESULT DrawTextData(cDXFont& Font, cRectI& Rectangle, DWORD dwFormatMod = 0);
61 
62  public:
64 
65  protected:
69  };
70 
71  class cXStatic : public cXWindowText
72  {
76  public:
77  cXStatic(cXWindow* pParent, DLGID_t id = k_DLGID_Static);
78  virtual ~cXStatic();
79 
80  // event handlers.
81  virtual bool OnRender();
82  virtual bool OnMouseDown(MBUTTON_TYPE uButton, int x, int y);
83 
84  // accessors
85  virtual cString get_Text(void) const
86  {
87  return m_Text.m_strText ;
88  }
89  virtual void put_Text(const GChar_t* pszText);
90  virtual void put_Style(DWORD dwStyle);
91 
92  D3DCOLOR get_TextColor() const noexcept
93  {
94  return m_Text.get_TextColor();
95  }
96  void put_TextColor(D3DCOLOR TextColor) noexcept
97  {
98  m_Text.put_TextColor(TextColor);
99  }
100  void put_TextFormat(DWORD dwTextFormat) noexcept
101  {
102  m_Text.put_TextFormat(dwTextFormat);
103  }
104 
105  // Auto size to the size of my parent
106  int get_AutoSizePercentMax() const noexcept
107  {
108  return m_iAutoSizePercentMax;
109  }
110  void put_AutoSizePercentMax(int iAutoSizePercent);
111 
112  bool CalcTextRect(cRectI& Rect);
113  void SizeTextToWindow(float fScale = 1.0f);
114 
115  protected:
116  void AutoSizeRect();
117 
118  public:
120 
121  protected:
125  };
126 
128 };
129 #endif
#define _GT(x)
like _T(x) macro for static text.
Definition: StrConst.h:27
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
DWORD D3DCOLOR
Stuff normally defined in windows.h or DirectX headers.
Definition: cColorRef.h:24
Definition: cXGroupBox.h:14
Definition: cXStatic.h:14
cXStaticTextData(const GChar_t *pszText=_GT(""), D3DCOLOR TextColor=D3DCOLOR_White, DWORD dwTextFormat=DT_LEFT|DT_TOP)
Definition: cXStatic.cpp:12
bool m_bTextEmbossed
this should really be its own font?
Definition: cXStatic.h:68
void put_TextFormat(DWORD dwTextFormat) noexcept
Definition: cXStatic.h:35
D3DCOLOR m_TextColor
Definition: cXStatic.h:66
cString m_strText
What text to display.
Definition: cXStatic.h:63
void put_TextEmbossed(bool bTextEmbossed) noexcept
Definition: cXStatic.h:26
bool get_TextEmbossed(void) const noexcept
Definition: cXStatic.h:22
void put_TextAlpha(COLOR_ELEM_t bAlpha) noexcept
Definition: cXStatic.h:53
DWORD m_dwTextFormat
text format flags for DT_CENTER etc
Definition: cXStatic.h:67
void put_TextColor(D3DCOLOR TextColor) noexcept
Definition: cXStatic.h:45
HRESULT DrawTextData(cDXFont &Font, cRectI &Rectangle, DWORD dwFormatMod=0)
Definition: cXStatic.cpp:20
D3DCOLOR get_TextColor(void) const noexcept
Definition: cXStatic.h:41
DWORD get_TextFormat(void) const noexcept
Definition: cXStatic.h:31
Definition: cXStatic.h:72
void AutoSizeRect()
Definition: cXStatic.cpp:95
virtual ~cXStatic()
Definition: cXStatic.cpp:47
int get_AutoSizePercentMax() const noexcept
Definition: cXStatic.h:106
void put_TextColor(D3DCOLOR TextColor) noexcept
Definition: cXStatic.h:96
D3DCOLOR get_TextColor() const noexcept
Definition: cXStatic.h:92
cXStatic(cXWindow *pParent, DLGID_t id=k_DLGID_Static)
Definition: cXStatic.cpp:37
void SizeTextToWindow(float fScale=1.0f)
Definition: cXStatic.cpp:112
virtual cString get_Text(void) const
Definition: cXStatic.h:85
bool CalcTextRect(cRectI &Rect)
Definition: cXStatic.cpp:72
void put_TextFormat(DWORD dwTextFormat) noexcept
Definition: cXStatic.h:100
int m_iAutoSizePercentMax
Max percent of the width of the display.
Definition: cXStatic.h:123
cXStaticTextData m_Text
Definition: cXStatic.h:119
virtual void put_Style(DWORD dwStyle)
Definition: cXStatic.cpp:62
virtual void put_Text(const GChar_t *pszText)
Definition: cXStatic.cpp:103
void put_AutoSizePercentMax(int iAutoSizePercent)
Definition: cXStatic.cpp:51
virtual bool OnMouseDown(MBUTTON_TYPE uButton, int x, int y)
Definition: cXStatic.cpp:151
cWinSize m_AutoSizeMax
if the text changes resize the window to match.
Definition: cXStatic.h:124
virtual bool OnRender()
Definition: cXStatic.cpp:158
Definition: cXWindow.h:484
Definition: cXWindow.h:94
Definition: cColorRef.h:147
static const int k_ALPHA_SHIFT
Definition: cColorRef.h:173
Definition: cRectI.h:22
Definition: WinTypes.h:128
Definition: GrayGUI.cpp:11
const DLGID_t k_DLGID_Static
Definition: cXWindow.h:27
cRefPtr< cXStatic > cXStaticPtr
Definition: cXStatic.h:127
UINT DLGID_t
old window format this was a WORD, EX format this is UINT32.
Definition: cResDialog.h:68
BYTE COLOR_ELEM_t
A single 8 bit color element. alpha, red, green, or blue intensity as 0-255.
Definition: cColorRef.h:34
MBUTTON_TYPE
Definition: cInputBase.h:40
char GChar_t
My version of TCHAR, _TCHAR.
Definition: StrConst.h:26