| 55 |
55 |
| 56 pref = g_object_get_data(G_OBJECT(imhtml), "pref-key"); |
56 pref = g_object_get_data(G_OBJECT(imhtml), "pref-key"); |
| 57 g_return_if_fail(pref); |
57 g_return_if_fail(pref); |
| 58 |
58 |
| 59 text = gtk_imhtml_get_markup(imhtml); |
59 text = gtk_imhtml_get_markup(imhtml); |
| 60 gaim_prefs_set_string(pref, text); |
60 purple_prefs_set_string(pref, text); |
| 61 g_free(text); |
61 g_free(text); |
| 62 } |
62 } |
| 63 |
63 |
| 64 static void |
64 static void |
| 65 imhtml_format_cb(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons, gpointer data) |
65 imhtml_format_cb(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons, gpointer data) |
| 66 { |
66 { |
| 67 imhtml_cb(gtk_text_view_get_buffer(GTK_TEXT_VIEW(imhtml)), data); |
67 imhtml_cb(gtk_text_view_get_buffer(GTK_TEXT_VIEW(imhtml)), data); |
| 68 } |
68 } |
| 69 |
69 |
| 70 static void |
70 static void |
| 71 make_string_pref(GtkWidget *parent, GaimPluginPref *pref, GtkSizeGroup *sg) { |
71 make_string_pref(GtkWidget *parent, PurplePluginPref *pref, GtkSizeGroup *sg) { |
| 72 GtkWidget *box, *gtk_label, *entry; |
72 GtkWidget *box, *gtk_label, *entry; |
| 73 const gchar *pref_name; |
73 const gchar *pref_name; |
| 74 const gchar *pref_label; |
74 const gchar *pref_label; |
| 75 GaimStringFormatType format; |
75 PurpleStringFormatType format; |
| 76 |
76 |
| 77 pref_name = gaim_plugin_pref_get_name(pref); |
77 pref_name = purple_plugin_pref_get_name(pref); |
| 78 pref_label = gaim_plugin_pref_get_label(pref); |
78 pref_label = purple_plugin_pref_get_label(pref); |
| 79 format = gaim_plugin_pref_get_format_type(pref); |
79 format = purple_plugin_pref_get_format_type(pref); |
| 80 |
80 |
| 81 switch(gaim_plugin_pref_get_type(pref)) { |
81 switch(purple_plugin_pref_get_type(pref)) { |
| 82 case GAIM_PLUGIN_PREF_CHOICE: |
82 case PURPLE_PLUGIN_PREF_CHOICE: |
| 83 gtk_label = pidgin_prefs_dropdown_from_list(parent, pref_label, |
83 gtk_label = pidgin_prefs_dropdown_from_list(parent, pref_label, |
| 84 GAIM_PREF_STRING, pref_name, |
84 PURPLE_PREF_STRING, pref_name, |
| 85 gaim_plugin_pref_get_choices(pref)); |
85 purple_plugin_pref_get_choices(pref)); |
| 86 gtk_misc_set_alignment(GTK_MISC(gtk_label), 0, 0.5); |
86 gtk_misc_set_alignment(GTK_MISC(gtk_label), 0, 0.5); |
| 87 |
87 |
| 88 if(sg) |
88 if(sg) |
| 89 gtk_size_group_add_widget(sg, gtk_label); |
89 gtk_size_group_add_widget(sg, gtk_label); |
| 90 |
90 |
| 91 break; |
91 break; |
| 92 case GAIM_PLUGIN_PREF_NONE: |
92 case PURPLE_PLUGIN_PREF_NONE: |
| 93 default: |
93 default: |
| 94 if (format == GAIM_STRING_FORMAT_TYPE_NONE) |
94 if (format == PURPLE_STRING_FORMAT_TYPE_NONE) |
| 95 box = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); |
95 box = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); |
| 96 else |
96 else |
| 97 box = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); |
97 box = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); |
| 98 |
98 |
| 99 gtk_widget_show(box); |
99 gtk_widget_show(box); |
| 105 gtk_box_pack_start(GTK_BOX(box), gtk_label, FALSE, FALSE, 0); |
105 gtk_box_pack_start(GTK_BOX(box), gtk_label, FALSE, FALSE, 0); |
| 106 |
106 |
| 107 if(sg) |
107 if(sg) |
| 108 gtk_size_group_add_widget(sg, gtk_label); |
108 gtk_size_group_add_widget(sg, gtk_label); |
| 109 |
109 |
| 110 if (format == GAIM_STRING_FORMAT_TYPE_NONE) |
110 if (format == PURPLE_STRING_FORMAT_TYPE_NONE) |
| 111 { |
111 { |
| 112 entry = gtk_entry_new(); |
112 entry = gtk_entry_new(); |
| 113 gtk_entry_set_text(GTK_ENTRY(entry), gaim_prefs_get_string(pref_name)); |
113 gtk_entry_set_text(GTK_ENTRY(entry), purple_prefs_get_string(pref_name)); |
| 114 gtk_entry_set_max_length(GTK_ENTRY(entry), |
114 gtk_entry_set_max_length(GTK_ENTRY(entry), |
| 115 gaim_plugin_pref_get_max_length(pref)); |
115 purple_plugin_pref_get_max_length(pref)); |
| 116 if (gaim_plugin_pref_get_masked(pref)) |
116 if (purple_plugin_pref_get_masked(pref)) |
| 117 { |
117 { |
| 118 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); |
118 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); |
| 119 if (gtk_entry_get_invisible_char(GTK_ENTRY(entry)) == '*') |
119 if (gtk_entry_get_invisible_char(GTK_ENTRY(entry)) == '*') |
| 120 gtk_entry_set_invisible_char(GTK_ENTRY(entry), PIDGIN_INVISIBLE_CHAR); |
120 gtk_entry_set_invisible_char(GTK_ENTRY(entry), PIDGIN_INVISIBLE_CHAR); |
| 121 } |
121 } |
| 141 spacer = gtk_label_new(" "); |
141 spacer = gtk_label_new(" "); |
| 142 gtk_box_pack_start(GTK_BOX(hbox), spacer, FALSE, FALSE, 0); |
142 gtk_box_pack_start(GTK_BOX(hbox), spacer, FALSE, FALSE, 0); |
| 143 gtk_widget_show(spacer); |
143 gtk_widget_show(spacer); |
| 144 |
144 |
| 145 frame = pidgin_create_imhtml(TRUE, &imhtml, &toolbar, NULL); |
145 frame = pidgin_create_imhtml(TRUE, &imhtml, &toolbar, NULL); |
| 146 if (!(format & GAIM_STRING_FORMAT_TYPE_HTML)) |
146 if (!(format & PURPLE_STRING_FORMAT_TYPE_HTML)) |
| 147 gtk_widget_destroy(toolbar); |
147 gtk_widget_destroy(toolbar); |
| 148 |
148 |
| 149 gtk_imhtml_append_text(GTK_IMHTML(imhtml), gaim_prefs_get_string(pref_name), |
149 gtk_imhtml_append_text(GTK_IMHTML(imhtml), purple_prefs_get_string(pref_name), |
| 150 (format & GAIM_STRING_FORMAT_TYPE_MULTILINE) ? 0 : GTK_IMHTML_NO_NEWLINE); |
150 (format & PURPLE_STRING_FORMAT_TYPE_MULTILINE) ? 0 : GTK_IMHTML_NO_NEWLINE); |
| 151 gtk_label_set_mnemonic_widget(GTK_LABEL(gtk_label), imhtml); |
151 gtk_label_set_mnemonic_widget(GTK_LABEL(gtk_label), imhtml); |
| 152 gtk_widget_show_all(frame); |
152 gtk_widget_show_all(frame); |
| 153 g_object_set_data(G_OBJECT(imhtml), "pref-key", (gpointer)pref_name); |
153 g_object_set_data(G_OBJECT(imhtml), "pref-key", (gpointer)pref_name); |
| 154 g_signal_connect(G_OBJECT(gtk_text_view_get_buffer(GTK_TEXT_VIEW(imhtml))), |
154 g_signal_connect(G_OBJECT(gtk_text_view_get_buffer(GTK_TEXT_VIEW(imhtml))), |
| 155 "changed", G_CALLBACK(imhtml_cb), imhtml); |
155 "changed", G_CALLBACK(imhtml_cb), imhtml); |
| 161 break; |
161 break; |
| 162 } |
162 } |
| 163 } |
163 } |
| 164 |
164 |
| 165 static void |
165 static void |
| 166 make_int_pref(GtkWidget *parent, GaimPluginPref *pref, GtkSizeGroup *sg) { |
166 make_int_pref(GtkWidget *parent, PurplePluginPref *pref, GtkSizeGroup *sg) { |
| 167 GtkWidget *gtk_label; |
167 GtkWidget *gtk_label; |
| 168 const gchar *pref_name; |
168 const gchar *pref_name; |
| 169 const gchar *pref_label; |
169 const gchar *pref_label; |
| 170 gint max, min; |
170 gint max, min; |
| 171 |
171 |
| 172 pref_name = gaim_plugin_pref_get_name(pref); |
172 pref_name = purple_plugin_pref_get_name(pref); |
| 173 pref_label = gaim_plugin_pref_get_label(pref); |
173 pref_label = purple_plugin_pref_get_label(pref); |
| 174 |
174 |
| 175 switch(gaim_plugin_pref_get_type(pref)) { |
175 switch(purple_plugin_pref_get_type(pref)) { |
| 176 case GAIM_PLUGIN_PREF_CHOICE: |
176 case PURPLE_PLUGIN_PREF_CHOICE: |
| 177 gtk_label = pidgin_prefs_dropdown_from_list(parent, pref_label, |
177 gtk_label = pidgin_prefs_dropdown_from_list(parent, pref_label, |
| 178 GAIM_PREF_INT, pref_name, gaim_plugin_pref_get_choices(pref)); |
178 PURPLE_PREF_INT, pref_name, purple_plugin_pref_get_choices(pref)); |
| 179 gtk_misc_set_alignment(GTK_MISC(gtk_label), 0, 0.5); |
179 gtk_misc_set_alignment(GTK_MISC(gtk_label), 0, 0.5); |
| 180 |
180 |
| 181 if(sg) |
181 if(sg) |
| 182 gtk_size_group_add_widget(sg, gtk_label); |
182 gtk_size_group_add_widget(sg, gtk_label); |
| 183 |
183 |
| 184 break; |
184 break; |
| 185 case GAIM_PLUGIN_PREF_NONE: |
185 case PURPLE_PLUGIN_PREF_NONE: |
| 186 default: |
186 default: |
| 187 gaim_plugin_pref_get_bounds(pref, &min, &max); |
187 purple_plugin_pref_get_bounds(pref, &min, &max); |
| 188 pidgin_prefs_labeled_spin_button(parent, pref_label, |
188 pidgin_prefs_labeled_spin_button(parent, pref_label, |
| 189 pref_name, min, max, sg); |
189 pref_name, min, max, sg); |
| 190 break; |
190 break; |
| 191 } |
191 } |
| 192 } |
192 } |
| 193 |
193 |
| 194 |
194 |
| 195 static void |
195 static void |
| 196 make_info_pref(GtkWidget *parent, GaimPluginPref *pref) { |
196 make_info_pref(GtkWidget *parent, PurplePluginPref *pref) { |
| 197 GtkWidget *gtk_label = gtk_label_new(gaim_plugin_pref_get_label(pref)); |
197 GtkWidget *gtk_label = gtk_label_new(purple_plugin_pref_get_label(pref)); |
| 198 gtk_misc_set_alignment(GTK_MISC(gtk_label), 0, 0); |
198 gtk_misc_set_alignment(GTK_MISC(gtk_label), 0, 0); |
| 199 gtk_label_set_line_wrap(GTK_LABEL(gtk_label), TRUE); |
199 gtk_label_set_line_wrap(GTK_LABEL(gtk_label), TRUE); |
| 200 gtk_box_pack_start(GTK_BOX(parent), gtk_label, FALSE, FALSE, 0); |
200 gtk_box_pack_start(GTK_BOX(parent), gtk_label, FALSE, FALSE, 0); |
| 201 gtk_widget_show(gtk_label); |
201 gtk_widget_show(gtk_label); |
| 202 } |
202 } |
| 203 |
203 |
| 204 |
204 |
| 205 GtkWidget * |
205 GtkWidget * |
| 206 pidgin_plugin_pref_create_frame(GaimPluginPrefFrame *frame) { |
206 pidgin_plugin_pref_create_frame(PurplePluginPrefFrame *frame) { |
| 207 GtkWidget *ret, *parent; |
207 GtkWidget *ret, *parent; |
| 208 GtkSizeGroup *sg; |
208 GtkSizeGroup *sg; |
| 209 GList *pp; |
209 GList *pp; |
| 210 |
210 |
| 211 g_return_val_if_fail(frame, NULL); |
211 g_return_val_if_fail(frame, NULL); |
| 214 |
214 |
| 215 parent = ret = gtk_vbox_new(FALSE, 16); |
215 parent = ret = gtk_vbox_new(FALSE, 16); |
| 216 gtk_container_set_border_width(GTK_CONTAINER(ret), PIDGIN_HIG_BORDER); |
216 gtk_container_set_border_width(GTK_CONTAINER(ret), PIDGIN_HIG_BORDER); |
| 217 gtk_widget_show(ret); |
217 gtk_widget_show(ret); |
| 218 |
218 |
| 219 for(pp = gaim_plugin_pref_frame_get_prefs(frame); |
219 for(pp = purple_plugin_pref_frame_get_prefs(frame); |
| 220 pp != NULL; |
220 pp != NULL; |
| 221 pp = pp->next) |
221 pp = pp->next) |
| 222 { |
222 { |
| 223 GaimPluginPref *pref = (GaimPluginPref *)pp->data; |
223 PurplePluginPref *pref = (PurplePluginPref *)pp->data; |
| 224 |
224 |
| 225 const char *name = gaim_plugin_pref_get_name(pref); |
225 const char *name = purple_plugin_pref_get_name(pref); |
| 226 const char *label = gaim_plugin_pref_get_label(pref); |
226 const char *label = purple_plugin_pref_get_label(pref); |
| 227 |
227 |
| 228 if(name == NULL) { |
228 if(name == NULL) { |
| 229 if(label == NULL) |
229 if(label == NULL) |
| 230 continue; |
230 continue; |
| 231 |
231 |
| 232 if(gaim_plugin_pref_get_type(pref) == GAIM_PLUGIN_PREF_INFO) { |
232 if(purple_plugin_pref_get_type(pref) == PURPLE_PLUGIN_PREF_INFO) { |
| 233 make_info_pref(parent, pref); |
233 make_info_pref(parent, pref); |
| 234 } else { |
234 } else { |
| 235 parent = pidgin_make_frame(ret, label); |
235 parent = pidgin_make_frame(ret, label); |
| 236 gtk_widget_show(parent); |
236 gtk_widget_show(parent); |
| 237 } |
237 } |
| 238 |
238 |
| 239 continue; |
239 continue; |
| 240 } |
240 } |
| 241 |
241 |
| 242 switch(gaim_prefs_get_type(name)) { |
242 switch(purple_prefs_get_type(name)) { |
| 243 case GAIM_PREF_BOOLEAN: |
243 case PURPLE_PREF_BOOLEAN: |
| 244 pidgin_prefs_checkbox(label, name, parent); |
244 pidgin_prefs_checkbox(label, name, parent); |
| 245 break; |
245 break; |
| 246 case GAIM_PREF_INT: |
246 case PURPLE_PREF_INT: |
| 247 make_int_pref(parent, pref, sg); |
247 make_int_pref(parent, pref, sg); |
| 248 break; |
248 break; |
| 249 case GAIM_PREF_STRING: |
249 case PURPLE_PREF_STRING: |
| 250 make_string_pref(parent, pref, sg); |
250 make_string_pref(parent, pref, sg); |
| 251 break; |
251 break; |
| 252 default: |
252 default: |
| 253 break; |
253 break; |
| 254 } |
254 } |