42 #ifndef MINICTRL_DATA_BINDING_H 43 #define MINICTRL_DATA_BINDING_H 49 typedef struct _mBindPropClass mBindPropClass;
52 typedef struct _mBindProp mBindProp;
55 #define mBindPropClassHeader(clss, superCls) \ 56 mObjectClassHeader(clss, superCls) \ 57 DWORD (* get)(clss *); \ 58 BOOL (* set)(clss *, DWORD newdata); 60 struct _mBindPropClass{
61 mBindPropClassHeader(mBindProp,
mObject)
64 MGNCS_EXPORT
extern mBindPropClass g_stmBindPropCls;
66 typedef struct _mBindPropListNode{
68 struct _mBindPropListNode * next;
71 #define NCS_PROP_FLAG_READ 0x01 72 #define NCS_PROP_FLAG_WRITE 0x02 73 #define mBindPropHeader(clss) \ 79 mBindPropListNode * listens; \ 82 #define MAKE_BINDPROP_INFO(br, bw, type) \ 83 (((br)?NCS_PROP_FLAG_READ:0)|((bw)?NCS_PROP_FLAG_WRITE:0)|((type)<<16)) 86 mBindPropHeader(mBindProp)
89 MGNCS_EXPORT
void ncsBindPropRasieChanged(mBindProp *bprop);
91 MGNCS_EXPORT
int ncsBindPropAddRef(mBindProp *bprop);
92 MGNCS_EXPORT
int ncsBindPropRelease(mBindProp *bprop);
93 MGNCS_EXPORT
void ncsBindPropAutoRelfect(mBindProp *bprop);
95 MGNCS_EXPORT BOOL ncsConnectBindProps(mBindProp * psource, mBindProp* plistener,
int type);
103 MGNCS_EXPORT BOOL ncsAutoReflectObjectBindProps(
mObject * obj);
104 MGNCS_EXPORT BOOL ncsRemoveObjectBindProps(
mObject *obj);
106 MGNCS_EXPORT BOOL ncsAddObjectBindProps(
mObject *obj, mBindProp *bprop);
108 typedef BOOL (*NCS_TEST_BINDPROP)(mBindProp*,
void *param);
109 typedef mBindProp* (*NCS_NEW_BINDPROP)(
void* param);
111 MGNCS_EXPORT mBindProp* ncsRegisterBindProp(
mObject* obj,
112 NCS_TEST_BINDPROP test_exist,
113 NCS_NEW_BINDPROP new_prop,
116 typedef BOOL (*NCS_RAISE_TEST)(mBindProp* prop, DWORD param);
117 MGNCS_EXPORT
void ncsRaiseObjectBindProps(
mObject *obj, NCS_RAISE_TEST raise_test, DWORD param);
120 MGNCS_EXPORT
void *ncsNewBindPropsObjGroup(
void);
121 MGNCS_EXPORT
void ncsDeleteBindPropsGroup(
void*);
122 MGNCS_EXPORT
void ncsAutoReflexBindPropsGroup(
void* group);
123 MGNCS_EXPORT
void ncsAddBindPropsObj(
void *group,
mObject *obj);
128 typedef struct _mCompBindPropClass mCompBindPropClass;
129 typedef struct _mCompBindProp mCompBindProp;
131 #define mCompBindPropClassHeader(clss, superCls) \ 132 mBindPropClassHeader(clss, superCls) 134 struct _mCompBindPropClass{
135 mCompBindPropClassHeader(mCompBindProp, mBindProp)
138 MGNCS_EXPORT
extern mCompBindPropClass g_stmCompBindPropCls;
140 #define mCompBindPropHeader(clss) \ 141 mBindPropHeader(clss) \ 146 struct _mCompBindProp{
147 mCompBindPropHeader(mCompBindProp)
151 MGNCS_EXPORT
void ncsRaiseComponentBindProps(
mComponent *comp,
int event_id);
153 MGNCS_EXPORT mBindProp * ncsRegisterComponentBindProp(
mComponent* comp,
int event_id,
int prop_id,
int data_type, DWORD flags);
154 #define NCS_CMPT_PROP(comp, event_id, prop_id, data_type, flags) \ 155 ncsRegisterComponentBindProp((mComponent*)(comp), (event_id), (prop_id), (data_type), flags) 161 typedef struct _mVariableBindPropClass mVariableBindPropClass;
162 typedef struct _mVariableBindProp mVariableBindProp;
164 #define mVariableBindPropClassHeader(clss, super) \ 165 mBindPropClassHeader(clss, super) 167 struct _mVariableBindPropClass{
168 mVariableBindPropClassHeader(mVariableBindProp, mBindProp)
171 MGNCS_EXPORT
extern mVariableBindPropClass g_stmVariableBindPropCls;
173 #define mVariableBindPropHeader(clss) \ 174 mBindPropHeader(clss) \ 177 struct _mVariableBindProp{
178 mVariableBindPropHeader(mVariableBindProp)
181 #define _SET_VAR(type, left, right) \ 182 *((type*)(left)) = ((type)(right)) 185 MGNCS_EXPORT mBindProp * ncsRegisterVariableBindProp(
void *pvalue,
int data_type, DWORD flags);
186 #define VAR_PROP(value, data_type, flags) \ 187 ncsRegisterVariableBindProp((void*)(&(value)), (data_type), (flags)) 189 #define INT_PROP(value, flags) VAR_PROP(value, NCS_BT_INT, flags) 190 #define STRPTR_PROP(value, flags) VAR_PROP(value, NCS_BT_STR_PTR, flags) 192 #define ncsRaiseVariableBindProp(pvalue) \ 193 ncsRaiseObjectBindProps((mObject*)(pvalue),NULL, 0) 196 MGNCS_EXPORT BOOL ncsInitDataBinding(
void);
the component member define