The following struct defines how widget or database fields (read as input) are mapped to database or widget fields
Data Structures | |
| struct | DuiFieldMap_s |
Typedefs | |
| typedef struct DuiFieldMap_s | DuiFieldMap |
Functions | |
| DuiFieldMap * | dui_field_map_new (void) |
| void | dui_field_map_destroy (DuiFieldMap *fm) |
| void | dui_field_map_transfer_data (DuiFieldMap *fm) |
| const char * | dui_field_map_get_value (DuiFieldMap *fm) |
| void | dui_field_map_resolve (DuiFieldMap *fm) |
| const char* dui_field_map_get_value | ( | DuiFieldMap * | fm | ) |
Get a value, filter it
Definition at line 98 of file duifieldmap.c.
00099 { 00100 DuiField *src; 00101 const gchar * fieldval = NULL; 00102 00103 if (!fm) return NULL; 00104 src = &fm->source; 00105 00106 if (src->get_field_value) 00107 { 00108 fieldval = src->get_field_value (src); 00109 } 00110 00111 /* Note that the empty string is a valid value for "clearing" 00112 * fields. i.e. its used to reset fields to empty. */ 00113 PINFO ("src=%s:\"%s\" val=\"%s\"", src->type, src->fieldname, fieldval); 00114 00115 if (fm->filter) fieldval = dui_filter_apply (fm->filter, fieldval); 00116 return fieldval; 00117 }
| void dui_field_map_resolve | ( | DuiFieldMap * | fm | ) |
Get handles to the actual filters
Definition at line 123 of file duifieldmap.c.
00124 { 00125 if (!fm) return; 00126 00127 if (fm->filtername) 00128 { 00129 fm->filter = dui_filter_find_by_name (fm->filtername); 00130 } 00131 else 00132 { 00133 fm->filter = NULL; 00134 } 00135 }
| void dui_field_map_transfer_data | ( | DuiFieldMap * | fm | ) |
Transfer from source to target
Definition at line 68 of file duifieldmap.c.
00069 { 00070 DuiField *src, *tgt; 00071 const gchar * fieldval = NULL; 00072 00073 if (!fm) return; 00074 00075 src = &fm->source; 00076 tgt = &fm->target; 00077 00078 if (NULL == tgt->set_field_value) return; 00079 if (src->get_field_value) 00080 { 00081 fieldval = src->get_field_value (src); 00082 } 00083 00084 /* Note that the empty string is a valid value for "clearing" 00085 * fields. i.e. its used to reset fields to empty. */ 00086 if (fm->filter) fieldval = dui_filter_apply (fm->filter, fieldval); 00087 if (!fieldval) fieldval = ""; 00088 PINFO ("src=%s::\"%s\" val=\"%s\" tgt=%s::\"%s\"", 00089 src->type, src->fieldname, fieldval, 00090 tgt->type, tgt->fieldname); 00091 tgt->set_field_value (tgt, fieldval); 00092 }
1.5.5