29 #include <glib/gi18n.h>
32 #include "gnc-date-edit.h"
35 #include "search-date.h"
36 #include "search-core-utils.h"
49 static void gnc_search_date_finalize (GObject *obj);
59 (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_SEARCH_DATE, GNCSearchDatePrivate))
64 gnc_search_date_get_type (
void)
66 static GType type = 0;
75 (GClassInitFunc)gnc_search_date_class_init,
80 (GInstanceInitFunc)gnc_search_date_init,
83 type = g_type_register_static (GNC_TYPE_SEARCH_CORE_TYPE,
94 GObjectClass *object_class;
97 object_class = G_OBJECT_CLASS (klass);
98 parent_class = g_type_class_peek_parent (klass);
100 object_class->finalize = gnc_search_date_finalize;
103 gnc_search_core_type->editable_enters = editable_enters;
104 gnc_search_core_type->grab_focus = grab_focus;
105 gnc_search_core_type->validate = gncs_validate;
106 gnc_search_core_type->get_widget = gncs_get_widget;
107 gnc_search_core_type->get_predicate = gncs_get_predicate;
108 gnc_search_core_type->clone = gncs_clone;
117 o->how = QOF_COMPARE_LT;
121 gnc_search_date_finalize (GObject *obj)
126 g_assert (IS_GNCSEARCH_DATE (obj));
128 o = GNCSEARCH_DATE(obj);
131 gtk_widget_destroy (priv->entry);
133 G_OBJECT_CLASS (parent_class)->finalize(obj);
144 gnc_search_date_new (
void)
153 g_return_if_fail (fi);
154 g_return_if_fail (IS_GNCSEARCH_DATE (fi));
162 g_return_if_fail (fi);
163 g_return_if_fail (IS_GNCSEARCH_DATE (fi));
171 gboolean valid = TRUE;
173 g_return_val_if_fail (fi, FALSE);
174 g_return_val_if_fail (IS_GNCSEARCH_DATE (fi), FALSE);
184 fe->ts = gnc_date_edit_get_date_ts (date_edit);
193 combo = GTK_COMBO_BOX(gnc_combo_box_new_search());
195 gnc_combo_box_search_add(combo, _(
"is before"), QOF_COMPARE_LT);
196 gnc_combo_box_search_add(combo, _(
"is before or on"), QOF_COMPARE_LTE);
197 gnc_combo_box_search_add(combo, _(
"is on"), QOF_COMPARE_EQUAL);
198 gnc_combo_box_search_add(combo, _(
"is not on"), QOF_COMPARE_NEQ);
199 gnc_combo_box_search_add(combo, _(
"is after"), QOF_COMPARE_GT);
200 gnc_combo_box_search_add(combo, _(
"is on or after"), QOF_COMPARE_GTE);
201 gnc_combo_box_search_changed(combo, &fi->how);
202 gnc_combo_box_search_set_active(combo, fi->how ? fi->how : QOF_COMPARE_LT);
204 return GTK_WIDGET(combo);
213 g_return_if_fail (fi);
214 g_return_if_fail (IS_GNCSEARCH_DATE (fi));
218 gtk_widget_grab_focus (GNC_DATE_EDIT(priv->entry)->date_entry);
227 g_return_if_fail (fi);
228 g_return_if_fail (IS_GNCSEARCH_DATE (fi));
232 gnc_date_activates_default (GNC_DATE_EDIT (priv->entry), TRUE);
238 GtkWidget *entry, *menu, *box;
242 g_return_val_if_fail (fi, NULL);
243 g_return_val_if_fail (IS_GNCSEARCH_DATE (fi), NULL);
246 box = gtk_hbox_new (FALSE, 3);
249 menu = make_menu (fe);
250 gtk_box_pack_start (GTK_BOX (box), menu, FALSE, FALSE, 3);
253 entry = gnc_date_edit_new_ts (fi->ts, FALSE, FALSE);
254 g_signal_connect (G_OBJECT (entry),
"date_changed", G_CALLBACK (date_changed), fe);
255 gtk_box_pack_start (GTK_BOX (box), entry, FALSE, FALSE, 3);
256 g_object_ref (entry);
268 g_return_val_if_fail (fi, NULL);
269 g_return_val_if_fail (IS_GNCSEARCH_DATE (fi), NULL);
274 fi->ts = gnc_date_edit_get_date_ts (GNC_DATE_EDIT (priv->entry));
276 return qof_query_date_predicate (fi->how, QOF_DATE_MATCH_NORMAL, fi->ts);
283 g_return_val_if_fail (fse, NULL);
284 g_return_val_if_fail (IS_GNCSEARCH_DATE (fse), NULL);
286 se = gnc_search_date_new ();
287 gnc_search_date_set_date (se, fse->ts);
288 gnc_search_date_set_how (se, fse->how);
Date and Time handling routines.
Use a 64-bit unsigned int timespec.
time64 gnc_time(time64 *tbuf)
get the current local time