Thu, 29 Jun 2017 15:33:29 -0500
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Modern Linux desktops use one of 3 DBus interfaces for querying if
the screensaver is currently active. There's a FreeDesktop one, a
GNOME one, and a KDE one. Rather than querying XScreensaver, which
may not be available, such as with Wayland, this patch ports Pidgin's
idle checking function to use these modern DBus interfaces.
Because Gio includes built-in DBus API, this patch also drops the
guards around pidgin_get_time_idle(), which also re-enables the
Win32 code which wasn't enabled with the previous guards.
|
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 | 22 | #include "internal.h" |
|
35075
3a3c90a0ec07
pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents:
35060
diff
changeset
|
23 | #include "glibcompat.h" |
| 21518 | 24 | |
|
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
|
25 | #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
|
26 | |
|
35527
707c3c2b2c8a
Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35454
diff
changeset
|
27 | #include "gtk3compat.h" |
|
707c3c2b2c8a
Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35454
diff
changeset
|
28 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
29 | #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
|
30 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
31 | #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
|
32 | #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
|
33 | #include "pidgin/pidginstock.h" |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
34 | |
|
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
|
35 | 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
|
36 | 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
|
37 | |
|
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 | 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
|
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 | 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
|
41 | 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
|
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 | 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
|
44 | 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
|
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 | |
|
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 | 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
|
48 | 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
|
49 | { |
|
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 | 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
|
51 | 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
|
52 | { |
|
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 | 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
|
54 | 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
|
55 | (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
|
56 | (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
|
57 | (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
|
58 | (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
|
59 | 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
|
60 | 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
|
61 | 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
|
62 | (GInstanceInitFunc) pidgin_mini_dialog_init, |
| 22047 | 63 | 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
|
64 | }; |
|
37994
11829debec7a
Replace Gtk[HV]Box with GtkBox.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
65 | 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
|
66 | "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
|
67 | } |
|
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
|
68 | 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
|
69 | } |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
70 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
71 | enum |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
72 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
73 | PROP_TITLE = 1, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
74 | PROP_DESCRIPTION, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
75 | PROP_ICON_NAME, |
|
30635
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
76 | 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
|
77 | 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
|
78 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
79 | LAST_PROPERTY |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
80 | } HazeConnectionProperties; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
81 | |
|
35075
3a3c90a0ec07
pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents:
35060
diff
changeset
|
82 | 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
|
83 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
84 | typedef struct _PidginMiniDialogPrivate |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
85 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
86 | 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
|
87 | 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
|
88 | 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
|
89 | GtkLabel *desc; |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
90 | 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
|
91 | 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
|
92 | |
|
423607b9d0ca
Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents:
21518
diff
changeset
|
93 | 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
|
94 | } PidginMiniDialogPrivate; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
95 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
96 | #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
|
97 | ((PidginMiniDialogPrivate *) ((dialog)->priv)) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
98 | |
|
30635
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
99 | static PidginMiniDialog * |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
100 | 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
|
101 | { |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
102 | 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
|
103 | "title", title, |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
104 | "description", description, |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
105 | NULL); |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
106 | } |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
107 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
108 | PidginMiniDialog * |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
109 | 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
|
110 | const gchar *description, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
111 | 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
|
112 | { |
|
30635
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
113 | 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
|
114 | 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
|
115 | return mini_dialog; |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
116 | } |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
117 | |
|
30635
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
118 | PidginMiniDialog * |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
119 | 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
|
120 | const gchar *description, |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
121 | GdkPixbuf *custom_icon) |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
122 | { |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
123 | 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
|
124 | 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
|
125 | return mini_dialog; |
|
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_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
|
130 | const char *title) |
|
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), "title", title, 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 |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
136 | 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
|
137 | const char *description) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
138 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
139 | 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
|
140 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
141 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
142 | void |
|
31642
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
143 | 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
|
144 | { |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
145 | 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
|
146 | } |
|
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 | 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
|
149 | { |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
150 | 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
|
151 | } |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
152 | |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
153 | void |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
154 | 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
|
155 | 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
|
156 | { |
|
30635
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
157 | 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
|
158 | } |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
159 | |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
160 | void |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
161 | 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
|
162 | { |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
163 | 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
|
164 | } |
|
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 | 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
|
167 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
168 | PidginMiniDialog *mini_dialog; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
169 | PidginMiniDialogCallback callback; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
170 | 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
|
171 | 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
|
172 | }; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
173 | |
|
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
|
174 | 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
|
175 | 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
|
176 | { |
|
33170
ce4447562d64
Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33133
diff
changeset
|
177 | GList *tmp; |
|
ce4447562d64
Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33133
diff
changeset
|
178 | guint len; |
|
ce4447562d64
Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33133
diff
changeset
|
179 | 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
|
180 | len = g_list_length(tmp); |
|
ce4447562d64
Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33133
diff
changeset
|
181 | g_list_free(tmp); |
|
ce4447562d64
Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33133
diff
changeset
|
182 | 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
|
183 | } |
|
6fcd010acaa3
Add pidgin_mini_dialog_get_num_children(), a convenient way to check how many
Will Thompson <resiak@pidgin.im>
parents:
21327
diff
changeset
|
184 | |
|
21327
5bf0b779fd1a
Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents:
21324
diff
changeset
|
185 | static gboolean |
|
5bf0b779fd1a
Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents:
21324
diff
changeset
|
186 | 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
|
187 | { |
|
5bf0b779fd1a
Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents:
21324
diff
changeset
|
188 | 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
|
189 | return FALSE; |
|
5bf0b779fd1a
Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents:
21324
diff
changeset
|
190 | } |
|
5bf0b779fd1a
Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents:
21324
diff
changeset
|
191 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
192 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
193 | 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
|
194 | gpointer user_data) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
195 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
196 | 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
|
197 | 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
|
198 | 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
|
199 | |
|
31642
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
200 | 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
|
201 | /* 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
|
202 | * 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
|
203 | * 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
|
204 | */ |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
205 | 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
|
206 | 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
|
207 | } |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
208 | |
|
22459
ebbf40e23d64
Don't call NULL callbacks. Fixes #4901
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22047
diff
changeset
|
209 | if (data->callback != NULL) |
|
ebbf40e23d64
Don't call NULL callbacks. Fixes #4901
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22047
diff
changeset
|
210 | 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
|
211 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
212 | } |
|
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 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
215 | 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
|
216 | gpointer user_data) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
217 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
218 | 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
|
219 | g_free(data); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
220 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
221 | |
|
31642
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
222 | static void |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
223 | 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
|
224 | 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
|
225 | 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
|
226 | 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
|
227 | 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
|
228 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
229 | 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
|
230 | 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
|
231 | = 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
|
232 | 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
|
233 | 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
|
234 | char *button_text = |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
235 | 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
|
236 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
237 | 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
|
238 | 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
|
239 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
240 | 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
|
241 | 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
|
242 | 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
|
243 | 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
|
244 | 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
|
245 | (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
|
246 | 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
|
247 | (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
|
248 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
249 | 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
|
250 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
251 | 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
|
252 | 0); |
|
21324
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
253 | 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
|
254 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
255 | |
|
31642
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
256 | void |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
257 | 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
|
258 | 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
|
259 | 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
|
260 | 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
|
261 | { |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
262 | 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
|
263 | } |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
264 | |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
265 | void |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
266 | 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
|
267 | 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
|
268 | 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
|
269 | 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
|
270 | { |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
271 | 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
|
272 | } |
|
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
273 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
274 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
275 | 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
|
276 | guint property_id, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
277 | GValue *value, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
278 | GParamSpec *pspec) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
279 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
280 | 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
|
281 | 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
|
282 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
283 | switch (property_id) { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
284 | case PROP_TITLE: |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
285 | 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
|
286 | break; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
287 | 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
|
288 | 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
|
289 | break; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
290 | 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
|
291 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
292 | gchar *icon_name = NULL; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
293 | GtkIconSize size; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
294 | gtk_image_get_stock(priv->icon, &icon_name, &size); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
295 | 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
|
296 | break; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
297 | } |
|
30635
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
298 | case PROP_CUSTOM_ICON: |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
299 | 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
|
300 | break; |
|
31642
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
301 | 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
|
302 | 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
|
303 | break; |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
304 | default: |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
305 | 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
|
306 | } |
|
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 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
309 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
310 | 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
|
311 | const char *title) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
312 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
313 | 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
|
314 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
315 | 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
|
316 | 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
|
317 | "<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
|
318 | 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
|
319 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
320 | 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
|
321 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
322 | 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
|
323 | 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
|
324 | |
|
35075
3a3c90a0ec07
pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents:
35060
diff
changeset
|
325 | 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
|
326 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
327 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
328 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
329 | 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
|
330 | const char *description) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
331 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
332 | 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
|
333 | if(description) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
334 | { |
|
31642
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
335 | 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
|
336 | 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
|
337 | "<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
|
338 | |
|
21324
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
339 | 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
|
340 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
341 | 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
|
342 | 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
|
343 | |
|
21333
630a8a394a5a
Remove a redundant hbox around PidginMiniDialog's description label.
Will Thompson <resiak@pidgin.im>
parents:
21330
diff
changeset
|
344 | 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
|
345 | 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
|
346 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
347 | else |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
348 | { |
|
21324
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
349 | 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
|
350 | 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
|
351 | /* 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
|
352 | * 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
|
353 | */ |
|
21336
ee156675b0f5
Really actually hide the description label inside a minidialog, even when
Will Thompson <resiak@pidgin.im>
parents:
21335
diff
changeset
|
354 | 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
|
355 | } |
|
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
|
356 | |
|
35075
3a3c90a0ec07
pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents:
35060
diff
changeset
|
357 | 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
|
358 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
359 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
360 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
361 | 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
|
362 | guint property_id, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
363 | const GValue *value, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
364 | GParamSpec *pspec) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
365 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
366 | 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
|
367 | 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
|
368 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
369 | switch (property_id) { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
370 | case PROP_TITLE: |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
371 | 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
|
372 | break; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
373 | case PROP_DESCRIPTION: |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
374 | 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
|
375 | break; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
376 | 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
|
377 | gtk_image_set_from_stock(priv->icon, 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
|
378 | gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
379 | break; |
|
30635
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
380 | case PROP_CUSTOM_ICON: |
|
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
381 | 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
|
382 | break; |
|
31642
ad20028f085c
Finally merged the code that fixes #5038 to i.p.p.
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
31294
diff
changeset
|
383 | 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
|
384 | 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
|
385 | break; |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
386 | default: |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
387 | 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
|
388 | } |
|
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 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
391 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
392 | 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
|
393 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
394 | 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
|
395 | 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
|
396 | |
|
21606
423607b9d0ca
Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents:
21518
diff
changeset
|
397 | 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
|
398 | 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
|
399 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
400 | g_free(priv); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
401 | self->priv = NULL; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
402 | |
|
21338
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
403 | 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
|
404 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
405 | 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
|
406 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
407 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
408 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
409 | 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
|
410 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
411 | 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
|
412 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
413 | 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
|
414 | 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
|
415 | 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
|
416 | |
|
35075
3a3c90a0ec07
pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents:
35060
diff
changeset
|
417 | 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
|
418 | "title", |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
419 | "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
|
420 | 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
|
421 | |
|
35075
3a3c90a0ec07
pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents:
35060
diff
changeset
|
422 | 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
|
423 | "description", |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
424 | "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
|
425 | 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
|
426 | |
|
35075
3a3c90a0ec07
pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents:
35060
diff
changeset
|
427 | 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
|
428 | "icon-name", |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
429 | "String specifying the Gtk stock name of the dialog's icon", |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
430 | 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
|
431 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE); |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
30877
diff
changeset
|
432 | |
|
35075
3a3c90a0ec07
pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents:
35060
diff
changeset
|
433 | 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
|
434 | "custom-icon", |
|
30635
e9893ecc9057
Display the protocol icon for the authorization request dialog
Ivan Komarov <ivan.komarov@pidgin.im>
parents:
29496
diff
changeset
|
435 | "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
|
436 | 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
|
437 | 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
|
438 | |
|
35075
3a3c90a0ec07
pidgin: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents:
35060
diff
changeset
|
439 | 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
|
440 | 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
|
441 | "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
|
442 | "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
|
443 | 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
|
444 | |
|
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
|
445 | 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
|
446 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
447 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
448 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
449 | 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
|
450 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
451 | 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
|
452 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
453 | 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
|
454 | self->priv = priv; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
455 | |
|
37994
11829debec7a
Replace Gtk[HV]Box with GtkBox.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
456 | 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
|
457 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
458 | 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
|
459 | |
|
35527
707c3c2b2c8a
Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35454
diff
changeset
|
460 | 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
|
461 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
462 | 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
|
463 | 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
|
464 | 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
|
465 | |
|
21333
630a8a394a5a
Remove a redundant hbox around PidginMiniDialog's description label.
Will Thompson <resiak@pidgin.im>
parents:
21330
diff
changeset
|
466 | 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
|
467 | 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
|
468 | 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
|
469 | 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
|
470 | 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
|
471 | |
|
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_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
|
473 | 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
|
474 | |
|
21333
630a8a394a5a
Remove a redundant hbox around PidginMiniDialog's description label.
Will Thompson <resiak@pidgin.im>
parents:
21330
diff
changeset
|
475 | 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
|
476 | 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
|
477 | 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
|
478 | 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
|
479 | 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
|
480 | /* 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
|
481 | * 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
|
482 | */ |
|
ee156675b0f5
Really actually hide the description label inside a minidialog, even when
Will Thompson <resiak@pidgin.im>
parents:
21335
diff
changeset
|
483 | 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
|
484 | |
|
35527
707c3c2b2c8a
Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35454
diff
changeset
|
485 | 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
|
486 | |
|
35527
707c3c2b2c8a
Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35454
diff
changeset
|
487 | 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
|
488 | |
|
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
489 | 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
|
490 | 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
|
491 | 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
|
492 | 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
|
493 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
494 | 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
|
495 | } |