pidgin/gtkimhtmltoolbar.c

branch
cpw.qulogic.gtk3
changeset 32394
f883709bdba4
parent 32391
5f9f23a48f82
child 32414
8c5d1edf9da2
equal deleted inserted replaced
32393:69f260ac8ea8 32394:f883709bdba4
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) {
256 262 GtkWidget *ok_button;
263 GtkWidget *cancel_button;
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",
278 &cancel_button, NULL);
267 g_signal_connect(G_OBJECT(toolbar->fgcolor_dialog), "delete_event", 279 g_signal_connect(G_OBJECT(toolbar->fgcolor_dialog), "delete_event",
268 G_CALLBACK(destroy_toolbar_fgcolor), toolbar); 280 G_CALLBACK(destroy_toolbar_fgcolor), toolbar);
269 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(toolbar->fgcolor_dialog)->ok_button), "clicked", 281 g_signal_connect(G_OBJECT(ok_button), "clicked", G_CALLBACK(do_fgcolor), colorsel);
270 G_CALLBACK(do_fgcolor), colorsel); 282 g_signal_connect(G_OBJECT(cancel_button), "clicked",
271 g_signal_connect(G_OBJECT (GTK_COLOR_SELECTION_DIALOG(toolbar->fgcolor_dialog)->cancel_button), "clicked", 283 G_CALLBACK(cancel_toolbar_fgcolor), toolbar);
272 G_CALLBACK(cancel_toolbar_fgcolor), toolbar);
273 } 284 }
274 gtk_window_present(GTK_WINDOW(toolbar->fgcolor_dialog)); 285 gtk_window_present(GTK_WINDOW(toolbar->fgcolor_dialog));
275 } else { 286 } else {
276 cancel_toolbar_fgcolor(color, toolbar); 287 cancel_toolbar_fgcolor(color, toolbar);
277 } 288 }
331 GtkWidget *colorsel; 342 GtkWidget *colorsel;
332 GdkColor bgcolor; 343 GdkColor bgcolor;
333 char *color = gtk_imhtml_get_current_backcolor(GTK_IMHTML(toolbar->imhtml)); 344 char *color = gtk_imhtml_get_current_backcolor(GTK_IMHTML(toolbar->imhtml));
334 345
335 if (!toolbar->bgcolor_dialog) { 346 if (!toolbar->bgcolor_dialog) {
336 347 GtkWidget *ok_button;
348 GtkWidget *cancel_button;
349
337 toolbar->bgcolor_dialog = gtk_color_selection_dialog_new(_("Select Background Color")); 350 toolbar->bgcolor_dialog = gtk_color_selection_dialog_new(_("Select Background Color"));
338 colorsel = GTK_COLOR_SELECTION_DIALOG(toolbar->bgcolor_dialog)->colorsel; 351 colorsel =
339 if (color) { 352 gtk_color_selection_dialog_get_color_selection(GTK_COLOR_SELECTION_DIALOG(toolbar->fgcolor_dialog));
353
354 if (color) {
340 gdk_color_parse(color, &bgcolor); 355 gdk_color_parse(color, &bgcolor);
341 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &bgcolor); 356 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &bgcolor);
342 g_free(color); 357 g_free(color);
343 } 358 }
344 359
345 g_object_set_data(G_OBJECT(colorsel), "purple_toolbar", toolbar); 360 g_object_set_data(G_OBJECT(colorsel), "purple_toolbar", toolbar);
346 361
362 g_object_get(G_OBJECT(toolbar->bgcolor_dialog), "ok-button", &ok_button, NULL);
363 g_object_get(G_OBJECT(toolbar->bgcolor_dialog), "cancel-button",
364 &cancel_button, NULL);
347 g_signal_connect(G_OBJECT(toolbar->bgcolor_dialog), "delete_event", 365 g_signal_connect(G_OBJECT(toolbar->bgcolor_dialog), "delete_event",
348 G_CALLBACK(destroy_toolbar_bgcolor), toolbar); 366 G_CALLBACK(destroy_toolbar_bgcolor), toolbar);
349 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(toolbar->bgcolor_dialog)->ok_button), "clicked", 367 g_signal_connect(G_OBJECT(ok_button), "clicked",
350 G_CALLBACK(do_bgcolor), colorsel); 368 G_CALLBACK(do_bgcolor), colorsel);
351 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(toolbar->bgcolor_dialog)->cancel_button), "clicked", 369 g_signal_connect(G_OBJECT(cancel_button), "clicked",
352 G_CALLBACK(cancel_toolbar_bgcolor), toolbar); 370 G_CALLBACK(cancel_toolbar_bgcolor), toolbar);
353 371
354 } 372 }
355 gtk_window_present(GTK_WINDOW(toolbar->bgcolor_dialog)); 373 gtk_window_present(GTK_WINDOW(toolbar->bgcolor_dialog));
356 } else { 374 } else {
720 } 738 }
721 739
722 static gboolean 740 static gboolean
723 smiley_dialog_input_cb(GtkWidget *dialog, GdkEvent *event, GtkIMHtmlToolbar *toolbar) 741 smiley_dialog_input_cb(GtkWidget *dialog, GdkEvent *event, GtkIMHtmlToolbar *toolbar)
724 { 742 {
725 if ((event->type == GDK_KEY_PRESS && event->key.keyval == GDK_Escape) || 743 if ((event->type == GDK_KEY_PRESS && event->key.keyval == GDK_KEY_Escape) ||
726 (event->type == GDK_BUTTON_PRESS && event->button.button == 1)) 744 (event->type == GDK_BUTTON_PRESS && event->button.button == 1))
727 { 745 {
728 close_smiley_dialog(toolbar); 746 close_smiley_dialog(toolbar);
729 return TRUE; 747 return TRUE;
730 } 748 }
1093 gboolean *push_in, 1111 gboolean *push_in,
1094 gpointer data) 1112 gpointer data)
1095 { 1113 {
1096 GtkWidget *widget = GTK_WIDGET(data); 1114 GtkWidget *widget = GTK_WIDGET(data);
1097 GtkRequisition menu_req; 1115 GtkRequisition menu_req;
1098 gint ythickness = widget->style->ythickness; 1116 GtkAllocation allocation;
1117 gint ythickness = gtk_widget_get_style(widget)->ythickness;
1099 int savy; 1118 int savy;
1100 1119
1120 gtk_widget_get_allocation(widget, &allocation);
1101 gtk_widget_size_request(GTK_WIDGET (menu), &menu_req); 1121 gtk_widget_size_request(GTK_WIDGET (menu), &menu_req);
1102 gdk_window_get_origin(widget->window, x, y); 1122 gdk_window_get_origin(gtk_widget_get_window(widget), x, y);
1103 *x += widget->allocation.x; 1123 *x += allocation.x;
1104 *y += widget->allocation.y + widget->allocation.height; 1124 *y += allocation.y + allocation.height;
1105 savy = *y; 1125 savy = *y;
1106 1126
1107 pidgin_menu_position_func_helper(menu, x, y, push_in, data); 1127 pidgin_menu_position_func_helper(menu, x, y, push_in, data);
1108 1128
1109 if (savy > *y + ythickness + 1) 1129 if (savy > *y + ythickness + 1)
1110 *y -= widget->allocation.height; 1130 *y -= allocation.height;
1111 } 1131 }
1112 1132
1113 static gboolean 1133 static gboolean
1114 button_activate_on_click(GtkWidget *button, GdkEventButton *event, GtkIMHtmlToolbar *toolbar) 1134 button_activate_on_click(GtkWidget *button, GdkEventButton *event, GtkIMHtmlToolbar *toolbar)
1115 { 1135 {
1197 gboolean wide; 1217 gboolean wide;
1198 1218
1199 if (event->button != 3) 1219 if (event->button != 3)
1200 return FALSE; 1220 return FALSE;
1201 1221
1202 wide = GTK_WIDGET_VISIBLE(toolbar->bold); 1222 wide = gtk_widget_get_visible(toolbar->bold);
1203 1223
1204 menu = gtk_menu_new(); 1224 menu = gtk_menu_new();
1205 item = gtk_menu_item_new_with_mnemonic(wide ? _("Group Items") : _("Ungroup Items")); 1225 item = gtk_menu_item_new_with_mnemonic(wide ? _("Group Items") : _("Ungroup Items"));
1206 g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(switch_toolbar_view), toolbar); 1226 g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(switch_toolbar_view), toolbar);
1207 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 1227 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
1292 } 1312 }
1293 1313
1294 static void 1314 static void
1295 button_visibility_changed(GtkWidget *button, gpointer dontcare, GtkWidget *item) 1315 button_visibility_changed(GtkWidget *button, gpointer dontcare, GtkWidget *item)
1296 { 1316 {
1297 if (GTK_WIDGET_VISIBLE(button)) 1317 if (gtk_widget_get_visible(button))
1298 gtk_widget_hide(item); 1318 gtk_widget_hide(item);
1299 else 1319 else
1300 gtk_widget_show(item); 1320 gtk_widget_show(item);
1301 } 1321 }
1302 1322
1303 static void 1323 static void
1304 button_sensitiveness_changed(GtkWidget *button, gpointer dontcare, GtkWidget *item) 1324 button_sensitiveness_changed(GtkWidget *button, gpointer dontcare, GtkWidget *item)
1305 { 1325 {
1306 gtk_widget_set_sensitive(item, GTK_WIDGET_IS_SENSITIVE(button)); 1326 gtk_widget_set_sensitive(item, gtk_widget_get_sensitive(button));
1307 } 1327 }
1308 1328
1309 static void 1329 static void
1310 update_menuitem(GtkToggleButton *button, GtkCheckMenuItem *item) 1330 update_menuitem(GtkToggleButton *button, GtkCheckMenuItem *item)
1311 { 1331 {
1324 static void 1344 static void
1325 imhtmltoolbar_view_pref_changed(const char *name, PurplePrefType type, 1345 imhtmltoolbar_view_pref_changed(const char *name, PurplePrefType type,
1326 gconstpointer value, gpointer toolbar) 1346 gconstpointer value, gpointer toolbar)
1327 { 1347 {
1328 if (value) { 1348 if (value) {
1329 gtk_widget_hide_all(g_object_get_data(G_OBJECT(toolbar), "lean-view")); 1349 gtk_widget_hide(g_object_get_data(G_OBJECT(toolbar), "lean-view"));
1330 gtk_widget_show_all(g_object_get_data(G_OBJECT(toolbar), "wide-view")); 1350 gtk_widget_show_all(g_object_get_data(G_OBJECT(toolbar), "wide-view"));
1331 } else { 1351 } else {
1332 gtk_widget_hide_all(g_object_get_data(G_OBJECT(toolbar), "wide-view")); 1352 gtk_widget_hide(g_object_get_data(G_OBJECT(toolbar), "wide-view"));
1333 gtk_widget_show_all(g_object_get_data(G_OBJECT(toolbar), "lean-view")); 1353 gtk_widget_show_all(g_object_get_data(G_OBJECT(toolbar), "lean-view"));
1334 } 1354 }
1335 } 1355 }
1336 1356
1337 static void gtk_imhtmltoolbar_init (GtkIMHtmlToolbar *toolbar) 1357 static void gtk_imhtmltoolbar_init (GtkIMHtmlToolbar *toolbar)

mercurial