Fri, 05 Mar 2021 03:31:29 -0600
Create a PidginAvatar widget.
This does everything the existing code does, but trying to integrate right now
is kind of difficult. The plan is to use this in a new PidginInfoPane I have
started, but that change got very large so I just packed it into the end of
the existing info pane.
The only things that are not implement right now, are making menu items
insensitive and that's because we need to figure out a better want to handle
custom avatars for users.
Testing Done:
Ran locally.
Reviewed at https://reviews.imfreedom.org/r/528/
|
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 | |
|
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
|
22 | #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
|
23 | |
|
40360
e21f3bbcc2a5
Update all of the pidgin code to include purple.h
Gary Kramlich <grim@reaperworld.com>
parents:
40197
diff
changeset
|
24 | #include <purple.h> |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
25 | |
|
40496
6941fece679b
phase2 of pidgin.h: move existing file to pidgincore.h
Gary Kramlich <grim@reaperworld.com>
parents:
40490
diff
changeset
|
26 | #include "minidialog.h" |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
27 | |
|
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
|
28 | 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
|
29 | 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
|
30 | |
|
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 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
|
32 | |
|
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 | 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
|
34 | 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
|
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 | 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
|
37 | 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
|
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 | |
|
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 | 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
|
41 | 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
|
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 | 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
|
44 | 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
|
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 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
|
47 | 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
|
48 | (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
|
49 | (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
|
50 | (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
|
51 | (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
|
52 | 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
|
53 | 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
|
54 | 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
|
55 | (GInstanceInitFunc) pidgin_mini_dialog_init, |
| 22047 | 56 | 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
|
57 | }; |
|
37994
11829debec7a
Replace Gtk[HV]Box with GtkBox.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
58 | 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
|
59 | "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
|
60 | } |
|
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
|
61 | 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
|
62 | } |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
63 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
64 | enum |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
65 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
66 | PROP_TITLE = 1, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
67 | PROP_DESCRIPTION, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
68 | PROP_ICON_NAME, |
|
30635
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
69 | 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
|
70 | 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
|
71 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
72 | LAST_PROPERTY |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
73 | } HazeConnectionProperties; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
74 | |
|
35075
3a3c90a0ec07
pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents:
35060
diff
changeset
|
75 | 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
|
76 | |
|
39556
622bf98df0ac
Remove unnecessary struct tags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39145
diff
changeset
|
77 | typedef struct |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
78 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
79 | 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
|
80 | 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
|
81 | 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
|
82 | GtkLabel *desc; |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
83 | 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
|
84 | 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
|
85 | |
|
423607b9d0ca
Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents:
21518
diff
changeset
|
86 | 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
|
87 | } PidginMiniDialogPrivate; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
88 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
89 | #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
|
90 | ((PidginMiniDialogPrivate *) ((dialog)->priv)) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
91 | |
|
30635
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
92 | static PidginMiniDialog * |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
93 | 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
|
94 | { |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
95 | 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
|
96 | "title", title, |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
97 | "description", description, |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
98 | NULL); |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
99 | } |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
100 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
101 | PidginMiniDialog * |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
102 | 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
|
103 | const gchar *description, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
104 | 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
|
105 | { |
|
30635
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
106 | 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
|
107 | 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
|
108 | return mini_dialog; |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
109 | } |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
110 | |
|
30635
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
111 | PidginMiniDialog * |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
112 | 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
|
113 | const gchar *description, |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
114 | GdkPixbuf *custom_icon) |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
115 | { |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
116 | 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
|
117 | 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
|
118 | return mini_dialog; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
119 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
120 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
121 | void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
122 | 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
|
123 | const char *title) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
124 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
125 | 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
|
126 | } |
|
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 | void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
129 | 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
|
130 | const char *description) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
131 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
132 | 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
|
133 | } |
|
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 | void |
|
31642
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
136 | 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
|
137 | { |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
138 | 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
|
139 | } |
|
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 | 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
|
142 | { |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
143 | 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
|
144 | } |
|
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 | void |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
147 | 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
|
148 | 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
|
149 | { |
|
30635
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
150 | 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
|
151 | } |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
152 | |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
153 | void |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
154 | 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
|
155 | { |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
156 | 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
|
157 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
158 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
159 | 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
|
160 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
161 | PidginMiniDialog *mini_dialog; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
162 | PidginMiniDialogCallback callback; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
163 | 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
|
164 | 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
|
165 | }; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
166 | |
|
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
|
167 | 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
|
168 | 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
|
169 | { |
|
33170
ce4447562d64
Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33133
diff
changeset
|
170 | GList *tmp; |
|
ce4447562d64
Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33133
diff
changeset
|
171 | guint len; |
|
ce4447562d64
Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33133
diff
changeset
|
172 | 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
|
173 | len = g_list_length(tmp); |
|
ce4447562d64
Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33133
diff
changeset
|
174 | g_list_free(tmp); |
|
ce4447562d64
Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33133
diff
changeset
|
175 | 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
|
176 | } |
|
6fcd010acaa3
Add pidgin_mini_dialog_get_num_children(), a convenient way to check how many
Will Thompson <resiak@pidgin.im>
parents:
21327
diff
changeset
|
177 | |
|
21327
5bf0b779fd1a
Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents:
21324
diff
changeset
|
178 | static gboolean |
|
5bf0b779fd1a
Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents:
21324
diff
changeset
|
179 | 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
|
180 | { |
|
5bf0b779fd1a
Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents:
21324
diff
changeset
|
181 | 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
|
182 | return FALSE; |
|
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 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
185 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
186 | 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
|
187 | gpointer user_data) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
188 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
189 | 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
|
190 | 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
|
191 | 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
|
192 | |
|
31642
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
193 | 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
|
194 | /* 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
|
195 | * 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
|
196 | * 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
|
197 | */ |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
198 | 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
|
199 | 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
|
200 | } |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
201 | |
|
22459
ebbf40e23d64
Don't call NULL callbacks. Fixes #4901
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22047
diff
changeset
|
202 | if (data->callback != NULL) |
|
ebbf40e23d64
Don't call NULL callbacks. Fixes #4901
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22047
diff
changeset
|
203 | 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
|
204 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
205 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
206 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
207 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
208 | 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
|
209 | gpointer user_data) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
210 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
211 | 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
|
212 | g_free(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 | |
|
31642
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
215 | static void |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
216 | 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
|
217 | 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
|
218 | 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
|
219 | 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
|
220 | 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
|
221 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
222 | 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
|
223 | 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
|
224 | = 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
|
225 | 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
|
226 | 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
|
227 | char *button_text = |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
228 | 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
|
229 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
230 | 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
|
231 | 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
|
232 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
233 | 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
|
234 | 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
|
235 | 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
|
236 | 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
|
237 | 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
|
238 | (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
|
239 | 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
|
240 | (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
|
241 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
242 | 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
|
243 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
244 | 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
|
245 | 0); |
|
21324
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
246 | 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
|
247 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
248 | |
|
31642
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
249 | void |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
250 | 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
|
251 | 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
|
252 | 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
|
253 | 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
|
254 | { |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
255 | 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
|
256 | } |
|
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 | void |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
259 | 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
|
260 | 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
|
261 | 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
|
262 | 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
|
263 | { |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
264 | 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
|
265 | } |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
266 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
267 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
268 | 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
|
269 | guint property_id, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
270 | GValue *value, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
271 | GParamSpec *pspec) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
272 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
273 | 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
|
274 | 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
|
275 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
276 | switch (property_id) { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
277 | case PROP_TITLE: |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
278 | 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
|
279 | break; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
280 | 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
|
281 | 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
|
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_ICON_NAME: |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
284 | { |
|
39145
e12cc371a615
Port PidginMiniDialog from deprecated GtkStock name to GtkIconTheme name
Mike Ruprecht <cmaiku@gmail.com>
parents:
38007
diff
changeset
|
285 | const gchar *icon_name = NULL; |
|
e12cc371a615
Port PidginMiniDialog from deprecated GtkStock name to GtkIconTheme name
Mike Ruprecht <cmaiku@gmail.com>
parents:
38007
diff
changeset
|
286 | 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
|
287 | 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
|
288 | break; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
289 | } |
|
30635
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
290 | case PROP_CUSTOM_ICON: |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
291 | 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
|
292 | break; |
|
31642
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
293 | 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
|
294 | 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
|
295 | break; |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
296 | default: |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
297 | 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
|
298 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
299 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
300 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
301 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
302 | 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
|
303 | const char *title) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
304 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
305 | 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
|
306 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
307 | 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
|
308 | 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
|
309 | "<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
|
310 | 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
|
311 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
312 | 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
|
313 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
314 | 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
|
315 | 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
|
316 | |
|
35075
3a3c90a0ec07
pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents:
35060
diff
changeset
|
317 | 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
|
318 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
319 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
320 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
321 | 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
|
322 | const char *description) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
323 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
324 | 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
|
325 | if(description) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
326 | { |
|
31642
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
327 | 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
|
328 | 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
|
329 | "<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
|
330 | |
|
21324
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
331 | 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
|
332 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
333 | 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
|
334 | 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
|
335 | |
|
21333
630a8a394a5a
Remove a redundant hbox around PidginMiniDialog's description label.
Will Thompson <resiak@pidgin.im>
parents:
21330
diff
changeset
|
336 | 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
|
337 | 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
|
338 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
339 | else |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
340 | { |
|
21324
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
341 | 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
|
342 | 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
|
343 | /* 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
|
344 | * 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
|
345 | */ |
|
21336
ee156675b0f5
Really actually hide the description label inside a minidialog, even when
Will Thompson <resiak@pidgin.im>
parents:
21335
diff
changeset
|
346 | 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
|
347 | } |
|
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
|
348 | |
|
35075
3a3c90a0ec07
pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents:
35060
diff
changeset
|
349 | 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
|
350 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
351 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
352 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
353 | 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
|
354 | guint property_id, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
355 | const GValue *value, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
356 | GParamSpec *pspec) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
357 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
358 | 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
|
359 | 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
|
360 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
361 | switch (property_id) { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
362 | case PROP_TITLE: |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
363 | 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
|
364 | break; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
365 | case PROP_DESCRIPTION: |
|
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_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
|
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_ICON_NAME: |
|
39145
e12cc371a615
Port PidginMiniDialog from deprecated GtkStock name to GtkIconTheme name
Mike Ruprecht <cmaiku@gmail.com>
parents:
38007
diff
changeset
|
369 | 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
|
370 | g_value_get_string(value), |
|
e12cc371a615
Port PidginMiniDialog from deprecated GtkStock name to GtkIconTheme name
Mike Ruprecht <cmaiku@gmail.com>
parents:
38007
diff
changeset
|
371 | 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
|
372 | break; |
|
30635
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
373 | case PROP_CUSTOM_ICON: |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
374 | 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
|
375 | break; |
|
31642
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
376 | 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
|
377 | 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
|
378 | break; |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
379 | default: |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
380 | 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
|
381 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
382 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
383 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
384 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
385 | 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
|
386 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
387 | 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
|
388 | 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
|
389 | |
|
21606
423607b9d0ca
Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents:
21518
diff
changeset
|
390 | 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
|
391 | 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
|
392 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
393 | g_free(priv); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
394 | self->priv = NULL; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
395 | |
|
21338
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
396 | 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
|
397 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
398 | 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
|
399 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
400 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
401 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
402 | 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
|
403 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
404 | 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
|
405 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
406 | 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
|
407 | 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
|
408 | 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
|
409 | |
|
35075
3a3c90a0ec07
pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents:
35060
diff
changeset
|
410 | 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
|
411 | "title", |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
412 | "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
|
413 | 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
|
414 | |
|
35075
3a3c90a0ec07
pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents:
35060
diff
changeset
|
415 | 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
|
416 | "description", |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
417 | "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
|
418 | 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
|
419 | |
|
35075
3a3c90a0ec07
pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents:
35060
diff
changeset
|
420 | 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
|
421 | "icon-name", |
|
39145
e12cc371a615
Port PidginMiniDialog from deprecated GtkStock name to GtkIconTheme name
Mike Ruprecht <cmaiku@gmail.com>
parents:
38007
diff
changeset
|
422 | "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
|
423 | 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
|
424 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE); |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
30877
diff
changeset
|
425 | |
|
35075
3a3c90a0ec07
pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents:
35060
diff
changeset
|
426 | 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
|
427 | "custom-icon", |
|
30635
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
428 | "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
|
429 | 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
|
430 | 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
|
431 | |
|
35075
3a3c90a0ec07
pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents:
35060
diff
changeset
|
432 | 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
|
433 | 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
|
434 | "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
|
435 | "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
|
436 | 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
|
437 | |
|
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
|
438 | 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
|
439 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
440 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
441 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
442 | 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
|
443 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
444 | 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
|
445 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
446 | 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
|
447 | self->priv = priv; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
448 | |
|
37994
11829debec7a
Replace Gtk[HV]Box with GtkBox.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
449 | 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
|
450 | |
|
40490
fb6e46c4c63c
Remove PIDGIN_HIG_* constants
Gary Kramlich <grim@reaperworld.com>
parents:
40439
diff
changeset
|
451 | gtk_container_set_border_width(GTK_CONTAINER(self), 6); |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
452 | |
|
40490
fb6e46c4c63c
Remove PIDGIN_HIG_* constants
Gary Kramlich <grim@reaperworld.com>
parents:
40439
diff
changeset
|
453 | priv->title_box = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6)); |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
454 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
455 | 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
|
456 | 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
|
457 | 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
|
458 | |
|
21333
630a8a394a5a
Remove a redundant hbox around PidginMiniDialog's description label.
Will Thompson <resiak@pidgin.im>
parents:
21330
diff
changeset
|
459 | 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
|
460 | 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
|
461 | 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
|
462 | 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
|
463 | 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
|
464 | |
|
21324
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
465 | 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
|
466 | 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
|
467 | |
|
21333
630a8a394a5a
Remove a redundant hbox around PidginMiniDialog's description label.
Will Thompson <resiak@pidgin.im>
parents:
21330
diff
changeset
|
468 | 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
|
469 | 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
|
470 | 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
|
471 | 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
|
472 | 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
|
473 | /* 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
|
474 | * 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
|
475 | */ |
|
ee156675b0f5
Really actually hide the description label inside a minidialog, even when
Will Thompson <resiak@pidgin.im>
parents:
21335
diff
changeset
|
476 | 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
|
477 | |
|
35527
707c3c2b2c8a
Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35454
diff
changeset
|
478 | 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
|
479 | |
|
35527
707c3c2b2c8a
Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35454
diff
changeset
|
480 | 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
|
481 | |
|
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
482 | 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
|
483 | 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
|
484 | 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
|
485 | 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
|
486 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
487 | 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
|
488 | } |