mGNCS API Reference
v1.5.0
A new control set and a new framework for MiniGUI apps
|
Go to the documentation of this file.
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);
237 MGNCS_EXPORT
mNode* ncsCreateNode(
mObject *parent,
const char* text,
238 PBITMAP image,
int height,
int style, DWORD addData);
259 MGNCS_EXPORT
mNode* ncsAddNode(
mObject *parent,
const char* text,
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 structure of mNode. It is the basic class of all nodes occur within specific controls....
The virtual function table of mNodeClass.