Mercurial > pidgin
annotate src/gtkpluginpref.c @ 13623:51d436a267ac
[gaim-migrate @ 16009]
Use the GSlice allocator (for logs and log sets) when compiling with glib 2.10 or greater and eliminate some unnecessary memory zeroing. This cuts the log loading time in half for one of Luke's contacts.
committer: Tailor Script <tailor@pidgin.im>
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Tue, 11 Apr 2006 16:06:24 +0000 |
parents | 3de53fe8345f |
children | 8bda65b88e49 |
rev | line source |
---|---|
8713 | 1 /** |
10297 | 2 * @file gtkpluginpref.c GTK+ Plugin preferences |
3 * @ingroup gtkui | |
4 * | |
8713 | 5 * gaim |
6 * | |
7 * Gaim is the legal property of its developers, whose names are too numerous | |
8 * to list here. Please refer to the COPYRIGHT file distributed with this | |
9 * source distribution. | |
10 * | |
11 * This program is free software; you can redistribute it and/or modify | |
12 * it under the terms of the GNU General Public License as published by | |
13 * the Free Software Foundation; either version 2 of the License, or | |
14 * (at your option) any later version. | |
15 * | |
16 * This program is distributed in the hope that it will be useful, | |
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 * GNU General Public License for more details. | |
20 * | |
21 * You should have received a copy of the GNU General Public License | |
22 * along with this program; if not, write to the Free Software | |
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
24 */ | |
25 #ifdef HAVE_CONFIG_H | |
26 # include <config.h> | |
27 #endif | |
28 | |
29 #include "debug.h" | |
30 #include "internal.h" | |
31 #include "pluginpref.h" | |
32 #include "prefs.h" | |
33 | |
12712
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
34 #include "gtkimhtml.h" |
8713 | 35 #include "gtkpluginpref.h" |
36 #include "gtkprefs.h" | |
37 #include "gtkutils.h" | |
38 | |
39 static gboolean | |
40 entry_cb(GtkWidget *entry, gpointer data) { | |
41 char *pref = data; | |
42 | |
43 gaim_prefs_set_string(pref, gtk_entry_get_text(GTK_ENTRY(entry))); | |
44 | |
45 return FALSE; | |
46 } | |
47 | |
12712
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
48 |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
49 static void |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
50 imhtml_cb(GtkTextBuffer *buffer, gpointer data) |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
51 { |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
52 char *pref; |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
53 char *text; |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
54 GtkIMHtml *imhtml = data; |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
55 |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
56 pref = g_object_get_data(G_OBJECT(imhtml), "pref-key"); |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
57 g_return_if_fail(pref); |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
58 |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
59 text = gtk_imhtml_get_markup(imhtml); |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
60 |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
61 if (!text) |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
62 text = ""; |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
63 gaim_prefs_set_string(pref, text); |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
64 g_free(text); |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
65 } |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
66 |
8713 | 67 static void |
12794
4e3dde2b2641
[gaim-migrate @ 15141]
Richard Laager <rlaager@wiktel.com>
parents:
12712
diff
changeset
|
68 imhtml_format_cb(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons, gpointer data) |
4e3dde2b2641
[gaim-migrate @ 15141]
Richard Laager <rlaager@wiktel.com>
parents:
12712
diff
changeset
|
69 { |
4e3dde2b2641
[gaim-migrate @ 15141]
Richard Laager <rlaager@wiktel.com>
parents:
12712
diff
changeset
|
70 imhtml_cb(gtk_text_view_get_buffer(GTK_TEXT_VIEW(imhtml)), data); |
4e3dde2b2641
[gaim-migrate @ 15141]
Richard Laager <rlaager@wiktel.com>
parents:
12712
diff
changeset
|
71 } |
4e3dde2b2641
[gaim-migrate @ 15141]
Richard Laager <rlaager@wiktel.com>
parents:
12712
diff
changeset
|
72 |
4e3dde2b2641
[gaim-migrate @ 15141]
Richard Laager <rlaager@wiktel.com>
parents:
12712
diff
changeset
|
73 static void |
8713 | 74 make_string_pref(GtkWidget *parent, GaimPluginPref *pref, GtkSizeGroup *sg) { |
13106
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
75 GtkWidget *box, *gtk_label, *entry; |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
76 const gchar *pref_name; |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
77 const gchar *pref_label; |
12712
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
78 GaimStringFormatType format; |
8713 | 79 |
80 pref_name = gaim_plugin_pref_get_name(pref); | |
81 pref_label = gaim_plugin_pref_get_label(pref); | |
12712
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
82 format = gaim_plugin_pref_get_format_type(pref); |
8713 | 83 |
84 switch(gaim_plugin_pref_get_type(pref)) { | |
85 case GAIM_PLUGIN_PREF_CHOICE: | |
86 gtk_label = gaim_gtk_prefs_dropdown_from_list(parent, pref_label, | |
87 GAIM_PREF_STRING, pref_name, | |
10414 | 88 gaim_plugin_pref_get_choices(pref)); |
8713 | 89 gtk_misc_set_alignment(GTK_MISC(gtk_label), 0, 0.5); |
90 | |
91 if(sg) | |
92 gtk_size_group_add_widget(sg, gtk_label); | |
93 | |
94 break; | |
95 case GAIM_PLUGIN_PREF_NONE: | |
96 default: | |
13106
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
97 if (format == GAIM_STRING_FORMAT_TYPE_NONE) |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
98 box = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
99 else |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
100 box = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
101 |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
102 gtk_widget_show(box); |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
103 gtk_box_pack_start(GTK_BOX(parent), box, FALSE, FALSE, 0); |
8713 | 104 |
105 gtk_label = gtk_label_new_with_mnemonic(pref_label); | |
106 gtk_misc_set_alignment(GTK_MISC(gtk_label), 0, 0.5); | |
107 gtk_widget_show(gtk_label); | |
13106
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
108 gtk_box_pack_start(GTK_BOX(box), gtk_label, FALSE, FALSE, 0); |
8713 | 109 |
110 if(sg) | |
111 gtk_size_group_add_widget(sg, gtk_label); | |
112 | |
12712
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
113 if (format == GAIM_STRING_FORMAT_TYPE_NONE) |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
114 { |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
115 entry = gtk_entry_new(); |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
116 gtk_entry_set_text(GTK_ENTRY(entry), gaim_prefs_get_string(pref_name)); |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
117 gtk_entry_set_max_length(GTK_ENTRY(entry), |
8713 | 118 gaim_plugin_pref_get_max_length(pref)); |
12712
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
119 if (gaim_plugin_pref_get_masked(pref)) |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
120 { |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
121 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
122 gtk_entry_set_invisible_char(GTK_ENTRY(entry), GAIM_INVISIBLE_CHAR); |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
123 } |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
124 g_signal_connect(G_OBJECT(entry), "changed", |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
125 G_CALLBACK(entry_cb), |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
126 (gpointer)pref_name); |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
127 gtk_label_set_mnemonic_widget(GTK_LABEL(gtk_label), entry); |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
128 gtk_widget_show(entry); |
13106
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
129 gtk_box_pack_start(GTK_BOX(box), entry, FALSE, FALSE, 0); |
12712
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
130 } |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
131 else |
11986 | 132 { |
13106
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
133 GtkWidget *hbox; |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
134 GtkWidget *spacer; |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
135 GtkWidget *imhtml; |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
136 GtkWidget *toolbar; |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
137 GtkWidget *frame; |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
138 |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
139 hbox = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
140 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0); |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
141 gtk_widget_show(hbox); |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
142 |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
143 spacer = gtk_label_new(" "); |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
144 gtk_box_pack_start(GTK_BOX(hbox), spacer, FALSE, FALSE, 0); |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
145 gtk_widget_show(spacer); |
12712
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
146 |
13280
3de53fe8345f
[gaim-migrate @ 15646]
Richard Laager <rlaager@wiktel.com>
parents:
13106
diff
changeset
|
147 frame = gaim_gtk_create_imhtml(TRUE, &imhtml, &toolbar, NULL); |
12712
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
148 if (!(format & GAIM_STRING_FORMAT_TYPE_HTML)) |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
149 gtk_widget_destroy(toolbar); |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
150 |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
151 gtk_imhtml_append_text(GTK_IMHTML(imhtml), gaim_prefs_get_string(pref_name), |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
152 (format & GAIM_STRING_FORMAT_TYPE_MULTILINE) ? 0 : GTK_IMHTML_NO_NEWLINE); |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
153 gtk_label_set_mnemonic_widget(GTK_LABEL(gtk_label), imhtml); |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
154 gtk_widget_show_all(frame); |
13106
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
155 g_object_set_data(G_OBJECT(imhtml), "pref-key", (gpointer)pref_name); |
12712
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
156 g_signal_connect(G_OBJECT(gtk_text_view_get_buffer(GTK_TEXT_VIEW(imhtml))), |
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
157 "changed", G_CALLBACK(imhtml_cb), imhtml); |
12794
4e3dde2b2641
[gaim-migrate @ 15141]
Richard Laager <rlaager@wiktel.com>
parents:
12712
diff
changeset
|
158 g_signal_connect(G_OBJECT(imhtml), |
4e3dde2b2641
[gaim-migrate @ 15141]
Richard Laager <rlaager@wiktel.com>
parents:
12712
diff
changeset
|
159 "format_function_toggle", G_CALLBACK(imhtml_format_cb), imhtml); |
12712
8ae981f2c9cb
[gaim-migrate @ 15056]
Richard Laager <rlaager@wiktel.com>
parents:
11986
diff
changeset
|
160 gtk_box_pack_start(GTK_BOX(hbox), frame, FALSE, FALSE, 0); |
11986 | 161 } |
8713 | 162 |
163 break; | |
164 } | |
165 } | |
166 | |
167 static void | |
168 make_int_pref(GtkWidget *parent, GaimPluginPref *pref, GtkSizeGroup *sg) { | |
169 GtkWidget *gtk_label; | |
13106
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
170 const gchar *pref_name; |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
171 const gchar *pref_label; |
8713 | 172 gint max, min; |
173 | |
174 pref_name = gaim_plugin_pref_get_name(pref); | |
175 pref_label = gaim_plugin_pref_get_label(pref); | |
176 | |
177 switch(gaim_plugin_pref_get_type(pref)) { | |
178 case GAIM_PLUGIN_PREF_CHOICE: | |
179 gtk_label = gaim_gtk_prefs_dropdown_from_list(parent, pref_label, | |
9529 | 180 GAIM_PREF_INT, pref_name, gaim_plugin_pref_get_choices(pref)); |
8713 | 181 gtk_misc_set_alignment(GTK_MISC(gtk_label), 0, 0.5); |
182 | |
183 if(sg) | |
184 gtk_size_group_add_widget(sg, gtk_label); | |
185 | |
186 break; | |
187 case GAIM_PLUGIN_PREF_NONE: | |
188 default: | |
189 gaim_plugin_pref_get_bounds(pref, &min, &max); | |
10414 | 190 gaim_gtk_prefs_labeled_spin_button(parent, pref_label, |
9529 | 191 pref_name, min, max, sg); |
8713 | 192 break; |
193 } | |
194 } | |
195 | |
9529 | 196 |
197 static void | |
198 make_info_pref(GtkWidget *parent, GaimPluginPref *pref) { | |
199 GtkWidget *gtk_label = gtk_label_new(gaim_plugin_pref_get_label(pref)); | |
200 gtk_misc_set_alignment(GTK_MISC(gtk_label), 0, 0); | |
201 gtk_label_set_line_wrap(GTK_LABEL(gtk_label), TRUE); | |
202 gtk_box_pack_start(GTK_BOX(parent), gtk_label, FALSE, FALSE, 0); | |
203 gtk_widget_show(gtk_label); | |
204 } | |
205 | |
206 | |
8713 | 207 GtkWidget * |
208 gaim_gtk_plugin_pref_create_frame(GaimPluginPrefFrame *frame) { | |
209 GtkWidget *ret, *parent; | |
210 GtkSizeGroup *sg; | |
211 GList *pp; | |
212 | |
213 g_return_val_if_fail(frame, NULL); | |
214 | |
215 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
216 | |
217 parent = ret = gtk_vbox_new(FALSE, 16); | |
11243 | 218 gtk_container_set_border_width(GTK_CONTAINER(ret), GAIM_HIG_BORDER); |
8713 | 219 gtk_widget_show(ret); |
220 | |
221 for(pp = gaim_plugin_pref_frame_get_prefs(frame); | |
222 pp != NULL; | |
223 pp = pp->next) | |
224 { | |
13106
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
225 GaimPluginPref *pref = (GaimPluginPref *)pp->data; |
8713 | 226 |
13106
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
227 const char *name = gaim_plugin_pref_get_name(pref); |
a0a4b44239e8
[gaim-migrate @ 15468]
Richard Laager <rlaager@wiktel.com>
parents:
12794
diff
changeset
|
228 const char *label = gaim_plugin_pref_get_label(pref); |
8713 | 229 |
230 if(name == NULL) { | |
231 if(label == NULL) | |
232 continue; | |
9529 | 233 |
234 if(gaim_plugin_pref_get_type(pref) == GAIM_PLUGIN_PREF_INFO) { | |
235 make_info_pref(parent, pref); | |
236 } else { | |
237 parent = gaim_gtk_make_frame(ret, label); | |
238 gtk_widget_show(parent); | |
239 } | |
8713 | 240 |
241 continue; | |
242 } | |
243 | |
244 switch(gaim_prefs_get_type(name)) { | |
245 case GAIM_PREF_BOOLEAN: | |
246 gaim_gtk_prefs_checkbox(label, name, parent); | |
247 break; | |
248 case GAIM_PREF_INT: | |
249 make_int_pref(parent, pref, sg); | |
250 break; | |
251 case GAIM_PREF_STRING: | |
252 make_string_pref(parent, pref, sg); | |
253 break; | |
254 default: | |
255 break; | |
256 } | |
257 } | |
258 | |
259 return ret; | |
260 } |