29 #include <glib/gi18n.h>
33 #include "search-boolean.h"
34 #include "search-core-utils.h"
45 static void gnc_search_boolean_finalize (GObject *obj);
55 (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_SEARCH_BOOLEAN, GNCSearchBooleanPrivate))
60 gnc_search_boolean_get_type (
void)
62 static GType type = 0;
71 (GClassInitFunc)gnc_search_boolean_class_init,
76 (GInstanceInitFunc)gnc_search_boolean_init,
79 type = g_type_register_static (GNC_TYPE_SEARCH_CORE_TYPE,
90 GObjectClass *object_class;
93 object_class = G_OBJECT_CLASS (klass);
94 parent_class = g_type_class_peek_parent (klass);
96 object_class->finalize = gnc_search_boolean_finalize;
99 gnc_search_core_type->validate = gncs_validate;
100 gnc_search_core_type->get_widget = gncs_get_widget;
101 gnc_search_core_type->get_predicate = gncs_get_predicate;
102 gnc_search_core_type->clone = gncs_clone;
110 o->how = QOF_COMPARE_EQUAL;
115 gnc_search_boolean_finalize (GObject *obj)
118 g_assert (IS_GNCSEARCH_BOOLEAN (o));
120 G_OBJECT_CLASS (parent_class)->finalize(obj);
131 gnc_search_boolean_new (
void)
140 g_return_if_fail (fi);
141 g_return_if_fail (IS_GNCSEARCH_BOOLEAN (fi));
149 g_return_if_fail (fi);
150 g_return_if_fail (IS_GNCSEARCH_BOOLEAN (fi));
158 gboolean valid = TRUE;
160 g_return_val_if_fail (fi, FALSE);
161 g_return_val_if_fail (IS_GNCSEARCH_BOOLEAN (fi), FALSE);
171 fe->value = gtk_toggle_button_get_active (button);
180 combo = GTK_COMBO_BOX(gnc_combo_box_new_search());
181 gnc_combo_box_search_add(combo, _(
"is"), QOF_COMPARE_EQUAL);
182 gnc_combo_box_search_add(combo, _(
"is not"), QOF_COMPARE_NEQ);
183 gnc_combo_box_search_changed(combo, &fi->how);
184 gnc_combo_box_search_set_active(combo, fi->how ? fi->how : QOF_COMPARE_EQUAL);
186 return GTK_WIDGET(combo);
192 GtkWidget *toggle, *menu, *box;
195 g_return_val_if_fail (fi, NULL);
196 g_return_val_if_fail (IS_GNCSEARCH_BOOLEAN (fi), NULL);
198 box = gtk_hbox_new (FALSE, 3);
201 menu = make_menu (fe);
202 gtk_box_pack_start (GTK_BOX (box), menu, FALSE, FALSE, 3);
205 toggle = gtk_toggle_button_new_with_label (_(
"set true"));
206 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), fi->value);
207 g_signal_connect (G_OBJECT (toggle),
"toggled", G_CALLBACK (toggle_changed), fe);
208 gtk_box_pack_start (GTK_BOX (box), toggle, FALSE, FALSE, 3);
218 g_return_val_if_fail (fi, NULL);
219 g_return_val_if_fail (IS_GNCSEARCH_BOOLEAN (fi), NULL);
221 return qof_query_boolean_predicate (fi->how, fi->value);
228 g_return_val_if_fail (fse, NULL);
229 g_return_val_if_fail (IS_GNCSEARCH_BOOLEAN (fse), NULL);
231 se = gnc_search_boolean_new ();
232 gnc_search_boolean_set_value (se, fse->value);
233 gnc_search_boolean_set_how (se, fse->how);