| 35 #include "gtkdialogs.h" |
35 #include "gtkdialogs.h" |
| 36 #include "gtkimhtmltoolbar.h" |
36 #include "gtkimhtmltoolbar.h" |
| 37 #include "gtkthemes.h" |
37 #include "gtkthemes.h" |
| 38 #include "gtkutils.h" |
38 #include "gtkutils.h" |
| 39 |
39 |
| |
40 #include <gdk/gdkkeysyms.h> |
| |
41 |
| 40 static GtkHBoxClass *parent_class = NULL; |
42 static GtkHBoxClass *parent_class = NULL; |
| 41 |
43 |
| 42 static void toggle_button_set_active_block(GtkToggleButton *button, |
44 static void toggle_button_set_active_block(GtkToggleButton *button, |
| 43 gboolean is_active, |
45 gboolean is_active, |
| 44 GtkIMHtmlToolbar *toolbar); |
46 GtkIMHtmlToolbar *toolbar); |
| 636 list = list->next; |
637 list = list->next; |
| 637 } |
638 } |
| 638 return TRUE; |
639 return TRUE; |
| 639 } |
640 } |
| 640 |
641 |
| |
642 static gboolean |
| |
643 smiley_dialog_input_cb(GtkWidget *dialog, GdkEvent *event, GtkIMHtmlToolbar *toolbar) |
| |
644 { |
| |
645 gboolean close_dialog = |
| |
646 (GDK_EVENT_KEY == event->type) ? (GDK_Escape == event->key.keval) : |
| |
647 (GDK_EVENT_BUTTON == event->type) ? (1 == event->button.button) : FALSE; |
| |
648 |
| |
649 if (close_dialog) |
| |
650 close_smiley_dialog(NULL, NULL, toolbar); |
| |
651 |
| |
652 return close_dialog; |
| |
653 } |
| 641 |
654 |
| 642 static void |
655 static void |
| 643 insert_smiley_cb(GtkWidget *smiley, GtkIMHtmlToolbar *toolbar) |
656 insert_smiley_cb(GtkWidget *smiley, GtkIMHtmlToolbar *toolbar) |
| 644 { |
657 { |
| 645 GtkWidget *dialog; |
658 GtkWidget *dialog; |
| 719 } |
732 } |
| 720 else { |
733 else { |
| 721 smiley_table = gtk_label_new(_("This theme has no available smileys.")); |
734 smiley_table = gtk_label_new(_("This theme has no available smileys.")); |
| 722 } |
735 } |
| 723 |
736 |
| |
737 gtk_widget_add_events (dialog, GDK_KEY_PRESS_MASK | GDK_BUTTON_PRESS_MASK) ; |
| |
738 g_signal_connect (G_OBJECT (dialog), "key-press-event", (GCallback)smiley_dialog_input_cb, toolbar) ; |
| |
739 g_signal_connect (G_OBJECT (dialog), "button-press-event", (GCallback)smiley_dialog_input_cb, toolbar) ; |
| 724 gtk_container_add(GTK_CONTAINER(dialog), smiley_table); |
740 gtk_container_add(GTK_CONTAINER(dialog), smiley_table); |
| 725 |
741 |
| 726 gtk_widget_show(smiley_table); |
742 gtk_widget_show(smiley_table); |
| 727 |
743 |
| 728 gtk_container_set_border_width(GTK_CONTAINER(dialog), 5); |
744 gtk_container_set_border_width(GTK_CONTAINER(dialog), 5); |