54 #ifndef _MGUI_WIDGET_NODE_H 55 #define _MGUI_WIDGET_NODE_H 67 typedef struct _mNode
mNode;
74 #define NCSS_NODE_LTEXTRS 0x0000 81 #define NCSS_NODE_SMALLICON 0x0001 87 #define NCSS_NODE_LTEXTBS 0x0002 93 #define NCSS_NODE_TICTACTOEMIDLET 0x0004 95 #define NCSS_NODE_LAYOUT_MASK 0x00FF 101 #define NCSS_NODE_HIDETEXT 0x0010 107 #define NCSS_NODE_HIDEIMAGE 0x0020 113 #define NCSS_NODE_DISABLED 0x0040 119 #define NCSS_NODE_SHIFT 7 128 #define mNodeDataInfoHeader \ 137 typedef struct _NCS_NODE_DATA
143 #define NCSF_NODE_MASK 0xFFFF 144 #define NCSF_NODE_NORMAL 0x0000 145 #define NCSF_NODE_SELECTED 0x0001 146 #define NCSF_NODE_DISABLED 0x0002 147 #define NCSF_NODE_INVISIBLE 0x0004 148 #define NCSF_NODE_DEFHEIGHT 0x0008 150 #define NCSF_NODE_HIDETEXT 0x0010 151 #define NCSF_NODE_HIDEIMAGE 0x0020 153 typedef struct _NCS_NODE_LAYOUTOPS
157 void (*paint)(
mNode *
self, HDC hdc,
const RECT *rect,
mObject *owner);
160 #define mNodeHeader(className) \ 161 mObjectHeader(className) \ 162 NCS_NODE_LAYOUTOPS *layout; \ 205 typedef struct _NCS_MENU_DATA
208 struct _NCS_MENU_DATA *child;
212 MGNCS_EXPORT
void ncsSetMenuData(
mObject *
self, NCS_MENU_DATA *pMenuData,
int count);
214 typedef struct _NCS_MENU_INFO
220 MGNCS_EXPORT
void ncsSetMenu(
mObject *
self, NCS_MENU_INFO *pMenuInfo);
238 PBITMAP image,
int height,
int style, DWORD addData);
260 PBITMAP image,
int height,
int style, DWORD addData);
286 #define mNodeClassHeader(clsName, superCls) \ 287 mObjectClassHeader(clsName, superCls) \ 288 BOOL (*setProperty)(clsName*, int id, DWORD value); \ 289 DWORD (*getProperty)(clsName*, int id); \ 290 BOOL (*computeSize)(clsName*, HDC hdc, SIZE *size); \ 291 BOOL (*canAsRoot)(clsName*); \ 292 int (*addNode)(clsName*, mNode *node); \ 293 int (*removeNode)(clsName*, mNode *node); \ 294 int (*insertNode)(clsName*, mNode *node, mNode *prev, mNode *next, int index);\ 295 int (*moveNode)(clsName*, mNode *curNode, int count, mNode *prevNode); \ 296 mNode* (*findNode)(mNode *self, DWORD info, int type, BOOL recursion, int startIndex);\ 297 mNode* (*findNodeEx)(mNode *self, DWORD info, int type, BOOL recursion, int startIndex, \ 298 int (*cb)(mNode *node, DWORD info)); \ 299 void (*removeAll)(clsName*); \ 300 void (*sendEvent)(clsName*, int eventId); \ 301 mNode* (*getNode)(clsName*, int index); \ 302 int (*indexOf)(clsName*); \ 303 mNode* (*getPrev)(clsName*); \ 304 mNode* (*getNext)(clsName*); \ 305 BOOL (*isEnabled)(clsName*); \ 306 BOOL (*isSelected)(clsName*); \ 307 BOOL (*hasChildren)(clsName*); \ 308 BOOL (*setText)(clsName*, const char* text); \ 309 BOOL (*setImage)(clsName*, const PBITMAP image); \ 310 const char* (*getText)(clsName*); \ 311 PBITMAP (*getImage)(clsName*); \ 312 void (*paint)(clsName*, HDC hdc, const RECT *rect, mObject *owner); \ 313 int (*msgHandler)(clsName*, int msg, WPARAM wParam, LPARAM lParam, mObject *owner); 420 typedef struct _mNodeEventData
548 typedef struct _mGroupNode mGroupNode;
549 typedef struct _mGroupNodeClass mGroupNodeClass;
551 typedef struct _NCS_GROUPNODE_DATA
557 #define mGroupNodeHeader(className) \ 558 mNodeHeader(className) \ 562 mGroupNodeHeader(mGroupNode)
565 #define mGroupNodeClassHeader(clsName, superCls) \ 566 mNodeClassHeader(clsName, superCls) 567 struct _mGroupNodeClass
569 mGroupNodeClassHeader(mGroupNode,
mNode)
580 MGNCS_EXPORT
mNode* ncsAddGroupNode(
mObject *parent,
const char* text,
581 PBITMAP image,
int height,
int style, DWORD addData,
int id);
584 #define NCS_CREATE_NODE(_retnode, _clstype, _parent, _text, _image, _height, _style, _add_data)\ 586 NCS_NODE_DATA data; \ 587 if (!_parent || (!INSTANCEOF(_parent, mNode) && !INSTANCEOF(_parent, mAbstractList))){ \ 590 data.text = (char*)_text; \ 591 data.image = _image; \ 592 data.height = _height; \ 593 data.style = _style; \ 594 data.addData = _add_data; \ 595 data.parent = _parent; \ 596 _retnode = NEWEX(_clstype, (DWORD)&data); \ 599 #define NCS_ADD_NODE(_retnode, _clstype, _parent, text, image, height, style, _add_data)\ 601 NCS_CREATE_NODE(_retnode, _clstype, _parent, text, image, height, style, _add_data);\ 603 if (_retnode && _parent && INSTANCEOF(_parent, mAbstractList)) {\ 604 mAbstractList *list = (mAbstractList*)_parent; \ 605 if (_c(list)->addNode) \ 606 ret = _c(list)->addNode(list, (mNode*)_retnode); \ 608 else if (_retnode && _parent && INSTANCEOF(_parent, mNode)) { \ 609 mNode *list = (mNode *)_parent; \ 610 if (_c(list)->addNode) \ 611 ret = _c(list)->addNode(list, (mNode*)_retnode); \
The virtual function table of mNodeClass.
The structure of mNode. It is the basic class of all nodes occur within specific controls. For example, a list can contain it.