Mercurial > emacs
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)); |