43 #include "basiccell.h"
48 static void gnc_recn_cell_set_value (
BasicCell *_cell,
const char *value);
52 gnc_recn_cell_get_string (
RecnCell *cell,
char flag)
54 static char str[2] = { 0, 0 };
56 if (cell->get_string != NULL)
57 return (cell->get_string)(flag);
73 if (cell->confirm_cb &&
74 ! (cell->confirm_cb (cell->flag, cell->confirm_data)))
78 this_flag = strchr (cell->flag_order, cell->flag);
80 if (this_flag == NULL || *this_flag ==
'\0')
83 cell->flag = cell->default_flag;
92 if (*this_flag !=
'\0')
93 cell->flag = *this_flag;
95 cell->flag = *(cell->flag_order);
99 gnc_recn_cell_set_flag (cell, cell->flag);
107 gnc_basic_cell_init (&cell->cell);
109 gnc_recn_cell_set_flag (cell,
'\0');
110 cell->confirm_cb = NULL;
111 cell->get_string = NULL;
112 cell->valid_flags =
"";
113 cell->flag_order =
"";
115 cell->cell.enter_cell = gnc_recn_cell_enter;
116 cell->cell.set_value = gnc_recn_cell_set_value;
120 gnc_recn_cell_new (
void)
126 gnc_recn_cell_init (cell);
133 gnc_recn_cell_set_value (
BasicCell *_cell,
const char *value)
138 if (!value || *value ==
'\0')
140 cell->flag = cell->default_flag;
141 gnc_basic_cell_set_value_internal (_cell,
"");
145 flag = cell->default_flag;
146 if (strchr (cell->valid_flags, *value) != NULL)
149 gnc_recn_cell_set_flag (cell, flag);
153 gnc_recn_cell_set_flag (
RecnCell *cell,
char flag)
157 g_return_if_fail (cell != NULL);
160 string = gnc_recn_cell_get_string (cell, flag);
162 gnc_basic_cell_set_value_internal (&cell->cell,
string);
166 gnc_recn_cell_get_flag (
RecnCell *cell)
168 g_return_val_if_fail (cell != NULL,
'\0');
174 gnc_recn_cell_set_string_getter (
RecnCell *cell,
175 RecnCellStringGetter get_string)
177 g_return_if_fail (cell != NULL);
178 cell->get_string = get_string;
182 gnc_recn_cell_set_confirm_cb (
RecnCell *cell, RecnCellConfirm confirm_cb,
185 g_return_if_fail (cell != NULL);
187 cell->confirm_cb = confirm_cb;
188 cell->confirm_data = data;
192 gnc_recn_cell_set_valid_flags (
RecnCell *cell,
const char *flags,
195 g_return_if_fail (cell != NULL);
196 g_return_if_fail (flags != NULL);
198 cell->valid_flags = (
char *)flags;
199 cell->default_flag = default_flag;
203 gnc_recn_cell_set_flag_order (
RecnCell *cell,
const char *flags)
205 g_return_if_fail (cell != NULL);
206 g_return_if_fail (flags != NULL);
208 cell->flag_order = (
char *)flags;
All type declarations for the whole Gnucash engine.