54 #ifdef _MGNCSCTRL_LISTBOX
56 #ifndef _MGUI_CTRL_LSTBOX_H
57 #define _MGUI_CTRL_LSTBOX_H
75 typedef struct _NCS_LSTBOX_ITEMINFO
108 }NCS_LSTBOX_ITEMINFO;
110 typedef struct _mListBox mListBox;
111 typedef struct _mListBoxClass mListBoxClass;
112 typedef struct _mListBoxRenderer mListBoxRenderer;
118 #define NCSCTRL_LISTBOX NCSCLASSNAME("listbox")
124 #define NCSS_LSTBOX_SHIFT (NCSS_ITEMV_SHIFT+4)
130 #define NCSS_LSTBOX_SINGLE NCSS_ITEMV_SINGLE
136 #define NCSS_LSTBOX_MULTIPLE NCSS_ITEMV_MULTIPLE
142 #define NCSS_LSTBOX_SORT NCSS_ITEMV_AUTOSORT
149 #define NCSS_LSTBOX_MOUSEFOLLOW (0x0001<<NCSS_ITEMV_SHIFT)
155 #define NCSS_LSTBOX_STRING (0x0000<<NCSS_ITEMV_SHIFT)
161 #define NCSS_LSTBOX_USEBITMAP (0x0002<<NCSS_ITEMV_SHIFT)
167 #define NCSS_LSTBOX_CHECKBOX (0x0004<<NCSS_ITEMV_SHIFT)
174 #define NCSS_LSTBOX_AUTOCHECK (0x0008<<NCSS_ITEMV_SHIFT)
180 #define NCSS_LSTBOX_AUTOCHECKBOX \
181 (NCSS_LSTBOX_CHECKBOX | NCSS_LSTBOX_AUTOCHECK)
184 #define NCSF_LSTBOX_SHIFT (NCSF_ITEM_SHIFT + 4)
191 #define NCSF_LSTBOX_CMBLANK (0x0000<<NCSF_ITEM_SHIFT)
197 #define NCSF_LSTBOX_CMCHECKED (0x0001<<NCSF_ITEM_SHIFT)
203 #define NCSF_LSTBOX_CMPARTCHECKED (0x0002<<NCSF_ITEM_SHIFT)
209 #define NCSF_LSTBOX_CHECKMASK \
210 (NCSF_LSTBOX_CMBLANK | NCSF_LSTBOX_CMCHECKED | NCSF_LSTBOX_CMPARTCHECKED)
216 #define NCSF_LSTBOX_BOLD (0x0004<<NCSF_ITEM_SHIFT)
222 #define NCSF_LSTBOX_SIGNIFICANT (0x0008<<NCSF_ITEM_SHIFT)
224 #define mListBoxHeader(className) \
225 mItemViewHeader(className) \
254 mListBoxHeader(mListBox)
257 #define mListBoxClassHeader(clsName, parentClass) \
258 mItemViewClassHeader(clsName, parentClass) \
259 int (*onChar)(clsName*, int asciiCode, DWORD keyFlags); \
260 int (*setSel)(clsName*, int newSel, int flag); \
261 int (*addString)(clsName*, const char* string, DWORD addData); \
262 int (*insertString)(clsName*, const char* string, DWORD addData, int index);\
263 int (*findString)(clsName*, int start, char* string, BOOL bExact); \
264 BOOL (*delString) (clsName*, int index); \
265 void (*addItems)(clsName*, NCS_LSTBOX_ITEMINFO *info, int count); \
266 int (*removeItemByIdx)(clsName*, int index); \
267 BOOL (*bold)(clsName*, int index, BOOL bold); \
268 BOOL (*isHilightByIdx)(clsName*, int index); \
269 BOOL (*enableByIdx)(clsName*, int index, BOOL enable); \
270 int (*selectByIdx)(clsName*, int index); \
271 int (*deselectByIdx)(clsName*, int index); \
272 BOOL (*setCheckMark)(clsName*, int index, DWORD mark); \
273 DWORD (*getCheckMark)(clsName*, int index);
358 struct _mListBoxClass
363 #define mListBoxRendererHeader(clsName, parentClass) \
364 mItemViewRendererHeader(clsName, parentClass)
371 struct _mListBoxRenderer {
372 mListBoxRendererHeader(mListBox,
mItemView)
408 NCSP_LSTBOX_HILIGHTEDITEM,
461 NCSN_LSTBOX_CMCANCEL,
463 NCSN_LSTBOX_SELCANCEL = NCSN_LSTBOX_CMCANCEL,
468 NCSN_LSTBOX_CLKCHKMARK,
482 MGNCS_EXPORT
extern mListBoxClass g_stmListBoxCls;
490 #endif //_MGNCSCTRL_LISTBOX