comparison src/gtkutil.c @ 103916:9653887b5cd0

* xterm.c (Qx_gtk_map_stock): New var. * gtkutil.c (update_frame_tool_bar): Use Qx_gtk_map_stock instead of calling intern each time.
author Chong Yidong <cyd@stupidchicken.com>
date Thu, 16 Jul 2009 01:24:00 +0000
parents 6cf0c4de552b
children 695dbf5b3bb9
comparison
equal deleted inserted replaced
103915:b22ca6941b7b 103916:9653887b5cd0
3825 return image; 3825 return image;
3826 } 3826 }
3827 3827
3828 /* Update the tool bar for frame F. Add new buttons and remove old. */ 3828 /* Update the tool bar for frame F. Add new buttons and remove old. */
3829 3829
3830 extern Lisp_Object Qx_gtk_map_stock;
3831
3830 void 3832 void
3831 update_frame_tool_bar (f) 3833 update_frame_tool_bar (f)
3832 FRAME_PTR f; 3834 FRAME_PTR f;
3833 { 3835 {
3834 int i; 3836 int i;
3876 gtk_widget_size_request (GTK_WIDGET (wtoolbar), &old_req); 3878 gtk_widget_size_request (GTK_WIDGET (wtoolbar), &old_req);
3877 dir = gtk_widget_get_direction (x->toolbar_widget); 3879 dir = gtk_widget_get_direction (x->toolbar_widget);
3878 3880
3879 for (i = 0; i < f->n_tool_bar_items; ++i) 3881 for (i = 0; i < f->n_tool_bar_items; ++i)
3880 { 3882 {
3881
3882 int enabled_p = !NILP (PROP (TOOL_BAR_ITEM_ENABLED_P)); 3883 int enabled_p = !NILP (PROP (TOOL_BAR_ITEM_ENABLED_P));
3883 int selected_p = !NILP (PROP (TOOL_BAR_ITEM_SELECTED_P)); 3884 int selected_p = !NILP (PROP (TOOL_BAR_ITEM_SELECTED_P));
3884 int idx; 3885 int idx;
3885 int img_id; 3886 int img_id;
3886 int icon_size = 0; 3887 int icon_size = 0;
3891 char *stock_name = NULL; 3892 char *stock_name = NULL;
3892 char *icon_name = NULL; 3893 char *icon_name = NULL;
3893 Lisp_Object rtl; 3894 Lisp_Object rtl;
3894 GtkWidget *wbutton = NULL; 3895 GtkWidget *wbutton = NULL;
3895 GtkWidget *weventbox; 3896 GtkWidget *weventbox;
3896 Lisp_Object func = intern ("x-gtk-map-stock");
3897 Lisp_Object specified_file; 3897 Lisp_Object specified_file;
3898 3898
3899 ti = gtk_toolbar_get_nth_item (GTK_TOOLBAR (x->toolbar_widget), i); 3899 ti = gtk_toolbar_get_nth_item (GTK_TOOLBAR (x->toolbar_widget), i);
3900 3900
3901 if (ti) 3901 if (ti)
3912 if (wbutton) gtk_widget_hide (wbutton); 3912 if (wbutton) gtk_widget_hide (wbutton);
3913 continue; 3913 continue;
3914 } 3914 }
3915 3915
3916 specified_file = file_for_image (image); 3916 specified_file = file_for_image (image);
3917 if (!NILP (specified_file) && EQ (Qt, Ffboundp (func))) 3917 if (!NILP (specified_file) && !NILP (Ffboundp (Qx_gtk_map_stock)))
3918 stock = call1 (func, specified_file); 3918 stock = call1 (Qx_gtk_map_stock, specified_file);
3919 3919
3920 if (! NILP (stock) && STRINGP (stock)) 3920 if (STRINGP (stock))
3921 { 3921 {
3922 stock_name = SSDATA (stock); 3922 stock_name = SSDATA (stock);
3923 if (stock_name[0] == 'n' && stock_name[1] == ':') 3923 if (stock_name[0] == 'n' && stock_name[1] == ':')
3924 { 3924 {
3925 GdkScreen *screen = gtk_widget_get_screen (GTK_WIDGET (wtoolbar)); 3925 GdkScreen *screen = gtk_widget_get_screen (GTK_WIDGET (wtoolbar));