00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00036 #ifndef DUI_FIELD_H
00037 #define DUI_FIELD_H
00038
00039 #include "config.h"
00040 #include <string.h>
00041
00042 typedef struct DuiField_s DuiField;
00043 typedef const char * DuiFieldType;
00044
00045 #define DUI_FIELD_NONE "DUI_FIELD_NONE"
00046 #define DUI_FIELD_CONST "DUI_FIELD_CONST"
00047 #define DUI_FIELD_WIDGET "DUI_FIELD_WIDGET"
00048 #define DUI_FIELD_WID_DATA "DUI_FIELD_WID_DATA"
00049 #define DUI_FIELD_WID_ARG "DUI_FIELD_WID_ARG"
00050 #define DUI_FIELD_WID_WHERE "DUI_FIELD_WID_WHERE"
00051 #define DUI_FIELD_HASH_KEY "DUI_FIELD_HASH_KEY"
00052 #define DUI_FIELD_SQL "DUI_FIELD_SQL"
00053 #define DUI_FIELD_WHERE "DUI_FIELD_WHERE"
00054 #define DUI_FIELD_GOBJ "DUI_FIELD_GOBJ"
00055 #define DUI_FIELD_QOF "DUI_FIELD_QOF"
00056 #define DUI_FIELD_QOF_MATCH "DUI_FIELD_QOF_MATCH"
00058 #define DUI_FIELD_IS_TYPE(fld,typ) (0==strcmp((fld)->type,typ))
00059
00060 struct DuiField_s
00061 {
00062 DuiFieldType type;
00063 char * fieldname;
00064
00066 const char * (*get_field_value) (DuiField *);
00067
00069 void (*set_field_value) (DuiField *, const char *);
00070
00072 void (*clear_field) (DuiField *);
00073
00075 void (*iter_pre) (DuiField *, gboolean do_clear);
00076 gboolean (*iter_next) (DuiField *);
00077 void (*iter_column) (DuiField *, DuiField *);
00078 void (*iter_post) (DuiField *);
00079 union
00080 {
00082 char * value;
00083
00085 gpointer priv[8];
00086 } u;
00087 };
00088
00090 const char * dui_field_get_fieldname (DuiField *fs);
00091
00093 void dui_field_clear (DuiField *s);
00094
00096 void dui_field_set_const (DuiField *fs, const char *value);
00097
00113 void dui_field_iter_pre (DuiField *matcher, gboolean do_clear);
00114
00121 gboolean dui_field_iter_next (DuiField *matcher);
00122
00127 void dui_field_iter_column (DuiField *target_column, DuiField *matcher);
00128
00130 void dui_field_iter_post (DuiField *matcher);
00131
00132 gpointer get_gobj_field (DuiField *f);
00133
00138 #endif