00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef _vdkxclist_h
00030 #define _vdkxclist_h
00031 #include <vdkxdb/vdkxctrl.h>
00032 #include <vdk/vdkclist.h>
00033 #include <vdk/value_sem_list.h>
00034 #include <vdk/vdkarray.h>
00035
00036 class VDKXCustomList;
00037
00038 class ClistField
00039 {
00040 public:
00041 VDKString name;
00042 xbShort id,type,len;
00043 ClistField():name(""),id(-1),type(-1),len(0) {}
00044 ClistField(char* name, xbShort id, xbShort type, xbShort len):
00045 name(name),id(id),type(type),len(len) {}
00046 ~ClistField() {}
00047 bool operator==(ClistField& f)
00048 { return id == f.id; }
00049 bool operator<(ClistField& f)
00050 { return id < f.id; }
00051 };
00052
00053
00054
00055
00056 typedef VDKArray<ClistField> FieldArray;
00057
00058
00066 class VDKXCustomList:
00067 public VDKCustomList, public VDKXControl
00068 {
00069 protected:
00070
00071 FieldArray fieldArray;
00072 void PrepareTupleTh(char** tuple, int z);
00073 public:
00074
00086 VDKXCustomList(VDKForm* owner,
00087 int columns = 1,
00088 char** titles = NULL,
00089 GtkSelectionMode mode = GTK_SELECTION_SINGLE);
00091 virtual ~VDKXCustomList() {}
00095 virtual xbShort Read();
00105 virtual bool AssignTableFieldToColumn(
00106 int column,
00107 VDKXTable* table,
00108 char* fname);
00109 bool AssignTableFieldToColumn(int column,
00110 VDKXDatabase* xdb,
00111 char* tablename,
00112 char* fieldname);
00117 bool AssignTable(VDKXTable* t);
00118
00119 };
00120 #endif