comparison src/gtkimhtmltoolbar.c @ 11275:ffc86d9ad8b7

[gaim-migrate @ 13461] Make the new clear formatting button work. committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Mon, 15 Aug 2005 19:46:32 +0000
parents b33eccbc3a10
children 2934ab3a6c89
comparison
equal deleted inserted replaced
11274:67a929d50cfe 11275:ffc86d9ad8b7
36 #include "gtkimhtmltoolbar.h" 36 #include "gtkimhtmltoolbar.h"
37 #include "gtkutils.h" 37 #include "gtkutils.h"
38 38
39 static GtkHBoxClass *parent_class = NULL; 39 static GtkHBoxClass *parent_class = NULL;
40 40
41 static void toggle_button_set_active_block(GtkToggleButton *button,
42 gboolean is_active,
43 GtkIMHtmlToolbar *toolbar);
44
45
41 static void do_bold(GtkWidget *bold, GtkIMHtmlToolbar *toolbar) 46 static void do_bold(GtkWidget *bold, GtkIMHtmlToolbar *toolbar)
42 { 47 {
43 g_return_if_fail(toolbar != NULL); 48 g_return_if_fail(toolbar != NULL);
44 gtk_imhtml_toggle_bold(GTK_IMHTML(toolbar->imhtml)); 49 gtk_imhtml_toggle_bold(GTK_IMHTML(toolbar->imhtml));
45 gtk_widget_grab_focus(toolbar->imhtml); 50 gtk_widget_grab_focus(toolbar->imhtml);
322 } 327 }
323 328
324 static void 329 static void
325 clear_formatting_cb(GtkWidget *clear, GtkIMHtmlToolbar *toolbar) 330 clear_formatting_cb(GtkWidget *clear, GtkIMHtmlToolbar *toolbar)
326 { 331 {
327 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->clear), FALSE); 332 toggle_button_set_active_block(GTK_TOGGLE_BUTTON(toolbar->clear), FALSE, toolbar);
328 gtk_imhtml_clear_formatting(GTK_IMHTML(toolbar->imhtml)); 333 gtk_imhtml_clear_formatting(GTK_IMHTML(toolbar->imhtml));
329 } 334 }
330 335
331 static void 336 static void
332 cancel_link_cb(GtkIMHtmlToolbar *toolbar, GaimRequestFields *fields) 337 cancel_link_cb(GtkIMHtmlToolbar *toolbar, GaimRequestFields *fields)
770 g_signal_handlers_unblock_matched(object, G_SIGNAL_MATCH_DATA, 775 g_signal_handlers_unblock_matched(object, G_SIGNAL_MATCH_DATA,
771 0, 0, NULL, NULL, toolbar); 776 0, 0, NULL, NULL, toolbar);
772 g_object_unref(object); 777 g_object_unref(object);
773 } 778 }
774 779
775 static void reset_buttons_cb(GtkIMHtml *imhtml, GtkIMHtmlToolbar *toolbar)
776 {
777 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toolbar->bold)))
778 toggle_button_set_active_block(GTK_TOGGLE_BUTTON(toolbar->bold), FALSE,
779 toolbar);
780
781 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toolbar->italic)))
782 toggle_button_set_active_block(GTK_TOGGLE_BUTTON(toolbar->italic),
783 FALSE, toolbar);
784
785 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toolbar->underline)))
786 toggle_button_set_active_block(GTK_TOGGLE_BUTTON(toolbar->underline),
787 FALSE, toolbar);
788 }
789
790 static void update_buttons(GtkIMHtmlToolbar *toolbar) { 780 static void update_buttons(GtkIMHtmlToolbar *toolbar) {
791 gboolean bold, italic, underline; 781 gboolean bold, italic, underline;
792 char *tmp; 782 char *tmp;
793 char *tmp2; 783 char *tmp2;
794 784
1109 g_return_if_fail(GTK_IS_IMHTML(imhtml)); 1099 g_return_if_fail(GTK_IS_IMHTML(imhtml));
1110 1100
1111 toolbar->imhtml = imhtml; 1101 toolbar->imhtml = imhtml;
1112 g_signal_connect(G_OBJECT(imhtml), "format_buttons_update", G_CALLBACK(update_buttons_cb), toolbar); 1102 g_signal_connect(G_OBJECT(imhtml), "format_buttons_update", G_CALLBACK(update_buttons_cb), toolbar);
1113 g_signal_connect_after(G_OBJECT(imhtml), "format_function_toggle", G_CALLBACK(toggle_button_cb), toolbar); 1103 g_signal_connect_after(G_OBJECT(imhtml), "format_function_toggle", G_CALLBACK(toggle_button_cb), toolbar);
1114 g_signal_connect(G_OBJECT(imhtml), "format_function_clear", G_CALLBACK(reset_buttons_cb), toolbar); 1104 g_signal_connect_after(G_OBJECT(imhtml), "format_function_clear", G_CALLBACK(update_format_cb), toolbar);
1115 g_signal_connect(G_OBJECT(imhtml), "format_function_update", G_CALLBACK(update_format_cb), toolbar); 1105 g_signal_connect(G_OBJECT(imhtml), "format_function_update", G_CALLBACK(update_format_cb), toolbar);
1116 g_signal_connect_after(G_OBJECT(GTK_IMHTML(imhtml)->text_buffer), "mark-set", G_CALLBACK(mark_set_cb), toolbar); 1106 g_signal_connect_after(G_OBJECT(GTK_IMHTML(imhtml)->text_buffer), "mark-set", G_CALLBACK(mark_set_cb), toolbar);
1117 1107
1118 buttons = gtk_imhtml_get_format_functions(GTK_IMHTML(imhtml)); 1108 buttons = gtk_imhtml_get_format_functions(GTK_IMHTML(imhtml));
1119 update_buttons_cb(GTK_IMHTML(imhtml), buttons, toolbar); 1109 update_buttons_cb(GTK_IMHTML(imhtml), buttons, toolbar);