Main Page Class Hierarchy Compound List File List Compound Members File Members

# node.h

Go to the documentation of this file.

    00001
    00002
    00003 //
    00004 //      NODE.H                                          (c)     YoY'99                                          WEB: www.aestesis.org
    00005 //
    00008 #ifndef                                                 _NODE_H_
    00009 #define                                                 _NODE_H_
    00012 #include                                                <windows.h>
    00013 #include                                                "types.h"
    00016
    00017 //      If you use directly the variables in the class API, it's at your own risks. Prefer the methods...
    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         // private
    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 // notify
    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,        // send message to status bar
    00149                                                                 nyTOOLTIPS,                                                                     // send message to help bar or tooltips
    00150                                                                 nyALERT,                                                                        // idem (just different level)
    00151                                                                 nyWARNING,                                                                      // idem (just different level)
    00152                                                                 nyERROR,                                                                        // idem (just different level)
    00153                                                                 nyCONTEXT                                                                       // context menu
    00154 };
    00155
    00158 #endif                                                  //_NODE_H_