mGNCS API Reference  v1.5.0
A new control set and a new framework for MiniGUI apps
mslider.h
Go to the documentation of this file.
1 //
3 // IMPORTANT NOTICE
4 //
5 // The following open source license statement does not apply to any
6 // entity in the Exception List published by FMSoft.
7 //
8 // For more information, please visit:
9 //
10 // https://www.fmsoft.cn/exception-list
11 //
13 
54 #ifdef _MGNCSCTRL_SLIDER
55 
56 #ifndef _MGUI_NCSCTRL_SLIDER_H
57 #define _MGUI_NCSCTRL_SLIDER_H
58 
59 #ifdef __cplusplus
60 extern "C" {
61 #endif /* __cplusplus */
62 
68 /*
69  * \def NCSCTRL_SLIDER
70  * \brief the name of slider control
71 */
72 
73 #define NCSCTRL_SLIDER NCSCLASSNAME("slider")
74 
75 typedef struct _mSlider mSlider;
76 typedef struct _mSliderClass mSliderClass;
77 typedef struct _mSliderRenderer mSliderRenderer;
78 
79 #define mSliderHeader(Class) \
80  mWidgetHeader(Class)
81 
88 struct _mSlider
89 {
90  mSliderHeader(mSlider)
91 };
92 
93 #define mSliderClassHeader(clsName, parentClass) \
94  mWidgetClassHeader(clsName, parentClass)
95 
102 struct _mSliderClass
103 {
104  mSliderClassHeader(mSlider, mWidget)
105 };
106 
113 MGNCS_EXPORT extern mSliderClass g_stmSliderCls;
114 
115 #define mSliderRendererHeader(clsName, parentClass) \
116  mWidgetRendererHeader(clsName, parentClass) \
117  void (*calcSlider)(clsName *, DWORD calc_area); \
118  void (*drawSlider)(clsName *, HDC hdc);
119 
120 enum mSliderArea
121 {
122  NCSSLIDER_AREA_INCARROW = 0x01,
123  NCSSLIDER_AREA_DECARROW = 0x02,
124  NCSSLIDER_AREA_ARROWS = 0x03,
125  NCSSLIDER_AREA_SLIDER = 0x04,
126  NCSSLIDER_AREA_TRACK = 0x08,
127  NCSSLIDER_AREA_ALL = 0xFFFF //
128 };
129 
136 struct _mSliderRenderer
137 {
138  mSliderRendererHeader(mSlider, mWidget)
139 };
140 
146 enum mSliderProp {
152  NCSP_SLIDER_MAXPOS = NCSP_WIDGET_MAX + 1,
158  NCSP_SLIDER_MINPOS,
164  NCSP_SLIDER_CURPOS,
170  NCSP_SLIDER_LINESTEP,
176  NCSP_SLIDER_PAGESTEP,
177  NCSP_SLIDER_MAX
178 };
179 
184 #define NCSS_SLIDER_HORIZONTAL 0x0000L
185 
190 #define NCSS_SLIDER_VERTICAL (0x0001L<<NCSS_WIDGET_SHIFT)
191 
192 #define NCSS_SLIDER_SHIFT (NCSS_WIDGET_SHIFT + 2)
193 
194 
199 enum enumSliderNotify {
204  NCSN_SLIDER_CHANGED = NCSN_WIDGET_MAX,
208  NCSN_SLIDER_REACHMAX,
212  NCSN_SLIDER_REACHMIN,
213  //NCSN_SLIDER_STARTDRAG, /**< start to drag it*/
214  //NCSN_SLIDER_STOPDRAG, /**< stop to drag it*/
215  NCSN_SLIDER_MAX
216 };
217 
222 enum mSliderHitTest{
223  NCSSLIDER_HT_NONE = 0,
224  NCSSLIDER_HT_SLIDER ,
225  NCSSLIDER_HT_TRACK,
226  NCSSLIDER_HT_INCARROW,
227  NCSSLIDER_HT_DECARROW
228 };
229 #ifdef __cplusplus
230 }
231 #endif /* __cplusplus */
232 
233 #endif /* _MGUI_NCSCTRL_SLIDER_H */
234 #endif //_MGNCSCTRL_SLIDER
mWidget
define the mWidget members, inherit from mComponent