Mercurial > pidgin.yaz
comparison pidgin/gtkimhtmltoolbar.c @ 18168:285779ebfe0b
propagate from branch 'im.pidgin.pidgin' (head f61e46616c5562046a9f89a538ae10f5e5ef29ae)
to branch 'im.pidgin.soc.2007.remotelogging' (head c8ca0bef43c668d71394e63296b0a07fd0496e59)
author | Michael Shkutkov <mshkutkov@soc.pidgin.im> |
---|---|
date | Sun, 17 Jun 2007 21:03:22 +0000 |
parents | b8b475f31008 |
children | 8c5b9b789bbb |
comparison
equal
deleted
inserted
replaced
17983:535a71646a47 | 18168:285779ebfe0b |
---|---|
790 g_signal_handlers_unblock_matched(object, G_SIGNAL_MATCH_DATA, | 790 g_signal_handlers_unblock_matched(object, G_SIGNAL_MATCH_DATA, |
791 0, 0, NULL, NULL, toolbar); | 791 0, 0, NULL, NULL, toolbar); |
792 g_object_unref(object); | 792 g_object_unref(object); |
793 } | 793 } |
794 | 794 |
795 static void update_buttons(GtkIMHtmlToolbar *toolbar) { | 795 static void update_buttons(GtkIMHtmlToolbar *toolbar) |
796 { | |
796 gboolean bold, italic, underline; | 797 gboolean bold, italic, underline; |
797 char *tmp; | 798 char *tmp; |
798 char *tmp2; | 799 char *tmp2; |
799 | 800 |
800 gtk_imhtml_get_current_format(GTK_IMHTML(toolbar->imhtml), | 801 gtk_imhtml_get_current_format(GTK_IMHTML(toolbar->imhtml), |
848 { | 849 { |
849 if(mark != gtk_text_buffer_get_insert(buffer)) | 850 if(mark != gtk_text_buffer_get_insert(buffer)) |
850 return; | 851 return; |
851 | 852 |
852 update_buttons(toolbar); | 853 update_buttons(toolbar); |
854 } | |
855 | |
856 | |
857 /* This comes from gtkmenutoolbutton.c from gtk+ | |
858 * Copyright (C) 2003 Ricardo Fernandez Pascual | |
859 * Copyright (C) 2004 Paolo Borelli | |
860 */ | |
861 static void | |
862 menu_position_func (GtkMenu *menu, | |
863 int *x, | |
864 int *y, | |
865 gboolean *push_in, | |
866 gpointer data) | |
867 { | |
868 GtkWidget *widget = GTK_WIDGET(data); | |
869 GtkRequisition menu_req; | |
870 gint ythickness = widget->style->ythickness; | |
871 int savy; | |
872 | |
873 gtk_widget_size_request(GTK_WIDGET (menu), &menu_req); | |
874 gdk_window_get_origin(widget->window, x, y); | |
875 *x += widget->allocation.x; | |
876 *y += widget->allocation.y + widget->allocation.height; | |
877 savy = *y; | |
878 | |
879 pidgin_menu_position_func_helper(menu, x, y, push_in, data); | |
880 | |
881 if (savy > *y + ythickness + 1) | |
882 *y -= widget->allocation.height; | |
883 } | |
884 | |
885 static void pidgin_menu_clicked(GtkWidget *button, GtkMenu *menu) | |
886 { | |
887 gtk_widget_show_all(GTK_WIDGET(menu)); | |
888 gtk_menu_popup(menu, NULL, NULL, menu_position_func, button, 0, gtk_get_current_event_time()); | |
889 } | |
890 | |
891 static void pidgin_menu_deactivate(GtkWidget *menu, GtkToggleButton *button) | |
892 { | |
893 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE); | |
853 } | 894 } |
854 | 895 |
855 enum { | 896 enum { |
856 LAST_SIGNAL | 897 LAST_SIGNAL |
857 }; | 898 }; |
897 gobject_class = (GObjectClass*) class; | 938 gobject_class = (GObjectClass*) class; |
898 parent_class = gtk_type_class(GTK_TYPE_HBOX); | 939 parent_class = gtk_type_class(GTK_TYPE_HBOX); |
899 gobject_class->finalize = gtk_imhtmltoolbar_finalize; | 940 gobject_class->finalize = gtk_imhtmltoolbar_finalize; |
900 } | 941 } |
901 | 942 |
943 static void gtk_imhtmltoolbar_create_old_buttons(GtkIMHtmlToolbar *toolbar) | |
944 { | |
945 GtkWidget *button; | |
946 /* Bold */ | |
947 button = pidgin_pixbuf_toolbar_button_from_stock(GTK_STOCK_BOLD); | |
948 g_signal_connect(G_OBJECT(button), "clicked", | |
949 G_CALLBACK(do_bold), toolbar); | |
950 toolbar->bold = button; | |
951 | |
952 | |
953 /* Italic */ | |
954 button = pidgin_pixbuf_toolbar_button_from_stock(GTK_STOCK_ITALIC); | |
955 g_signal_connect(G_OBJECT(button), "clicked", | |
956 G_CALLBACK(do_italic), toolbar); | |
957 toolbar->italic = button; | |
958 | |
959 /* Underline */ | |
960 button = pidgin_pixbuf_toolbar_button_from_stock(GTK_STOCK_UNDERLINE); | |
961 g_signal_connect(G_OBJECT(button), "clicked", | |
962 G_CALLBACK(do_underline), toolbar); | |
963 toolbar->underline = button; | |
964 | |
965 /* Increase font size */ | |
966 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_TEXT_LARGER); | |
967 g_signal_connect(G_OBJECT(button), "clicked", | |
968 G_CALLBACK(do_big), toolbar); | |
969 toolbar->larger_size = button; | |
970 | |
971 /* Decrease font size */ | |
972 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_TEXT_SMALLER); | |
973 g_signal_connect(G_OBJECT(button), "clicked", | |
974 G_CALLBACK(do_small), toolbar); | |
975 toolbar->smaller_size = button; | |
976 | |
977 /* Font Face */ | |
978 | |
979 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_FONT_FACE); | |
980 g_signal_connect(G_OBJECT(button), "clicked", | |
981 G_CALLBACK(toggle_font), toolbar); | |
982 toolbar->font = button; | |
983 | |
984 /* Foreground Color */ | |
985 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_FGCOLOR); | |
986 g_signal_connect(G_OBJECT(button), "clicked", | |
987 G_CALLBACK(toggle_fg_color), toolbar); | |
988 toolbar->fgcolor = button; | |
989 | |
990 /* Background Color */ | |
991 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_BGCOLOR); | |
992 g_signal_connect(G_OBJECT(button), "clicked", | |
993 G_CALLBACK(toggle_bg_color), toolbar); | |
994 toolbar->bgcolor = button; | |
995 | |
996 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_INSERT_LINK); | |
997 g_signal_connect(G_OBJECT(button), "clicked", | |
998 G_CALLBACK(insert_link_cb), toolbar); | |
999 toolbar->link = button; | |
1000 | |
1001 /* Insert IM Image */ | |
1002 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_INSERT_IMAGE); | |
1003 g_signal_connect(G_OBJECT(button), "clicked", | |
1004 G_CALLBACK(insert_image_cb), toolbar); | |
1005 toolbar->image = button; | |
1006 | |
1007 /* Insert Smiley */ | |
1008 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_SMILEY); | |
1009 g_signal_connect(G_OBJECT(button), "clicked", | |
1010 G_CALLBACK(insert_smiley_cb), toolbar); | |
1011 toolbar->smiley = button; | |
1012 } | |
1013 | |
1014 static void | |
1015 button_sensitiveness_changed(GtkWidget *button, gpointer dontcare, GtkWidget *item) | |
1016 { | |
1017 gtk_widget_set_sensitive(item, GTK_WIDGET_IS_SENSITIVE(button)); | |
1018 } | |
1019 | |
1020 static void | |
1021 update_menuitem(GtkToggleButton *button, GtkCheckMenuItem *item) | |
1022 { | |
1023 g_signal_handlers_block_by_func(G_OBJECT(item), G_CALLBACK(gtk_button_clicked), button); | |
1024 gtk_check_menu_item_set_active(item, gtk_toggle_button_get_active(button)); | |
1025 g_signal_handlers_unblock_by_func(G_OBJECT(item), G_CALLBACK(gtk_button_clicked), button); | |
1026 } | |
1027 | |
902 static void gtk_imhtmltoolbar_init (GtkIMHtmlToolbar *toolbar) | 1028 static void gtk_imhtmltoolbar_init (GtkIMHtmlToolbar *toolbar) |
903 { | 1029 { |
904 GtkWidget *hbox = GTK_WIDGET(toolbar); | 1030 GtkWidget *hbox = GTK_WIDGET(toolbar); |
1031 GtkWidget *bbox; | |
1032 GtkWidget *image; | |
1033 GtkWidget *label; | |
1034 GtkWidget *insert_button; | |
1035 GtkWidget *font_button; | |
1036 GtkWidget *font_menu; | |
1037 GtkWidget *insert_menu; | |
1038 GtkWidget *menuitem; | |
905 GtkWidget *button; | 1039 GtkWidget *button; |
906 GtkWidget *sep; | 1040 GtkWidget *sep; |
907 GtkSizeGroup *sg; | 1041 int i; |
1042 struct { | |
1043 const char *label; | |
1044 GtkWidget **button; | |
1045 } buttons[] = { | |
1046 {_("_Bold"), &toolbar->bold}, | |
1047 {_("_Italic"), &toolbar->italic}, | |
1048 {_("_Underline"), &toolbar->underline}, | |
1049 {_("_Larger"), &toolbar->larger_size}, | |
1050 #if 0 | |
1051 {_("_Normal"), &toolbar->normal_size}, | |
1052 #endif | |
1053 {_("_Smaller"), &toolbar->smaller_size}, | |
1054 {_("_Font face"), &toolbar->font}, | |
1055 {_("_Foreground color"), &toolbar->fgcolor}, | |
1056 {_("_Background color"), &toolbar->bgcolor}, | |
1057 {NULL, NULL} | |
1058 }; | |
1059 | |
908 | 1060 |
909 toolbar->imhtml = NULL; | 1061 toolbar->imhtml = NULL; |
910 toolbar->font_dialog = NULL; | 1062 toolbar->font_dialog = NULL; |
911 toolbar->fgcolor_dialog = NULL; | 1063 toolbar->fgcolor_dialog = NULL; |
912 toolbar->bgcolor_dialog = NULL; | 1064 toolbar->bgcolor_dialog = NULL; |
915 toolbar->image_dialog = NULL; | 1067 toolbar->image_dialog = NULL; |
916 | 1068 |
917 toolbar->tooltips = gtk_tooltips_new(); | 1069 toolbar->tooltips = gtk_tooltips_new(); |
918 | 1070 |
919 gtk_box_set_spacing(GTK_BOX(toolbar), 3); | 1071 gtk_box_set_spacing(GTK_BOX(toolbar), 3); |
920 sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); | 1072 |
921 | 1073 gtk_imhtmltoolbar_create_old_buttons(toolbar); |
922 /* Bold */ | 1074 |
923 button = pidgin_pixbuf_toolbar_button_from_stock(GTK_STOCK_BOLD); | 1075 /* Fonts */ |
924 gtk_size_group_add_widget(sg, button); | 1076 font_button = gtk_toggle_button_new(); |
925 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | 1077 gtk_button_set_relief(GTK_BUTTON(font_button), GTK_RELIEF_NONE); |
926 gtk_tooltips_set_tip(toolbar->tooltips, button, _("Bold"), NULL); | 1078 bbox = gtk_hbox_new(FALSE, 3); |
927 | 1079 gtk_container_add(GTK_CONTAINER(font_button), bbox); |
928 g_signal_connect(G_OBJECT(button), "clicked", | 1080 image = gtk_image_new_from_stock(GTK_STOCK_BOLD, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); |
929 G_CALLBACK(do_bold), toolbar); | 1081 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); |
930 | 1082 label = gtk_label_new_with_mnemonic(_("_Font")); |
931 toolbar->bold = button; | 1083 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); |
932 | 1084 gtk_box_pack_start(GTK_BOX(hbox), font_button, FALSE, FALSE, 0); |
933 /* Italic */ | 1085 gtk_widget_show_all(font_button); |
934 button = pidgin_pixbuf_toolbar_button_from_stock(GTK_STOCK_ITALIC); | 1086 |
935 gtk_size_group_add_widget(sg, button); | 1087 font_menu = gtk_menu_new(); |
936 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | 1088 |
937 gtk_tooltips_set_tip(toolbar->tooltips, button, _("Italic"), NULL); | 1089 |
938 | 1090 for (i = 0; buttons[i].label; i++) { |
939 g_signal_connect(G_OBJECT(button), "clicked", | 1091 GtkWidget *old = *buttons[i].button; |
940 G_CALLBACK(do_italic), toolbar); | 1092 menuitem = gtk_check_menu_item_new_with_mnemonic(buttons[i].label); |
941 | 1093 g_signal_connect_swapped(G_OBJECT(menuitem), "activate", |
942 toolbar->italic = button; | 1094 G_CALLBACK(gtk_button_clicked), old); |
943 | 1095 g_signal_connect_after(G_OBJECT(old), "toggled", |
944 /* Underline */ | 1096 G_CALLBACK(update_menuitem), menuitem); |
945 button = pidgin_pixbuf_toolbar_button_from_stock(GTK_STOCK_UNDERLINE); | 1097 gtk_menu_shell_append(GTK_MENU_SHELL(font_menu), menuitem); |
946 gtk_size_group_add_widget(sg, button); | 1098 g_signal_connect(G_OBJECT(old), "notify::sensitive", |
947 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | 1099 G_CALLBACK(button_sensitiveness_changed), menuitem); |
948 gtk_tooltips_set_tip(toolbar->tooltips, button, _("Underline"), NULL); | 1100 } |
949 | 1101 |
950 g_signal_connect(G_OBJECT(button), "clicked", | 1102 g_signal_connect(G_OBJECT(font_button), "clicked", G_CALLBACK(pidgin_menu_clicked), font_menu); |
951 G_CALLBACK(do_underline), toolbar); | 1103 g_signal_connect(G_OBJECT(font_menu), "deactivate", G_CALLBACK(pidgin_menu_deactivate), font_button); |
952 | |
953 toolbar->underline = button; | |
954 | 1104 |
955 /* Sep */ | 1105 /* Sep */ |
956 sep = gtk_vseparator_new(); | 1106 sep = gtk_vseparator_new(); |
957 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 0); | 1107 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 0); |
958 | 1108 gtk_widget_show_all(sep); |
959 /* Increase font size */ | 1109 |
960 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_TEXT_LARGER); | 1110 /* Reset Formatting */ |
961 gtk_size_group_add_widget(sg, button); | 1111 button = gtk_toggle_button_new(); |
1112 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); | |
1113 bbox = gtk_hbox_new(FALSE, 3); | |
1114 gtk_container_add(GTK_CONTAINER(button), bbox); | |
1115 image = gtk_image_new_from_stock(PIDGIN_STOCK_CLEAR, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); | |
1116 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); | |
1117 label = gtk_label_new_with_mnemonic(_("_Reset font")); | |
1118 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); | |
962 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | 1119 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
963 gtk_tooltips_set_tip(toolbar->tooltips, button, | 1120 gtk_widget_show_all(button); |
964 _("Larger font size"), NULL); | |
965 | |
966 g_signal_connect(G_OBJECT(button), "clicked", | 1121 g_signal_connect(G_OBJECT(button), "clicked", |
967 G_CALLBACK(do_big), toolbar); | 1122 G_CALLBACK(clear_formatting_cb), toolbar); |
968 | 1123 toolbar->clear = button; |
969 toolbar->larger_size = button; | |
970 | |
971 /* Decrease font size */ | |
972 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_TEXT_SMALLER); | |
973 gtk_size_group_add_widget(sg, button); | |
974 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
975 gtk_tooltips_set_tip(toolbar->tooltips, button, | |
976 _("Smaller font size"), NULL); | |
977 | |
978 g_signal_connect(G_OBJECT(button), "clicked", | |
979 G_CALLBACK(do_small), toolbar); | |
980 | |
981 toolbar->smaller_size = button; | |
982 | 1124 |
983 /* Sep */ | 1125 /* Sep */ |
984 sep = gtk_vseparator_new(); | 1126 sep = gtk_vseparator_new(); |
985 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 0); | 1127 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 0); |
986 | 1128 gtk_widget_show_all(sep); |
987 /* Font Face */ | 1129 |
988 | 1130 /* Insert */ |
989 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_FONT_FACE); | 1131 insert_button = gtk_toggle_button_new(); |
990 gtk_size_group_add_widget(sg, button); | 1132 gtk_button_set_relief(GTK_BUTTON(insert_button), GTK_RELIEF_NONE); |
991 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | 1133 bbox = gtk_hbox_new(FALSE, 3); |
992 gtk_tooltips_set_tip(toolbar->tooltips, button, | 1134 gtk_container_add(GTK_CONTAINER(insert_button), bbox); |
993 _("Font face"), NULL); | 1135 image = gtk_image_new_from_stock(PIDGIN_STOCK_TOOLBAR_INSERT, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); |
994 | 1136 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); |
995 g_signal_connect(G_OBJECT(button), "clicked", | 1137 label = gtk_label_new_with_mnemonic(_("_Insert")); |
996 G_CALLBACK(toggle_font), toolbar); | 1138 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); |
997 | 1139 gtk_box_pack_start(GTK_BOX(hbox), insert_button, FALSE, FALSE, 0); |
998 toolbar->font = button; | 1140 gtk_widget_show_all(insert_button); |
999 | 1141 |
1000 /* Foreground Color */ | 1142 insert_menu = gtk_menu_new(); |
1001 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_FGCOLOR); | 1143 |
1002 gtk_size_group_add_widget(sg, button); | 1144 menuitem = gtk_menu_item_new_with_mnemonic(_("_Smiley")); |
1003 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | 1145 g_signal_connect_swapped(G_OBJECT(menuitem), "activate", G_CALLBACK(gtk_button_clicked), toolbar->smiley); |
1004 gtk_tooltips_set_tip(toolbar->tooltips, button, | 1146 gtk_menu_shell_append(GTK_MENU_SHELL(insert_menu), menuitem); |
1005 _("Foreground font color"), NULL); | 1147 g_signal_connect(G_OBJECT(toolbar->smiley), "notify::sensitive", |
1006 | 1148 G_CALLBACK(button_sensitiveness_changed), menuitem); |
1007 g_signal_connect(G_OBJECT(button), "clicked", | 1149 |
1008 G_CALLBACK(toggle_fg_color), toolbar); | 1150 menuitem = gtk_menu_item_new_with_mnemonic(_("_Image")); |
1009 | 1151 g_signal_connect_swapped(G_OBJECT(menuitem), "activate", G_CALLBACK(gtk_button_clicked), toolbar->image); |
1010 toolbar->fgcolor = button; | 1152 gtk_menu_shell_append(GTK_MENU_SHELL(insert_menu), menuitem); |
1011 | 1153 g_signal_connect(G_OBJECT(toolbar->image), "notify::sensitive", |
1012 /* Background Color */ | 1154 G_CALLBACK(button_sensitiveness_changed), menuitem); |
1013 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_BGCOLOR); | 1155 |
1014 gtk_size_group_add_widget(sg, button); | 1156 menuitem = gtk_menu_item_new_with_mnemonic(_("_Link")); |
1015 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | 1157 g_signal_connect_swapped(G_OBJECT(menuitem), "activate", G_CALLBACK(gtk_button_clicked), toolbar->link); |
1016 gtk_tooltips_set_tip(toolbar->tooltips, button, | 1158 gtk_menu_shell_append(GTK_MENU_SHELL(insert_menu), menuitem); |
1017 _("Background color"), NULL); | 1159 g_signal_connect(G_OBJECT(toolbar->link), "notify::sensitive", |
1018 | 1160 G_CALLBACK(button_sensitiveness_changed), menuitem); |
1019 g_signal_connect(G_OBJECT(button), "clicked", | 1161 |
1020 G_CALLBACK(toggle_bg_color), toolbar); | 1162 g_signal_connect(G_OBJECT(insert_button), "clicked", G_CALLBACK(pidgin_menu_clicked), insert_menu); |
1021 | 1163 g_signal_connect(G_OBJECT(insert_menu), "deactivate", G_CALLBACK(pidgin_menu_deactivate), insert_button); |
1022 toolbar->bgcolor = button; | |
1023 | |
1024 /* Sep */ | |
1025 sep = gtk_vseparator_new(); | |
1026 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 0); | |
1027 | |
1028 /* Reset Formatting */ | |
1029 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_CLEAR); | |
1030 gtk_size_group_add_widget(sg, button); | |
1031 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1032 gtk_tooltips_set_tip(toolbar->tooltips, button, | |
1033 _("Reset formatting"), NULL); | |
1034 | |
1035 g_signal_connect(G_OBJECT(button), "clicked", | |
1036 G_CALLBACK(clear_formatting_cb), toolbar); | |
1037 | |
1038 toolbar->clear = button; | |
1039 | |
1040 /* Sep */ | |
1041 sep = gtk_vseparator_new(); | |
1042 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 0); | |
1043 | |
1044 /* Insert Link */ | |
1045 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_INSERT_LINK); | |
1046 gtk_size_group_add_widget(sg, button); | |
1047 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1048 gtk_tooltips_set_tip(toolbar->tooltips, button, _("Insert link"), NULL); | |
1049 g_signal_connect(G_OBJECT(button), "clicked", | |
1050 G_CALLBACK(insert_link_cb), toolbar); | |
1051 | |
1052 toolbar->link = button; | |
1053 | |
1054 /* Insert IM Image */ | |
1055 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_INSERT_IMAGE); | |
1056 gtk_size_group_add_widget(sg, button); | |
1057 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1058 gtk_tooltips_set_tip(toolbar->tooltips, button, _("Insert image"), NULL); | |
1059 | |
1060 g_signal_connect(G_OBJECT(button), "clicked", | |
1061 G_CALLBACK(insert_image_cb), toolbar); | |
1062 | |
1063 toolbar->image = button; | |
1064 | |
1065 /* Insert Smiley */ | |
1066 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_SMILEY); | |
1067 gtk_size_group_add_widget(sg, button); | |
1068 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1069 gtk_tooltips_set_tip(toolbar->tooltips, button, _("Insert smiley"), NULL); | |
1070 | |
1071 g_signal_connect(G_OBJECT(button), "clicked", | |
1072 G_CALLBACK(insert_smiley_cb), toolbar); | |
1073 | |
1074 toolbar->smiley = button; | |
1075 | |
1076 toolbar->sml = NULL; | 1164 toolbar->sml = NULL; |
1077 gtk_widget_show_all(hbox); | |
1078 } | 1165 } |
1079 | 1166 |
1080 GtkWidget *gtk_imhtmltoolbar_new() | 1167 GtkWidget *gtk_imhtmltoolbar_new() |
1081 { | 1168 { |
1082 return GTK_WIDGET(g_object_new(gtk_imhtmltoolbar_get_type(), NULL)); | 1169 return GTK_WIDGET(g_object_new(gtk_imhtmltoolbar_get_type(), NULL)); |