Sun, 09 Nov 2008 20:55:10 +0000
Added menu items to buddy list context menu to start voice and video sessions
After discussing the matter with Maiku, we decided to have two choises.
"Audio call" which will show up if audio sessions is possible with a buddy and
the other item is either "Audio/Video" or "Video" depending on if the buddy
supports both at the same time or not
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
1 | /** |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
2 | * @file minidialog.c Implementation of the #PidginMiniDialog Gtk widget. |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
3 | * @ingroup pidgin |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
4 | */ |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
5 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
6 | /* pidgin |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
7 | * |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
8 | * 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
|
9 | * 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
|
10 | * source distribution. |
|
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 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
|
13 | * 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
|
14 | * 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
|
15 | * (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
|
16 | * |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
17 | * 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
|
18 | * 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
|
19 | * 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
|
20 | * 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
|
21 | * |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
22 | * 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
|
23 | * 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
|
24 | * 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
|
25 | */ |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
26 | |
| 21518 | 27 | #include "internal.h" |
| 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 <gtk/gtkhbox.h> |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
30 | #include <gtk/gtkbutton.h> |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
31 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
32 | #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
|
33 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
34 | #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
|
35 | #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
|
36 | #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
|
37 | |
|
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
|
38 | 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
|
39 | 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
|
40 | |
|
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 | 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
|
42 | |
|
ee7d13612e4c
Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents:
21606
diff
changeset
|
43 | static 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
|
44 | 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
|
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 | 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
|
47 | 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
|
48 | } |
|
ee7d13612e4c
Manually expand G_DEFINE_TYPE for PidginMiniDialog, since it was added in glib 2.4.
Will Thompson <resiak@pidgin.im>
parents:
21606
diff
changeset
|
49 | |
|
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 | 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
|
51 | 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
|
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 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
|
54 | 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
|
55 | { |
|
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 | 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
|
57 | 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
|
58 | (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
|
59 | (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
|
60 | (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
|
61 | (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
|
62 | 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
|
63 | 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
|
64 | 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
|
65 | (GInstanceInitFunc) pidgin_mini_dialog_init, |
| 22047 | 66 | 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
|
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 | g_define_type_id = g_type_register_static (GTK_TYPE_VBOX, |
|
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 | "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
|
70 | } |
|
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
|
71 | 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
|
72 | } |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
73 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
74 | enum |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
75 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
76 | PROP_TITLE = 1, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
77 | PROP_DESCRIPTION, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
78 | PROP_ICON_NAME, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
79 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
80 | LAST_PROPERTY |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
81 | } HazeConnectionProperties; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
82 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
83 | typedef struct _PidginMiniDialogPrivate |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
84 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
85 | 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
|
86 | 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
|
87 | 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
|
88 | GtkLabel *desc; |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
89 | GtkBox *buttons; |
|
21606
423607b9d0ca
Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents:
21518
diff
changeset
|
90 | |
|
423607b9d0ca
Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents:
21518
diff
changeset
|
91 | 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
|
92 | } PidginMiniDialogPrivate; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
93 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
94 | #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
|
95 | ((PidginMiniDialogPrivate *) ((dialog)->priv)) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
96 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
97 | PidginMiniDialog * |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
98 | 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
|
99 | const gchar *description, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
100 | 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
|
101 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
102 | PidginMiniDialog *mini_dialog = g_object_new(PIDGIN_TYPE_MINI_DIALOG, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
103 | "title", title, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
104 | "description", description, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
105 | "icon-name", icon_name, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
106 | NULL); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
107 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
108 | return mini_dialog; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
109 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
110 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
111 | void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
112 | 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
|
113 | const char *title) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
114 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
115 | 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
|
116 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
117 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
118 | void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
119 | 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
|
120 | const char *description) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
121 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
122 | 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
|
123 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
124 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
125 | void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
126 | 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
|
127 | 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
|
128 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
129 | g_object_set(G_OBJECT(mini_dialog), "icon_name", icon_name, NULL); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
130 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
131 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
132 | 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
|
133 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
134 | PidginMiniDialog *mini_dialog; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
135 | PidginMiniDialogCallback callback; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
136 | gpointer user_data; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
137 | }; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
138 | |
|
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
|
139 | 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
|
140 | 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
|
141 | { |
|
6fcd010acaa3
Add pidgin_mini_dialog_get_num_children(), a convenient way to check how many
Will Thompson <resiak@pidgin.im>
parents:
21327
diff
changeset
|
142 | return g_list_length(mini_dialog->contents->children); |
|
6fcd010acaa3
Add pidgin_mini_dialog_get_num_children(), a convenient way to check how many
Will Thompson <resiak@pidgin.im>
parents:
21327
diff
changeset
|
143 | } |
|
6fcd010acaa3
Add pidgin_mini_dialog_get_num_children(), a convenient way to check how many
Will Thompson <resiak@pidgin.im>
parents:
21327
diff
changeset
|
144 | |
|
21327
5bf0b779fd1a
Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents:
21324
diff
changeset
|
145 | static gboolean |
|
5bf0b779fd1a
Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents:
21324
diff
changeset
|
146 | 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
|
147 | { |
|
5bf0b779fd1a
Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents:
21324
diff
changeset
|
148 | 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
|
149 | return FALSE; |
|
5bf0b779fd1a
Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents:
21324
diff
changeset
|
150 | } |
|
5bf0b779fd1a
Use an idle callback to destroy PidginMiniDialogs when a button is pressed.
Will Thompson <resiak@pidgin.im>
parents:
21324
diff
changeset
|
151 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
152 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
153 | 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
|
154 | gpointer user_data) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
155 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
156 | 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
|
157 | 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
|
158 | 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
|
159 | |
|
423607b9d0ca
Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents:
21518
diff
changeset
|
160 | /* Set up the destruction callback before calling the clicked callback, |
|
423607b9d0ca
Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents:
21518
diff
changeset
|
161 | * so that if the mini-dialog gets destroyed during the clicked callback |
|
423607b9d0ca
Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents:
21518
diff
changeset
|
162 | * the idle_destroy_cb is correctly removed by _finalize. |
|
423607b9d0ca
Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents:
21518
diff
changeset
|
163 | */ |
|
423607b9d0ca
Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents:
21518
diff
changeset
|
164 | 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
|
165 | g_idle_add((GSourceFunc) idle_destroy_cb, data->mini_dialog); |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
166 | |
|
22459
ebbf40e23d64
Don't call NULL callbacks. Fixes #4901
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22047
diff
changeset
|
167 | if (data->callback != NULL) |
|
ebbf40e23d64
Don't call NULL callbacks. Fixes #4901
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22047
diff
changeset
|
168 | 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
|
169 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
170 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
171 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
172 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
173 | 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
|
174 | gpointer user_data) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
175 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
176 | 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
|
177 | g_free(data); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
178 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
179 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
180 | void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
181 | pidgin_mini_dialog_add_button(PidginMiniDialog *self, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
182 | const char *text, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
183 | PidginMiniDialogCallback clicked_cb, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
184 | gpointer user_data) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
185 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
186 | 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
|
187 | 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
|
188 | = 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
|
189 | 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
|
190 | 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
|
191 | char *button_text = |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
192 | 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
|
193 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
194 | 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
|
195 | 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
|
196 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
197 | 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
|
198 | 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
|
199 | callback_data->user_data = user_data; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
200 | 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
|
201 | (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
|
202 | 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
|
203 | (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
|
204 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
205 | gtk_misc_set_alignment(GTK_MISC(label), 0.5, 0.5); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
206 | 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
|
207 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
208 | 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
|
209 | 0); |
|
21324
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
210 | 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
|
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 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
214 | 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
|
215 | guint property_id, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
216 | GValue *value, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
217 | GParamSpec *pspec) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
218 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
219 | 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
|
220 | 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
|
221 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
222 | switch (property_id) { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
223 | case PROP_TITLE: |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
224 | 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
|
225 | break; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
226 | 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
|
227 | 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
|
228 | break; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
229 | 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
|
230 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
231 | 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
|
232 | GtkIconSize size; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
233 | 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
|
234 | 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
|
235 | break; |
|
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 | default: |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
238 | 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
|
239 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
240 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
241 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
242 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
243 | 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
|
244 | const char *title) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
245 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
246 | 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
|
247 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
248 | 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
|
249 | 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
|
250 | "<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
|
251 | 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
|
252 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
253 | 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
|
254 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
255 | 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
|
256 | g_free(title_markup); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
257 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
258 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
259 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
260 | 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
|
261 | const char *description) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
262 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
263 | 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
|
264 | if(description) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
265 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
266 | char *desc_esc = g_markup_escape_text(description, -1); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
267 | 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
|
268 | "<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
|
269 | |
|
21324
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
270 | 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
|
271 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
272 | 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
|
273 | 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
|
274 | |
|
21333
630a8a394a5a
Remove a redundant hbox around PidginMiniDialog's description label.
Will Thompson <resiak@pidgin.im>
parents:
21330
diff
changeset
|
275 | 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
|
276 | 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
|
277 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
278 | else |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
279 | { |
|
21324
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
280 | 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
|
281 | 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
|
282 | /* 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
|
283 | * 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
|
284 | */ |
|
21336
ee156675b0f5
Really actually hide the description label inside a minidialog, even when
Will Thompson <resiak@pidgin.im>
parents:
21335
diff
changeset
|
285 | 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
|
286 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
287 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
288 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
289 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
290 | 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
|
291 | guint property_id, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
292 | const GValue *value, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
293 | GParamSpec *pspec) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
294 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
295 | 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
|
296 | 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
|
297 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
298 | switch (property_id) { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
299 | case PROP_TITLE: |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
300 | 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
|
301 | break; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
302 | case PROP_DESCRIPTION: |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
303 | 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
|
304 | break; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
305 | 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
|
306 | 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
|
307 | 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
|
308 | break; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
309 | default: |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
310 | 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
|
311 | } |
|
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 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
314 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
315 | 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
|
316 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
317 | 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
|
318 | 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
|
319 | |
|
21606
423607b9d0ca
Don't crash when someone ignores an error. The mini-dialog was being
Will Thompson <resiak@pidgin.im>
parents:
21518
diff
changeset
|
320 | 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
|
321 | 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
|
322 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
323 | g_free(priv); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
324 | self->priv = NULL; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
325 | |
|
21338
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
326 | 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
|
327 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
328 | 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
|
329 | } |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
330 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
331 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
332 | 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
|
333 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
334 | 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
|
335 | GParamSpec *param_spec; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
336 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
337 | 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
|
338 | 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
|
339 | 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
|
340 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
341 | param_spec = g_param_spec_string("title", "title", |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
342 | "String specifying the mini-dialog's title", NULL, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
343 | #if GTK_CHECK_VERSION(2,8,0) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
344 | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
345 | #endif |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
346 | G_PARAM_READWRITE); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
347 | g_object_class_install_property (object_class, PROP_TITLE, param_spec); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
348 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
349 | param_spec = g_param_spec_string("description", "description", |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
350 | "Description text for the mini-dialog, if desired", NULL, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
351 | #if GTK_CHECK_VERSION(2,8,0) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
352 | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
353 | #endif |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
354 | G_PARAM_READWRITE); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
355 | g_object_class_install_property (object_class, PROP_DESCRIPTION, param_spec); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
356 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
357 | param_spec = g_param_spec_string("icon-name", "icon-name", |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
358 | "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
|
359 | NULL, |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
360 | #if GTK_CHECK_VERSION(2,8,0) |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
361 | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
362 | #endif |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
363 | G_PARAM_READWRITE); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
364 | g_object_class_install_property (object_class, PROP_ICON_NAME, param_spec); |
|
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 | |
|
21335
76e47b651a6e
De-magic-number (and correct) the width request of PidginMiniDialog's labels.
Will Thompson <resiak@pidgin.im>
parents:
21333
diff
changeset
|
367 | /* 16 is the width of the icon, due to PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL */ |
|
76e47b651a6e
De-magic-number (and correct) the width request of PidginMiniDialog's labels.
Will Thompson <resiak@pidgin.im>
parents:
21333
diff
changeset
|
368 | #define BLIST_WIDTH_OTHER_THAN_LABEL \ |
|
76e47b651a6e
De-magic-number (and correct) the width request of PidginMiniDialog's labels.
Will Thompson <resiak@pidgin.im>
parents:
21333
diff
changeset
|
369 | ((PIDGIN_HIG_BOX_SPACE * 3) + 16) |
|
76e47b651a6e
De-magic-number (and correct) the width request of PidginMiniDialog's labels.
Will Thompson <resiak@pidgin.im>
parents:
21333
diff
changeset
|
370 | |
|
21338
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
371 | #define BLIST_WIDTH_PREF \ |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
372 | (PIDGIN_PREFS_ROOT "/blist/width") |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
373 | |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
374 | static void |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
375 | blist_width_changed_cb(const char *name, |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
376 | PurplePrefType type, |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
377 | gconstpointer val, |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
378 | gpointer data) |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
379 | { |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
380 | PidginMiniDialog *self = PIDGIN_MINI_DIALOG(data); |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
381 | PidginMiniDialogPrivate *priv = PIDGIN_MINI_DIALOG_GET_PRIVATE(self); |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
382 | guint blist_width = GPOINTER_TO_INT(val); |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
383 | guint label_width = blist_width - BLIST_WIDTH_OTHER_THAN_LABEL; |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
384 | |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
385 | gtk_widget_set_size_request(GTK_WIDGET(priv->title), label_width, -1); |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
386 | gtk_widget_set_size_request(GTK_WIDGET(priv->desc), label_width, -1); |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
387 | } |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
388 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
389 | static void |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
390 | 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
|
391 | { |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
392 | GtkBox *self_box = GTK_BOX(self); |
|
21338
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
393 | guint blist_width = purple_prefs_get_int(BLIST_WIDTH_PREF); |
|
21335
76e47b651a6e
De-magic-number (and correct) the width request of PidginMiniDialog's labels.
Will Thompson <resiak@pidgin.im>
parents:
21333
diff
changeset
|
394 | guint label_width = blist_width - BLIST_WIDTH_OTHER_THAN_LABEL; |
|
21324
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
395 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
396 | 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
|
397 | self->priv = priv; |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
398 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
399 | 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
|
400 | |
|
21324
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
401 | priv->title_box = GTK_BOX(gtk_hbox_new(FALSE, 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
|
402 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
403 | priv->icon = GTK_IMAGE(gtk_image_new()); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
404 | gtk_misc_set_alignment(GTK_MISC(priv->icon), 0, 0); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
405 | |
|
21333
630a8a394a5a
Remove a redundant hbox around PidginMiniDialog's description label.
Will Thompson <resiak@pidgin.im>
parents:
21330
diff
changeset
|
406 | priv->title = GTK_LABEL(gtk_label_new(NULL)); |
|
21335
76e47b651a6e
De-magic-number (and correct) the width request of PidginMiniDialog's labels.
Will Thompson <resiak@pidgin.im>
parents:
21333
diff
changeset
|
407 | gtk_widget_set_size_request(GTK_WIDGET(priv->title), label_width, -1); |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
408 | 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
|
409 | gtk_label_set_selectable(priv->title, TRUE); |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
410 | gtk_misc_set_alignment(GTK_MISC(priv->title), 0, 0); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
411 | |
|
21324
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
412 | 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
|
413 | 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
|
414 | |
|
21333
630a8a394a5a
Remove a redundant hbox around PidginMiniDialog's description label.
Will Thompson <resiak@pidgin.im>
parents:
21330
diff
changeset
|
415 | priv->desc = GTK_LABEL(gtk_label_new(NULL)); |
|
21335
76e47b651a6e
De-magic-number (and correct) the width request of PidginMiniDialog's labels.
Will Thompson <resiak@pidgin.im>
parents:
21333
diff
changeset
|
416 | gtk_widget_set_size_request(GTK_WIDGET(priv->desc), label_width, -1); |
|
21324
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
417 | gtk_label_set_line_wrap(priv->desc, TRUE); |
|
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
418 | gtk_misc_set_alignment(GTK_MISC(priv->desc), 0, 0); |
|
22859
acd001473a72
Make the labels in the minidialogs selectable.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22638
diff
changeset
|
419 | 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
|
420 | /* 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
|
421 | * 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
|
422 | */ |
|
ee156675b0f5
Really actually hide the description label inside a minidialog, even when
Will Thompson <resiak@pidgin.im>
parents:
21335
diff
changeset
|
423 | 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
|
424 | |
|
21338
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
425 | purple_prefs_connect_callback(self, BLIST_WIDTH_PREF, |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
426 | blist_width_changed_cb, self); |
|
785e58fb02de
Make mini-dialogs follow the blist's size changes.
Will Thompson <resiak@pidgin.im>
parents:
21336
diff
changeset
|
427 | |
|
21323
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
428 | self->contents = GTK_BOX(gtk_vbox_new(FALSE, 0)); |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
429 | |
|
21324
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
430 | priv->buttons = GTK_BOX(gtk_hbox_new(FALSE, 0)); |
|
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
431 | |
|
1c03c4df1658
Make PidginMiniDialog do more things right when used as a GtkContainer. _add,
Will Thompson <resiak@pidgin.im>
parents:
21323
diff
changeset
|
432 | 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
|
433 | 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
|
434 | 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
|
435 | 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
|
436 | |
|
0ad61638683f
Create a PidginMiniDialog widget; make pidgin_make_mini_dialog() in gtkutils.c
Will Thompson <resiak@pidgin.im>
parents:
diff
changeset
|
437 | 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
|
438 | } |