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

GVariant.h

Go to the documentation of this file.
00001 
00008 #ifndef __GVARIANT_H__
00009 #define __GVARIANT_H__
00010 
00011 #include "GDom.h"
00012 #undef Bool
00013 #include "GDateTime.h"
00014 #include "GContainers.h"
00015 
00017 enum GVariantType
00018 {
00019     // Main types
00020     
00022     GV_NULL,
00024     GV_INT32,
00026     GV_INT64,
00028     GV_BOOL,
00030     GV_DOUBLE,
00032     GV_STRING,
00034     GV_BINARY,
00036     GV_LIST,
00038     GV_DOM,
00040     GV_VOID_PTR,
00042     GV_DATETIME,
00043 
00044     // Types of pointer (stored as void*)
00045     
00047     GV_GVIEW,
00049     GV_GMOUSE,
00051     GV_GKEY
00052 };
00053 
00055 class LgiClass GVariant
00056 {
00057 public:
00059     GVariantType Type;
00061     short Id;
00063     bool *Dirty;
00064 
00066     union
00067     {
00069         int Int;
00071         bool Bool;
00073         int64 Int64;
00075         double Dbl;
00077         char *String;
00079         GDom *Dom;
00081         void *Ptr;
00083         struct _Binary
00084         {
00085             int Length;
00086             void *Data;
00087         } Binary;
00089         List<GVariant> *Lst;
00091         GDateTime *Date;
00092     } Value;
00093 
00095     GVariant();
00097     GVariant(int i);
00099     GVariant(int64 i);
00101     GVariant(double i);
00103     GVariant(char *s);
00105     GVariant(void *p);
00107     GVariant(GDom *p);
00109     GVariant(GDateTime *d);
00110     ~GVariant();
00111 
00113     GVariant &operator =(int i);
00115     GVariant &operator =(bool i);
00117     GVariant &operator =(int64 i);
00119     GVariant &operator =(double i);
00121     GVariant &operator =(char *s);
00123     GVariant &operator =(GVariant &i);
00125     GVariant &operator =(void *p);
00127     GVariant &operator =(GDom *p);
00129     GVariant &operator =(GDateTime *d);
00130 
00131     GVariant &operator =(class GView *p);
00132     GVariant &operator =(class GMouse *p);
00133     GVariant &operator =(class GKey *k);
00134 
00136     bool SetBinary(int Len, void *Data);
00138     bool SetList(List<GVariant> *Lst = 0);
00139 
00141     char *Str();
00143     void Empty();
00144 
00146     int GetItems();
00147     bool HasItem(GVariant *s);
00148     GVariant *ItemAt(int i);
00149     GVariant *First();
00150     GVariant *Next();
00151     GVariant *Prev();
00152     GVariant *Last();
00153     bool Insert(GVariant *s, int Where = -1);
00154     bool Delete(GVariant *s);
00155 
00157     bool IsInt();
00159     bool IsBool();
00161     bool IsDouble();
00163     bool IsString();
00165     bool IsBinary();
00167     bool IsNull();
00168     
00170     int32 CastInt32();
00172     char *CastString();
00173 };
00174 
00175 #endif

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