im.pidgin.pidgin: ac2c6e65f96647a279e527fb82e4ba051f17aa93
nix at go-nix.ca
nix at go-nix.ca
Sat Jan 5 05:40:44 EST 2008
-----------------------------------------------------------------
Revision: ac2c6e65f96647a279e527fb82e4ba051f17aa93
Ancestor: 3a57ab8f995fc58a55ea1b51bbf10c04ff71fe70
Author: nix at go-nix.ca
Author: sadrul at pidgin.im
Date: 2008-01-05T10:43:25
Branch: im.pidgin.pidgin
Modified files:
ChangeLog.API pidgin/gtkaccount.c pidgin/gtkblist.c
pidgin/gtkprefs.c pidgin/gtkprivacy.c pidgin/gtkroomlist.c
pidgin/gtksavedstatuses.c pidgin/gtkutils.c
pidgin/gtkutils.h
ChangeLog:
Remove a lot of duplication from a lot of places. Closes #4558.
-------------- next part --------------
============================================================
--- ChangeLog.API bd9359ddb30db2e49b9c9258ff738552bc9470ec
+++ ChangeLog.API f61dd7d4b68fde2460111c1c8dcbb1db3ae8ad9c
@@ -8,6 +8,7 @@ version 2.4.0 (??/??/????):
* purple_major_version, purple_minor_version,
purple_micro_version variables are exported by version.h,
giving the version of libpurple in use at runtime.
+ * purple_util_set_current_song, purple_util_format_song_info
Pidgin:
Added:
@@ -24,9 +25,11 @@ version 2.4.0 (??/??/????):
* pidgin_tooltip_setup_for_treeview, pidgin_tooltip_destroy,
pidgin_tooltip_show and pidgin_tooltip_setup_for_widget to simplify
the process of drawing tooltips.
+ * pidgin_add_widget_to_vbox to simplify adding a labeled widget to a
+ window.
- Deprecated:
- * PIDGIN_DIALOG
+ Deprecated:
+ * PIDGIN_DIALOG
Finch:
libgnt:
============================================================
--- pidgin/gtkaccount.c 75f93068b9f1da0d72cca4687f75b506c761c88c
+++ pidgin/gtkaccount.c 71167f83a5488f9d35c3013fccd58b4553f3ef9e
@@ -158,25 +158,7 @@ add_pref_box(AccountPrefsDialog *dialog,
add_pref_box(AccountPrefsDialog *dialog, GtkWidget *parent,
const char *text, GtkWidget *widget)
{
- GtkWidget *hbox;
- GtkWidget *label;
-
- hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
- gtk_box_pack_start(GTK_BOX(parent), hbox, FALSE, FALSE, 0);
- gtk_widget_show(hbox);
-
- label = gtk_label_new_with_mnemonic(text);
- gtk_size_group_add_widget(dialog->sg, label);
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), widget);
- gtk_widget_show(label);
-
- gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, PIDGIN_HIG_BORDER);
- gtk_widget_show(widget);
- pidgin_set_accessible_label (widget, label);
-
- return hbox;
+ return pidgin_add_widget_to_vbox(GTK_BOX(parent), text, dialog->sg, widget, TRUE, NULL);
}
static void
============================================================
--- pidgin/gtkblist.c 4bf6ac7582f1735e98e9b597912e38335da07284
+++ pidgin/gtkblist.c 2d4bc796d9a6d0f421afdbb61d919dd625294bae
@@ -843,20 +843,10 @@ rebuild_joinchat_entries(PidginJoinChatD
for (tmp = list; tmp; tmp = tmp->next)
{
- GtkWidget *label;
- GtkWidget *rowbox;
GtkWidget *input;
pce = tmp->data;
- rowbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
- gtk_box_pack_start(GTK_BOX(data->entries_box), rowbox, FALSE, FALSE, 0);
-
- label = gtk_label_new_with_mnemonic(pce->label);
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_size_group_add_widget(data->sg, label);
- gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
-
if (pce->is_int)
{
GtkObject *adjust;
@@ -864,7 +854,7 @@ rebuild_joinchat_entries(PidginJoinChatD
1, 10, 10);
input = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0);
gtk_widget_set_size_request(input, 50, -1);
- gtk_box_pack_end(GTK_BOX(rowbox), input, FALSE, FALSE, 0);
+ pidgin_add_widget_to_vbox(GTK_BOX(data->entries_box), pce->label, data->sg, input, FALSE, NULL);
}
else
{
@@ -880,7 +870,7 @@ rebuild_joinchat_entries(PidginJoinChatD
if (gtk_entry_get_invisible_char(GTK_ENTRY(input)) == '*')
gtk_entry_set_invisible_char(GTK_ENTRY(input), PIDGIN_INVISIBLE_CHAR);
}
- gtk_box_pack_end(GTK_BOX(rowbox), input, TRUE, TRUE, 0);
+ pidgin_add_widget_to_vbox(GTK_BOX(data->entries_box), pce->label, data->sg, input, TRUE, NULL);
g_signal_connect(G_OBJECT(input), "changed",
G_CALLBACK(joinchat_set_sensitive_if_input_cb), data);
}
@@ -891,8 +881,6 @@ rebuild_joinchat_entries(PidginJoinChatD
gtk_widget_grab_focus(input);
focus = FALSE;
}
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), input);
- pidgin_set_accessible_label(input, label);
g_object_set_data(G_OBJECT(input), "identifier", (gpointer)pce->identifier);
g_object_set_data(G_OBJECT(input), "is_spin", GINT_TO_POINTER(pce->is_int));
g_object_set_data(G_OBJECT(input), "required", GINT_TO_POINTER(pce->required));
@@ -988,24 +976,15 @@ pidgin_blist_joinchat_show(void)
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
- rowbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
- gtk_box_pack_start(GTK_BOX(vbox), rowbox, TRUE, TRUE, 0);
-
data->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
- label = gtk_label_new_with_mnemonic(_("_Account:"));
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
- gtk_size_group_add_widget(data->sg, label);
-
data->account_menu = pidgin_account_option_menu_new(NULL, FALSE,
G_CALLBACK(joinchat_select_account_cb),
chat_account_filter_func, data);
gtk_box_pack_start(GTK_BOX(rowbox), data->account_menu, TRUE, TRUE, 0);
- gtk_label_set_mnemonic_widget(GTK_LABEL(label),
- GTK_WIDGET(data->account_menu));
- pidgin_set_accessible_label (data->account_menu, label);
+ pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("_Account:"), data->sg, data->account_menu, TRUE, NULL);
+
data->entries_box = gtk_vbox_new(FALSE, 5);
gtk_container_add(GTK_CONTAINER(vbox), data->entries_box);
gtk_container_set_border_width(GTK_CONTAINER(data->entries_box), 0);
@@ -6516,20 +6495,10 @@ rebuild_addchat_entries(PidginAddChatDat
for (tmp = list; tmp; tmp = tmp->next)
{
- GtkWidget *label;
- GtkWidget *rowbox;
GtkWidget *input;
pce = tmp->data;
- rowbox = gtk_hbox_new(FALSE, 5);
- gtk_box_pack_start(GTK_BOX(data->entries_box), rowbox, FALSE, FALSE, 0);
-
- label = gtk_label_new_with_mnemonic(pce->label);
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_size_group_add_widget(data->sg, label);
- gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
-
if (pce->is_int)
{
GtkObject *adjust;
@@ -6537,7 +6506,7 @@ rebuild_addchat_entries(PidginAddChatDat
1, 10, 10);
input = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0);
gtk_widget_set_size_request(input, 50, -1);
- gtk_box_pack_end(GTK_BOX(rowbox), input, FALSE, FALSE, 0);
+ pidgin_add_widget_to_vbox(GTK_BOX(data->entries_box), pce->label, data->sg, input, FALSE, NULL);
}
else
{
@@ -6553,7 +6522,7 @@ rebuild_addchat_entries(PidginAddChatDat
if (gtk_entry_get_invisible_char(GTK_ENTRY(input)) == '*')
gtk_entry_set_invisible_char(GTK_ENTRY(input), PIDGIN_INVISIBLE_CHAR);
}
- gtk_box_pack_end(GTK_BOX(rowbox), input, TRUE, TRUE, 0);
+ pidgin_add_widget_to_vbox(GTK_BOX(data->entries_box), pce->label, data->sg, input, TRUE, NULL);
g_signal_connect(G_OBJECT(input), "changed",
G_CALLBACK(addchat_set_sensitive_if_input_cb), data);
}
@@ -6564,8 +6533,6 @@ rebuild_addchat_entries(PidginAddChatDat
gtk_widget_grab_focus(input);
focus = FALSE;
}
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), input);
- pidgin_set_accessible_label(input, label);
g_object_set_data(G_OBJECT(input), "identifier", (gpointer)pce->identifier);
g_object_set_data(G_OBJECT(input), "is_spin", GINT_TO_POINTER(pce->is_int));
g_object_set_data(G_OBJECT(input), "required", GINT_TO_POINTER(pce->required));
@@ -6608,7 +6575,6 @@ pidgin_blist_request_add_chat(PurpleAcco
GList *l;
PurpleConnection *gc;
GtkWidget *label;
- GtkWidget *rowbox;
GtkWidget *hbox;
GtkWidget *vbox;
GtkWidget *img;
@@ -6684,20 +6650,10 @@ pidgin_blist_request_add_chat(PurpleAcco
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
- rowbox = gtk_hbox_new(FALSE, 5);
- gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0);
-
- label = gtk_label_new_with_mnemonic(_("_Account:"));
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_size_group_add_widget(data->sg, label);
- gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
-
data->account_menu = pidgin_account_option_menu_new(account, FALSE,
G_CALLBACK(addchat_select_account_cb),
chat_account_filter_func, data);
- gtk_box_pack_start(GTK_BOX(rowbox), data->account_menu, TRUE, TRUE, 0);
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->account_menu);
- pidgin_set_accessible_label (data->account_menu, label);
+ pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("_Account:"), data->sg, data->account_menu, TRUE, NULL);
data->entries_box = gtk_vbox_new(FALSE, 5);
gtk_container_set_border_width(GTK_CONTAINER(data->entries_box), 0);
@@ -6705,36 +6661,17 @@ pidgin_blist_request_add_chat(PurpleAcco
rebuild_addchat_entries(data);
- rowbox = gtk_hbox_new(FALSE, 5);
- gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0);
-
- label = gtk_label_new_with_mnemonic(_("A_lias:"));
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_size_group_add_widget(data->sg, label);
- gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
-
data->alias_entry = gtk_entry_new();
if (alias != NULL)
gtk_entry_set_text(GTK_ENTRY(data->alias_entry), alias);
- gtk_box_pack_end(GTK_BOX(rowbox), data->alias_entry, TRUE, TRUE, 0);
gtk_entry_set_activates_default(GTK_ENTRY(data->alias_entry), TRUE);
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->alias_entry);
- pidgin_set_accessible_label (data->alias_entry, label);
+
+ pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("A_lias:"), data->sg, data->alias_entry, TRUE, NULL);
if (name != NULL)
gtk_widget_grab_focus(data->alias_entry);
- rowbox = gtk_hbox_new(FALSE, 5);
- gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0);
-
- label = gtk_label_new_with_mnemonic(_("_Group:"));
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_size_group_add_widget(data->sg, label);
- gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
-
data->group_combo = pidgin_text_combo_box_entry_new(group ? group->name : NULL, groups_tree());
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_BIN(data->group_combo)->child);
- pidgin_set_accessible_label (data->group_combo, label);
- gtk_box_pack_end(GTK_BOX(rowbox), data->group_combo, TRUE, TRUE, 0);
+ pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("_Group:"), data->sg, data->group_combo, TRUE, NULL);
data->autojoin = gtk_check_button_new_with_mnemonic(_("Auto_join when account becomes online."));
data->persistent = gtk_check_button_new_with_mnemonic(_("_Hide chat when the window is closed."));
============================================================
--- pidgin/gtkprefs.c 97d9b2e0e4f42f4af28d6f07b84728c20bedfe02
+++ pidgin/gtkprefs.c 0bd33736f6d340e0498e042b6ec092c2aaa62e8f
@@ -89,23 +89,12 @@ pidgin_prefs_labeled_spin_button(GtkWidg
pidgin_prefs_labeled_spin_button(GtkWidget *box, const gchar *title,
const char *key, int min, int max, GtkSizeGroup *sg)
{
- GtkWidget *hbox;
- GtkWidget *label;
GtkWidget *spin;
GtkObject *adjust;
int val;
val = purple_prefs_get_int(key);
- hbox = gtk_hbox_new(FALSE, 5);
- gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5);
- gtk_widget_show(hbox);
-
- label = gtk_label_new_with_mnemonic(title);
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
- gtk_widget_show(label);
-
adjust = gtk_adjustment_new(val, min, max, 1, 1, 1);
spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0);
g_object_set_data(G_OBJECT(spin), "val", (char *)key);
@@ -113,21 +102,11 @@ pidgin_prefs_labeled_spin_button(GtkWidg
gtk_widget_set_size_request(spin, 50, -1);
else
gtk_widget_set_size_request(spin, 60, -1);
- gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0);
g_signal_connect(G_OBJECT(adjust), "value-changed",
G_CALLBACK(update_spin_value), GTK_WIDGET(spin));
gtk_widget_show(spin);
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), spin);
-
- if (sg) {
- gtk_size_group_add_widget(sg, label);
- gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
- }
-
- pidgin_set_accessible_label (spin, label);
-
- return hbox;
+ return pidgin_add_widget_to_vbox(GTK_BOX(box), title, sg, spin, FALSE, NULL);
}
static void
@@ -141,37 +120,18 @@ pidgin_prefs_labeled_entry(GtkWidget *pa
pidgin_prefs_labeled_entry(GtkWidget *page, const gchar *title,
const char *key, GtkSizeGroup *sg)
{
- GtkWidget *hbox, *label, *entry;
+ GtkWidget *entry;
const gchar *value;
value = purple_prefs_get_string(key);
- hbox = gtk_hbox_new(FALSE, 5);
- gtk_box_pack_start(GTK_BOX(page), hbox, FALSE, FALSE, 0);
- gtk_widget_show(hbox);
-
- label = gtk_label_new_with_mnemonic(title);
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
- gtk_widget_show(label);
-
entry = gtk_entry_new();
gtk_entry_set_text(GTK_ENTRY(entry), value);
- gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0);
g_signal_connect(G_OBJECT(entry), "changed",
G_CALLBACK(entry_set), (char*)key);
gtk_widget_show(entry);
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
-
- if(sg) {
- gtk_size_group_add_widget(sg, label);
- gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
- }
-
- pidgin_set_accessible_label(entry, label);
-
- return hbox;
+ return pidgin_add_widget_to_vbox(GTK_BOX(page), title, sg, entry, TRUE, NULL);
}
static void
@@ -205,7 +165,6 @@ pidgin_prefs_dropdown_from_list(GtkWidge
{
GtkWidget *dropdown, *opt, *menu;
GtkWidget *label = NULL;
- GtkWidget *hbox;
gchar *text;
const char *stored_str = NULL;
int stored_int = 0;
@@ -215,19 +174,6 @@ pidgin_prefs_dropdown_from_list(GtkWidge
g_return_val_if_fail(menuitems != NULL, NULL);
- if (title != NULL) {
- hbox = gtk_hbox_new(FALSE, 5);
- /*gtk_container_add (GTK_CONTAINER (box), hbox);*/
- gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0);
- gtk_widget_show(hbox);
-
- label = gtk_label_new_with_mnemonic(title);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
- gtk_widget_show(label);
- } else {
- hbox = box;
- }
-
#if 0 /* GTK_CHECK_VERSION(2,4,0) */
if(type == PURPLE_PREF_INT)
model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT);
@@ -239,11 +185,6 @@ pidgin_prefs_dropdown_from_list(GtkWidge
menu = gtk_menu_new();
#endif
- if (label != NULL) {
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), dropdown);
- pidgin_set_accessible_relations (dropdown, label);
- }
-
if (type == PURPLE_PREF_INT)
stored_int = purple_prefs_get_int(key);
else if (type == PURPLE_PREF_STRING)
@@ -293,9 +234,9 @@ pidgin_prefs_dropdown_from_list(GtkWidge
}
gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu);
- gtk_box_pack_start(GTK_BOX(hbox), dropdown, FALSE, FALSE, 0);
- gtk_widget_show(dropdown);
+ pidgin_add_widget_to_vbox(GTK_BOX(box), title, NULL, dropdown, FALSE, &label);
+
return label;
}
@@ -983,7 +924,6 @@ conv_page()
#if GTK_CHECK_VERSION(2,4,0)
GtkWidget *hbox;
- GtkWidget *label;
GtkWidget *font_button;
const char *font_name;
#endif
@@ -1026,19 +966,15 @@ conv_page()
fontpref = pidgin_prefs_checkbox(_("Use document font from _theme"), PIDGIN_PREFS_ROOT "/conversations/use_theme_font", vbox);
else
fontpref = pidgin_prefs_checkbox(_("Use font from _theme"), PIDGIN_PREFS_ROOT "/conversations/use_theme_font", vbox);
- hbox = gtk_hbox_new(FALSE, 3);
- label = gtk_label_new_with_mnemonic(_("Conversation _font:"));
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+
font_name = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/custom_font");
font_button = gtk_font_button_new_with_font(font_name ? font_name : NULL);
gtk_font_button_set_show_style(GTK_FONT_BUTTON(font_button), TRUE);
- gtk_box_pack_start(GTK_BOX(hbox), font_button, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+ hbox = pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("Conversation _font:"), NULL, font_button, FALSE, NULL);
if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/use_theme_font"))
gtk_widget_set_sensitive(hbox, FALSE);
g_signal_connect(G_OBJECT(fontpref), "clicked", G_CALLBACK(pidgin_toggle_sensitive), hbox);
g_signal_connect(G_OBJECT(font_button), "font-set", G_CALLBACK(pidgin_custom_font_set), NULL);
- gtk_widget_show_all(hbox);
#endif
vbox = pidgin_make_frame(ret, _("Default Formatting"));
@@ -1520,28 +1456,16 @@ browser_page()
browser_changed1_cb, hbox);
}
- hbox = gtk_hbox_new(FALSE, 5);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
- label = gtk_label_new_with_mnemonic(_("_Manual:\n(%s for URL)"));
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
- gtk_size_group_add_widget(sg, label);
-
entry = gtk_entry_new();
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
-
if (strcmp(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/browsers/browser"), "custom"))
gtk_widget_set_sensitive(hbox, FALSE);
purple_prefs_connect_callback(prefs, PIDGIN_PREFS_ROOT "/browsers/browser",
browser_changed2_cb, hbox);
-
- gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0);
-
gtk_entry_set_text(GTK_ENTRY(entry),
purple_prefs_get_path(PIDGIN_PREFS_ROOT "/browsers/command"));
g_signal_connect(G_OBJECT(entry), "focus-out-event",
G_CALLBACK(manual_browser_set), NULL);
- pidgin_set_accessible_label (entry, label);
+ pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("_Manual:\n(%s for URL)"), sg, entry, TRUE, NULL);
gtk_widget_show_all(ret);
g_object_unref(sg);
@@ -1824,33 +1748,21 @@ sound_page()
gtk_size_group_add_widget(sg, dd);
gtk_misc_set_alignment(GTK_MISC(dd), 0, 0.5);
- hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-
- label = gtk_label_new_with_mnemonic(_("Sound c_ommand:\n(%s for filename)"));
- gtk_size_group_add_widget(sg, label);
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
-
entry = gtk_entry_new();
gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
-
gtk_editable_set_editable(GTK_EDITABLE(entry), TRUE);
cmd = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/sound/command");
if(cmd)
gtk_entry_set_text(GTK_ENTRY(entry), cmd);
-
- gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0);
g_signal_connect(G_OBJECT(entry), "changed",
G_CALLBACK(sound_cmd_yeah), NULL);
+ hbox = pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("Sound c_ommand:\n(%s for filename)"), sg, entry, TRUE, NULL);
purple_prefs_connect_callback(prefs, PIDGIN_PREFS_ROOT "/sound/method",
sound_changed1_cb, hbox);
gtk_widget_set_sensitive(hbox,
!strcmp(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/method"),
"custom"));
-
- pidgin_set_accessible_label (entry, label);
#endif /* _WIN32 */
vbox = pidgin_make_frame (ret, _("Sound Options"));
@@ -2009,7 +1921,6 @@ away_page()
{
GtkWidget *ret;
GtkWidget *vbox;
- GtkWidget *hbox;
GtkWidget *dd;
GtkWidget *label;
GtkWidget *button;
@@ -2060,22 +1971,13 @@ away_page()
g_signal_connect(G_OBJECT(button), "clicked",
G_CALLBACK(pidgin_toggle_sensitive), select);
- hbox = gtk_hbox_new(FALSE, 0);
- gtk_container_add(GTK_CONTAINER(vbox), hbox);
-
- label = gtk_label_new_with_mnemonic(_("Change _status to:"));
- gtk_size_group_add_widget(sg, label);
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- g_signal_connect(G_OBJECT(button), "clicked",
- G_CALLBACK(pidgin_toggle_sensitive), label);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
-
/* TODO: Show something useful if we don't have any saved statuses. */
menu = pidgin_status_menu(purple_savedstatus_get_idleaway(), G_CALLBACK(set_idle_away));
- gtk_box_pack_start(GTK_BOX(hbox), menu, FALSE, FALSE, 0);
+ pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("Change _status to:"), sg, menu, TRUE, &label);
g_signal_connect(G_OBJECT(button), "clicked",
G_CALLBACK(pidgin_toggle_sensitive), menu);
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), menu);
+ g_signal_connect(G_OBJECT(button), "clicked",
+ G_CALLBACK(pidgin_toggle_sensitive), label);
if (!purple_prefs_get_bool("/purple/away/away_when_idle")) {
gtk_widget_set_sensitive(GTK_WIDGET(menu), FALSE);
@@ -2089,22 +1991,13 @@ away_page()
button = pidgin_prefs_checkbox(_("Use status from last _exit at startup"),
"/purple/savedstatus/startup_current_status", vbox);
- hbox = gtk_hbox_new(FALSE, 0);
- gtk_container_add(GTK_CONTAINER(vbox), hbox);
-
- label = gtk_label_new_with_mnemonic(_("Status to a_pply at startup:"));
- gtk_size_group_add_widget(sg, label);
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- g_signal_connect(G_OBJECT(button), "clicked",
- G_CALLBACK(pidgin_toggle_sensitive), label);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
-
/* TODO: Show something useful if we don't have any saved statuses. */
menu = pidgin_status_menu(purple_savedstatus_get_startup(), G_CALLBACK(set_startupstatus));
- gtk_box_pack_start(GTK_BOX(hbox), menu, FALSE, FALSE, 0);
g_signal_connect(G_OBJECT(button), "clicked",
G_CALLBACK(pidgin_toggle_sensitive), menu);
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), menu);
+ pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("Status to a_pply at startup:"), sg, menu, TRUE, &label);
+ g_signal_connect(G_OBJECT(button), "clicked",
+ G_CALLBACK(pidgin_toggle_sensitive), label);
if (purple_prefs_get_bool("/purple/savedstatus/startup_current_status")) {
gtk_widget_set_sensitive(GTK_WIDGET(menu), FALSE);
============================================================
--- pidgin/gtkprivacy.c 87598088896025efadf81ce9eb2748ca54dde583
+++ pidgin/gtkprivacy.c e7c626fec78d74b44c1f7026aac7e311b3bb870c
@@ -359,7 +359,6 @@ privacy_dialog_new(void)
privacy_dialog_new(void)
{
PidginPrivacyDialog *dialog;
- GtkWidget *hbox;
GtkWidget *vbox;
GtkWidget *button;
GtkWidget *dropdown;
@@ -386,22 +385,10 @@ privacy_dialog_new(void)
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
gtk_widget_show(label);
- /* Hbox for the accounts drop-down and label. */
- hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
- gtk_widget_show(hbox);
-
- /* "Set privacy for:" label */
- label = gtk_label_new(_("Set privacy for:"));
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
- gtk_widget_show(label);
-
/* Accounts drop-down */
dropdown = pidgin_account_option_menu_new(NULL, FALSE,
G_CALLBACK(select_account_cb), NULL, dialog);
- gtk_box_pack_start(GTK_BOX(hbox), dropdown, FALSE, FALSE, 0);
- gtk_widget_show(dropdown);
- pidgin_set_accessible_label (dropdown, label);
+ pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("Set privacy for:"), NULL, dropdown, TRUE, NULL);
dialog->account = pidgin_account_option_menu_get_selected(dropdown);
/* Add the drop-down list with the allow/block types. */
============================================================
--- pidgin/gtkroomlist.c b867cc15dd6f9308170b1df530f7d985be65b152
+++ pidgin/gtkroomlist.c c93305e14b0798bee63d6ebf7563d294ba0da3b9
@@ -521,9 +521,7 @@ pidgin_roomlist_dialog_new_with_account(
GtkWidget *window;
GtkWidget *vbox;
GtkWidget *vbox2;
- GtkWidget *account_hbox;
GtkWidget *bbox;
- GtkWidget *label;
dialog = g_new0(PidginRoomlistDialog, 1);
dialog->account = account;
@@ -542,26 +540,12 @@ pidgin_roomlist_dialog_new_with_account(
gtk_widget_show(vbox2);
/* accounts dropdown list */
- account_hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
- gtk_box_pack_start(GTK_BOX(vbox2), account_hbox, FALSE, FALSE, 0);
- gtk_widget_show(account_hbox);
-
- label = gtk_label_new(NULL);
- gtk_box_pack_start(GTK_BOX(account_hbox), label, FALSE, FALSE, 0);
- gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Account:"));
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_widget_show(label);
-
dialog->account_widget = pidgin_account_option_menu_new(dialog->account, FALSE,
G_CALLBACK(dialog_select_account_cb), account_filter_func, dialog);
-
if (!dialog->account) /* this is normally null, and we normally don't care what the first selected item is */
dialog->account = pidgin_account_option_menu_get_selected(dialog->account_widget);
+ pidgin_add_widget_to_vbox(GTK_BOX(vbox2), _("_Account:"), NULL, dialog->account_widget, TRUE, NULL);
- gtk_box_pack_start(GTK_BOX(account_hbox), dialog->account_widget, TRUE, TRUE, 0);
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(dialog->account_widget));
- gtk_widget_show(dialog->account_widget);
-
/* scrolled window */
dialog->sw = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(dialog->sw),
============================================================
--- pidgin/gtksavedstatuses.c 58b34ddffa3910c02d0de6f0de8b45d59879cf1f
+++ pidgin/gtksavedstatuses.c 4081f3255992f936c81b5d222712518b92ce8d2e
@@ -1092,7 +1092,6 @@ pidgin_status_editor_show(gboolean edit,
GtkWidget *entry;
GtkWidget *frame;
GtkWidget *hbox;
- GtkWidget *label;
GtkWidget *sw;
GtkWidget *text;
GtkWidget *toolbar;
@@ -1141,52 +1140,29 @@ pidgin_status_editor_show(gboolean edit,
sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
/* Title */
- hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-
- label = gtk_label_new_with_mnemonic(_("_Title:"));
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
- gtk_size_group_add_widget(sg, label);
-
entry = gtk_entry_new();
dialog->title = GTK_ENTRY(entry);
if ((saved_status != NULL)
&& !purple_savedstatus_is_transient(saved_status)
&& (purple_savedstatus_get_title(saved_status) != NULL))
gtk_entry_set_text(GTK_ENTRY(entry), purple_savedstatus_get_title(saved_status));
- gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0);
g_signal_connect(G_OBJECT(entry), "changed",
G_CALLBACK(editor_title_changed_cb), dialog);
+ pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("_Title:"), sg, entry, TRUE, NULL);
/* Status type */
- hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-
- label = gtk_label_new_with_mnemonic(_("_Status:"));
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
- gtk_size_group_add_widget(sg, label);
-
if (saved_status != NULL)
dropdown = create_status_type_menu(purple_savedstatus_get_type(saved_status));
else
dropdown = create_status_type_menu(PURPLE_STATUS_AWAY);
dialog->type = GTK_OPTION_MENU(dropdown);
- gtk_box_pack_start(GTK_BOX(hbox), dropdown, TRUE, TRUE, 0);
+ pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("_Status:"), sg, dropdown, TRUE, NULL);
/* Status message */
- hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0);
-
- label = gtk_label_new_with_mnemonic(_("_Message:"));
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
- gtk_size_group_add_widget(sg, label);
-
frame = pidgin_create_imhtml(TRUE, &text, &toolbar, NULL);
dialog->message = GTK_IMHTML(text);
- gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0);
+ hbox = pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("_Message:"), sg, frame, TRUE, NULL);
+ gtk_container_child_set(GTK_CONTAINER(vbox), hbox, "expand", TRUE, "fill", TRUE, NULL);
focus_chain = g_list_prepend(focus_chain, dialog->message);
gtk_container_set_focus_chain(GTK_CONTAINER(hbox), focus_chain);
g_list_free(focus_chain);
============================================================
--- pidgin/gtkutils.c 445a4bc847e82a5118d005659811f8fe4a7b9f13
+++ pidgin/gtkutils.c 96c62538770941f63ad8bf05f83eeedcdd9f8a32
@@ -1701,23 +1701,23 @@ GdkPixbuf * pidgin_create_status_icon(Pu
GdkPixbuf *pixbuf = NULL;
if (prim == PURPLE_STATUS_UNAVAILABLE)
- pixbuf = gtk_widget_render_icon (w, PIDGIN_STOCK_STATUS_BUSY,
- icon_size, "GtkWidget");
- else if (prim == PURPLE_STATUS_AWAY)
- pixbuf = gtk_widget_render_icon (w, PIDGIN_STOCK_STATUS_AWAY,
- icon_size, "GtkWidget");
- else if (prim == PURPLE_STATUS_EXTENDED_AWAY)
- pixbuf = gtk_widget_render_icon (w, PIDGIN_STOCK_STATUS_XA,
- icon_size, "GtkWidget");
- else if (prim == PURPLE_STATUS_INVISIBLE)
- pixbuf = gtk_widget_render_icon (w, PIDGIN_STOCK_STATUS_INVISIBLE,
- icon_size, "GtkWidget");
- else if (prim == PURPLE_STATUS_OFFLINE)
- pixbuf = gtk_widget_render_icon (w, PIDGIN_STOCK_STATUS_OFFLINE,
- icon_size, "GtkWidget");
- else
- pixbuf = gtk_widget_render_icon (w, PIDGIN_STOCK_STATUS_AVAILABLE,
- icon_size, "GtkWidget");
+ pixbuf = gtk_widget_render_icon (w, PIDGIN_STOCK_STATUS_BUSY,
+ icon_size, "GtkWidget");
+ else if (prim == PURPLE_STATUS_AWAY)
+ pixbuf = gtk_widget_render_icon (w, PIDGIN_STOCK_STATUS_AWAY,
+ icon_size, "GtkWidget");
+ else if (prim == PURPLE_STATUS_EXTENDED_AWAY)
+ pixbuf = gtk_widget_render_icon (w, PIDGIN_STOCK_STATUS_XA,
+ icon_size, "GtkWidget");
+ else if (prim == PURPLE_STATUS_INVISIBLE)
+ pixbuf = gtk_widget_render_icon (w, PIDGIN_STOCK_STATUS_INVISIBLE,
+ icon_size, "GtkWidget");
+ else if (prim == PURPLE_STATUS_OFFLINE)
+ pixbuf = gtk_widget_render_icon (w, PIDGIN_STOCK_STATUS_OFFLINE,
+ icon_size, "GtkWidget");
+ else
+ pixbuf = gtk_widget_render_icon (w, PIDGIN_STOCK_STATUS_AVAILABLE,
+ icon_size, "GtkWidget");
return pixbuf;
}
@@ -3321,6 +3321,40 @@ void pidgin_text_combo_box_entry_set_tex
gtk_entry_set_text(GTK_ENTRY(GTK_BIN((widget))->child), (text));
}
+GtkWidget *
+pidgin_add_widget_to_vbox(GtkBox *vbox, const char *widget_label, GtkSizeGroup *sg, GtkWidget *widget, gboolean expand, GtkWidget **p_label)
+{
+ GtkWidget *hbox;
+ GtkWidget *label = NULL;
+
+ if (widget_label) {
+ hbox = gtk_hbox_new(FALSE, 5);
+ gtk_widget_show(hbox);
+ gtk_box_pack_start(vbox, hbox, FALSE, FALSE, 0);
+
+ label = gtk_label_new_with_mnemonic(widget_label);
+ gtk_widget_show(label);
+ if (sg) {
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ gtk_size_group_add_widget(sg, label);
+ }
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+ } else {
+ hbox = GTK_WIDGET(vbox);
+ }
+
+ gtk_widget_show(widget);
+ gtk_box_pack_start(GTK_BOX(hbox), widget, expand, TRUE, 0);
+ if (label) {
+ gtk_label_set_mnemonic_widget(GTK_LABEL(label), widget);
+ pidgin_set_accessible_label (widget, label);
+ }
+
+ if (p_label)
+ (*p_label) = label;
+ return hbox;
+}
+
gboolean pidgin_auto_parent_window(GtkWidget *widget)
{
#if 0
============================================================
--- pidgin/gtkutils.h 19c063fe41d1baef7bc7b90f8698211f2c8c6238
+++ pidgin/gtkutils.h 6c8b5733117a6208617cce4f9f44c0cdfe22417f
@@ -794,5 +794,20 @@ gboolean pidgin_auto_parent_window(GtkWi
*/
gboolean pidgin_auto_parent_window(GtkWidget *window);
+/**
+ * Add a labelled widget to a GtkVBox
+ *
+ * @param vbox The GtkVBox to add the widget to.
+ * @param widget_label The label to give the widget.
+ * @param sg The GtkSizeGroup to add the label to.
+ * @param widget The GtkWidget to add
+ * @param expand Whether to expand the widget horizontally.
+ * @param p_label Place to store a pointer to the GtkLabel, or NULL if you don't care.
+ *
+ * @return A GtkHBox already added to the GtkVBox containing the GtkLabel and the GtkWidget.
+ * @since 2.4.0
+ */
+GtkWidget *pidgin_add_widget_to_vbox(GtkBox *vbox, const char *widget_label, GtkSizeGroup *sg, GtkWidget *widget, gboolean expand, GtkWidget **p_label);
+
#endif /* _PIDGINUTILS_H_ */
More information about the Commits
mailing list