Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
cXStaticMultiScroll.h
Go to the documentation of this file.
1 //
4 //
5 
6 #ifndef _INC_cXStaticMultiScroll_H
7 #define _INC_cXStaticMultiScroll_H
8 #pragma once
9 
10 #include "cXScrollBar.h"
11 #include "cXStaticMulti.h"
12 
13 namespace GrayGUI
14 {
16 {
18 public:
19  cXStaticMultiScroll( cXWindow* pParent, DLGID_t id = IDC_STATIC );
21 
22  virtual HRESULT DisposeThis( void );
23 
24  virtual void OnSize( UINT uType, int cx, int cy );
25  virtual bool OnMouseWheel( MBUTTON_TYPE uButton,int x,int y,short nWheelChange );
26  virtual bool OnCommand( DLGID_t id, cXWindow* pCtrl, WORD wNotify );
27  virtual void OnScroll( int iPos, cXWindow* pCtrl );
28 
29  void SetScrollValue( int iValue );
30 
31  void UpdateTextTop( void );
32  int UpdateScroller( void );
33  void UpdateChildSizes( void );
34  bool UpdateScrollerNecessity( void );
35 
36 public:
37  void FillActiveText( void );
38  virtual void put_Text( const GChar_t* pszText );
39  bool SetTextFromFile( cFile& file );
40 
41  cXStaticTextBlockPtr AppendText( const GChar_t* pszText, D3DCOLOR TextColor = D3DCOLOR_Black, DWORD dwTextFormat = DT_LEFT, cRefBase* pUserData=nullptr )
42  {
43  ASSERT(m_pText);
44  return m_pText->AppendText( pszText, TextColor, dwTextFormat, pUserData );
45  }
46 
48  {
49  ASSERT(m_pText);
50  return m_pText->CalcTextBlocks();
51  }
52 
53  void ClearText()
54  {
55  ASSERT(m_pText);
56  m_pText->ClearText();
57  }
58 
59  bool get_AutoNewLine( void ) const
60  {
61  ASSERT(m_pText);
62  return m_pText->m_bAutoNewLine;
63  }
64 
65  void put_AutoNewLine( bool bAutoNewLine )
66  {
67  ASSERT(m_pText);
68  m_pText->m_bAutoNewLine = bAutoNewLine;
69  }
70 
71  bool get_ScrollLock( void ) const
72  {
73  ASSERT(m_pText);
74  return m_pText->m_bScrollLock;
75  }
76 
77  void put_ScrollLock( bool bScrollLock )
78  {
79  ASSERT(m_pText);
80  m_pText->m_bScrollLock = bScrollLock;
81  }
82 
84  {
85  ASSERT(m_pText);
86  return m_pText->get_AutoSizePercentMax();
87  }
88  void put_AutoSizePercentMax( int iAutoSizePercent )
89  {
90  ASSERT(m_pText);
91  m_pText->put_AutoSizePercentMax( iAutoSizePercent );
92  }
93 
94  void put_TextColorAll( D3DCOLOR color )
95  {
96  ASSERT(m_pText);
97  m_pText->put_TextColorAll(color);
98  }
99 
100  void put_FontFaceName( const char* pszFaceName )
101  {
102  ASSERT(m_pText);
103  m_pText->put_FontFaceName(pszFaceName);
104  }
105 
106  void put_FontSize(PIXELS_t iHeight )
107  {
108  ASSERT(m_pText);
109  m_pText->put_FontSize(iHeight);
110  }
111 
112  int get_TextWidth() const
113  {
114  ASSERT(m_pText);
115  return m_pText->get_Width();
116  }
117 
118  int get_TextHeight() const
119  {
120  ASSERT(m_pText);
121  return m_pText->get_Height();
122  }
123 
125  {
127  m_pVScroll->put_NormalColor(color);
128  }
129 
131  {
133  m_pVScroll->put_BackAlpha(bAlpha);
134  }
135 
137  {
139  m_pVScroll->put_ThumbColor(color);
140  }
141 
143  {
145  m_pVScroll->m_pThumb->put_BackAlpha(bAlpha);
146  }
147 
148  void FitWindowToText( void )
149  {
150  //sets m_pCtlQuestText's m_WindowRect to be big enough to hold all the text
151  m_pText->FitWindowToText();
152  }
153 
154 public:
155  cXStaticMultiPtr m_pText; //window where text is
156  cXScrollBarPtr m_pVScroll; //scrollbar on right side
157 
158  bool m_bLockedToBottom; //keeps bottom line of text on bottom of window
159  //scroll only when bLockedToBottom = true
160  //none of this snap-to-bottom-on-new-text nonsense like MSN.
161  bool m_bScrollerIsNeeded; //keeps track of whether the scrollbar is needed due to window overflow
162  bool m_bForceShowScroll; //always show the scroll bar
163 
164  int m_iScrollPos; //line at the top of the window (change to bottom-centric later on?)
165  //mainly mirrors the m_iThumbValue member of cXScrollBar, but stored locally
166 };
167 
169 };
170 #endif
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
#define ASSERT(exp)
Definition: cDebugAssert.h:87
Definition: cXStaticMultiScroll.h:16
void put_FontFaceName(const char *pszFaceName)
Definition: cXStaticMultiScroll.h:100
bool CalcTextBlocks()
Definition: cXStaticMultiScroll.h:47
cXStaticMultiPtr m_pText
Definition: cXStaticMultiScroll.h:155
virtual bool OnCommand(DLGID_t id, cXWindow *pCtrl, WORD wNotify)
Definition: cXStaticMultiScroll.cpp:274
void SetScrollValue(int iValue)
Definition: cXStaticMultiScroll.cpp:90
virtual HRESULT DisposeThis(void)
utility
Definition: cXStaticMultiScroll.cpp:49
virtual bool OnMouseWheel(MBUTTON_TYPE uButton, int x, int y, short nWheelChange)
Definition: cXStaticMultiScroll.cpp:265
void put_ScrollBarAlpha(COLOR_ELEM_t bAlpha)
Definition: cXStaticMultiScroll.h:130
void UpdateTextTop(void)
Definition: cXStaticMultiScroll.cpp:244
int m_iScrollPos
Definition: cXStaticMultiScroll.h:164
cXScrollBarPtr m_pVScroll
Definition: cXStaticMultiScroll.h:156
void put_AutoNewLine(bool bAutoNewLine)
Definition: cXStaticMultiScroll.h:65
int UpdateScroller(void)
Definition: cXStaticMultiScroll.cpp:132
virtual void OnSize(UINT uType, int cx, int cy)
Definition: cXStaticMultiScroll.cpp:255
void put_TextColorAll(D3DCOLOR color)
Definition: cXStaticMultiScroll.h:94
bool m_bLockedToBottom
Definition: cXStaticMultiScroll.h:158
bool SetTextFromFile(cFile &file)
Definition: cXStaticMultiScroll.cpp:80
void FitWindowToText(void)
Definition: cXStaticMultiScroll.h:148
~cXStaticMultiScroll()
Definition: cXStaticMultiScroll.cpp:45
void put_ScrollLock(bool bScrollLock)
Definition: cXStaticMultiScroll.h:77
void put_FontSize(PIXELS_t iHeight)
Definition: cXStaticMultiScroll.h:106
virtual void put_Text(const GChar_t *pszText)
Definition: cXStaticMultiScroll.cpp:70
bool get_AutoNewLine(void) const
Definition: cXStaticMultiScroll.h:59
bool UpdateScrollerNecessity(void)
Definition: cXStaticMultiScroll.cpp:186
void put_ScrollThumbColor(D3DCOLOR color)
Definition: cXStaticMultiScroll.h:136
void ClearText()
Definition: cXStaticMultiScroll.h:53
cXStaticTextBlockPtr AppendText(const GChar_t *pszText, D3DCOLOR TextColor=D3DCOLOR_Black, DWORD dwTextFormat=DT_LEFT, cRefBase *pUserData=nullptr)
Definition: cXStaticMultiScroll.h:41
bool m_bScrollerIsNeeded
Definition: cXStaticMultiScroll.h:161
void put_ScrollBarColor(D3DCOLOR color)
Definition: cXStaticMultiScroll.h:124
int get_TextWidth() const
Definition: cXStaticMultiScroll.h:112
void FillActiveText(void)
Definition: cXStaticMultiScroll.cpp:57
cXStaticMultiScroll(cXWindow *pParent, DLGID_t id=IDC_STATIC)
Definition: cXStaticMultiScroll.cpp:13
void UpdateChildSizes(void)
Definition: cXStaticMultiScroll.cpp:96
void put_ScrollThumbAlpha(COLOR_ELEM_t bAlpha)
Definition: cXStaticMultiScroll.h:142
bool m_bForceShowScroll
Definition: cXStaticMultiScroll.h:162
int get_AutoSizePercentMax() const
Definition: cXStaticMultiScroll.h:83
void put_AutoSizePercentMax(int iAutoSizePercent)
Definition: cXStaticMultiScroll.h:88
int get_TextHeight() const
Definition: cXStaticMultiScroll.h:118
bool get_ScrollLock(void) const
Definition: cXStaticMultiScroll.h:71
virtual void OnScroll(int iPos, cXWindow *pCtrl)
Definition: cXStaticMultiScroll.cpp:280
Definition: cXWindow.h:94
Definition: cFile.h:137
Definition: cRefPtr.h:22
Definition: cRefPtr.h:225
Definition: GrayGUI.cpp:11
cRefPtr< cXStaticMultiScroll > cXStaticMultiScrollPtr
Definition: cXStaticMultiScroll.h:168
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
int PIXELS_t
Count of pixels in a dimension of some image/surface.
Definition: cSurfaceInfo.h:20
char GChar_t
My version of TCHAR, _TCHAR.
Definition: StrConst.h:26