54 #ifdef _MGNCSCTRL_COMBOBOX
56 #ifndef _MGUI_PANEL_COMBOBOX_H
57 #define _MGUI_PANEL_COMBOBOX_H
73 #define NCSCTRL_COMBOBOX NCSCLASSNAME("combobox")
75 typedef struct _mCombobox mCombobox;
76 typedef struct _mComboboxClass mComboboxClass;
77 typedef struct _mComboboxRenderer mComboboxRenderer;
79 #define mComboboxHeader(clsName) \
80 mPanelHeader(clsName) \
112 mComboboxHeader(mCombobox)
115 #define mComboboxClassHeader(clsName, parentClass) \
116 mPanelClassHeader(clsName, parentClass) \
117 BOOL (*addItem)(clsName *self, const char *item, DWORD addData); \
118 BOOL (*removeItem)(clsName *self, int index); \
119 BOOL (*setItem)(clsName *self, int index, const char *item); \
120 const char* (*getItem)(clsName *self, int index); \
121 void (*setAddData)(clsName *self, int index, DWORD addData); \
122 DWORD (*getAddData)(clsName *self, int index);
149 struct _mComboboxClass
151 mComboboxClassHeader(mCombobox,
mPanel)
154 MGNCS_EXPORT
extern mComboboxClass g_stmComboboxCls;
156 #define mComboboxRendererHeader(clsName, parentClass) \
157 mPanelRendererHeader(clsName, parentClass) \
158 void (*drawDropDownBtn)(clsName* self, HDC, const RECT*);
172 struct _mComboboxRenderer {
173 mComboboxRendererHeader(mCombobox,
mPanel)
186 NCSP_COMB_ITEMHEIGHT = NCSP_LSTBOX_ITEMHEIGHT,
192 NCSP_COMB_ITEMCOUNT = NCSP_LSTBOX_ITEMCOUNT,
222 #define NCSS_CMBOX_SIMPLE 0x0000L
228 #define NCSS_CMBOX_DROPDOWNLIST (0x0001L<<NCSS_PANEL_SHIFT)
234 #define NCSS_CMBOX_SORT (0x0002L<<NCSS_PANEL_SHIFT)
240 #define NCSS_CMBOX_EDITNOBORDER (0x0004L<<NCSS_PANEL_SHIFT)
246 #define NCSS_CMBOX_EDITBASELINE (0x0008L<<NCSS_PANEL_SHIFT)
252 #define NCSS_CMBOX_READONLY (0x0010L<<NCSS_PANEL_SHIFT)
258 #define NCSS_CMBOX_UPPERCASE (0x0020L<<NCSS_PANEL_SHIFT)
264 #define NCSS_CMBOX_LOWERCASE (0x0040L<<NCSS_PANEL_SHIFT)
270 #define NCSS_CMBOX_AUTOFOCUS (0x0080L<<NCSS_PANEL_SHIFT)
272 #define NCSS_CMBOX_SHIFT (NCSS_PANEL_SHIFT + 9)
276 enum enumComboboxNotify {
279 NCSN_CMBOX_KILLFOCUS,
280 NCSN_CMBOX_EDITCHANGE,
284 NCSN_CMBOX_SELECTCANCEL,
293 #define NCSF_CMBOX_BUTTONDOWN 0x0001
294 #define NCSF_CMBOX_BUTTONUP 0x0002
295 #define NCSF_CMBOX_DROPPED 0x0004
296 #define NCSF_CMBOX_HILIGHT 0x0008
298 #define SET_STATE(lp, mask) (lp->flag |= (mask))
299 #define CLEAR_STATE(lp, mask) (lp->flag &= ~(mask))
300 #define IS_SET(lp, mask) (lp->flag & (mask))
309 #endif //_MGNCSCTRL_COMBOBOX