Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
cXScrollBar.h
Go to the documentation of this file.
1 //
4 //
5 #ifndef _INC_cXScrollBar_H
6 #define _INC_cXScrollBar_H
7 #pragma once
8 
9 #include "cXButton.h"
10 
11 namespace GrayGUI
12 {
13 #define SB_SIZE_DEFAULT ICONSIZE_SMALL
14 
15 #define USE_OLD_SCROLLBAR_CODE 1
16 
17  class cXScrollBar : public cXWindow
18  {
22  public:
23  cXScrollBar(cXWindow* pParent, DLGID_t id, X_WNDCLASS_TYPE eXWClass = X_CTRL_ScrollBar);
24  virtual ~cXScrollBar();
25 
26  virtual bool InitXWindow(void);
27  virtual void put_Style(DWORD dwStyle);
28  virtual cString GetToolTip(cXWindow* pCtrl, PIXELS_t x, PIXELS_t y) const;
29  virtual void OnSize(UINT uType, PIXELS_t cx, PIXELS_t cy);
30  virtual bool OnKeyFocus(bool bActive);
31 
32  virtual bool OnMouseDown(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y);
33  virtual bool OnMouseMove(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y);
34  virtual bool OnMouseUp(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y);
35  virtual bool OnMouseDblClk(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y);
36  virtual bool OnMouseWheel(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y, short nWheelChange);
37  virtual bool OnKeyDown(VK_TYPE vKey);
38  virtual bool OnCommand(DLGID_t id, cXWindow* pCtrl, WORD wNotify);
39 
40  public:
41  void LoadThumbImage(const FILECHAR_t* File);
43  {
45  m_pThumb->put_NormalColor(color);
46  }
47 
48 #if USE_OLD_SCROLLBAR_CODE
49  int get_ScrollValue() const
50  {
51  return m_iThumbValueIndex;
52  }
53 
54  void put_ScrollValue(int iValue);
55 
56  void put_ScrollPageSize(int iPageSize);
57 
58  void SetScrollMinMax(int Min, int Max);
59  int get_ValueRangeX() const
60  {
61  return m_Range.get_RangeX();
62  }
63 
64  void SetScrollMinMax2(int Min, int Max);
65  void put_ScrollPageSize2(int iPageSize);
66  void put_BottomPaddingSize(int iPadSize)
67  {
68  m_iBottomPaddingSize = iPadSize;
69  }
70  void AdjustThumb(void);
71  void ReSizeThumb(void);
72  void RepositionThumb(void);
73 
74  protected:
75  void SetScrollValueUpdate(int iValue);
76 
77  int GetPosValue(FLOAT Pos) const;
81 
82 #else
83  void put_ValueIndex(int iIndex);
84  int get_ValueIndex() const
85  {
86  return m_iThumbValueIndex;
87  }
88 
89  void put_ValuePix(int iPosInWnd);
90  int get_ValuePix() const
91  {
92  return m_iThumbValuePix;
93  }
94 
95  int get_DragOffsetPix() const
96  {
97  return m_iDragOffsetPix;
98  }
99 
100  int get_ThumbPos() const;
101 
102  void put_RangeIndex(int iEnd, int iStart = 0);
103  int get_RangeIndex() const
104  {
105  return m_RangeIndex.get_Max() - m_RangeIndex.get_Min();
106  }
107 
108  void put_ThumbSizeIndex(int iSize);
109  int get_ThumbSizeIndex() const
110  {
111  return m_iThumbSizeIndex;
112  }
113 
114  void put_ThumbSizePix(int iSize);
115  int get_ThumbSizePix() const
116  {
117  return m_iThumbSizePix;
118  }
119 
120  void put_Params(int iRangeSize, int iThumbSizeIndex, int iPosIndex);
121 
122  protected:
123  void put_ValueIndex_Internal(int iPosWnd);
124  void put_ThumbPos(int iPosWnd);
125  void put_DragOffsetPix(cPoint2i ptClickPos);
126 
127  int get_PosPixFromPosWnd(int iPosWnd) const; //translates a window position to a pixel-aligned scroll value
128  int get_PosWndFromPosPix(int iPosPix) const; //translates a pixel-aligned scroll value to a window position
129 
130 #endif
131 
132  int get_PixelSizeAll() const;
133  int get_PixelSizePrev() const;
134  int get_PixelSizeNext() const;
135  int get_TrackSize() const;
136  int get_PixelRange() const;
137 
138  public:
140  int m_iKeyChangeValue; // when i press a key how much does it change the value.
141 
142 #if USE_OLD_SCROLLBAR_CODE
143  cValueRangeInt m_Range; // inclusive range of index values min,max
144  public:
145  int m_iThumbPageSize; // how many indicies the thumb represents (how many items are shown in window)
146 #else
147  cValueRangeInt m_RangeIndex; // inclusive range of index values min,max
148  protected:
149  int m_iThumbSizeIndex; // how many indicies the thumb represents (how many items are shown in window)
150 #endif
151  int m_iThumbValueIndex; // current index value relative to valid index range
152  int m_iThumbValuePix; // current pixel value relative to valid pixel range of scroll area
153 
154  int m_iDragOffsetPix; // pixel value offset between thumb position and mouse click at start of drag
155 
156  int m_iThumbSizePix; // Thumb size in pixels.
157 #if USE_OLD_SCROLLBAR_CODE
158  int m_iBottomPaddingSize; // Number of single-line sized blocks for padding on bottom. (blank blocks)
159 #endif
160 
161  protected:
162  cVector2f m_vThumbPos; // thumb in window coords (does not account for other controls (buttons))
163  cXButtonPtr m_pPrevArrow; // other controls
165  };
166 
168 };
169 #endif
DWORD D3DCOLOR
Stuff normally defined in windows.h or DirectX headers.
Definition: cColorRef.h:24
#define ASSERT(exp)
Definition: cDebugAssert.h:87
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: cXScrollBar.h:18
int get_TrackSize() const
Definition: cXScrollBar.cpp:100
int get_PixelSizePrev() const
Definition: cXScrollBar.cpp:67
virtual bool OnMouseDown(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y)
Definition: cXScrollBar.cpp:660
void SetScrollValueUpdate(int iValue)
int get_ScrollValue() const
Definition: cXScrollBar.h:49
int m_iBottomPaddingSize
Definition: cXScrollBar.h:158
cVector2f m_vThumbPos
Definition: cXScrollBar.h:162
void put_ScrollPageSize(int iPageSize)
virtual void OnSize(UINT uType, PIXELS_t cx, PIXELS_t cy)
Definition: cXScrollBar.cpp:592
int get_PixelSizeNext() const
Definition: cXScrollBar.cpp:78
int m_iThumbSizePix
Definition: cXScrollBar.h:156
cValueRangeInt m_Range
Definition: cXScrollBar.h:143
void put_ThumbColor(D3DCOLOR color)
Definition: cXScrollBar.h:42
void RepositionThumb(void)
virtual bool OnMouseUp(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y)
Definition: cXScrollBar.cpp:682
virtual void put_Style(DWORD dwStyle)
Definition: cXScrollBar.cpp:52
int m_iThumbValuePix
Definition: cXScrollBar.h:152
cXButtonPtr m_pThumb
Definition: cXScrollBar.h:139
virtual cString GetToolTip(cXWindow *pCtrl, PIXELS_t x, PIXELS_t y) const
Definition: cXScrollBar.cpp:514
void put_BottomPaddingSize(int iPadSize)
Definition: cXScrollBar.h:66
int get_PixelSizeAll() const
Definition: cXScrollBar.cpp:88
cXButtonPtr m_pNextArrow
Definition: cXScrollBar.h:164
int m_iThumbPageSize
Definition: cXScrollBar.h:145
virtual bool OnMouseDblClk(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y)
Definition: cXScrollBar.cpp:652
virtual bool OnMouseMove(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y)
Definition: cXScrollBar.cpp:727
void SetScrollMinMax(int Min, int Max)
cXButtonPtr m_pPrevArrow
Definition: cXScrollBar.h:163
virtual bool OnKeyFocus(bool bActive)
Definition: cXScrollBar.cpp:774
virtual bool InitXWindow(void)
Definition: cXScrollBar.cpp:537
void AdjustThumb(void)
int m_iThumbValueIndex
Definition: cXScrollBar.h:151
void ReSizeThumb(void)
virtual bool OnKeyDown(VK_TYPE vKey)
Definition: cXScrollBar.cpp:781
void LoadThumbImage(const FILECHAR_t *File)
void SetScrollMinMax2(int Min, int Max)
int get_ValueRangeX() const
Definition: cXScrollBar.h:59
int GetPosValue(FLOAT Pos) const
void put_ScrollPageSize2(int iPageSize)
virtual bool OnMouseWheel(MBUTTON_TYPE uButton, PIXELS_t x, PIXELS_t y, short nWheelChange)
Definition: cXScrollBar.cpp:754
int m_iDragOffsetPix
Definition: cXScrollBar.h:154
cXScrollBar(cXWindow *pParent, DLGID_t id, X_WNDCLASS_TYPE eXWClass=X_CTRL_ScrollBar)
Definition: cXScrollBar.cpp:22
virtual ~cXScrollBar()
Definition: cXScrollBar.cpp:48
int m_iKeyChangeValue
Definition: cXScrollBar.h:140
int get_PixelRange() const
Definition: cXScrollBar.cpp:110
void put_ScrollValue(int iValue)
virtual bool OnCommand(DLGID_t id, cXWindow *pCtrl, WORD wNotify)
Definition: cXScrollBar.cpp:620
Definition: cXWindow.h:94
Definition: cVector.h:36
TYPE get_RangeX() const
Definition: cPair.h:72
Definition: GrayGUI.cpp:11
cRefPtr< cXScrollBar > cXScrollBarPtr
Definition: cXScrollBar.h:167
X_WNDCLASS_TYPE
Definition: cXWindow.h:34
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
char FILECHAR_t
a UTF8 char in a file name. like TCHAR
Definition: FileName.h:22