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

object.h

Go to the documentation of this file.
00001 
00002 
00003 //
00004 //      OBJECT.H                                        (c)     YoY'99                                          WEB: www.aestesis.org
00005 //
00008 #ifndef                                                 _OBJECT_H_
00009 #define                                                 _OBJECT_H_
00012 #include                                                <windows.h>
00013 #include                                                "node.h"
00014 #include                                                "rectangle.h"
00015 #include                                                "bitmap.h"
00018 
00019 //      If you use directly the variables in the class API, it's at your own risks. Prefer the methods...   
00020 
00023 
00024 // mouse events
00025 
00026 enum
00027 {
00028                                                                 mouseNORMAL=0,
00029                                                                 mouseLDOWN,
00030                                                                 mouseLUP,
00031                                                                 mouseLDBLCLK,
00032                                                                 mouseMDOWN,
00033                                                                 mouseMUP,
00034                                                                 mouseMDBLCLK,
00035                                                                 mouseRDOWN,
00036                                                                 mouseRUP,
00037                                                                 mouseRDBLCLK,
00038                                                                 mouseLOSTCAPTURE,
00039                                                                 mouseWHEEL,
00040                                                                 mouseSTAY,
00041                                                                 mouseENTER,
00042                                                                 mouseLEAVE
00043 };
00044 
00045 // mouse states
00046 
00047 #define                                                 mouseCTRL                                               (1<<31)
00048 #define                                                 mouseSHIFT                                              (1<<30)
00049 #define                                                 mouseALT                                                (1<<29)
00050 #define                                                 mouseL                                                  (1<<28)
00051 #define                                                 mouseM                                                  (1<<27)
00052 #define                                                 mouseR                                                  (1<<26)
00053 #define                                                 mousePULSE                                              (1<<01)         // alib internal message
00054 #define                                                 mouseCAPTURE                                    (1<<00)         // alib internal message
00055 
00056 // keyboard events
00057 
00058 enum
00059 {
00060                                                                 keyboardNORMAL=0,
00061                                                                 keyboardDOWN,
00062                                                                 keyboardUP,
00063                                                                 keyboardCHAR,
00064                                                                 keyboardGETFOCUS,
00065                                                                 keyboardLOSTFOCUS
00066 };
00067 
00068 // keyboard states
00069 
00070 #define                                                 keyboardCTRL                                    (1<<31)
00071 #define                                                 keyboardSHIFT                                   (1<<30)
00072 #define                                                 keyboardALT                                             (1<<29)
00073 
00074 #define                                                 keyboardLCTRL                                   (1<<28)
00075 #define                                                 keyboardLSHIFT                                  (1<<27)
00076 #define                                                 keyboardLALT                                    (1<<26)
00077 #define                                                 keyboardRCTRL                                   (1<<25)
00078 #define                                                 keyboardRSHIFT                                  (1<<24)
00079 #define                                                 keyboardRALT                                    (1<<23)
00080 
00081 // keyboard states (getkeyboardstate)
00082 
00083 #define                                                 keyboardCURSORLEFT                              (1<<19)
00084 #define                                                 keyboardCURSORRIGHT                             (1<<18)
00085 #define                                                 keyboardHOME                                    (1<<17)
00086 #define                                                 keyboardEND                                             (1<<16)
00087 #define                                                 keyboardINSERT                                  (1<<15)
00088 #define                                                 keyboardDELETE                                  (1<<14)
00089 #define                                                 keyboardCLEAR                                   (1<<13)
00090 #define                                                 keyboardBACKSPACE                               (1<<12)
00091 #define                                                 keyboardENTER                                   (1<<11)
00092 #define                                                 keyboardCURSORUP                                (1<<10)
00093 #define                                                 keyboardCURSORDOWN                              (1<<9)
00094 #define                                                 keyboardPAGEUP                                  (1<<8)
00095 #define                                                 keyboardPAGEDOWN                                (1<<7)
00096 #define                                                 keyboardTAB                                             (1<<6)
00097 #define                                                 keyboardESCAPE                                  (1<<5)
00098 
00099 // zorder actions
00100 
00101 enum
00102 {
00103                                                                 zorderFRONT=0,
00104                                                                 zorderBACK,
00105                                                                 zorderTOP
00106 };
00107 
00110 
00111 class Aobject : public Anode
00112 {
00113 public:
00114 
00115         enum
00116         {
00117                                                                 stateVISIBLE                                    = Anode::stateLAST,
00118                                                                 stateFOCUS                                              = stateVISIBLE<<1,
00119                                                                 stateNOCONTEXT                                  = stateFOCUS<<1,
00120                                                                 stateSIZEABLE                                   = stateNOCONTEXT<<1,
00121                                                                 stateLAST                                               = stateSIZEABLE<<1
00122         };
00123 
00124         ADLL static ACI                         CI;
00125         virtual ACI                                     *getCI                                                  ()                                              { return &CI; }
00126 
00127         Arectangle                                      pos;
00128 
00129         ADLL                                            Aobject                                                 (char *name, class Aobject *father, int x, int y, int w, int h);
00130         ADLL virtual                            ~Aobject                                                ();
00131 
00132                                                                 // action
00133 
00134         ADLL void                                       destroy                                                 ();     // asynchronous delete
00135 
00136         ADLL virtual bool                       show                                                    (bool visible);
00137         ADLL virtual bool                       zorder                                                  (int action);
00138 
00139         ADLL virtual bool                       move                                                    (int x, int y);
00140         virtual bool                            size                                                    (int w, int h)                                                          { pos.w=w; pos.h=h; return TRUE; }
00141         ADLL virtual bool                       mouseCapture                                    (bool b, Aobject *o=NULL);
00142         ADLL virtual void                       mousePosition                                   (int *x, int *y);
00143         ADLL virtual bool                       focus                                                   (Aobject *o=NULL);
00144         ADLL virtual bool                       timer                                                   (int time=0);
00145         virtual bool                            setTooltips                                             (char *s)                                                                       { if(tooltips) free(tooltips); return (tooltips=strdup(s))?TRUE:FALSE; }
00146 
00147         ADLL class Awindow *            getWindow                                               ();
00148         ADLL bool                                       getPosition                                             (Aobject *o, int *x, int *y);
00149         ADLL class Aobject *            getObject                                               (int x, int y);
00150 
00151         ADLL int                                        getKeyboardState                                ();
00152 
00153                                                                 // notify
00154         
00155         ADLL virtual void                       update                                                  (Abitmap *b);
00156         virtual void                            paint                                                   (Abitmap *b)                                                            { }
00157         ADLL virtual void                       repaint                                                 (Arectangle r, bool now=FALSE);
00158         ADLL virtual void                       repaint                                                 (bool now=FALSE);
00159 
00160         virtual bool                            mouse                                                   (int x, int y, int state, int event)            { return FALSE; }
00161         virtual bool                            keyboard                                                (int event, int ascii, int scan, int state)     { return FALSE; }
00162 
00163         virtual void                            pulse                                                   ()                                                                                      { }
00164 
00165 
00166         class Aitem                                     *context;
00167 
00168                                                                 // private
00169 
00170         virtual bool                            NCkeyboard                                              (int event, int ascii, int scan, int state)     { if(keyboard(event, ascii, scan, state)) return true; if(father) return ((Aobject *)father)->NCkeyboard(event, ascii, scan, state); return false; }
00171         ADLL virtual bool                       NCmouse                                                 (int x, int y, int state, int event);
00172         bool                                            NCzorder                                                (Anode *o, int action);
00173 
00174         char                                            *tooltips;
00175 };
00176 
00179 
00180 //#include                                              "layer.h"
00181 
00183 
00186 #endif                                                  //_OBJECT_H_

Generated on Tue Nov 20 10:21:25 2001 for elektronika plugz SDK by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001