Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages

LgiClass.h

00001 #ifndef _LGI_CLASS_H_
00002 #define _LGI_CLASS_H_
00003 
00004 #include "LgiInc.h"
00005 
00006 // Virtual input classes
00007 class GKey;
00008 class GMouse;
00009 
00010 // General GUI classes
00011 class GTarget;
00012 class GComponent;
00013 class GEvent;
00014 class GId;
00015 class GApp;
00016 class GWindow;
00017 class GWin32Class;
00018 class GView;
00019 class GLayout;
00020 class GFileType;
00021 class GFileSelect;
00022 class GFindReplace;
00023 class GSubMenu;
00024 class GMenuItem;
00025 class GMenu;
00026 class GToolBar;
00027 class GToolButton;
00028 class GSplitter;
00029 class GStatusPane;
00030 class GStatusBar;
00031 class GToolColour;
00032 class GScrollBar;
00033 class GImageList;
00034 class GDialog;
00035 
00036 // General objects
00037 class LgiClass GObject
00038 {
00039     char *_Name8;
00040     char16 *_Name16;
00041 
00042 public:
00043     GObject();  
00044     virtual ~GObject();
00045 
00046     virtual char *Name();
00047     virtual bool Name(char *n);
00048     virtual char16 *NameW();
00049     virtual bool NameW(char16 *n);
00050 
00051     virtual int Sizeof() { return 0; }
00052 };
00053 
00054 #define AssignFlag(f, bit, to) ( (to) ) ? f |= bit : f &= ~(bit)
00055 
00057 class LgiClass GUiEvent
00058 {
00059 public:
00060     int Flags;
00061 
00062     GUiEvent()
00063     {
00064         Flags = 0;
00065     }
00066 
00068     bool Down()     { return TestFlag(Flags, LGI_EF_DOWN); }
00070     bool Double()   { return TestFlag(Flags, LGI_EF_DOUBLE); }
00072     bool Ctrl()     { return TestFlag(Flags, LGI_EF_CTRL); }
00074     bool Alt()      { return TestFlag(Flags, LGI_EF_ALT); }
00076     bool Shift()    { return TestFlag(Flags, LGI_EF_SHIFT); }
00077 
00078     // Set
00079     void Down(bool i)   { AssignFlag(Flags, LGI_EF_DOWN, i); }
00080     void Double(bool i) { AssignFlag(Flags, LGI_EF_DOUBLE, i); }
00081     void Ctrl(bool i)   { AssignFlag(Flags, LGI_EF_CTRL, i); }
00082     void Alt(bool i)    { AssignFlag(Flags, LGI_EF_ALT, i); }
00083     void Shift(bool i)  { AssignFlag(Flags, LGI_EF_SHIFT, i); }
00084 };
00085 
00087 class LgiClass GKey : public GUiEvent
00088 {
00089 public:
00092     uchar c;
00094     char16 c16;
00096     int Data;
00098     bool IsChar;
00099 
00100     GKey()
00101     {
00102         c = 0;
00103         c16 = 0;
00104         Data = 0;
00105         IsChar = 0;
00106     }
00107 
00108     GKey(int vkey);
00109 
00111     char16 GetChar()
00112     {
00113         if (Shift() ^ TestFlag(Flags, LGI_EF_CAPS_LOCK))
00114         {
00115             return (c16 >= 'a' AND c16 <= 'z') ? c16 - 'a' + 'A' : c16;
00116         }
00117         else
00118         {
00119             return (c16 >= 'A' AND c16 <= 'Z') ? c16 - 'A' + 'a' : c16;
00120         }
00121     }
00122 };
00123 
00134 class LgiClass GMouse : public GUiEvent
00135 {
00136 public:
00138     GView *Target;
00140     bool ViewCoords;
00142     int x;
00144     int y;
00145 
00146     GMouse()
00147     {
00148         Target = 0;
00149         ViewCoords = true;
00150         x = y = 0;
00151     }
00152 
00154     bool Left()     { return TestFlag(Flags, LGI_EF_LEFT); }
00156     bool Middle()   { return TestFlag(Flags, LGI_EF_MIDDLE); }
00158     bool Right()    { return TestFlag(Flags, LGI_EF_RIGHT); }
00159 
00161     void Left(bool i)   { AssignFlag(Flags, LGI_EF_LEFT, i); }
00163     void Middle(bool i) { AssignFlag(Flags, LGI_EF_MIDDLE, i); }
00165     void Right(bool i)  { AssignFlag(Flags, LGI_EF_RIGHT, i); }
00166     
00168     bool ToScreen();
00170     bool ToView();
00171 };
00172 
00173 #endif

Generated on Wed Oct 26 14:46:50 2005 for Lgi by  doxygen 1.4.1