00001
00002
00003
00004
00005
00008
00009 #define _NODE_H_
00012 #include <windows.h>
00013 #include "types.h"
00016
00017
00018
00021
00022 ADLL extern char *Alasterror;
00023
00026
00027 class Aproperties
00028 {
00029 public:
00030 qword guid;
00031 int offset;
00032 char *name;
00033 char *design;
00034 };
00035
00038
00039 class ACI
00040 {
00041 public:
00042 class ACI *inherited;
00043 char *name;
00044 qword guid;
00045 int nproperties;
00046 class Aproperties *properties;
00047 class ACI *next;
00048
00049 ADLL ACI(char *name, qword guid, ACI *inherited, int np, class Aproperties *p);
00050 ADLL virtual ~ACI();
00051 };
00052
00055
00056 ADLL extern ACI *aciList;
00057
00060
00061 class Anode
00062 {
00063 public:
00064
00065 enum
00066 {
00067 stateTOP = (1<<00),
00068 stateENABLE = (1<<01),
00069 stateCOLAPSED = (1<<02),
00070 stateLAST = (1<<03)
00071 };
00072
00073
00074 ADLL static ACI CI;
00075 virtual ACI *getCI () { return &CI; }
00076
00077 char *name;
00078
00079 Anode *father;
00080 Anode *next;
00081 Anode *prev;
00082 Anode *fchild;
00083 Anode *lchild;
00084
00085 dword state;
00086
00087 ADLL Anode (char *name=NULL, Anode *father=NULL);
00088 ADLL virtual ~Anode ();
00089
00090 virtual bool notify (Anode *o, int event, dword p=0);
00091 ADLL void asyncNotify (Anode *o, int event, dword p=0);
00092
00093 ADLL bool is (char *name);
00094 ADLL bool isCI (ACI *CI);
00095 ADLL bool isGUID (qword guid);
00096
00097 ADLL int count ();
00098
00099
00100
00101 ADLL virtual void add (Anode *o);
00102 ADLL virtual void del (Anode *o);
00103
00104 };
00105
00108
00109 __inline bool Anode::notify(Anode *o, int event, dword p)
00110 {
00111 if(father)
00112 return ((event&0xf000)==0xa000)?father->notify(o, event, p):FALSE;
00113 return FALSE;
00114 }
00115
00118
00119
00120 enum
00121 {
00122 nyNOTHING =0x0000,
00123 nyNOTIFY,
00124
00125 nyCLICK =0x0010,
00126 nyDBLCKICK,
00127 nyCHECK,
00128 nyCLOSE,
00129 nyCHANGE,
00130 nyOK,
00131 nyCANCEL,
00132 nyRESET,
00133 nySELECT,
00134 nyPRESS,
00135 nyRELEASE,
00136
00137 nyUSER1 =0x1000,
00138 nyUSER2 =0x2000,
00139 nyUSER3 =0x3000,
00140 nyUSER4 =0x4000,
00141 nyUSER5 =0x5000,
00142 nyUSER6 =0x6000,
00143 nyUSER7 =0x7000,
00144 nyUSER8 =0x8000,
00145 nyUSER9 =0x9000,
00146
00147 nyTHRUMESSAGE =0xA000,
00148 nySTATUS =0xA500,
00149 nyTOOLTIPS,
00150 nyALERT,
00151 nyWARNING,
00152 nyERROR,
00153 nyCONTEXT
00154 };
00155
00158 #endif //_NODE_H_