Mercurial > pidgin
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); |