mpage.h
Go to the documentation of this file.00001
00025 #ifdef _MGNCSCTRL_PAGE
00026
00027 #ifndef _MGUI_NCSCTRL_PAGE_H
00028 #define _MGUI_NCSCTRL_PAGE_H
00029
00030 #ifdef __cplusplus
00031 extern "C" {
00032 #endif
00033
00043 #define NCSCTRL_PAGE NCSCLASSNAME("page")
00044
00045 typedef struct _mPage mPage;
00046 typedef struct _mPageClass mPageClass;
00047 typedef struct _mPageRenderer mPageRenderer;
00048
00053 #define NCSS_PAGE_SHIFT NCSS_CTNR_SHIFT
00054
00055 #define mPageHeader(className) \
00056 mContainerHeader(className) \
00057 int titleWidth; \
00058 HICON hIcon;
00059
00060
00073 struct _mPage
00074 {
00075 mPageHeader(mPage)
00076 };
00077
00078 #define mPageClassHeader(clsName, parentClass) \
00079 mContainerClassHeader(clsName, parentClass) \
00080 const char* (*getTitle)(clsName* self); \
00081 BOOL (*setTitle)(clsName* self, const char* title);\
00082 int (*getTitleLength)(clsName* self); \
00083 int (*getTitleWidth)(clsName* self, HDC hdc); \
00084 BOOL (*setIcon)(clsName* self, HICON icon); \
00085 HICON (*getIcon)(clsName* self); \
00086 void (*showPage)(clsName* self, int showCmd);
00087
00125 struct _mPageClass
00126 {
00127 mPageClassHeader(mPage, mContainer)
00128 };
00129
00141 typedef void (*NCS_CB_ONINITPAGE)(mPage *self, DWORD addData);
00142
00157 typedef int (*NCS_CB_ONSHOWPAGE)(mPage *self, HWND focusChild, int showCmd);
00158
00172 typedef int (*NCS_CB_ONSHEETCMD)(mPage *self, DWORD param1, DWORD param2);
00173
00174 #define mPageRendererHeader(clsName, parentClass) \
00175 mContainerRendererHeader(clsName, parentClass)
00176
00181 struct _mPageRenderer {
00182 mPageRendererHeader(mPage, mContainer)
00183 };
00184
00185
00192 MGNCS_EXPORT extern mPageClass g_stmPageCls;
00193
00195 #ifdef __cplusplus
00196 }
00197 #endif
00198
00199 #endif
00200 #endif //_MGNCSCTRL_PAGE