mGNCS API Reference  v1.5.0
A new control set and a new framework for MiniGUI apps
mpage.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_PAGE
55 
56 #ifndef _MGUI_NCSCTRL_PAGE_H
57 #define _MGUI_NCSCTRL_PAGE_H
58 
59 #ifdef __cplusplus
60 extern "C" {
61 #endif /* __cplusplus */
62 
72 #define NCSCTRL_PAGE NCSCLASSNAME("page")
73 
74 typedef struct _mPage mPage;
75 typedef struct _mPageClass mPageClass;
76 typedef struct _mPageRenderer mPageRenderer;
77 
82 #define NCSS_PAGE_SHIFT NCSS_CTNR_SHIFT
83 
84 #define mPageHeader(className) \
85  mContainerHeader(className) \
86  int titleWidth; \
87  HICON hIcon;
88 
89 
102 struct _mPage
103 {
104  mPageHeader(mPage)
105 };
106 
107 #define mPageClassHeader(clsName, parentClass) \
108  mContainerClassHeader(clsName, parentClass) \
109  const char* (*getTitle)(clsName* self); \
110  BOOL (*setTitle)(clsName* self, const char* title);\
111  int (*getTitleLength)(clsName* self); \
112  int (*getTitleWidth)(clsName* self, HDC hdc); \
113  BOOL (*setIcon)(clsName* self, HICON icon); \
114  HICON (*getIcon)(clsName* self); \
115  void (*showPage)(clsName* self, int showCmd);
116 
154 struct _mPageClass
155 {
156  mPageClassHeader(mPage, mContainer)
157 };
158 
170 typedef void (*NCS_CB_ONINITPAGE)(mPage *self, DWORD addData);
171 
186 typedef int (*NCS_CB_ONSHOWPAGE)(mPage *self, HWND focusChild, int showCmd);
187 
201 typedef int (*NCS_CB_ONSHEETCMD)(mPage *self, DWORD param1, DWORD param2);
202 
203 #define mPageRendererHeader(clsName, parentClass) \
204  mContainerRendererHeader(clsName, parentClass)
205 
210 struct _mPageRenderer {
211  mPageRendererHeader(mPage, mContainer)
212 };
213 
214 
221 MGNCS_EXPORT extern mPageClass g_stmPageCls;
222 
224 #ifdef __cplusplus
225 }
226 #endif /* __cplusplus */
227 
228 #endif /* _MGUI_NCSCTRL_PAGE_H */
229 #endif //_MGNCSCTRL_PAGE