54 #ifdef _MGNCSCTRL_PROPSHEET
56 #ifndef _MGUI_NCSCTRL_PROPSHEET_H
57 #define _MGUI_NCSCTRL_PROPSHEET_H
72 #define NCSCTRL_PROPSHEET NCSCLASSNAME("propsheet")
78 #define NCSS_PRPSHT_SHIFT NCSS_WIDGET_SHIFT+3
80 #define NCSS_PRPSHT_BTNMASK (0x0003<<NCSS_WIDGET_SHIFT)
81 #define NCSS_PRPSHT_TABMASK (0x0004<<NCSS_WIDGET_SHIFT)
88 #define NCSS_PRPSHT_SIMPLE (0x0000<<NCSS_WIDGET_SHIFT)
94 #define NCSS_PRPSHT_COMPACTTAB (0x0001<<NCSS_WIDGET_SHIFT)
100 #define NCSS_PRPSHT_SCROLLABLE (0x0002<<NCSS_WIDGET_SHIFT)
106 #define NCSS_PRPSHT_TOP (0x0000<<NCSS_WIDGET_SHIFT)
113 #define NCSS_PRPSHT_BOTTOM (0x0004<<NCSS_WIDGET_SHIFT)
115 typedef struct _mPropSheet mPropSheet;
116 typedef struct _mPropSheetClass mPropSheetClass;
117 typedef struct _mPropSheetRenderer mPropSheetRenderer;
119 #define mPropSheetHeader(className) \
120 mWidgetHeader(className) \
123 int scrollTabWidth; \
164 mPropSheetHeader(mPropSheet)
167 #define mPropSheetClassHeader(clsName, parentClass) \
168 mWidgetClassHeader(clsName, parentClass) \
169 int (*getPageIndex)(clsName*, mPage* page); \
170 mPage* (*getPageByIndex)(clsName*, int pageIndex); \
171 mPage* (*addPage)(clsName*, const PDLGTEMPLATE dlgTemplate, const NCS_EVENT_HANDLER* handlers);\
172 BOOL (*removePageByIndex)(clsName*, int pageIndex);\
173 BOOL (*removePage)(clsName*, mPage* page); \
174 mPage* (*getNextPage)(clsName*, mPage* page); \
175 mPage* (*getPrevPage)(clsName*, mPage* page); \
176 int (*broadCastMsg)(clsName*, DWORD param1, DWORD param2);
227 struct _mPropSheetClass
229 mPropSheetClassHeader(mPropSheet,
mWidget)
269 #define mPropSheetRendererHeader(clsName, parentClass) \
270 mWidgetRendererHeader(clsName, parentClass) \
271 void (*resetHeadArea) (clsName*, RECT* rcClient, DWORD style); \
272 void (*getRect)(clsName*, RECT* rcClient, RECT *rcResult, int which); \
273 void (*drawBorder)(clsName*, HDC hdc, RECT *rcBorder); \
274 void (*drawScrollBtn)(clsName*, HDC hdc, RECT *rcBtn, int which); \
275 void (*drawTab)(clsName*, HDC hdc, RECT* rcTab, const char* title, HICON hIcon, BOOL active);
320 struct _mPropSheetRenderer {
321 mPropSheetRendererHeader(mPropSheet,
mWidget)
330 MGNCS_EXPORT
extern mPropSheetClass g_stmPropSheetCls;
336 enum mPropSheetNotify
342 NCSN_PRPSHT_ACTIVECHANGED = NCSN_WIDGET_MAX + 1,
363 NCSP_PRPSHT_MINTABWIDTH = NCSP_WIDGET_MAX + 1,
371 NCSP_PRPSHT_TABMARGIN,
379 NCSP_PRPSHT_ACTIVEPAGE,
387 NCSP_PRPSHT_ACTIVEPAGEIDX,
395 NCSP_PRPSHT_FIRSTVIEWPAGE,
403 NCSP_PRPSHT_FIRSTVIEWPAGEIDX,
411 NCSP_PRPSHT_PAGECOUNT,
421 #endif //_MGNCSCTRL_PROPSHEET