comparison src/gtkimhtmltoolbar.c @ 8420:c25c697525b7

[gaim-migrate @ 9150] Phase II. If anyone finds anything problematic here that can't be attributed to GtkIMHtml itself, please let me know (I'll probably tell you it can be attributed to GtkIMHtml itself ;)). Love, Sean. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Wed, 10 Mar 2004 06:10:00 +0000
parents 45d1e3ed5a86
children 2e18099ded93
comparison
equal deleted inserted replaced
8419:5c6124e9a3a7 8420:c25c697525b7
601 close_smiley_dialog(smiley, NULL, toolbar); 601 close_smiley_dialog(smiley, NULL, toolbar);
602 } 602 }
603 gtk_widget_grab_focus(toolbar->imhtml); 603 gtk_widget_grab_focus(toolbar->imhtml);
604 } 604 }
605 605
606 static void update_buttons_cb(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons, GtkIMHtmlToolbar *toolbar)
607 {
608
609 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->bold), buttons & GTK_IMHTML_BOLD);
610 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->italic), buttons & GTK_IMHTML_ITALIC);
611 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->underline), buttons & GTK_IMHTML_UNDERLINE);
612
613 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->larger_size), buttons & GTK_IMHTML_GROW);
614 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->smaller_size), buttons & GTK_IMHTML_SHRINK);
615
616 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->font), buttons & GTK_IMHTML_FACE);
617 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->fgcolor), buttons & GTK_IMHTML_FORECOLOR);
618 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->bgcolor), buttons & GTK_IMHTML_BACKCOLOR);
619
620 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->image), buttons & GTK_IMHTML_IMAGE);
621 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->link), buttons & GTK_IMHTML_LINK);
622 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->smiley), buttons & GTK_IMHTML_SMILEY);
623
624 }
625
626 static void toggle_button_cb(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons, GtkIMHtmlToolbar *toolbar)
627 {
628 /* This is hacky. I have to tolerate the fact that set_active causes the signal to be emited, so I wind up
629 * toggling in gtkimhtml twice here */
630
631 if (buttons & GTK_IMHTML_BOLD) {
632 gtk_imhtml_toggle_bold(imhtml);
633 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->bold), !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toolbar->bold)));
634 }
635
636 if (buttons & GTK_IMHTML_ITALIC) {
637 gtk_imhtml_toggle_italic(imhtml);
638 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->italic), !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toolbar->italic)));
639 }
640
641 if (buttons & GTK_IMHTML_UNDERLINE) {
642 gtk_imhtml_toggle_underline(imhtml);
643 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->underline), !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toolbar->underline)));
644 }
645 }
646
606 enum { 647 enum {
607 LAST_SIGNAL 648 LAST_SIGNAL
608 }; 649 };
609 //static guint signals [LAST_SIGNAL] = { 0 }; 650 //static guint signals [LAST_SIGNAL] = { 0 };
610 651
850 g_return_if_fail(GTK_IS_IMHTMLTOOLBAR(toolbar)); 891 g_return_if_fail(GTK_IS_IMHTMLTOOLBAR(toolbar));
851 g_return_if_fail(imhtml != NULL); 892 g_return_if_fail(imhtml != NULL);
852 g_return_if_fail(GTK_IS_IMHTML(imhtml)); 893 g_return_if_fail(GTK_IS_IMHTML(imhtml));
853 894
854 toolbar->imhtml = imhtml; 895 toolbar->imhtml = imhtml;
855 } 896 g_signal_connect(G_OBJECT(imhtml), "format_functions_update", G_CALLBACK(update_buttons_cb), toolbar);
897 g_signal_connect(G_OBJECT(imhtml), "format_function_toggle", G_CALLBACK(toggle_button_cb), toolbar);
898 }