pidgin/minidialog.c

Wed, 05 Feb 2020 02:01:25 -0600

author
Koosha Khajehmoogahi <koosha@posteo.de>
date
Wed, 05 Feb 2020 02:01:25 -0600
changeset 40288
b72d9137eca7
parent 40197
75ffd76260fc
child 40360
e21f3bbcc2a5
permissions
-rw-r--r--

Fix whitespace

Signed-off-by: Richard Laager <rlaager@pidgin.im>

21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
1 /* pidgin
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
2 *
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
3 * Pidgin is the legal property of its developers, whose names are too numerous
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
4 * to list here. Please refer to the COPYRIGHT file distributed with this
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
5 * source distribution.
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
6 *
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
7 * This program is free software; you can redistribute it and/or modify
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
8 * it under the terms of the GNU General Public License as published by
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
10 * (at your option) any later version.
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
11 *
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
15 * GNU General Public License for more details.
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
16 *
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
18 * along with this program; if not, write to the Free Software
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
20 */
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
21
21518
91a5412958cf Fix build.
Daniel Atallah <datallah@pidgin.im>
parents: 21338
diff changeset
22 #include "internal.h"
91a5412958cf Fix build.
Daniel Atallah <datallah@pidgin.im>
parents: 21338
diff changeset
23
26727
b8885bab55ab More updates for GTK+ 3.0. This only fixes the single-includes. Fixing all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 22859
diff changeset
24 #include <gtk/gtk.h>
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
25
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
26 #include "libpurple/prefs.h"
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
27
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
28 #include "pidgin/minidialog.h"
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
29 #include "pidgin/pidgin.h"
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
30
21964
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
31 static void pidgin_mini_dialog_init (PidginMiniDialog *self);
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
32 static void pidgin_mini_dialog_class_init (PidginMiniDialogClass *klass);
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
33
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
34 static gpointer pidgin_mini_dialog_parent_class = NULL;
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
35
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
36 static void
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
37 pidgin_mini_dialog_class_intern_init (gpointer klass)
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
38 {
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
39 pidgin_mini_dialog_parent_class = g_type_class_peek_parent (klass);
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
40 pidgin_mini_dialog_class_init ((PidginMiniDialogClass*) klass);
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
41 }
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
42
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
43 GType
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
44 pidgin_mini_dialog_get_type (void)
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
45 {
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
46 static GType g_define_type_id = 0;
22638
beb28fceb42c G_UNLIKELY is new in Glib 2.2 and resiak said this wasn't important here
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 22459
diff changeset
47 if (g_define_type_id == 0)
21964
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
48 {
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
49 static const GTypeInfo g_define_type_info = {
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
50 sizeof (PidginMiniDialogClass),
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
51 (GBaseInitFunc) NULL,
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
52 (GBaseFinalizeFunc) NULL,
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
53 (GClassInitFunc) pidgin_mini_dialog_class_intern_init,
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
54 (GClassFinalizeFunc) NULL,
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
55 NULL, /* class_data */
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
56 sizeof (PidginMiniDialog),
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
57 0, /* n_preallocs */
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
58 (GInstanceInitFunc) pidgin_mini_dialog_init,
22047
775ee83a1089 Compile warning fix
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21964
diff changeset
59 NULL,
21964
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
60 };
37994
11829debec7a Replace Gtk[HV]Box with GtkBox.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37990
diff changeset
61 g_define_type_id = g_type_register_static(GTK_TYPE_BOX,
21964
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
62 "PidginMiniDialog", &g_define_type_info, 0);
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
63 }
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
64 return g_define_type_id;
ee7d13612e4c Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents: 21606
diff changeset
65 }
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
66
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
67 enum
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
68 {
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
69 PROP_TITLE = 1,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
70 PROP_DESCRIPTION,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
71 PROP_ICON_NAME,
30635
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
72 PROP_CUSTOM_ICON,
31642
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
73 PROP_ENABLE_DESCRIPTION_MARKUP,
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
74
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
75 LAST_PROPERTY
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
76 } HazeConnectionProperties;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
77
35075
3a3c90a0ec07 pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
78 static GParamSpec *properties[LAST_PROPERTY];
3a3c90a0ec07 pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
79
39556
622bf98df0ac Remove unnecessary struct tags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39145
diff changeset
80 typedef struct
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
81 {
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
82 GtkImage *icon;
21324
1c03c4df1658 Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents: 21323
diff changeset
83 GtkBox *title_box;
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
84 GtkLabel *title;
21324
1c03c4df1658 Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents: 21323
diff changeset
85 GtkLabel *desc;
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
86 GtkBox *buttons;
31642
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
87 gboolean enable_description_markup;
21606
423607b9d0ca Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents: 21518
diff changeset
88
423607b9d0ca Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents: 21518
diff changeset
89 guint idle_destroy_cb_id;
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
90 } PidginMiniDialogPrivate;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
91
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
92 #define PIDGIN_MINI_DIALOG_GET_PRIVATE(dialog) \
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
93 ((PidginMiniDialogPrivate *) ((dialog)->priv))
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
94
30635
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
95 static PidginMiniDialog *
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
96 mini_dialog_new(const gchar *title, const gchar *description)
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
97 {
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
98 return g_object_new(PIDGIN_TYPE_MINI_DIALOG,
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
99 "title", title,
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
100 "description", description,
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
101 NULL);
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
102 }
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
103
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
104 PidginMiniDialog *
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
105 pidgin_mini_dialog_new(const gchar *title,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
106 const gchar *description,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
107 const gchar *icon_name)
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
108 {
30635
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
109 PidginMiniDialog *mini_dialog = mini_dialog_new(title, description);
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
110 pidgin_mini_dialog_set_icon_name(mini_dialog, icon_name);
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
111 return mini_dialog;
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
112 }
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
113
30635
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
114 PidginMiniDialog *
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
115 pidgin_mini_dialog_new_with_custom_icon(const gchar *title,
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
116 const gchar *description,
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
117 GdkPixbuf *custom_icon)
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
118 {
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
119 PidginMiniDialog *mini_dialog = mini_dialog_new(title, description);
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
120 pidgin_mini_dialog_set_custom_icon(mini_dialog, custom_icon);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
121 return mini_dialog;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
122 }
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
123
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
124 void
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
125 pidgin_mini_dialog_set_title(PidginMiniDialog *mini_dialog,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
126 const char *title)
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
127 {
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
128 g_object_set(G_OBJECT(mini_dialog), "title", title, NULL);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
129 }
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
130
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
131 void
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
132 pidgin_mini_dialog_set_description(PidginMiniDialog *mini_dialog,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
133 const char *description)
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
134 {
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
135 g_object_set(G_OBJECT(mini_dialog), "description", description, NULL);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
136 }
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
137
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
138 void
31642
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
139 pidgin_mini_dialog_enable_description_markup(PidginMiniDialog *mini_dialog)
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
140 {
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
141 g_object_set(G_OBJECT(mini_dialog), "enable-description-markup", TRUE, NULL);
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
142 }
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
143
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
144 void pidgin_mini_dialog_set_link_callback(PidginMiniDialog *mini_dialog, GCallback cb, gpointer user_data)
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
145 {
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
146 g_signal_connect(PIDGIN_MINI_DIALOG_GET_PRIVATE(mini_dialog)->desc, "activate-link", cb, user_data);
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
147 }
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
148
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
149 void
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
150 pidgin_mini_dialog_set_icon_name(PidginMiniDialog *mini_dialog,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
151 const char *icon_name)
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
152 {
30635
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
153 g_object_set(G_OBJECT(mini_dialog), "icon-name", icon_name, NULL);
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
154 }
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
155
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
156 void
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
157 pidgin_mini_dialog_set_custom_icon(PidginMiniDialog *mini_dialog, GdkPixbuf *custom_icon)
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
158 {
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
159 g_object_set(G_OBJECT(mini_dialog), "custom-icon", custom_icon, NULL);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
160 }
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
161
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
162 struct _mini_dialog_button_clicked_cb_data
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
163 {
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
164 PidginMiniDialog *mini_dialog;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
165 PidginMiniDialogCallback callback;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
166 gpointer user_data;
31642
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
167 gboolean close_dialog_after_click;
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
168 };
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
169
21328
6fcd010acaa3 Add pidgin_mini_dialog_get_num_children(), a convenient way to check how many
Will Thompson <resiak@pidgin.im>
parents: 21327
diff changeset
170 guint
6fcd010acaa3 Add pidgin_mini_dialog_get_num_children(), a convenient way to check how many
Will Thompson <resiak@pidgin.im>
parents: 21327
diff changeset
171 pidgin_mini_dialog_get_num_children(PidginMiniDialog *mini_dialog)
6fcd010acaa3 Add pidgin_mini_dialog_get_num_children(), a convenient way to check how many
Will Thompson <resiak@pidgin.im>
parents: 21327
diff changeset
172 {
33170
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
173 GList *tmp;
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
174 guint len;
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
175 tmp = gtk_container_get_children(GTK_CONTAINER(mini_dialog->contents));
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
176 len = g_list_length(tmp);
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
177 g_list_free(tmp);
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
178 return len;
21328
6fcd010acaa3 Add pidgin_mini_dialog_get_num_children(), a convenient way to check how many
Will Thompson <resiak@pidgin.im>
parents: 21327
diff changeset
179 }
6fcd010acaa3 Add pidgin_mini_dialog_get_num_children(), a convenient way to check how many
Will Thompson <resiak@pidgin.im>
parents: 21327
diff changeset
180
21327
5bf0b779fd1a Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents: 21324
diff changeset
181 static gboolean
5bf0b779fd1a Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents: 21324
diff changeset
182 idle_destroy_cb(GtkWidget *mini_dialog)
5bf0b779fd1a Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents: 21324
diff changeset
183 {
5bf0b779fd1a Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents: 21324
diff changeset
184 gtk_widget_destroy(mini_dialog);
5bf0b779fd1a Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents: 21324
diff changeset
185 return FALSE;
5bf0b779fd1a Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents: 21324
diff changeset
186 }
5bf0b779fd1a Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents: 21324
diff changeset
187
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
188 static void
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
189 mini_dialog_button_clicked_cb(GtkButton *button,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
190 gpointer user_data)
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
191 {
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
192 struct _mini_dialog_button_clicked_cb_data *data = user_data;
21606
423607b9d0ca Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents: 21518
diff changeset
193 PidginMiniDialogPrivate *priv =
423607b9d0ca Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents: 21518
diff changeset
194 PIDGIN_MINI_DIALOG_GET_PRIVATE(data->mini_dialog);
423607b9d0ca Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents: 21518
diff changeset
195
31642
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
196 if (data->close_dialog_after_click) {
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
197 /* Set up the destruction callback before calling the clicked callback,
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
198 * so that if the mini-dialog gets destroyed during the clicked callback
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
199 * the idle_destroy_cb is correctly removed by _finalize.
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
200 */
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
201 priv->idle_destroy_cb_id =
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
202 g_idle_add((GSourceFunc) idle_destroy_cb, data->mini_dialog);
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
203 }
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
204
22459
ebbf40e23d64 Don't call NULL callbacks. Fixes #4901
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 22047
diff changeset
205 if (data->callback != NULL)
ebbf40e23d64 Don't call NULL callbacks. Fixes #4901
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 22047
diff changeset
206 data->callback(data->mini_dialog, button, data->user_data);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
207
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
208 }
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
209
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
210 static void
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
211 mini_dialog_button_destroy_cb(GtkButton *button,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
212 gpointer user_data)
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
213 {
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
214 struct _mini_dialog_button_clicked_cb_data *data = user_data;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
215 g_free(data);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
216 }
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
217
31642
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
218 static void
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
219 mini_dialog_add_button(PidginMiniDialog *self,
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
220 const char *text,
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
221 PidginMiniDialogCallback clicked_cb,
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
222 gpointer user_data,
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
223 gboolean close_dialog_after_click)
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
224 {
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
225 PidginMiniDialogPrivate *priv = PIDGIN_MINI_DIALOG_GET_PRIVATE(self);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
226 struct _mini_dialog_button_clicked_cb_data *callback_data
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
227 = g_new0(struct _mini_dialog_button_clicked_cb_data, 1);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
228 GtkWidget *button = gtk_button_new();
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
229 GtkWidget *label = gtk_label_new(NULL);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
230 char *button_text =
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
231 g_strdup_printf("<span size=\"smaller\">%s</span>", text);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
232
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
233 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), button_text);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
234 g_free(button_text);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
235
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
236 callback_data->mini_dialog = self;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
237 callback_data->callback = clicked_cb;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
238 callback_data->user_data = user_data;
31642
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
239 callback_data->close_dialog_after_click = close_dialog_after_click;
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
240 g_signal_connect(G_OBJECT(button), "clicked",
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
241 (GCallback) mini_dialog_button_clicked_cb, callback_data);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
242 g_signal_connect(G_OBJECT(button), "destroy",
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
243 (GCallback) mini_dialog_button_destroy_cb, callback_data);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
244
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
245 gtk_container_add(GTK_CONTAINER(button), label);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
246
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
247 gtk_box_pack_end(GTK_BOX(priv->buttons), button, FALSE, FALSE,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
248 0);
21324
1c03c4df1658 Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents: 21323
diff changeset
249 gtk_widget_show_all(GTK_WIDGET(button));
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
250 }
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
251
31642
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
252 void
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
253 pidgin_mini_dialog_add_button(PidginMiniDialog *self,
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
254 const char *text,
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
255 PidginMiniDialogCallback clicked_cb,
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
256 gpointer user_data)
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
257 {
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
258 mini_dialog_add_button(self, text, clicked_cb, user_data, TRUE);
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
259 }
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
260
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
261 void
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
262 pidgin_mini_dialog_add_non_closing_button(PidginMiniDialog *self,
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
263 const char *text,
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
264 PidginMiniDialogCallback clicked_cb,
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
265 gpointer user_data)
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
266 {
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
267 mini_dialog_add_button(self, text, clicked_cb, user_data, FALSE);
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
268 }
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
269
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
270 static void
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
271 pidgin_mini_dialog_get_property(GObject *object,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
272 guint property_id,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
273 GValue *value,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
274 GParamSpec *pspec)
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
275 {
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
276 PidginMiniDialog *self = PIDGIN_MINI_DIALOG(object);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
277 PidginMiniDialogPrivate *priv = PIDGIN_MINI_DIALOG_GET_PRIVATE(self);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
278
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
279 switch (property_id) {
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
280 case PROP_TITLE:
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
281 g_value_set_string(value, gtk_label_get_text(priv->title));
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
282 break;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
283 case PROP_DESCRIPTION:
21324
1c03c4df1658 Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents: 21323
diff changeset
284 g_value_set_string(value, gtk_label_get_text(priv->desc));
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
285 break;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
286 case PROP_ICON_NAME:
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
287 {
39145
e12cc371a615 Port PidginMiniDialog from deprecated GtkStock name to GtkIconTheme name
Mike Ruprecht <cmaiku@gmail.com>
parents: 38007
diff changeset
288 const gchar *icon_name = NULL;
e12cc371a615 Port PidginMiniDialog from deprecated GtkStock name to GtkIconTheme name
Mike Ruprecht <cmaiku@gmail.com>
parents: 38007
diff changeset
289 gtk_image_get_icon_name(priv->icon, &icon_name, NULL);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
290 g_value_set_string(value, icon_name);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
291 break;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
292 }
30635
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
293 case PROP_CUSTOM_ICON:
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
294 g_value_set_object(value, gtk_image_get_pixbuf(priv->icon));
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
295 break;
31642
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
296 case PROP_ENABLE_DESCRIPTION_MARKUP:
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
297 g_value_set_boolean(value, priv->enable_description_markup);
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
298 break;
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
299 default:
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
300 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
301 }
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
302 }
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
303
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
304 static void
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
305 mini_dialog_set_title(PidginMiniDialog *self,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
306 const char *title)
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
307 {
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
308 PidginMiniDialogPrivate *priv = PIDGIN_MINI_DIALOG_GET_PRIVATE(self);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
309
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
310 char *title_esc = g_markup_escape_text(title, -1);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
311 char *title_markup = g_strdup_printf(
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
312 "<span weight=\"bold\" size=\"smaller\">%s</span>",
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
313 title_esc ? title_esc : "");
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
314
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
315 gtk_label_set_markup(priv->title, title_markup);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
316
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
317 g_free(title_esc);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
318 g_free(title_markup);
35060
195dbb3b6432 pidgin: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 33685
diff changeset
319
35075
3a3c90a0ec07 pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
320 g_object_notify_by_pspec(G_OBJECT(self), properties[PROP_TITLE]);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
321 }
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
322
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
323 static void
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
324 mini_dialog_set_description(PidginMiniDialog *self,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
325 const char *description)
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
326 {
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
327 PidginMiniDialogPrivate *priv = PIDGIN_MINI_DIALOG_GET_PRIVATE(self);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
328 if(description)
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
329 {
31642
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
330 char *desc_esc = priv->enable_description_markup ? g_strdup(description) : g_markup_escape_text(description, -1);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
331 char *desc_markup = g_strdup_printf(
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
332 "<span size=\"smaller\">%s</span>", desc_esc);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
333
21324
1c03c4df1658 Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents: 21323
diff changeset
334 gtk_label_set_markup(priv->desc, desc_markup);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
335
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
336 g_free(desc_esc);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
337 g_free(desc_markup);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
338
21333
630a8a394a5a Remove a redundant hbox around PidginMiniDialog's description label.
Will Thompson <resiak@pidgin.im>
parents: 21330
diff changeset
339 gtk_widget_show(GTK_WIDGET(priv->desc));
21336
ee156675b0f5 Really actually hide the description label inside a minidialog, even when
Will Thompson <resiak@pidgin.im>
parents: 21335
diff changeset
340 g_object_set(G_OBJECT(priv->desc), "no-show-all", FALSE, NULL);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
341 }
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
342 else
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
343 {
21324
1c03c4df1658 Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents: 21323
diff changeset
344 gtk_label_set_text(priv->desc, NULL);
21333
630a8a394a5a Remove a redundant hbox around PidginMiniDialog's description label.
Will Thompson <resiak@pidgin.im>
parents: 21330
diff changeset
345 gtk_widget_hide(GTK_WIDGET(priv->desc));
21338
785e58fb02de Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents: 21336
diff changeset
346 /* make calling show_all() on the minidialog not affect desc
785e58fb02de Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents: 21336
diff changeset
347 * even though it's packed inside it.
785e58fb02de Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents: 21336
diff changeset
348 */
21336
ee156675b0f5 Really actually hide the description label inside a minidialog, even when
Will Thompson <resiak@pidgin.im>
parents: 21335
diff changeset
349 g_object_set(G_OBJECT(priv->desc), "no-show-all", TRUE, NULL);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
350 }
35060
195dbb3b6432 pidgin: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 33685
diff changeset
351
35075
3a3c90a0ec07 pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
352 g_object_notify_by_pspec(G_OBJECT(self), properties[PROP_DESCRIPTION]);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
353 }
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
354
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
355 static void
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
356 pidgin_mini_dialog_set_property(GObject *object,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
357 guint property_id,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
358 const GValue *value,
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
359 GParamSpec *pspec)
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
360 {
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
361 PidginMiniDialog *self = PIDGIN_MINI_DIALOG(object);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
362 PidginMiniDialogPrivate *priv = PIDGIN_MINI_DIALOG_GET_PRIVATE(self);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
363
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
364 switch (property_id) {
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
365 case PROP_TITLE:
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
366 mini_dialog_set_title(self, g_value_get_string(value));
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
367 break;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
368 case PROP_DESCRIPTION:
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
369 mini_dialog_set_description(self, g_value_get_string(value));
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
370 break;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
371 case PROP_ICON_NAME:
39145
e12cc371a615 Port PidginMiniDialog from deprecated GtkStock name to GtkIconTheme name
Mike Ruprecht <cmaiku@gmail.com>
parents: 38007
diff changeset
372 gtk_image_set_from_icon_name(priv->icon,
e12cc371a615 Port PidginMiniDialog from deprecated GtkStock name to GtkIconTheme name
Mike Ruprecht <cmaiku@gmail.com>
parents: 38007
diff changeset
373 g_value_get_string(value),
e12cc371a615 Port PidginMiniDialog from deprecated GtkStock name to GtkIconTheme name
Mike Ruprecht <cmaiku@gmail.com>
parents: 38007
diff changeset
374 GTK_ICON_SIZE_SMALL_TOOLBAR);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
375 break;
30635
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
376 case PROP_CUSTOM_ICON:
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
377 gtk_image_set_from_pixbuf(priv->icon, g_value_get_object(value));
30877
e0c4797434bf There seems to be a missing break here. I noticed it in the log, but
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30635
diff changeset
378 break;
31642
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
379 case PROP_ENABLE_DESCRIPTION_MARKUP:
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
380 priv->enable_description_markup = g_value_get_boolean(value);
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
381 break;
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
382 default:
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
383 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
384 }
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
385 }
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
386
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
387 static void
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
388 pidgin_mini_dialog_finalize(GObject *object)
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
389 {
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
390 PidginMiniDialog *self = PIDGIN_MINI_DIALOG(object);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
391 PidginMiniDialogPrivate *priv = PIDGIN_MINI_DIALOG_GET_PRIVATE(self);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
392
21606
423607b9d0ca Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents: 21518
diff changeset
393 if (priv->idle_destroy_cb_id)
423607b9d0ca Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents: 21518
diff changeset
394 g_source_remove(priv->idle_destroy_cb_id);
423607b9d0ca Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents: 21518
diff changeset
395
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
396 g_free(priv);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
397 self->priv = NULL;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
398
21338
785e58fb02de Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents: 21336
diff changeset
399 purple_prefs_disconnect_by_handle(self);
785e58fb02de Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents: 21336
diff changeset
400
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
401 G_OBJECT_CLASS (pidgin_mini_dialog_parent_class)->finalize (object);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
402 }
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
403
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
404 static void
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
405 pidgin_mini_dialog_class_init(PidginMiniDialogClass *klass)
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
406 {
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
407 GObjectClass *object_class = G_OBJECT_CLASS(klass);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
408
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
409 object_class->get_property = pidgin_mini_dialog_get_property;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
410 object_class->set_property = pidgin_mini_dialog_set_property;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
411 object_class->finalize = pidgin_mini_dialog_finalize;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
412
35075
3a3c90a0ec07 pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
413 properties[PROP_TITLE] = g_param_spec_string("title",
3a3c90a0ec07 pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
414 "title",
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
415 "String specifying the mini-dialog's title", NULL,
35060
195dbb3b6432 pidgin: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 33685
diff changeset
416 G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
417
35075
3a3c90a0ec07 pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
418 properties[PROP_DESCRIPTION] = g_param_spec_string("description",
35082
05a66637ec23 pidgin: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35075
diff changeset
419 "description",
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
420 "Description text for the mini-dialog, if desired", NULL,
35060
195dbb3b6432 pidgin: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 33685
diff changeset
421 G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
422
35075
3a3c90a0ec07 pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
423 properties[PROP_ICON_NAME] = g_param_spec_string("icon-name",
35082
05a66637ec23 pidgin: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35075
diff changeset
424 "icon-name",
39145
e12cc371a615 Port PidginMiniDialog from deprecated GtkStock name to GtkIconTheme name
Mike Ruprecht <cmaiku@gmail.com>
parents: 38007
diff changeset
425 "String specifying the GtkIconTheme name of the dialog's icon",
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
426 NULL,
35060
195dbb3b6432 pidgin: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 33685
diff changeset
427 G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE);
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30877
diff changeset
428
35075
3a3c90a0ec07 pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
429 properties[PROP_CUSTOM_ICON] = g_param_spec_object("custom-icon",
35082
05a66637ec23 pidgin: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35075
diff changeset
430 "custom-icon",
30635
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
431 "Pixbuf to use as the dialog's icon",
e9893ecc9057 Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 29496
diff changeset
432 GDK_TYPE_PIXBUF,
35060
195dbb3b6432 pidgin: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 33685
diff changeset
433 G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE);
31642
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
434
35075
3a3c90a0ec07 pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
435 properties[PROP_ENABLE_DESCRIPTION_MARKUP] =
3a3c90a0ec07 pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
436 g_param_spec_boolean("enable-description-markup",
3a3c90a0ec07 pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
437 "enable-description-markup",
31642
ad20028f085c Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents: 31294
diff changeset
438 "Use GMarkup in the description text", FALSE,
35060
195dbb3b6432 pidgin: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 33685
diff changeset
439 G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE);
35082
05a66637ec23 pidgin: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35075
diff changeset
440
05a66637ec23 pidgin: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35075
diff changeset
441 g_object_class_install_properties(object_class, LAST_PROPERTY, properties);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
442 }
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
443
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
444 static void
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
445 pidgin_mini_dialog_init(PidginMiniDialog *self)
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
446 {
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
447 GtkBox *self_box = GTK_BOX(self);
21324
1c03c4df1658 Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents: 21323
diff changeset
448
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
449 PidginMiniDialogPrivate *priv = g_new0(PidginMiniDialogPrivate, 1);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
450 self->priv = priv;
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
451
37994
11829debec7a Replace Gtk[HV]Box with GtkBox.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37990
diff changeset
452 gtk_orientable_set_orientation(GTK_ORIENTABLE(self), GTK_ORIENTATION_VERTICAL);
11829debec7a Replace Gtk[HV]Box with GtkBox.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37990
diff changeset
453
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
454 gtk_container_set_border_width(GTK_CONTAINER(self), PIDGIN_HIG_BOX_SPACE);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
455
35527
707c3c2b2c8a Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35454
diff changeset
456 priv->title_box = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL, PIDGIN_HIG_BOX_SPACE));
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
457
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
458 priv->icon = GTK_IMAGE(gtk_image_new());
37990
710f725725a8 Replace the deprecated gtk_misc_set_alignment function.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37422
diff changeset
459 gtk_widget_set_halign(GTK_WIDGET(priv->icon), GTK_ALIGN_START);
710f725725a8 Replace the deprecated gtk_misc_set_alignment function.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37422
diff changeset
460 gtk_widget_set_valign(GTK_WIDGET(priv->icon), GTK_ALIGN_START);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
461
21333
630a8a394a5a Remove a redundant hbox around PidginMiniDialog's description label.
Will Thompson <resiak@pidgin.im>
parents: 21330
diff changeset
462 priv->title = GTK_LABEL(gtk_label_new(NULL));
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
463 gtk_label_set_line_wrap(priv->title, TRUE);
22859
acd001473a72 Make the labels in the minidialogs selectable.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22638
diff changeset
464 gtk_label_set_selectable(priv->title, TRUE);
38007
3b971d2ecae1 Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37994
diff changeset
465 gtk_label_set_xalign(priv->title, 0);
3b971d2ecae1 Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37994
diff changeset
466 gtk_label_set_yalign(priv->title, 0);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
467
21324
1c03c4df1658 Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents: 21323
diff changeset
468 gtk_box_pack_start(priv->title_box, GTK_WIDGET(priv->icon), FALSE, FALSE, 0);
1c03c4df1658 Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents: 21323
diff changeset
469 gtk_box_pack_start(priv->title_box, GTK_WIDGET(priv->title), TRUE, TRUE, 0);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
470
21333
630a8a394a5a Remove a redundant hbox around PidginMiniDialog's description label.
Will Thompson <resiak@pidgin.im>
parents: 21330
diff changeset
471 priv->desc = GTK_LABEL(gtk_label_new(NULL));
21324
1c03c4df1658 Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents: 21323
diff changeset
472 gtk_label_set_line_wrap(priv->desc, TRUE);
38007
3b971d2ecae1 Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37994
diff changeset
473 gtk_label_set_xalign(priv->desc, 0);
3b971d2ecae1 Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37994
diff changeset
474 gtk_label_set_yalign(priv->desc, 0);
22859
acd001473a72 Make the labels in the minidialogs selectable.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22638
diff changeset
475 gtk_label_set_selectable(priv->desc, TRUE);
21336
ee156675b0f5 Really actually hide the description label inside a minidialog, even when
Will Thompson <resiak@pidgin.im>
parents: 21335
diff changeset
476 /* make calling show_all() on the minidialog not affect desc even though
ee156675b0f5 Really actually hide the description label inside a minidialog, even when
Will Thompson <resiak@pidgin.im>
parents: 21335
diff changeset
477 * it's packed inside it.
ee156675b0f5 Really actually hide the description label inside a minidialog, even when
Will Thompson <resiak@pidgin.im>
parents: 21335
diff changeset
478 */
ee156675b0f5 Really actually hide the description label inside a minidialog, even when
Will Thompson <resiak@pidgin.im>
parents: 21335
diff changeset
479 g_object_set(G_OBJECT(priv->desc), "no-show-all", TRUE, NULL);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
480
35527
707c3c2b2c8a Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35454
diff changeset
481 self->contents = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL, 0));
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
482
35527
707c3c2b2c8a Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35454
diff changeset
483 priv->buttons = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0));
21324
1c03c4df1658 Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents: 21323
diff changeset
484
1c03c4df1658 Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents: 21323
diff changeset
485 gtk_box_pack_start(self_box, GTK_WIDGET(priv->title_box), FALSE, FALSE, 0);
21333
630a8a394a5a Remove a redundant hbox around PidginMiniDialog's description label.
Will Thompson <resiak@pidgin.im>
parents: 21330
diff changeset
486 gtk_box_pack_start(self_box, GTK_WIDGET(priv->desc), FALSE, FALSE, 0);
21323
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
487 gtk_box_pack_start(self_box, GTK_WIDGET(self->contents), TRUE, TRUE, 0);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
488 gtk_box_pack_start(self_box, GTK_WIDGET(priv->buttons), FALSE, FALSE, 0);
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
489
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
490 gtk_widget_show_all(GTK_WIDGET(self));
0ad61638683f Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff changeset
491 }

mercurial