comparison pidgin/gtkimhtmltoolbar.c @ 17550:425b83d9614d

disapproval of revision '1f2acb75f934f19f04262b06c2907dece2731ed2'
author Sean Egan <seanegan@gmail.com>
date Wed, 06 Jun 2007 00:30:15 +0000
parents c1d67fef5eb3
children 33063a3940a8
comparison
equal deleted inserted replaced
17549:c1d67fef5eb3 17550:425b83d9614d
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));