55 #ifndef _MGUI_WIDGET_LAYOUT_H 56 #define _MGUI_WIDGET_LAYOUT_H 58 #ifdef _MGNCSCTRL_LIST 69 typedef struct _mListLayout mListLayout;
70 typedef struct _mListLayoutClass mListLayoutClass;
72 #define mListLayoutHeader(className)\ 73 mObjectHeader(className) \ 74 mAbstractList *list; \ 80 mListLayoutHeader(mListLayout)
83 #define mListLayoutClassHeader(clsName, superCls) \ 84 mObjectClassHeader(clsName, superCls) \ 85 BOOL (*setProperty)(clsName*, int id, DWORD value); \ 86 DWORD (*getProperty)(clsName*, int id); \ 87 mNode* (*onDirKey)(clsName*,mNode* refNode, int direct);\ 88 mNode* (*onMouseHit)(clsName*, int mouseX, int mouseY); \ 89 int (*getNodeRect)(clsName*, mNode *node, RECT *rcNode);\ 90 BOOL (*recalcContSize)(clsName*, int flags); \ 91 void (*init)(clsName*, mAbstractList *list, int defItemW, int defItemH);\ 92 void (*update)(clsName*, HDC hdc, const RECT* rcVis, RECT *rcCont); \ 93 void (*nodeEvent)(clsName*, int eventId, DWORD eventInfo); 95 struct _mListLayoutClass
97 mListLayoutClassHeader(mListLayout,
mObject)
100 enum mListLayoutStatus
102 NCSF_LIST_LAYOUT_ITEMHCHANGED = 0x01,
103 NCSF_LIST_LAYOUT_ITEMWCHANGED = 0x02,
113 NCSP_LIST_LAYOUT_DEFITEMHEIGHT = 10,
114 NCSP_LIST_LAYOUT_DEFITEMWIDTH,
118 NCSP_LIST_LAYOUT_MAX,
127 MGNCS_EXPORT
extern mListLayoutClass g_stmListLayoutCls;
132 typedef struct _mLVIconLayout mLVIconLayout;
133 typedef struct _mLVIconLayoutClass mLVIconLayoutClass;
135 #define mLVIconLayoutHeader(className) \ 136 mListLayoutHeader(className) \ 139 struct _mLVIconLayout
141 mLVIconLayoutHeader(mLVIconLayout)
144 #define mLVIconLayoutClassHeader(clsName, superCls) \ 145 mListLayoutClassHeader(clsName, superCls) 147 struct _mLVIconLayoutClass
149 mLVIconLayoutClassHeader(mLVIconLayout, mListLayout)
152 MGNCS_EXPORT
extern mLVIconLayoutClass g_stmLVIconLayoutCls;
155 typedef struct _mLHIconLayout mLHIconLayout;
156 typedef struct _mLHIconLayoutClass mLHIconLayoutClass;
158 #define mLHIconLayoutHeader(className) \ 159 mListLayoutHeader(className) \ 162 struct _mLHIconLayout
164 mLHIconLayoutHeader(mLHIconLayout)
167 #define mLHIconLayoutClassHeader(clsName, superCls) \ 168 mListLayoutClassHeader(clsName, superCls) 170 struct _mLHIconLayoutClass
172 mLHIconLayoutClassHeader(mLHIconLayout, mListLayout)
175 MGNCS_EXPORT
extern mLHIconLayoutClass g_stmLHIconLayoutCls;
178 typedef struct _mLHCenterBoxLayout mLHCenterBoxLayout;
179 typedef struct _mLHCenterBoxLayoutClass mLHCenterBoxLayoutClass;
181 #define mLHCenterBoxLayoutHeader(className) \ 182 mLHIconLayoutHeader(className) \ 185 struct _mLHCenterBoxLayout
187 mLHCenterBoxLayoutHeader(mLHIconLayout)
190 #define mLHCenterBoxLayoutClassHeader(clsName, superCls) \ 191 mLHIconLayoutClassHeader(clsName, superCls) 193 struct _mLHCenterBoxLayoutClass
195 mLHCenterBoxLayoutClassHeader(mLHCenterBoxLayout, mLHIconLayout)
202 enum mLHCenterBoxLayoutProp
207 NCSP_HCBOX_LAYOUT_OFFX = NCSP_LIST_LAYOUT_MAX + 1,
211 NCSP_HCBOX_LAYOUT_MAX,
214 MGNCS_EXPORT
extern mLHCenterBoxLayoutClass g_stmLHCenterBoxLayoutCls;
217 typedef struct _NCS_GROUP_INFO
224 typedef struct _mLGroupLayout mLGroupLayout;
225 typedef struct _mLGroupLayoutClass mLGroupLayoutClass;
227 #define NCSID_UNNAMED_GROUP 0 228 #define NCSID_UNNAMED_GROUPTEXT "Unnamed" 230 typedef int (*NCS_CB_INGROUP)(
mNode *node);
232 #define mLGroupLayoutHeader(className) \ 233 mLVIconLayoutHeader(className) \ 234 NCS_CB_CMPNODE cbCmpNode; \ 235 NCS_CB_CMPNODE cbCmpGroup; \ 236 NCS_CB_INGROUP cbInGroup; \ 241 struct _mLGroupLayout
243 mLGroupLayoutHeader(mLGroupLayout)
246 #define mLGroupLayoutClassHeader(clsName, superCls) \ 247 mLVIconLayoutClassHeader(clsName, superCls) \ 248 void (*setGroupInfo)(clsName*, NCS_CB_INGROUP inGroup, NCS_GROUP_INFO *groupInfo, int groupSize);\ 249 NCS_CB_CMPNODE (*decorateNodeCmp)(clsName*, NCS_CB_CMPNODE func); \ 250 NCS_CB_INGROUP (*setInGroupFunc)(clsName*, NCS_CB_INGROUP func); \ 251 BOOL (*resetGroup)(clsName*, NCS_GROUP_INFO *groupInfo, int groupSize); 253 struct _mLGroupLayoutClass
255 mLGroupLayoutClassHeader(mLGroupLayout, mLVIconLayout)
263 enum mLGroupLayoutProp
266 NCSP_LGROUP_LAYOUT_NODECMPFUNC = NCSP_LIST_LAYOUT_MAX + 1,
268 NCSP_LGROUP_LAYOUT_GROUPCMPFUNC,
272 NCSP_LGROUP_LAYOUT_MAX,
275 MGNCS_EXPORT
extern mLGroupLayoutClass g_stmLGroupLayoutCls;
282 #endif //_MGNCSCTRL_LIST
The structure of mNode. It is the basic class of all nodes occur within specific controls. For example, a list can contain it.