From 3c809a4a2dd792af6a36e7050c48b41020383de4 Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Fri, 28 Oct 2011 14:13:54 +0000 Subject: [PATCH] Remove option menu dependency from business-options-gnome git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@21502 57a11ea4-9604-0410-9ed3-97b8803252fd --- .../business-gnome/business-options-gnome.c | 21 ++++++++------ .../business-gnome/gtkbuilder/Makefile.am | 1 + .../gtkbuilder/business-options-gnome.glade | 28 +++++++++++++++++++ 3 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 src/business/business-gnome/gtkbuilder/business-options-gnome.glade diff --git a/src/business/business-gnome/business-options-gnome.c b/src/business/business-gnome/business-options-gnome.c index d05c3abdc8..4a9e3739e7 100644 --- a/src/business/business-gnome/business-options-gnome.c +++ b/src/business/business-gnome/business-options-gnome.c @@ -30,6 +30,7 @@ #include #include "gnc-ui-util.h" +#include "dialog-utils.h" #include "qof.h" #include "option-util.h" #include "gnc-general-search.h" @@ -425,18 +426,22 @@ static GtkWidget * create_taxtable_widget (GNCOption *option, GtkWidget *hbox) { GtkWidget *widget; + GtkBuilder *builder; - widget = gtk_option_menu_new (); - - gnc_ui_taxtables_optionmenu (widget, gnc_get_current_book (), TRUE, NULL); + builder = gtk_builder_new(); + gnc_builder_add_from_file (builder, "business-options-gnome.glade", "taxtable_store"); + gnc_builder_add_from_file (builder, "business-options-gnome.glade", "taxtable_menu"); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "taxtable_menu")); + gnc_taxtables_combo (GTK_COMBO_BOX(widget), gnc_get_current_book (), TRUE, NULL); gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0); + gnc_option_set_widget (option, widget); - gnc_ui_optionmenu_set_changed_callback (widget, - (void(*)(GtkWidget*, gpointer))gnc_option_changed_option_cb, - option); + g_signal_connect (widget, "changed", + G_CALLBACK (gnc_option_changed_option_cb), option); + g_object_unref(G_OBJECT(builder)); return widget; } @@ -477,7 +482,7 @@ taxtable_set_value (GNCOption *option, gboolean use_default, taxtable = SWIG_MustGetPtr(value, SWIG_TypeQuery("_p__gncTaxTable"), 1, 0); widget = gnc_option_get_gtk_widget (option); - gnc_ui_optionmenu_set_value (widget, taxtable); + gnc_simple_combo_set_value (GTK_COMBO_BOX(widget), taxtable); return FALSE; } @@ -487,7 +492,7 @@ taxtable_get_value (GNCOption *option, GtkWidget *widget) { GncTaxTable *taxtable; - taxtable = gnc_ui_optionmenu_get_value (widget); + taxtable = gnc_simple_combo_get_value (GTK_COMBO_BOX(widget)); return SWIG_NewPointerObj(taxtable, SWIG_TypeQuery("_p__gncTaxTable"), 0); } diff --git a/src/business/business-gnome/gtkbuilder/Makefile.am b/src/business/business-gnome/gtkbuilder/Makefile.am index 8c8f373215..90a988604b 100644 --- a/src/business/business-gnome/gtkbuilder/Makefile.am +++ b/src/business/business-gnome/gtkbuilder/Makefile.am @@ -1,5 +1,6 @@ gtkbuilderdir = $(GNC_GTKBUILDER_DIR) gtkbuilder_DATA = \ + business-options-gnome.glade \ dialog-customer.glade \ dialog-invoice.glade \ dialog-vendor.glade diff --git a/src/business/business-gnome/gtkbuilder/business-options-gnome.glade b/src/business/business-gnome/gtkbuilder/business-options-gnome.glade new file mode 100644 index 0000000000..1d75808656 --- /dev/null +++ b/src/business/business-gnome/gtkbuilder/business-options-gnome.glade @@ -0,0 +1,28 @@ + + + + + False + + + True + False + taxtable_store + + + + 0 + + + + + + + + + + + + + +