43 #ifndef _MGUI_WIDGET_LAYOUT_H 44 #define _MGUI_WIDGET_LAYOUT_H 46 #ifdef _MGNCSCTRL_LIST 57 typedef struct _mListLayout mListLayout;
58 typedef struct _mListLayoutClass mListLayoutClass;
60 #define mListLayoutHeader(className)\ 61 mObjectHeader(className) \ 62 mAbstractList *list; \ 68 mListLayoutHeader(mListLayout)
71 #define mListLayoutClassHeader(clsName, superCls) \ 72 mObjectClassHeader(clsName, superCls) \ 73 BOOL (*setProperty)(clsName*, int id, DWORD value); \ 74 DWORD (*getProperty)(clsName*, int id); \ 75 mNode* (*onDirKey)(clsName*,mNode* refNode, int direct);\ 76 mNode* (*onMouseHit)(clsName*, int mouseX, int mouseY); \ 77 int (*getNodeRect)(clsName*, mNode *node, RECT *rcNode);\ 78 BOOL (*recalcContSize)(clsName*, int flags); \ 79 void (*init)(clsName*, mAbstractList *list, int defItemW, int defItemH);\ 80 void (*update)(clsName*, HDC hdc, const RECT* rcVis, RECT *rcCont); \ 81 void (*nodeEvent)(clsName*, int eventId, DWORD eventInfo); 83 struct _mListLayoutClass
85 mListLayoutClassHeader(mListLayout,
mObject)
88 enum mListLayoutStatus
90 NCSF_LIST_LAYOUT_ITEMHCHANGED = 0x01,
91 NCSF_LIST_LAYOUT_ITEMWCHANGED = 0x02,
101 NCSP_LIST_LAYOUT_DEFITEMHEIGHT = 10,
102 NCSP_LIST_LAYOUT_DEFITEMWIDTH,
106 NCSP_LIST_LAYOUT_MAX,
115 MGNCS_EXPORT
extern mListLayoutClass g_stmListLayoutCls;
120 typedef struct _mLVIconLayout mLVIconLayout;
121 typedef struct _mLVIconLayoutClass mLVIconLayoutClass;
123 #define mLVIconLayoutHeader(className) \ 124 mListLayoutHeader(className) \ 127 struct _mLVIconLayout
129 mLVIconLayoutHeader(mLVIconLayout)
132 #define mLVIconLayoutClassHeader(clsName, superCls) \ 133 mListLayoutClassHeader(clsName, superCls) 135 struct _mLVIconLayoutClass
137 mLVIconLayoutClassHeader(mLVIconLayout, mListLayout)
140 MGNCS_EXPORT
extern mLVIconLayoutClass g_stmLVIconLayoutCls;
143 typedef struct _mLHIconLayout mLHIconLayout;
144 typedef struct _mLHIconLayoutClass mLHIconLayoutClass;
146 #define mLHIconLayoutHeader(className) \ 147 mListLayoutHeader(className) \ 150 struct _mLHIconLayout
152 mLHIconLayoutHeader(mLHIconLayout)
155 #define mLHIconLayoutClassHeader(clsName, superCls) \ 156 mListLayoutClassHeader(clsName, superCls) 158 struct _mLHIconLayoutClass
160 mLHIconLayoutClassHeader(mLHIconLayout, mListLayout)
163 MGNCS_EXPORT
extern mLHIconLayoutClass g_stmLHIconLayoutCls;
166 typedef struct _mLHCenterBoxLayout mLHCenterBoxLayout;
167 typedef struct _mLHCenterBoxLayoutClass mLHCenterBoxLayoutClass;
169 #define mLHCenterBoxLayoutHeader(className) \ 170 mLHIconLayoutHeader(className) \ 173 struct _mLHCenterBoxLayout
175 mLHCenterBoxLayoutHeader(mLHIconLayout)
178 #define mLHCenterBoxLayoutClassHeader(clsName, superCls) \ 179 mLHIconLayoutClassHeader(clsName, superCls) 181 struct _mLHCenterBoxLayoutClass
183 mLHCenterBoxLayoutClassHeader(mLHCenterBoxLayout, mLHIconLayout)
190 enum mLHCenterBoxLayoutProp
195 NCSP_HCBOX_LAYOUT_OFFX = NCSP_LIST_LAYOUT_MAX + 1,
199 NCSP_HCBOX_LAYOUT_MAX,
202 MGNCS_EXPORT
extern mLHCenterBoxLayoutClass g_stmLHCenterBoxLayoutCls;
205 typedef struct _NCS_GROUP_INFO
212 typedef struct _mLGroupLayout mLGroupLayout;
213 typedef struct _mLGroupLayoutClass mLGroupLayoutClass;
215 #define NCSID_UNNAMED_GROUP 0 216 #define NCSID_UNNAMED_GROUPTEXT "Unnamed" 218 typedef int (*NCS_CB_INGROUP)(
mNode *node);
220 #define mLGroupLayoutHeader(className) \ 221 mLVIconLayoutHeader(className) \ 222 NCS_CB_CMPNODE cbCmpNode; \ 223 NCS_CB_CMPNODE cbCmpGroup; \ 224 NCS_CB_INGROUP cbInGroup; \ 229 struct _mLGroupLayout
231 mLGroupLayoutHeader(mLGroupLayout)
234 #define mLGroupLayoutClassHeader(clsName, superCls) \ 235 mLVIconLayoutClassHeader(clsName, superCls) \ 236 void (*setGroupInfo)(clsName*, NCS_CB_INGROUP inGroup, NCS_GROUP_INFO *groupInfo, int groupSize);\ 237 NCS_CB_CMPNODE (*decorateNodeCmp)(clsName*, NCS_CB_CMPNODE func); \ 238 NCS_CB_INGROUP (*setInGroupFunc)(clsName*, NCS_CB_INGROUP func); \ 239 BOOL (*resetGroup)(clsName*, NCS_GROUP_INFO *groupInfo, int groupSize); 241 struct _mLGroupLayoutClass
243 mLGroupLayoutClassHeader(mLGroupLayout, mLVIconLayout)
251 enum mLGroupLayoutProp
254 NCSP_LGROUP_LAYOUT_NODECMPFUNC = NCSP_LIST_LAYOUT_MAX + 1,
256 NCSP_LGROUP_LAYOUT_GROUPCMPFUNC,
260 NCSP_LGROUP_LAYOUT_MAX,
263 MGNCS_EXPORT
extern mLGroupLayoutClass g_stmLGroupLayoutCls;
270 #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.