[Gnucash-changes] Convert the multiple choice option from using the
deprecated
David Hampton
hampton at cvs.gnucash.org
Fri Oct 7 00:38:57 EDT 2005
Log Message:
-----------
Convert the multiple choice option from using the deprecated
GtkOptionMenu widget to using a GtkComboBox widget. Fix some warnings
when using a currency option. Make the account list option expand to
fill available space.
Tags:
----
gnucash-gnome2-dev
Modified Files:
--------------
gnucash:
ChangeLog
gnucash/src/gnome-utils:
dialog-options.c
Revision Data
-------------
Index: ChangeLog
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/ChangeLog,v
retrieving revision 1.1487.2.308
retrieving revision 1.1487.2.309
diff -LChangeLog -LChangeLog -u -r1.1487.2.308 -r1.1487.2.309
--- ChangeLog
+++ ChangeLog
@@ -1,3 +1,19 @@
+2005-10-07 David Hampton <hampton at employees.org>
+
+ * src/gnome-utils/dialog-options.c: Convert the multiple choice
+ option from using the deprecated GtkOptionMenu widget to using a
+ GtkComboBox widget. Fix some warnings when using a currency
+ option. Make the account list option expand to fill available
+ space.
+
+ * src/app-utils/option-util.c: Correctly convert a scheme string
+ to a C string.
+
+ * src/gnome-utils/dialog-options.c:
+ * src/gnome-utils/dialog-preferences.c:
+ * src/gnome-utils/preferences.glade: Rename preference dialog
+ windows.
+
2005-10-06 David Hampton <hampton at employees.org>
* src/gnome-utils/gnc-main-window.c: Make the gtk notebook pages
Index: dialog-options.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/dialog-options.c,v
retrieving revision 1.22.2.23
retrieving revision 1.22.2.24
diff -Lsrc/gnome-utils/dialog-options.c -Lsrc/gnome-utils/dialog-options.c -u -r1.22.2.23 -r1.22.2.24
--- src/gnome-utils/dialog-options.c
+++ src/gnome-utils/dialog-options.c
@@ -314,27 +314,10 @@
}
static void
-gnc_option_multichoice_cb(GtkWidget *w, gint index, gpointer data)
+gnc_option_multichoice_cb(GtkWidget *widget, gpointer data)
{
GNCOption *option = data;
- GtkWidget *widget;
- GtkWidget *omenu;
- gpointer _current;
- gint current;
-
- widget = gnc_option_get_widget (option);
-
- _current = gtk_object_get_data(GTK_OBJECT(widget), "gnc_multichoice_index");
- current = GPOINTER_TO_INT(_current);
-
- if (current == index)
- return;
-
- gtk_option_menu_set_history(GTK_OPTION_MENU(widget), index);
- gtk_object_set_data(GTK_OBJECT(widget), "gnc_multichoice_index",
- GINT_TO_POINTER(index));
- omenu = gtk_object_get_data(GTK_OBJECT(w), "gnc_option_menu");
- gnc_option_changed_widget_cb(omenu, option);
+ gnc_option_changed_widget_cb(widget, option);
}
static void
@@ -361,34 +344,6 @@
gnc_option_changed_widget_cb(widget, option);
}
-static void
-gnc_option_rd_combo_cb(GtkWidget *w, gint index, gpointer data)
-{
- GtkWidget *widget, *omenu;
- GList *children;
- GNCOption *option = data;
- gpointer _current;
- gint current;
-
- children =
- gtk_container_children(GTK_CONTAINER(gnc_option_get_widget (option)));
-
- widget = g_list_nth_data(children, GNC_RD_WID_REL_WIDGET_POS);
-
- _current = gtk_object_get_data(GTK_OBJECT(widget),
- "gnc_multichoice_index");
- current = GPOINTER_TO_INT(_current);
-
- if (current == index)
- return;
-
- gtk_option_menu_set_history(GTK_OPTION_MENU(widget), index);
- gtk_object_set_data(GTK_OBJECT(widget), "gnc_multichoice_index",
- GINT_TO_POINTER(index));
- omenu = gtk_object_get_data(GTK_OBJECT(w), "gnc_option_menu");
- gnc_option_changed_widget_cb(omenu, option);
-}
-
static GtkWidget *
gnc_option_create_date_widget (GNCOption *option)
{
@@ -397,10 +352,8 @@
GtkWidget *rel_widget=NULL, *ab_widget=NULL;
GtkWidget *entry;
gboolean show_time, use24;
- GNCOptionInfo *info;
char *type;
- char **raw_strings;
- char **raw;
+ char *string;
int num_values;
type = gnc_option_date_option_get_subtype(option);
@@ -428,46 +381,16 @@
g_return_val_if_fail(num_values >= 0, NULL);
- info = g_new0(GNCOptionInfo, num_values);
- raw_strings = g_new0(char *, num_values * 2);
- raw = raw_strings;
-
+ rel_widget = gtk_combo_box_new_text();
for (i = 0; i < num_values; i++)
{
- *raw = gnc_option_permissible_value_name(option, i);
- if (*raw != NULL)
- info[i].name = _(*raw);
- else
- info[i].name = "";
-
- raw++;
-
- *raw = gnc_option_permissible_value_description(option, i);
- if (*raw != NULL)
- info[i].tip = _(*raw);
- else
- info[i].tip = "";
- if(safe_strcmp(type, "both") == 0)
- {
- info[i].callback = gnc_option_rd_combo_cb;
- }
- else
- {
- info[i].callback = gnc_option_multichoice_cb;
- }
- info[i].user_data = option;
-
- raw++;
+ string = gnc_option_permissible_value_name(option, i);
+ gtk_combo_box_append_text(GTK_COMBO_BOX(rel_widget), string);
+ g_free(string);
}
- rel_widget = gnc_build_option_menu(info, num_values);
-
- for (i = 0; i < num_values * 2; i++)
- if (raw_strings[i] != NULL)
- free(raw_strings[i]);
-
- g_free(raw_strings);
- g_free(info);
+ g_signal_connect(G_OBJECT(rel_widget), "changed",
+ G_CALLBACK(gnc_option_multichoice_cb), option);
}
if(safe_strcmp(type, "absolute") == 0)
@@ -517,49 +440,22 @@
gnc_option_create_multichoice_widget(GNCOption *option)
{
GtkWidget *widget;
- GNCOptionInfo *info;
int num_values;
- char **raw_strings;
- char **raw;
+ char *string;
int i;
num_values = gnc_option_num_permissible_values(option);
g_return_val_if_fail(num_values >= 0, NULL);
- info = g_new0(GNCOptionInfo, num_values);
- raw_strings = g_new0(char *, num_values * 2);
- raw = raw_strings;
-
- for (i = 0; i < num_values; i++)
- {
- *raw = gnc_option_permissible_value_name(option, i);
- if (*raw != NULL)
- info[i].name = _(*raw);
- else
- info[i].name = "";
-
- raw++;
-
- *raw = gnc_option_permissible_value_description(option, i);
- if (*raw != NULL)
- info[i].tip = _(*raw);
- else
- info[i].tip = "";
-
- info[i].callback = gnc_option_multichoice_cb;
- info[i].user_data = option;
- raw++;
+ widget = gtk_combo_box_new_text();
+ for (i = 0; i < num_values; i++) {
+ string = gnc_option_permissible_value_name(option, i);
+ gtk_combo_box_append_text(GTK_COMBO_BOX(widget), string);
+ g_free(string);
}
-
- widget = gnc_build_option_menu(info, num_values);
-
- for (i = 0; i < num_values * 2; i++)
- if (raw_strings[i] != NULL)
- free(raw_strings[i]);
-
- g_free(raw_strings);
- g_free(info);
+ g_signal_connect(G_OBJECT(widget), "changed",
+ G_CALLBACK(gnc_option_multichoice_cb), option);
return widget;
}
@@ -717,7 +613,7 @@
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
- gtk_box_pack_start(GTK_BOX(vbox), scroll_win, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), scroll_win, TRUE, TRUE, 0);
gtk_container_border_width(GTK_CONTAINER(scroll_win), 5);
gtk_container_add(GTK_CONTAINER(scroll_win), tree);
@@ -1545,10 +1441,10 @@
gnc_option_set_ui_value(option, FALSE);
if (documentation != NULL)
- gtk_tooltips_set_tip(tooltips, GTK_COMBO(value)->entry,
+ gtk_tooltips_set_tip(tooltips, value,
documentation, NULL);
- g_signal_connect(G_OBJECT(GTK_COMBO(value)->entry), "changed",
+ g_signal_connect(G_OBJECT(value), "changed",
G_CALLBACK(gnc_option_changed_widget_cb), option);
gtk_box_pack_start(GTK_BOX(*enclosing), label, FALSE, FALSE, 0);
@@ -1670,7 +1566,7 @@
gtk_tooltips_set_tip(tooltips, *enclosing, documentation, NULL);
- gtk_box_pack_start(page_box, *enclosing, FALSE, FALSE, 5);
+ gtk_box_pack_start(page_box, *enclosing, TRUE, TRUE, 5);
*packed = TRUE;
//gtk_widget_realize(value);
@@ -1678,7 +1574,7 @@
gnc_option_set_ui_value(option, FALSE);
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(value));
- g_signal_connect(G_OBJECT(value), "changed",
+ g_signal_connect(G_OBJECT(selection), "changed",
G_CALLBACK(gnc_option_account_cb), option);
// gtk_clist_set_row_height(GTK_CLIST(value), 0);
@@ -2084,9 +1980,7 @@
return TRUE;
else
{
- gtk_option_menu_set_history(GTK_OPTION_MENU(widget), index);
- gtk_object_set_data(GTK_OBJECT(widget), "gnc_multichoice_index",
- GINT_TO_POINTER(index));
+ gtk_combo_box_set_active(GTK_COMBO_BOX(widget), index);
return FALSE;
}
}
@@ -2114,10 +2008,7 @@
index = gnc_option_permissible_value_index(option, relative);
if (safe_strcmp(date_option_type, "relative") == 0)
{
- gtk_object_set_data(GTK_OBJECT(widget),
- "gnc_multichoice_index",
- GINT_TO_POINTER(index));
- gtk_option_menu_set_history(GTK_OPTION_MENU(widget), index);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(widget), index);
}
else if (safe_strcmp(date_option_type, "both") == 0)
{
@@ -2128,11 +2019,7 @@
rel_date_widget = g_list_nth_data(widget_list,
GNC_RD_WID_REL_WIDGET_POS);
gnc_date_option_set_select_method(option, FALSE, TRUE);
- gtk_object_set_data(GTK_OBJECT(rel_date_widget),
- "gnc_multichoice_index",
- GINT_TO_POINTER(index));
- gtk_option_menu_set_history(GTK_OPTION_MENU(rel_date_widget),
- index);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(rel_date_widget), index);
}
else
{
@@ -2455,12 +2342,9 @@
static SCM
gnc_option_get_ui_value_multichoice (GNCOption *option, GtkWidget *widget)
{
- gpointer _index;
int index;
- _index = gtk_object_get_data(GTK_OBJECT(widget), "gnc_multichoice_index");
- index = GPOINTER_TO_INT(_index);
-
+ index = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
return (gnc_option_permissible_value(option, index));
}
@@ -2473,8 +2357,7 @@
if(safe_strcmp(subtype, "relative") == 0)
{
- index = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(widget),
- "gnc_multichoice_index"));
+ index = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
type = scm_str2symbol("relative");
val = gnc_option_permissible_value(option, index);
result = scm_cons(type, val);
@@ -2510,8 +2393,7 @@
}
else
{
- index = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(rel_widget),
- "gnc_multichoice_index"));
+ index = gtk_combo_box_get_active(GTK_COMBO_BOX(rel_widget));
val = gnc_option_permissible_value(option, index);
result = scm_cons(scm_str2symbol("relative"), val);
}
More information about the gnucash-changes
mailing list