29 #include <glib/gi18n.h>
34 #include "search-reconciled.h"
35 #include "search-core-utils.h"
46 static void gnc_search_reconciled_finalize (GObject *obj);
56 (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_SEARCH_RECONCILED, GNCSearchReconciledPrivate))
61 gnc_search_reconciled_get_type (
void)
63 static GType type = 0;
72 (GClassInitFunc)gnc_search_reconciled_class_init,
77 (GInstanceInitFunc)gnc_search_reconciled_init,
80 type = g_type_register_static (GNC_TYPE_SEARCH_CORE_TYPE,
81 "GNCSearchReconciled",
91 GObjectClass *object_class;
94 object_class = G_OBJECT_CLASS (klass);
95 parent_class = g_type_class_peek_parent (klass);
97 object_class->finalize = gnc_search_reconciled_finalize;
100 gnc_search_core_type->validate = gncs_validate;
101 gnc_search_core_type->get_widget = gncs_get_widget;
102 gnc_search_core_type->get_predicate = gncs_get_predicate;
103 gnc_search_core_type->clone = gncs_clone;
111 o->how = QOF_CHAR_MATCH_ANY;;
112 o->value = CLEARED_NO;
116 gnc_search_reconciled_finalize (GObject *obj)
119 g_assert (IS_GNCSEARCH_RECONCILED (o));
121 G_OBJECT_CLASS (parent_class)->finalize(obj);
132 gnc_search_reconciled_new (
void)
141 g_return_if_fail (fi);
142 g_return_if_fail (IS_GNCSEARCH_RECONCILED (fi));
150 g_return_if_fail (fi);
151 g_return_if_fail (IS_GNCSEARCH_RECONCILED (fi));
159 gboolean valid = TRUE;
161 g_return_val_if_fail (fi, FALSE);
162 g_return_val_if_fail (IS_GNCSEARCH_RECONCILED (fi), FALSE);
172 gboolean is_on = gtk_toggle_button_get_active (button);
173 cleared_match_t value =
174 (cleared_match_t) g_object_get_data (G_OBJECT (button),
"button-value");
188 combo = GTK_COMBO_BOX(gnc_combo_box_new_search());
189 gnc_combo_box_search_add(combo, _(
"is"), QOF_CHAR_MATCH_ANY);
190 gnc_combo_box_search_add(combo, _(
"is not"), QOF_CHAR_MATCH_NONE);
191 gnc_combo_box_search_changed(combo, &fi->how);
192 gnc_combo_box_search_set_active(combo, fi->how ? fi->how : QOF_CHAR_MATCH_ANY);
194 return GTK_WIDGET(combo);
202 toggle = gtk_toggle_button_new_with_label (label);
203 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), (fi->value & option));
204 g_object_set_data (G_OBJECT (toggle),
"button-value", (gpointer) option);
205 g_signal_connect (G_OBJECT (toggle),
"toggled", G_CALLBACK (toggle_changed), fi);
213 GtkWidget *toggle, *menu, *box;
216 g_return_val_if_fail (fi, NULL);
217 g_return_val_if_fail (IS_GNCSEARCH_RECONCILED (fi), NULL);
219 box = gtk_hbox_new (FALSE, 3);
222 menu = make_menu (fe);
223 gtk_box_pack_start (GTK_BOX (box), menu, FALSE, FALSE, 3);
226 toggle = make_toggle (fi, _(
"Not Cleared"), CLEARED_NO);
227 gtk_box_pack_start (GTK_BOX (box), toggle, FALSE, FALSE, 3);
229 toggle = make_toggle (fi, _(
"Cleared"), CLEARED_CLEARED);
230 gtk_box_pack_start (GTK_BOX (box), toggle, FALSE, FALSE, 3);
232 toggle = make_toggle (fi, _(
"Reconciled"), CLEARED_RECONCILED);
233 gtk_box_pack_start (GTK_BOX (box), toggle, FALSE, FALSE, 3);
235 toggle = make_toggle (fi, _(
"Frozen"), CLEARED_FROZEN);
236 gtk_box_pack_start (GTK_BOX (box), toggle, FALSE, FALSE, 3);
238 toggle = make_toggle (fi, _(
"Voided"), CLEARED_VOIDED);
239 gtk_box_pack_start (GTK_BOX (box), toggle, FALSE, FALSE, 3);
249 cleared_match_t value;
252 g_return_val_if_fail (fi, NULL);
253 g_return_val_if_fail (IS_GNCSEARCH_RECONCILED (fi), NULL);
260 if (value & CLEARED_CLEARED)
262 if (value & CLEARED_RECONCILED)
264 if (value & CLEARED_FROZEN)
266 if (value & CLEARED_NO)
268 if (value & CLEARED_VOIDED)
272 return qof_query_char_predicate (fi->how, chars);
279 g_return_val_if_fail (fse, NULL);
280 g_return_val_if_fail (IS_GNCSEARCH_RECONCILED (fse), NULL);
282 se = gnc_search_reconciled_new ();
283 gnc_search_reconciled_set_value (se, fse->value);
284 gnc_search_reconciled_set_how (se, fse->how);
API for Transactions and Splits (journal entries)