Mercurial > pidgin.yaz
comparison pidgin/gtkimhtmltoolbar.c @ 17751:33063a3940a8
merge of '4e6fe382a57a07a096f3fb69d0431a41a07711d1'
and '9c819f6341a530bbd84f2c0f0c4b96e77846efe6'
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Wed, 06 Jun 2007 00:58:02 +0000 |
parents | 3b3b6fd6714e 425b83d9614d |
children | d40fd7106ebf c57c2b245c89 |
comparison
equal
deleted
inserted
replaced
17750:3b3b6fd6714e | 17751:33063a3940a8 |
---|---|
850 return; | 850 return; |
851 | 851 |
852 update_buttons(toolbar); | 852 update_buttons(toolbar); |
853 } | 853 } |
854 | 854 |
855 | |
856 /* This comes from gtkmenutoolbutton.c from gtk+ | |
857 * Copyright (C) 2003 Ricardo Fernandez Pascual | |
858 * Copyright (C) 2004 Paolo Borelli | |
859 */ | |
860 menu_position_func (GtkMenu *menu, | |
861 int *x, | |
862 int *y, | |
863 gboolean *push_in, | |
864 GtkWidget *widget) | |
865 { | |
866 GtkRequisition req; | |
867 GtkRequisition menu_req; | |
868 GtkOrientation orientation; | |
869 GtkTextDirection direction; | |
870 GdkRectangle monitor; | |
871 gint monitor_num; | |
872 GdkScreen *screen; | |
873 | |
874 gtk_widget_size_request (GTK_WIDGET (widget), &menu_req); | |
875 | |
876 direction = gtk_widget_get_direction (widget); | |
877 | |
878 screen = gtk_widget_get_screen (GTK_WIDGET (menu)); | |
879 monitor_num = gdk_screen_get_monitor_at_window (screen, widget->window); | |
880 if (monitor_num < 0) | |
881 monitor_num = 0; | |
882 gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor); | |
883 | |
884 gdk_window_get_origin (widget->window, x, y); | |
885 *x += widget->allocation.x; | |
886 *y += widget->allocation.y; | |
887 | |
888 if (direction == GTK_TEXT_DIR_LTR) | |
889 *x += MAX (widget->allocation.width - menu_req.width, 0); | |
890 else if (menu_req.width > widget->allocation.width) | |
891 *x -= menu_req.width - widget->allocation.width; | |
892 | |
893 if ((*y + widget->allocation.height + menu_req.height) <= monitor.y + monitor.height) | |
894 *y += widget->allocation.height; | |
895 else if ((*y - menu_req.height) >= monitor.y) | |
896 *y -= menu_req.height; | |
897 else if (monitor.y + monitor.height - (*y + widget->allocation.height) > *y) | |
898 *y += widget->allocation.height; | |
899 else | |
900 *y -= menu_req.height; | |
901 *push_in = FALSE; | |
902 } | |
903 | |
904 static void pidgin_menu_clicked(GtkWidget *button, GtkMenu *menu) { | |
905 gtk_widget_show_all(menu); | |
906 gtk_menu_popup(menu, NULL, NULL, menu_position_func, button, 0, gtk_get_current_event_time()); | |
907 } | |
908 | |
909 static void pidgin_menu_deactivate(GtkWidget *menu, GtkToggleButton *button) { | |
910 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE); | |
911 } | |
912 | |
913 enum { | 855 enum { |
914 LAST_SIGNAL | 856 LAST_SIGNAL |
915 }; | 857 }; |
916 /* static guint signals [LAST_SIGNAL] = { 0 }; */ | 858 /* static guint signals [LAST_SIGNAL] = { 0 }; */ |
917 | 859 |
955 gobject_class = (GObjectClass*) class; | 897 gobject_class = (GObjectClass*) class; |
956 parent_class = gtk_type_class(GTK_TYPE_HBOX); | 898 parent_class = gtk_type_class(GTK_TYPE_HBOX); |
957 gobject_class->finalize = gtk_imhtmltoolbar_finalize; | 899 gobject_class->finalize = gtk_imhtmltoolbar_finalize; |
958 } | 900 } |
959 | 901 |
960 static void gtk_imhtmltoolbar_create_old_buttons(GtkIMHtmlToolbar *toolbar) | |
961 { | |
962 GtkWidget *button; | |
963 /* Bold */ | |
964 button = pidgin_pixbuf_toolbar_button_from_stock(GTK_STOCK_BOLD); | |
965 g_signal_connect(G_OBJECT(button), "clicked", | |
966 G_CALLBACK(do_bold), toolbar); | |
967 toolbar->bold = button; | |
968 | |
969 | |
970 /* Italic */ | |
971 button = pidgin_pixbuf_toolbar_button_from_stock(GTK_STOCK_ITALIC); | |
972 g_signal_connect(G_OBJECT(button), "clicked", | |
973 G_CALLBACK(do_italic), toolbar); | |
974 toolbar->italic = button; | |
975 | |
976 /* Underline */ | |
977 button = pidgin_pixbuf_toolbar_button_from_stock(GTK_STOCK_UNDERLINE); | |
978 g_signal_connect(G_OBJECT(button), "clicked", | |
979 G_CALLBACK(do_underline), toolbar); | |
980 toolbar->underline = button; | |
981 | |
982 /* Increase font size */ | |
983 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_TEXT_LARGER); | |
984 g_signal_connect(G_OBJECT(button), "clicked", | |
985 G_CALLBACK(do_big), toolbar); | |
986 toolbar->larger_size = button; | |
987 | |
988 /* Decrease font size */ | |
989 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_TEXT_SMALLER); | |
990 g_signal_connect(G_OBJECT(button), "clicked", | |
991 G_CALLBACK(do_small), toolbar); | |
992 toolbar->smaller_size = button; | |
993 | |
994 /* Font Face */ | |
995 | |
996 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_FONT_FACE); | |
997 g_signal_connect(G_OBJECT(button), "clicked", | |
998 G_CALLBACK(toggle_font), toolbar); | |
999 toolbar->font = button; | |
1000 | |
1001 /* Foreground Color */ | |
1002 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_FGCOLOR); | |
1003 g_signal_connect(G_OBJECT(button), "clicked", | |
1004 G_CALLBACK(toggle_fg_color), toolbar); | |
1005 toolbar->fgcolor = button; | |
1006 | |
1007 /* Background Color */ | |
1008 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_BGCOLOR); | |
1009 g_signal_connect(G_OBJECT(button), "clicked", | |
1010 G_CALLBACK(toggle_bg_color), toolbar); | |
1011 toolbar->bgcolor = button; | |
1012 | |
1013 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_INSERT_LINK); | |
1014 g_signal_connect(G_OBJECT(button), "clicked", | |
1015 G_CALLBACK(insert_link_cb), toolbar); | |
1016 toolbar->link = button; | |
1017 | |
1018 /* Insert IM Image */ | |
1019 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_INSERT_IMAGE); | |
1020 g_signal_connect(G_OBJECT(button), "clicked", | |
1021 G_CALLBACK(insert_image_cb), toolbar); | |
1022 toolbar->image = button; | |
1023 | |
1024 /* Insert Smiley */ | |
1025 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_SMILEY); | |
1026 g_signal_connect(G_OBJECT(button), "clicked", | |
1027 G_CALLBACK(insert_smiley_cb), toolbar); | |
1028 toolbar->smiley = button; | |
1029 | |
1030 | |
1031 } | |
1032 | |
1033 static void gtk_imhtmltoolbar_init (GtkIMHtmlToolbar *toolbar) | 902 static void gtk_imhtmltoolbar_init (GtkIMHtmlToolbar *toolbar) |
1034 { | 903 { |
1035 GtkWidget *hbox = GTK_WIDGET(toolbar); | 904 GtkWidget *hbox = GTK_WIDGET(toolbar); |
1036 GtkWidget *bbox; | |
1037 GtkWidget *image; | |
1038 GtkWidget *label; | |
1039 GtkWidget *insert_button; | |
1040 GtkWidget *font_button; | |
1041 GtkWidget *font_menu; | |
1042 GtkWidget *insert_menu; | |
1043 GtkWidget *button; | 905 GtkWidget *button; |
1044 GtkWidget *sep; | 906 GtkWidget *sep; |
907 GtkSizeGroup *sg; | |
1045 | 908 |
1046 toolbar->imhtml = NULL; | 909 toolbar->imhtml = NULL; |
1047 toolbar->font_dialog = NULL; | 910 toolbar->font_dialog = NULL; |
1048 toolbar->fgcolor_dialog = NULL; | 911 toolbar->fgcolor_dialog = NULL; |
1049 toolbar->bgcolor_dialog = NULL; | 912 toolbar->bgcolor_dialog = NULL; |
1052 toolbar->image_dialog = NULL; | 915 toolbar->image_dialog = NULL; |
1053 | 916 |
1054 toolbar->tooltips = gtk_tooltips_new(); | 917 toolbar->tooltips = gtk_tooltips_new(); |
1055 | 918 |
1056 gtk_box_set_spacing(GTK_BOX(toolbar), 3); | 919 gtk_box_set_spacing(GTK_BOX(toolbar), 3); |
1057 | 920 sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); |
1058 gtk_imhtmltoolbar_create_old_buttons(toolbar); | |
1059 | 921 |
1060 /* Bold */ | 922 /* Bold */ |
1061 font_button = gtk_toggle_button_new(); | 923 button = pidgin_pixbuf_toolbar_button_from_stock(GTK_STOCK_BOLD); |
1062 gtk_button_set_relief(GTK_BUTTON(font_button), GTK_RELIEF_NONE); | 924 gtk_size_group_add_widget(sg, button); |
1063 bbox = gtk_hbox_new(FALSE, 3); | 925 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
1064 gtk_container_add(GTK_CONTAINER(font_button), bbox); | 926 gtk_tooltips_set_tip(toolbar->tooltips, button, _("Bold"), NULL); |
1065 image = gtk_image_new_from_stock(GTK_STOCK_BOLD, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); | 927 |
1066 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); | 928 g_signal_connect(G_OBJECT(button), "clicked", |
1067 label = gtk_label_new_with_mnemonic(_("_Font")); | 929 G_CALLBACK(do_bold), toolbar); |
1068 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); | 930 |
1069 gtk_box_pack_start(GTK_BOX(hbox), font_button, FALSE, FALSE, 0); | 931 toolbar->bold = button; |
1070 gtk_widget_show_all(font_button); | 932 |
1071 | 933 /* Italic */ |
1072 font_menu = gtk_menu_new(); | 934 button = pidgin_pixbuf_toolbar_button_from_stock(GTK_STOCK_ITALIC); |
1073 | 935 gtk_size_group_add_widget(sg, button); |
1074 button = gtk_check_menu_item_new_with_mnemonic(_("_Bold")); | 936 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
1075 g_signal_connect_swapped(G_OBJECT(button), "activate", G_CALLBACK(gtk_button_clicked), toolbar->bold); | 937 gtk_tooltips_set_tip(toolbar->tooltips, button, _("Italic"), NULL); |
1076 gtk_menu_shell_append(font_menu, button); | 938 |
1077 | 939 g_signal_connect(G_OBJECT(button), "clicked", |
1078 button = gtk_check_menu_item_new_with_mnemonic(_("_Italic")); | 940 G_CALLBACK(do_italic), toolbar); |
1079 g_signal_connect_swapped(G_OBJECT(button), "activate", G_CALLBACK(gtk_button_clicked), toolbar->italic); | 941 |
1080 gtk_menu_shell_append(font_menu, button); | 942 toolbar->italic = button; |
1081 | 943 |
1082 button = gtk_check_menu_item_new_with_mnemonic(_("_Underline")); | 944 /* Underline */ |
1083 g_signal_connect_swapped(G_OBJECT(button), "activate", G_CALLBACK(gtk_button_clicked), toolbar->underline); | 945 button = pidgin_pixbuf_toolbar_button_from_stock(GTK_STOCK_UNDERLINE); |
1084 gtk_menu_shell_append(font_menu, button); | 946 gtk_size_group_add_widget(sg, button); |
1085 | 947 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
1086 button = gtk_menu_item_new_with_mnemonic(_("_Larger")); | 948 gtk_tooltips_set_tip(toolbar->tooltips, button, _("Underline"), NULL); |
1087 g_signal_connect_swapped(G_OBJECT(button), "activate", G_CALLBACK(gtk_button_clicked), toolbar->larger_size); | 949 |
1088 gtk_menu_shell_append(font_menu, button); | 950 g_signal_connect(G_OBJECT(button), "clicked", |
1089 | 951 G_CALLBACK(do_underline), toolbar); |
1090 button = gtk_menu_item_new_with_mnemonic(_("_Normal")); | 952 |
1091 g_signal_connect_swapped(G_OBJECT(button), "activate", G_CALLBACK(gtk_button_clicked), toolbar->normal_size); | 953 toolbar->underline = button; |
1092 gtk_menu_shell_append(font_menu, button); | |
1093 | |
1094 button = gtk_menu_item_new_with_mnemonic(_("_Smaller")); | |
1095 g_signal_connect_swapped(G_OBJECT(button), "activate", G_CALLBACK(gtk_button_clicked), toolbar->smaller_size); | |
1096 gtk_menu_shell_append(font_menu, button); | |
1097 | |
1098 button = gtk_menu_item_new_with_mnemonic(_("_Font face")); | |
1099 g_signal_connect_swapped(G_OBJECT(button), "activate", G_CALLBACK(gtk_button_clicked), toolbar->font); | |
1100 gtk_menu_shell_append(font_menu, button); | |
1101 | |
1102 button = gtk_menu_item_new_with_mnemonic(_("_Foreground color")); | |
1103 g_signal_connect_swapped(G_OBJECT(button), "activate", G_CALLBACK(gtk_button_clicked), toolbar->fgcolor); | |
1104 gtk_menu_shell_append(font_menu, button); | |
1105 | |
1106 button = gtk_menu_item_new_with_mnemonic(_("_Background color")); | |
1107 g_signal_connect_swapped(G_OBJECT(button), "activate", G_CALLBACK(gtk_button_clicked), toolbar->bgcolor); | |
1108 gtk_menu_shell_append(font_menu, button); | |
1109 | |
1110 g_signal_connect(G_OBJECT(font_button), "clicked", G_CALLBACK(pidgin_menu_clicked), font_menu); | |
1111 g_signal_connect(G_OBJECT(font_menu), "deactivate", G_CALLBACK(pidgin_menu_deactivate), font_button); | |
1112 | 954 |
1113 /* Sep */ | 955 /* Sep */ |
1114 sep = gtk_vseparator_new(); | 956 sep = gtk_vseparator_new(); |
1115 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 0); | 957 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 0); |
1116 gtk_widget_show_all(sep); | 958 |
1117 | 959 /* Increase font size */ |
1118 /* Reset Formatting */ | 960 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_TEXT_LARGER); |
1119 button = gtk_toggle_button_new(); | 961 gtk_size_group_add_widget(sg, button); |
1120 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); | |
1121 bbox = gtk_hbox_new(FALSE, 3); | |
1122 gtk_container_add(GTK_CONTAINER(button), bbox); | |
1123 image = gtk_image_new_from_stock(PIDGIN_STOCK_CLEAR, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); | |
1124 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); | |
1125 label = gtk_label_new_with_mnemonic(_("_Reset font")); | |
1126 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); | |
1127 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | 962 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
1128 gtk_widget_show_all(button); | 963 gtk_tooltips_set_tip(toolbar->tooltips, button, |
964 _("Larger font size"), NULL); | |
965 | |
1129 g_signal_connect(G_OBJECT(button), "clicked", | 966 g_signal_connect(G_OBJECT(button), "clicked", |
1130 G_CALLBACK(clear_formatting_cb), toolbar); | 967 G_CALLBACK(do_big), toolbar); |
1131 toolbar->clear = button; | 968 |
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; | |
1132 | 982 |
1133 /* Sep */ | 983 /* Sep */ |
1134 sep = gtk_vseparator_new(); | 984 sep = gtk_vseparator_new(); |
1135 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 0); | 985 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 0); |
1136 gtk_widget_show_all(sep); | 986 |
987 /* Font Face */ | |
988 | |
989 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_FONT_FACE); | |
990 gtk_size_group_add_widget(sg, button); | |
991 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
992 gtk_tooltips_set_tip(toolbar->tooltips, button, | |
993 _("Font face"), NULL); | |
994 | |
995 g_signal_connect(G_OBJECT(button), "clicked", | |
996 G_CALLBACK(toggle_font), toolbar); | |
997 | |
998 toolbar->font = button; | |
999 | |
1000 /* Foreground Color */ | |
1001 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_FGCOLOR); | |
1002 gtk_size_group_add_widget(sg, button); | |
1003 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1004 gtk_tooltips_set_tip(toolbar->tooltips, button, | |
1005 _("Foreground font color"), NULL); | |
1006 | |
1007 g_signal_connect(G_OBJECT(button), "clicked", | |
1008 G_CALLBACK(toggle_fg_color), toolbar); | |
1009 | |
1010 toolbar->fgcolor = button; | |
1011 | |
1012 /* Background Color */ | |
1013 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_BGCOLOR); | |
1014 gtk_size_group_add_widget(sg, button); | |
1015 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1016 gtk_tooltips_set_tip(toolbar->tooltips, button, | |
1017 _("Background color"), NULL); | |
1018 | |
1019 g_signal_connect(G_OBJECT(button), "clicked", | |
1020 G_CALLBACK(toggle_bg_color), toolbar); | |
1021 | |
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); | |
1137 | 1043 |
1138 /* Insert Link */ | 1044 /* Insert Link */ |
1139 insert_button = gtk_toggle_button_new(); | 1045 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_INSERT_LINK); |
1140 gtk_button_set_relief(GTK_BUTTON(insert_button), GTK_RELIEF_NONE); | 1046 gtk_size_group_add_widget(sg, button); |
1141 bbox = gtk_hbox_new(FALSE, 3); | 1047 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
1142 gtk_container_add(GTK_CONTAINER(insert_button), bbox); | 1048 gtk_tooltips_set_tip(toolbar->tooltips, button, _("Insert link"), NULL); |
1143 image = gtk_image_new_from_stock(PIDGIN_STOCK_TOOLBAR_INSERT, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); | 1049 g_signal_connect(G_OBJECT(button), "clicked", |
1144 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); | 1050 G_CALLBACK(insert_link_cb), toolbar); |
1145 label = gtk_label_new_with_mnemonic(_("_Insert")); | 1051 |
1146 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); | 1052 toolbar->link = button; |
1147 gtk_box_pack_start(GTK_BOX(hbox), insert_button, FALSE, FALSE, 0); | 1053 |
1148 gtk_widget_show_all(insert_button); | 1054 /* Insert IM Image */ |
1149 | 1055 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_INSERT_IMAGE); |
1150 insert_menu = gtk_menu_new(); | 1056 gtk_size_group_add_widget(sg, button); |
1151 | 1057 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
1152 button = gtk_menu_item_new_with_mnemonic(_("_Smiley")); | 1058 gtk_tooltips_set_tip(toolbar->tooltips, button, _("Insert image"), NULL); |
1153 g_signal_connect_swapped(G_OBJECT(button), "activate", G_CALLBACK(gtk_button_clicked), toolbar->smiley); | 1059 |
1154 gtk_menu_shell_append(insert_menu, button); | 1060 g_signal_connect(G_OBJECT(button), "clicked", |
1155 | 1061 G_CALLBACK(insert_image_cb), toolbar); |
1156 button = gtk_menu_item_new_with_mnemonic(_("_Image")); | 1062 |
1157 g_signal_connect_swapped(G_OBJECT(button), "activate", G_CALLBACK(gtk_button_clicked), toolbar->image); | 1063 toolbar->image = button; |
1158 gtk_menu_shell_append(insert_menu, button); | 1064 |
1159 | 1065 /* Insert Smiley */ |
1160 button = gtk_menu_item_new_with_mnemonic(_("_Link")); | 1066 button = pidgin_pixbuf_toolbar_button_from_stock(PIDGIN_STOCK_TOOLBAR_SMILEY); |
1161 g_signal_connect_swapped(G_OBJECT(button), "activate", G_CALLBACK(gtk_button_clicked), toolbar->link); | 1067 gtk_size_group_add_widget(sg, button); |
1162 gtk_menu_shell_append(insert_menu, button); | 1068 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
1163 | 1069 gtk_tooltips_set_tip(toolbar->tooltips, button, _("Insert smiley"), NULL); |
1164 g_signal_connect(G_OBJECT(insert_button), "clicked", G_CALLBACK(pidgin_menu_clicked), insert_menu); | 1070 |
1165 g_signal_connect(G_OBJECT(insert_menu), "deactivate", G_CALLBACK(pidgin_menu_deactivate), insert_button); | 1071 g_signal_connect(G_OBJECT(button), "clicked", |
1072 G_CALLBACK(insert_smiley_cb), toolbar); | |
1073 | |
1074 toolbar->smiley = button; | |
1075 | |
1166 toolbar->sml = NULL; | 1076 toolbar->sml = NULL; |
1077 gtk_widget_show_all(hbox); | |
1167 } | 1078 } |
1168 | 1079 |
1169 GtkWidget *gtk_imhtmltoolbar_new() | 1080 GtkWidget *gtk_imhtmltoolbar_new() |
1170 { | 1081 { |
1171 return GTK_WIDGET(g_object_new(gtk_imhtmltoolbar_get_type(), NULL)); | 1082 return GTK_WIDGET(g_object_new(gtk_imhtmltoolbar_get_type(), NULL)); |