54 #ifdef _MGNCSCTRL_LIST
56 #ifndef _MGUI_NCSCTRL_LIST_H
57 #define _MGUI_NCSCTRL_LIST_H
73 #define NCSCTRL_LIST NCSCLASSNAME("list")
75 typedef struct _mList mList;
76 typedef struct _mListClass mListClass;
77 typedef struct _mListRenderer mListRenderer;
83 #define NCSS_LIST_LOOP (0x0001<<NCSS_ASTLST_SHIFT)
89 #define NCSS_LIST_MULTIPLE (0x0002<<NCSS_ASTLST_SHIFT)
95 #define NCSS_LIST_SHIFT (NCSS_ASTLST_SHIFT+2)
97 #define mListHeader(clsName) \
98 mAbstractListHeader(clsName) \
100 mListLayout *layout; \
102 Uint16 nodesHeight; \
126 #define mListClassHeader(clsName, superCls) \
127 mAbstractListClassHeader(clsName, superCls) \
128 void (*resetContent)(clsName*); \
129 void (*removeAll)(clsName*); \
130 void (*enterSubList)(clsName*, mNode* selNode); \
131 void (*backUpList)(clsName*, mNode* selNode); \
132 BOOL (*setNodeDefSize)(clsName*, int defW,int defH);\
133 BOOL (*setLayout)(clsName*, mListLayout* layout, int defNodeW, int defNodeH); \
134 mListLayout* (*getLayout)(clsName*);
172 #define mListRendererHeader(clsName, parentClass) \
173 mAbstractListRendererHeader(clsName, parentClass)
180 struct _mListRenderer {
207 NCS_LIST_LUSERDEFINED,
216 NCSE_LIST_FONTCHANGED = 100,
217 NCSE_LIST_SIZECHANGED,
218 NCSE_LIST_ROOTCHANGING,
219 NCSE_LIST_ROOTCHANGED,
222 enum mListDirKeyFlags{
224 NCSF_LIST_DOWN = 0x02,
225 NCSF_LIST_LEFT = 0x04,
226 NCSF_LIST_RIGHT = 0x08,
227 NCSF_LIST_HOME = 0x10,
228 NCSF_LIST_END = 0x20,
229 NCSF_LIST_LOOP = 0x100,
230 NCSF_LIST_DIRMASK= 0xFF,
246 NCSP_LIST_DEFNODEWIDTH,
251 NCSP_LIST_DEFNODEHEIGHT,
287 NCSN_LIST_ENTERSUBLIST,
293 NCSN_LIST_BACKUPLIST,
295 NCSN_LIST_ROOTNODECHANGED,
308 MGNCS_EXPORT
extern mListClass g_stmListCls;
314 MGNCS_EXPORT
void mList_foreachNode(mList *list,
void (*
foreach)(
mNode *node,
void* param),
void* param);
323 #endif //_MGNCSCTRL_LIST