From a7359db30b8ae29af790f2bd3da3079e63a4ce04 Mon Sep 17 00:00:00 2001 From: Derek Atkins Date: Fri, 24 May 2002 00:44:52 +0000 Subject: [PATCH] Implement grab_focus() and editable_enters() for the search-date widget git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6904 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/gnome-search/search-date.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/gnome-search/search-date.c b/src/gnome-search/search-date.c index a84a704ee8..6838a3251b 100644 --- a/src/gnome-search/search-date.c +++ b/src/gnome-search/search-date.c @@ -32,6 +32,8 @@ #define d(x) +static void editable_enters (GNCSearchCoreType *fe, GnomeDialog *dialog); +static void grab_focus (GNCSearchCoreType *fe); static GNCSearchCoreType *clone(GNCSearchCoreType *fe); static gboolean validate (GNCSearchCoreType *fe); static GtkWidget *get_widget(GNCSearchCoreType *fe); @@ -44,6 +46,7 @@ static void gnc_search_date_finalise (GtkObject *obj); #define _PRIVATE(x) (((GNCSearchDate *)(x))->priv) struct _GNCSearchDatePrivate { + GtkWidget *entry; }; static GNCSearchCoreTypeClass *parent_class; @@ -88,6 +91,8 @@ gnc_search_date_class_init (GNCSearchDateClass *class) object_class->finalize = gnc_search_date_finalise; /* override methods */ + gnc_search_core_type->editable_enters = editable_enters; + gnc_search_core_type->grab_focus = grab_focus; gnc_search_core_type->validate = validate; gnc_search_core_type->get_widget = get_widget; gnc_search_core_type->get_predicate = get_predicate; @@ -219,6 +224,31 @@ make_menu (GNCSearchCoreType *fe) return opmenu; } +static void +grab_focus (GNCSearchCoreType *fe) +{ + GNCSearchDate *fi = (GNCSearchDate *)fe; + + g_return_if_fail (fi); + g_return_if_fail (IS_GNCSEARCH_DATE (fi)); + + if (fi->priv->entry) + gtk_widget_grab_focus (GNC_DATE_EDIT(fi->priv->entry)->date_entry); +} + +static void +editable_enters (GNCSearchCoreType *fe, GnomeDialog *dialog) +{ + GNCSearchDate *fi = (GNCSearchDate *)fe; + + g_return_if_fail (fi); + g_return_if_fail (IS_GNCSEARCH_DATE (fi)); + g_return_if_fail (dialog); + + if (fi->priv->entry) + gnc_date_editable_enters (dialog, GNC_DATE_EDIT (fi->priv->entry)); +} + static GtkWidget * get_widget (GNCSearchCoreType *fe) { @@ -238,6 +268,7 @@ get_widget (GNCSearchCoreType *fe) entry = gnc_date_edit_new_ts (fi->ts, FALSE, FALSE); gtk_signal_connect (GTK_OBJECT (entry), "date_changed", date_changed, fe); gtk_box_pack_start (GTK_BOX (box), entry, FALSE, FALSE, 3); + fi->priv->entry = entry; /* And return the box */ return box;