52 #ifndef _MGUI_NCS4TOUCH_ENOD_H_
53 #define _MGUI_NCS4TOUCH_ENOD_H_
59 typedef struct _mExNode mExNode;
60 typedef struct _mExNodeClass mExNodeClass;
62 #define mExNodeHeader(clsName) \
63 mObjectHeader(clsName) \
80 mExNodeHeader(mExNode)
83 #define mExNodeClassHeader(clsName, superCls) \
84 mObjectClassHeader(clsName, superCls) \
85 BOOL (*setProperty)(clsName*, int id, DWORD value); \
86 DWORD (*getProperty)(clsName*, int id); \
87 BOOL (*computeSize)(clsName*, HDC hdc, SIZE *size); \
88 BOOL (*canAsRoot)(clsName*); \
89 int (*addNode)(clsName*, mNode *node); \
90 int (*removeNode)(clsName*, mNode *node); \
91 int (*insertNode)(clsName*, mNode *node, mNode *prev, mNode *next, int index);\
92 int (*moveNode)(clsName*, mNode *curNode, int count, mNode *prevNode); \
93 mNode* (*findNode)(mNode *self, DWORD info, int type, BOOL recursion, int startIndex);\
94 mNode* (*findNodeEx)(mNode *self, DWORD info, int type, \
95 BOOL recursion, int startIndex, int (*cb)(mNode *node, DWORD info)); \
96 void (*removeAll)(clsName*); \
97 void (*sendEvent)(clsName*, int eventId); \
98 mNode* (*getNode)(clsName*, int index); \
99 int (*indexOf)(clsName*); \
100 mNode* (*getPrev)(clsName*); \
101 mNode* (*getNext)(clsName*); \
102 BOOL (*isEnabled)(clsName*); \
103 BOOL (*isSelected)(clsName*); \
104 BOOL (*hasChildren)(clsName*); \
105 BOOL (*setText)(clsName*, const char* text); \
106 BOOL (*setImage)(clsName*, const PBITMAP image); \
107 const char* (*getText)(clsName*); \
108 PBITMAP (*getImage)(clsName*); \
109 void (*paint)(clsName*, HDC hdc, const RECT *rect, mObject *owner); \
110 int (*msgHandler)(clsName*, int msg, WPARAM wParam, LPARAM lParam, mObject *owner);\
111 void (*setTitle) (clsName *, const char *); \
112 void (*setSubTitle) (clsName *, const char *); \
113 void (*setDetail) (clsName *, const char *);
118 mExNodeClassHeader(mExNode, mObject)
121 #define NCSS_ENOD_NORMAL (0x00)
122 #define NCSS_ENOD_BOOLEAN (0x01)
123 #define NCSS_ENOD_DETAIL (0x02)
124 #define NCSS_ENOD_CHECKABLE (0x04)
125 #define NCSS_ENOD_DELETABLE (0x08)
126 #define NCSS_ENOD_NODETAIL (0x10)
127 #define NCSS_ENOD_NOSUBTITLE (0x20)
128 #define NCSS_ENOD_NOICON (0x40)
129 #define NCSS_ENOD_SHIFT (7)
142 NCSN_ENOD_CHANGED = 0,
146 MTOUCH_EXPORT
extern mExNodeClass g_stmExNodeCls;