pidgin/gtkimhtmltoolbar.c

branch
cpw.qulogic.gtk3
changeset 32424
be4a642b2d45
parent 31321
1fef3832cfa2
parent 32422
c215bc5d85e4
child 32438
dc8991868906
child 33120
f6f1a27ade72
equal deleted inserted replaced
31579:a0a4b018f9eb 32424:be4a642b2d45
122 static void 122 static void
123 realize_toolbar_font(GtkWidget *widget, GtkIMHtmlToolbar *toolbar) 123 realize_toolbar_font(GtkWidget *widget, GtkIMHtmlToolbar *toolbar)
124 { 124 {
125 GtkFontSelection *sel; 125 GtkFontSelection *sel;
126 126
127 sel = GTK_FONT_SELECTION(GTK_FONT_SELECTION_DIALOG(toolbar->font_dialog)->fontsel); 127 sel = GTK_FONT_SELECTION(
128 gtk_widget_hide_all(gtk_widget_get_parent(sel->size_entry)); 128 gtk_font_selection_dialog_get_font_selection(GTK_FONT_SELECTION_DIALOG(toolbar->font_dialog)));
129 gtk_widget_show_all(sel->family_list); 129 gtk_widget_hide(gtk_widget_get_parent(
130 gtk_widget_show(gtk_widget_get_parent(sel->family_list)); 130 gtk_font_selection_get_size_entry(sel)));
131 gtk_widget_show(gtk_widget_get_parent(gtk_widget_get_parent(sel->family_list))); 131 gtk_widget_show_all(gtk_font_selection_get_family_list(sel));
132 gtk_widget_show(gtk_widget_get_parent(
133 gtk_font_selection_get_family_list(sel)));
134 gtk_widget_show(gtk_widget_get_parent(gtk_widget_get_parent(
135 gtk_font_selection_get_family_list(sel))));
132 } 136 }
133 137
134 static void 138 static void
135 cancel_toolbar_font(GtkWidget *widget, GtkIMHtmlToolbar *toolbar) 139 cancel_toolbar_font(GtkWidget *widget, GtkIMHtmlToolbar *toolbar)
136 { 140 {
189 DEFAULT_FONT_FACE); 193 DEFAULT_FONT_FACE);
190 } 194 }
191 195
192 g_signal_connect(G_OBJECT(toolbar->font_dialog), "delete_event", 196 g_signal_connect(G_OBJECT(toolbar->font_dialog), "delete_event",
193 G_CALLBACK(destroy_toolbar_font), toolbar); 197 G_CALLBACK(destroy_toolbar_font), toolbar);
194 g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(toolbar->font_dialog)->ok_button), "clicked", 198 g_signal_connect(G_OBJECT(
195 G_CALLBACK(apply_font), toolbar->font_dialog); 199 gtk_font_selection_dialog_get_ok_button(GTK_FONT_SELECTION_DIALOG(toolbar->font_dialog))),
196 g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(toolbar->font_dialog)->cancel_button), "clicked", 200 "clicked", G_CALLBACK(apply_font), toolbar->font_dialog);
197 G_CALLBACK(cancel_toolbar_font), toolbar); 201 g_signal_connect(G_OBJECT(
202 gtk_font_selection_dialog_get_cancel_button(GTK_FONT_SELECTION_DIALOG(toolbar->font_dialog))),
203 "clicked", G_CALLBACK(cancel_toolbar_font), toolbar);
198 g_signal_connect_after(G_OBJECT(toolbar->font_dialog), "realize", 204 g_signal_connect_after(G_OBJECT(toolbar->font_dialog), "realize",
199 G_CALLBACK(realize_toolbar_font), toolbar); 205 G_CALLBACK(realize_toolbar_font), toolbar);
200 } 206 }
201 gtk_window_present(GTK_WINDOW(toolbar->font_dialog)); 207 gtk_window_present(GTK_WINDOW(toolbar->font_dialog));
202 } else { 208 } else {
251 GtkWidget *colorsel; 257 GtkWidget *colorsel;
252 GdkColor fgcolor; 258 GdkColor fgcolor;
253 char *color = gtk_imhtml_get_current_forecolor(GTK_IMHTML(toolbar->imhtml)); 259 char *color = gtk_imhtml_get_current_forecolor(GTK_IMHTML(toolbar->imhtml));
254 260
255 if (!toolbar->fgcolor_dialog) { 261 if (!toolbar->fgcolor_dialog) {
262 GtkWidget *ok_button;
263 GtkWidget *cancel_button;
256 264
257 toolbar->fgcolor_dialog = gtk_color_selection_dialog_new(_("Select Text Color")); 265 toolbar->fgcolor_dialog = gtk_color_selection_dialog_new(_("Select Text Color"));
258 colorsel = GTK_COLOR_SELECTION_DIALOG(toolbar->fgcolor_dialog)->colorsel; 266 colorsel =
267 gtk_color_selection_dialog_get_color_selection(GTK_COLOR_SELECTION_DIALOG(toolbar->fgcolor_dialog));
259 if (color) { 268 if (color) {
260 gdk_color_parse(color, &fgcolor); 269 gdk_color_parse(color, &fgcolor);
261 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &fgcolor); 270 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &fgcolor);
262 g_free(color); 271 g_free(color);
263 } 272 }
264 273
265 g_object_set_data(G_OBJECT(colorsel), "purple_toolbar", toolbar); 274 g_object_set_data(G_OBJECT(colorsel), "purple_toolbar", toolbar);
266 275
276 g_object_get(G_OBJECT(toolbar->fgcolor_dialog), "ok-button", &ok_button, NULL);
277 g_object_get(G_OBJECT(toolbar->fgcolor_dialog), "cancel-button", &cancel_button, NULL);
267 g_signal_connect(G_OBJECT(toolbar->fgcolor_dialog), "delete_event", 278 g_signal_connect(G_OBJECT(toolbar->fgcolor_dialog), "delete_event",
268 G_CALLBACK(destroy_toolbar_fgcolor), toolbar); 279 G_CALLBACK(destroy_toolbar_fgcolor), toolbar);
269 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(toolbar->fgcolor_dialog)->ok_button), "clicked", 280 g_signal_connect(G_OBJECT(ok_button), "clicked", G_CALLBACK(do_fgcolor), colorsel);
270 G_CALLBACK(do_fgcolor), colorsel); 281 g_signal_connect(G_OBJECT(cancel_button), "clicked",
271 g_signal_connect(G_OBJECT (GTK_COLOR_SELECTION_DIALOG(toolbar->fgcolor_dialog)->cancel_button), "clicked", 282 G_CALLBACK(cancel_toolbar_fgcolor), toolbar);
272 G_CALLBACK(cancel_toolbar_fgcolor), toolbar);
273 } 283 }
274 gtk_window_present(GTK_WINDOW(toolbar->fgcolor_dialog)); 284 gtk_window_present(GTK_WINDOW(toolbar->fgcolor_dialog));
275 } else { 285 } else {
276 cancel_toolbar_fgcolor(color, toolbar); 286 cancel_toolbar_fgcolor(color, toolbar);
277 } 287 }
331 GtkWidget *colorsel; 341 GtkWidget *colorsel;
332 GdkColor bgcolor; 342 GdkColor bgcolor;
333 char *color = gtk_imhtml_get_current_backcolor(GTK_IMHTML(toolbar->imhtml)); 343 char *color = gtk_imhtml_get_current_backcolor(GTK_IMHTML(toolbar->imhtml));
334 344
335 if (!toolbar->bgcolor_dialog) { 345 if (!toolbar->bgcolor_dialog) {
346 GtkWidget *ok_button;
347 GtkWidget *cancel_button;
336 348
337 toolbar->bgcolor_dialog = gtk_color_selection_dialog_new(_("Select Background Color")); 349 toolbar->bgcolor_dialog = gtk_color_selection_dialog_new(_("Select Background Color"));
338 colorsel = GTK_COLOR_SELECTION_DIALOG(toolbar->bgcolor_dialog)->colorsel; 350 colorsel =
351 gtk_color_selection_dialog_get_color_selection(GTK_COLOR_SELECTION_DIALOG(toolbar->fgcolor_dialog));
352
339 if (color) { 353 if (color) {
340 gdk_color_parse(color, &bgcolor); 354 gdk_color_parse(color, &bgcolor);
341 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &bgcolor); 355 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &bgcolor);
342 g_free(color); 356 g_free(color);
343 } 357 }
344 358
345 g_object_set_data(G_OBJECT(colorsel), "purple_toolbar", toolbar); 359 g_object_set_data(G_OBJECT(colorsel), "purple_toolbar", toolbar);
346 360
361 g_object_get(G_OBJECT(toolbar->bgcolor_dialog), "ok-button", &ok_button, NULL);
362 g_object_get(G_OBJECT(toolbar->bgcolor_dialog), "cancel-button",
363 &cancel_button, NULL);
347 g_signal_connect(G_OBJECT(toolbar->bgcolor_dialog), "delete_event", 364 g_signal_connect(G_OBJECT(toolbar->bgcolor_dialog), "delete_event",
348 G_CALLBACK(destroy_toolbar_bgcolor), toolbar); 365 G_CALLBACK(destroy_toolbar_bgcolor), toolbar);
349 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(toolbar->bgcolor_dialog)->ok_button), "clicked", 366 g_signal_connect(G_OBJECT(ok_button), "clicked",
350 G_CALLBACK(do_bgcolor), colorsel); 367 G_CALLBACK(do_bgcolor), colorsel);
351 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(toolbar->bgcolor_dialog)->cancel_button), "clicked", 368 g_signal_connect(G_OBJECT(cancel_button), "clicked",
352 G_CALLBACK(cancel_toolbar_bgcolor), toolbar); 369 G_CALLBACK(cancel_toolbar_bgcolor), toolbar);
353 370
354 } 371 }
355 gtk_window_present(GTK_WINDOW(toolbar->bgcolor_dialog)); 372 gtk_window_present(GTK_WINDOW(toolbar->bgcolor_dialog));
356 } else { 373 } else {
459 gtk_widget_grab_focus(toolbar->imhtml); 476 gtk_widget_grab_focus(toolbar->imhtml);
460 } 477 }
461 478
462 static void insert_hr_cb(GtkWidget *widget, GtkIMHtmlToolbar *toolbar) 479 static void insert_hr_cb(GtkWidget *widget, GtkIMHtmlToolbar *toolbar)
463 { 480 {
464 GtkTextIter iter; 481 GtkTextIter iter;
465 GtkTextMark *ins; 482 GtkTextMark *ins;
466 GtkIMHtmlScalable *hr; 483 GtkIMHtmlScalable *hr;
467 484
468 ins = gtk_text_buffer_get_insert(gtk_text_view_get_buffer(GTK_TEXT_VIEW(toolbar->imhtml))); 485 ins = gtk_text_buffer_get_insert(gtk_text_view_get_buffer(GTK_TEXT_VIEW(toolbar->imhtml)));
469 gtk_text_buffer_get_iter_at_mark(gtk_text_view_get_buffer(GTK_TEXT_VIEW(toolbar->imhtml)), &iter, ins); 486 gtk_text_buffer_get_iter_at_mark(gtk_text_view_get_buffer(GTK_TEXT_VIEW(toolbar->imhtml)), &iter, ins);
470 hr = gtk_imhtml_hr_new(); 487 hr = gtk_imhtml_hr_new();
471 gtk_imhtml_hr_add_to(hr, GTK_IMHTML(toolbar->imhtml), &iter); 488 gtk_imhtml_hr_add_to(hr, GTK_IMHTML(toolbar->imhtml), &iter);
472 } 489 }
473 490
474 static void 491 static void
656 gtk_container_add(GTK_CONTAINER(button), image); 673 gtk_container_add(GTK_CONTAINER(button), image);
657 674
658 g_object_set_data(G_OBJECT(button), "smiley_text", face); 675 g_object_set_data(G_OBJECT(button), "smiley_text", face);
659 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(insert_smiley_text), toolbar); 676 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(insert_smiley_text), toolbar);
660 677
678 #if GTK_CHECK_VERSION(2,12,0)
679 gtk_widget_set_tooltip_text(button, face);
680 #else
661 gtk_tooltips_set_tip(toolbar->tooltips, button, face, NULL); 681 gtk_tooltips_set_tip(toolbar->tooltips, button, face, NULL);
682 #endif
662 683
663 /* these look really weird with borders */ 684 /* these look really weird with borders */
664 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); 685 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
665 686
666 psmiley = purple_smileys_find_by_shortcut(smiley->smile); 687 psmiley = purple_smileys_find_by_shortcut(smiley->smile);
670 if (supports_custom && psmiley && !(smiley->flags & GTK_IMHTML_SMILEY_CUSTOM)) { 691 if (supports_custom && psmiley && !(smiley->flags & GTK_IMHTML_SMILEY_CUSTOM)) {
671 gchar tip[128]; 692 gchar tip[128];
672 g_snprintf(tip, sizeof(tip), 693 g_snprintf(tip, sizeof(tip),
673 _("This smiley is disabled because a custom smiley exists for this shortcut:\n %s"), 694 _("This smiley is disabled because a custom smiley exists for this shortcut:\n %s"),
674 face); 695 face);
696 #if GTK_CHECK_VERSION(2,12,0)
697 gtk_widget_set_tooltip_text(button, tip);
698 #else
675 gtk_tooltips_set_tip(toolbar->tooltips, button, tip, NULL); 699 gtk_tooltips_set_tip(toolbar->tooltips, button, tip, NULL);
700 #endif
676 gtk_widget_set_sensitive(button, FALSE); 701 gtk_widget_set_sensitive(button, FALSE);
677 } else if (psmiley) { 702 } else if (psmiley) {
678 /* Remove the button if the smiley is destroyed */ 703 /* Remove the button if the smiley is destroyed */
679 g_signal_connect_object(G_OBJECT(psmiley), "destroy", G_CALLBACK(gtk_widget_destroy), 704 g_signal_connect_object(G_OBJECT(psmiley), "destroy", G_CALLBACK(gtk_widget_destroy),
680 button, G_CONNECT_SWAPPED); 705 button, G_CONNECT_SWAPPED);
712 } 737 }
713 738
714 static gboolean 739 static gboolean
715 smiley_dialog_input_cb(GtkWidget *dialog, GdkEvent *event, GtkIMHtmlToolbar *toolbar) 740 smiley_dialog_input_cb(GtkWidget *dialog, GdkEvent *event, GtkIMHtmlToolbar *toolbar)
716 { 741 {
717 if ((event->type == GDK_KEY_PRESS && event->key.keyval == GDK_Escape) || 742 if ((event->type == GDK_KEY_PRESS && event->key.keyval == GDK_KEY_Escape) ||
718 (event->type == GDK_BUTTON_PRESS && event->button.button == 1)) 743 (event->type == GDK_BUTTON_PRESS && event->button.button == 1))
719 { 744 {
720 close_smiley_dialog(toolbar); 745 close_smiley_dialog(toolbar);
721 return TRUE; 746 return TRUE;
722 } 747 }
1082 gboolean *push_in, 1107 gboolean *push_in,
1083 gpointer data) 1108 gpointer data)
1084 { 1109 {
1085 GtkWidget *widget = GTK_WIDGET(data); 1110 GtkWidget *widget = GTK_WIDGET(data);
1086 GtkRequisition menu_req; 1111 GtkRequisition menu_req;
1087 gint ythickness = widget->style->ythickness; 1112 GtkAllocation allocation;
1113 gint ythickness = gtk_widget_get_style(widget)->ythickness;
1088 int savy; 1114 int savy;
1089 1115
1116 gtk_widget_get_allocation(widget, &allocation);
1090 gtk_widget_size_request(GTK_WIDGET (menu), &menu_req); 1117 gtk_widget_size_request(GTK_WIDGET (menu), &menu_req);
1091 gdk_window_get_origin(widget->window, x, y); 1118 gdk_window_get_origin(gtk_widget_get_window(widget), x, y);
1092 *x += widget->allocation.x; 1119 *x += allocation.x;
1093 *y += widget->allocation.y + widget->allocation.height; 1120 *y += allocation.y + allocation.height;
1094 savy = *y; 1121 savy = *y;
1095 1122
1096 pidgin_menu_position_func_helper(menu, x, y, push_in, data); 1123 pidgin_menu_position_func_helper(menu, x, y, push_in, data);
1097 1124
1098 if (savy > *y + ythickness + 1) 1125 if (savy > *y + ythickness + 1)
1099 *y -= widget->allocation.height; 1126 *y -= allocation.height;
1100 } 1127 }
1101 1128
1102 static gboolean 1129 static gboolean
1103 button_activate_on_click(GtkWidget *button, GdkEventButton *event, GtkIMHtmlToolbar *toolbar) 1130 button_activate_on_click(GtkWidget *button, GdkEventButton *event, GtkIMHtmlToolbar *toolbar)
1104 { 1131 {
1153 G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, 1180 G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL,
1154 toolbar); 1181 toolbar);
1155 } 1182 }
1156 1183
1157 g_free(toolbar->sml); 1184 g_free(toolbar->sml);
1185 #if !GTK_CHECK_VERSION(2,12,0)
1158 gtk_object_sink(GTK_OBJECT(toolbar->tooltips)); 1186 gtk_object_sink(GTK_OBJECT(toolbar->tooltips));
1187 #endif
1159 1188
1160 menu = g_object_get_data(object, "font_menu"); 1189 menu = g_object_get_data(object, "font_menu");
1161 if (menu) 1190 if (menu)
1162 gtk_widget_destroy(menu); 1191 gtk_widget_destroy(menu);
1163 menu = g_object_get_data(object, "insert_menu"); 1192 menu = g_object_get_data(object, "insert_menu");
1184 gboolean wide; 1213 gboolean wide;
1185 1214
1186 if (event->button != 3) 1215 if (event->button != 3)
1187 return FALSE; 1216 return FALSE;
1188 1217
1189 wide = GTK_WIDGET_VISIBLE(toolbar->bold); 1218 wide = gtk_widget_get_visible(toolbar->bold);
1190 1219
1191 menu = gtk_menu_new(); 1220 menu = gtk_menu_new();
1192 item = gtk_menu_item_new_with_mnemonic(wide ? _("Group Items") : _("Ungroup Items")); 1221 item = gtk_menu_item_new_with_mnemonic(wide ? _("Group Items") : _("Ungroup Items"));
1193 g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(switch_toolbar_view), toolbar); 1222 g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(switch_toolbar_view), toolbar);
1194 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1223 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
1250 button = pidgin_pixbuf_toolbar_button_from_stock(buttons[iter].stock); 1279 button = pidgin_pixbuf_toolbar_button_from_stock(buttons[iter].stock);
1251 g_signal_connect(G_OBJECT(button), "button-press-event", G_CALLBACK(gtk_imhtmltoolbar_popup_menu), toolbar); 1280 g_signal_connect(G_OBJECT(button), "button-press-event", G_CALLBACK(gtk_imhtmltoolbar_popup_menu), toolbar);
1252 g_signal_connect(G_OBJECT(button), "clicked", 1281 g_signal_connect(G_OBJECT(button), "clicked",
1253 G_CALLBACK(buttons[iter].callback), toolbar); 1282 G_CALLBACK(buttons[iter].callback), toolbar);
1254 *(buttons[iter].button) = button; 1283 *(buttons[iter].button) = button;
1284 #if GTK_CHECK_VERSION(2,12,0)
1285 gtk_widget_set_tooltip_text(button, buttons[iter].tooltip);
1286 #else
1255 gtk_tooltips_set_tip(toolbar->tooltips, button, buttons[iter].tooltip, NULL); 1287 gtk_tooltips_set_tip(toolbar->tooltips, button, buttons[iter].tooltip, NULL);
1288 #endif
1256 } else 1289 } else
1257 button = gtk_vseparator_new(); 1290 button = gtk_vseparator_new();
1258 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); 1291 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
1259 } 1292 }
1260 /* create the attention button (this is a bit hacky to not break ABI) */ 1293 /* create the attention button (this is a bit hacky to not break ABI) */
1261 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_SEND_ATTENTION); 1294 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_SEND_ATTENTION);
1262 g_signal_connect(G_OBJECT(button), "button-press-event", G_CALLBACK(gtk_imhtmltoolbar_popup_menu), toolbar); 1295 g_signal_connect(G_OBJECT(button), "button-press-event", G_CALLBACK(gtk_imhtmltoolbar_popup_menu), toolbar);
1263 g_signal_connect(G_OBJECT(button), "clicked", 1296 g_signal_connect(G_OBJECT(button), "clicked",
1264 G_CALLBACK(send_attention_cb), toolbar); 1297 G_CALLBACK(send_attention_cb), toolbar);
1265 g_object_set_data(G_OBJECT(toolbar), "attention", button); 1298 g_object_set_data(G_OBJECT(toolbar), "attention", button);
1299 #if GTK_CHECK_VERSION(2,12,0)
1300 gtk_widget_set_tooltip_text(button, _("Send Attention"));
1301 #else
1266 gtk_tooltips_set_tip(toolbar->tooltips, button, _("Send Attention"), NULL); 1302 gtk_tooltips_set_tip(toolbar->tooltips, button, _("Send Attention"), NULL);
1303 #endif
1267 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); 1304 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
1268 1305
1269 gtk_box_pack_start(GTK_BOX(toolbar), hbox, FALSE, FALSE, 0); 1306 gtk_box_pack_start(GTK_BOX(toolbar), hbox, FALSE, FALSE, 0);
1270 g_object_set_data(G_OBJECT(toolbar), "wide-view", hbox); 1307 g_object_set_data(G_OBJECT(toolbar), "wide-view", hbox);
1271 } 1308 }
1272 1309
1273 static void 1310 static void
1274 button_visibility_changed(GtkWidget *button, gpointer dontcare, GtkWidget *item) 1311 button_visibility_changed(GtkWidget *button, gpointer dontcare, GtkWidget *item)
1275 { 1312 {
1276 if (GTK_WIDGET_VISIBLE(button)) 1313 if (gtk_widget_get_visible(button))
1277 gtk_widget_hide(item); 1314 gtk_widget_hide(item);
1278 else 1315 else
1279 gtk_widget_show(item); 1316 gtk_widget_show(item);
1280 } 1317 }
1281 1318
1282 static void 1319 static void
1283 button_sensitiveness_changed(GtkWidget *button, gpointer dontcare, GtkWidget *item) 1320 button_sensitiveness_changed(GtkWidget *button, gpointer dontcare, GtkWidget *item)
1284 { 1321 {
1285 gtk_widget_set_sensitive(item, GTK_WIDGET_IS_SENSITIVE(button)); 1322 gtk_widget_set_sensitive(item, gtk_widget_get_sensitive(button));
1286 } 1323 }
1287 1324
1288 static void 1325 static void
1289 update_menuitem(GtkToggleButton *button, GtkCheckMenuItem *item) 1326 update_menuitem(GtkToggleButton *button, GtkCheckMenuItem *item)
1290 { 1327 {
1303 static void 1340 static void
1304 imhtmltoolbar_view_pref_changed(const char *name, PurplePrefType type, 1341 imhtmltoolbar_view_pref_changed(const char *name, PurplePrefType type,
1305 gconstpointer value, gpointer toolbar) 1342 gconstpointer value, gpointer toolbar)
1306 { 1343 {
1307 if (value) { 1344 if (value) {
1308 gtk_widget_hide_all(g_object_get_data(G_OBJECT(toolbar), "lean-view")); 1345 gtk_widget_hide(g_object_get_data(G_OBJECT(toolbar), "lean-view"));
1309 gtk_widget_show_all(g_object_get_data(G_OBJECT(toolbar), "wide-view")); 1346 gtk_widget_show_all(g_object_get_data(G_OBJECT(toolbar), "wide-view"));
1310 } else { 1347 } else {
1311 gtk_widget_hide_all(g_object_get_data(G_OBJECT(toolbar), "wide-view")); 1348 gtk_widget_hide(g_object_get_data(G_OBJECT(toolbar), "wide-view"));
1312 gtk_widget_show_all(g_object_get_data(G_OBJECT(toolbar), "lean-view")); 1349 gtk_widget_show_all(g_object_get_data(G_OBJECT(toolbar), "lean-view"));
1313 } 1350 }
1314 } 1351 }
1315 1352
1316 static void gtk_imhtmltoolbar_init (GtkIMHtmlToolbar *toolbar) 1353 static void gtk_imhtmltoolbar_init (GtkIMHtmlToolbar *toolbar)
1359 toolbar->bgcolor_dialog = NULL; 1396 toolbar->bgcolor_dialog = NULL;
1360 toolbar->link_dialog = NULL; 1397 toolbar->link_dialog = NULL;
1361 toolbar->smiley_dialog = NULL; 1398 toolbar->smiley_dialog = NULL;
1362 toolbar->image_dialog = NULL; 1399 toolbar->image_dialog = NULL;
1363 1400
1401 #if !GTK_CHECK_VERSION(2,12,0)
1364 toolbar->tooltips = gtk_tooltips_new(); 1402 toolbar->tooltips = gtk_tooltips_new();
1403 #endif
1365 1404
1366 gtk_box_set_spacing(GTK_BOX(toolbar), 3); 1405 gtk_box_set_spacing(GTK_BOX(toolbar), 3);
1367 1406
1368 gtk_imhtmltoolbar_create_old_buttons(toolbar); 1407 gtk_imhtmltoolbar_create_old_buttons(toolbar);
1369 1408

mercurial