# HG changeset patch # User Christian Brabandt # Date 1451412005 -3600 # Node ID 055a0b587a3ec71f9a2ba909db4dff0db8b13f3c # Parent 0463a4e8a4f05c3b20156b0ba16882dc2f33ec02 commit https://github.com/vim/vim/commit/36e294c00c784b9ddd05a4fdbea2e331ab2b1ca8 Author: Bram Moolenaar Date: Tue Dec 29 18:55:46 2015 +0100 patch 7.4.995 Problem: gdk_pixbuf_new_from_inline() is deprecated. Solution: Generate auto/gui_gtk_gresources.c. (Kazunobu Kazunobu, closes https://github.com/vim/vim/issues/507) diff --git a/.gitignore b/.gitignore --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,8 @@ src/vim src/xxd/xxd src/auto/if_perl.c +src/auto/gui_gtk_gresources.c +src/auto/gui_gtk_gresources.h src/tags # We do need src/auto/configure. diff --git a/pixmaps/stock_vim_build_tags.png b/pixmaps/stock_vim_build_tags.png new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..3ed7085b2e53c21d434c0908dd7122961648f60b GIT binary patch literal 439 zc$@*Z0Z9IdP)I&T=3)Z*ju;|Xfzt4ZDR~-wVK++IUmO{+U>S$?JkRcgNF+U ziw1)MvMfWX^z&%3Sg0?r*K3SMBX8J~$pirGMS*&~u5L+f2E*YH)oRt_;y6aD)pGHl zTV$;TfVYPUoLUPg7WH~P?Du=Ow}T+Sa=8Q%ftg(aB2v%CbUM8*kR*wi0W+&J(9TD> zTt>6mbn#sl5s}JkpNg9n?RGnFTUu)|o6S(ER79~fO%X+rE6U8+Zns{}J^zE#XL>7g hu@=C~mE0%(5ud*0;i!WY+Fk$v002ovPDHLkV1jRcz<>Y% diff --git a/pixmaps/stock_vim_find_help.png b/pixmaps/stock_vim_find_help.png new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..9214945d8d8c5a26762cd0b043e3102da37e7076 GIT binary patch literal 1717 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 Ef+K?8*#H0l diff --git a/pixmaps/stock_vim_session_save.png b/pixmaps/stock_vim_session_save.png new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..6256c79de7ea3ab99f46d46110215d83336ab9db GIT binary patch literal 1280 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 diff --git a/pixmaps/stock_vim_window_maximize.png b/pixmaps/stock_vim_window_maximize.png new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c3aea0fd2167025c241a730820b97b6fed473a48 GIT binary patch literal 540 zc$@(o0^|LOP)zziSjh6vscau1JDi<_}0^BMBBMf<=tjED3gkT<#!*G@=$M z)1Zx%LAc~P8%dZ(0x3cWdt5LFg0)v1%rz=T$z`9#a)V2QDvm~!lp|$q%^CHk%Bb9M@cnd-WBg4quZOcohDv> zUIe{*Ypp3K@U(i2wU*NB{=VKl=t13mJCMC2c=h-;vO8aBY^`;Y2dRuxogO_;aP4{k zLm{$V8t8_Z;7gORa3`Zv0J6WBQY8Xifgit7Gg~4enLWru9LGdagzPOSLIr_>BrRtE z>0xvEBb;>M{b$t7*1x6j{TBp^^|eFSt89}uj!>%yx&B&fCl^7@*5IV;J;EX)Vy$%o zi0m&4kkK1sgq)9~_a@h#-Q!JV3<9W5k76E8T<#`6e=-3>AtXY1WePTqsCf8!WnisE z-G2w2pXro+_=2i_D%^*G2pq|5Egj+21FzuFr$nt*i)ORwo{cf6D8d*+9LG*yuh(;9 e{P$nx)yE&A!`u!OhIU;500002NLL{)P$W~SsTP=4R6*aidmtuBJhM95iXoP%li+kof=R2G^=N|aq zpuI{Ve#w`(HaE`DZ~y^RXT|^scaI198D9bIEW$_$BEdx$)(J`P1-}!tJzt3bcZu|GQ;B0IN+jvtr`2jDR8n2k>2&UucC*<`+;e}jwH9mbz<`5z znF7{Y6i(js`)yd88%H~fxgse6Yb{!yhNY=nGwj=kh65NWp{;TzFV#ibo`=VepkyF0 z5P^CA8RuL&k-bWsVx)LJ&VFHDea(s;3rG?mZIz|{iav%D>Ius^mpFZUb!JTZz9216 z3s9|A>wn8Gk#i37`WswyxxR{U&ZV;N^KR_x2bg#JnY_%$&N+wa)wBE|i}45H?lED{ zCkwf+X`Vw-UP7SVZqsNqyaMN;Uau$a5B?T;?*ky7k2lZY^fGP)4|wkbg_AJ*G@g$q zqwxarfcMJWXq~{y58kf6(2*-(BWo2>I!8I0InB=$hG?1AyV&e}BJFxTrGdnZv27J(`eXux0P60IPxX#B` z-m}APmX;%kptrXPpw{g(%*n)*CLj&luo}Zu@HU3a2SV?0E{FAsLTFq;`3hq}|H(vN z2hyM^s>NP7T;yL^ y1y1ic?(TDOe$V86YISu%8g*O`j<=QE-Fjk;D7n!oN+{FJPGR@tze7 zse+2W*J3SO)X1q`72{MrN;S@Oo#ctgcwNVFOcX^U=Yk+G8ch5}`}_I?Olfr(jx5iN P00000NkvXXu0mjf>*byn diff --git a/pixmaps/stock_vim_window_split.png b/pixmaps/stock_vim_window_split.png new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..dcf5a3c7bd5eb6a250684a4b5045626509b9b520 GIT binary patch literal 246 zc%17D@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf#%}=>-?qV1&@7;k3Bf1e8%mdu}?Usqw?G(OD3#T~sTof@n zzd1I*i}65pK9{}HZ@&3kxE5rK9(E54{d}WsTdP@3ip6!UsJi`pc^VO1Z*_7P?mTFB s)>1x8^s>p@XS}S-p3DopSGtFx=hY@=|72G$pu-tFUHx3vIVCg!0JFSZ;{X5v diff --git a/pixmaps/stock_vim_window_split_vertical.png b/pixmaps/stock_vim_window_split_vertical.png new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7522d1f29411a7417d909a80304bb71f52664067 GIT binary patch literal 196 zc%17D@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#VfLRa-2KVn!X`aEbU`&lh|hmmdao0EUZ)R2W01dzIwv)^0_w4 zvmdKI;Vst0MUd`TmS$7 diff --git a/src/Makefile b/src/Makefile --- a/src/Makefile +++ b/src/Makefile @@ -1199,10 +1199,10 @@ NONE_INSTALL = install_normal ### GTK GUI GTK_SRC = gui.c gui_gtk.c gui_gtk_x11.c pty.c gui_gtk_f.c \ - gui_beval.c + gui_beval.c $(GRESOURCE_SRC) GTK_OBJ = objects/gui.o objects/gui_gtk.o objects/gui_gtk_x11.o \ objects/pty.o objects/gui_gtk_f.o \ - objects/gui_beval.o + objects/gui_beval.o $(GRESOURCE_OBJ) GTK_DEFS = -DFEAT_GUI_GTK $(NARROW_PROTO) GTK_IPATH = $(GUI_INC_LOC) GTK_LIBS_DIR = $(GUI_LIB_LOC) @@ -1527,7 +1527,8 @@ TAGS_SRC = *.c *.cpp if_perl.xs EXTRA_SRC = hangulin.c if_lua.c if_mzsch.c auto/if_perl.c if_perlsfio.c \ if_python.c if_python3.c if_tcl.c if_ruby.c if_sniff.c \ - gui_beval.c workshop.c wsdebug.c integration.c netbeans.c + gui_beval.c workshop.c wsdebug.c integration.c netbeans.c \ + $(GRESOURCE_SRC) # Unittest files MEMFILE_TEST_SRC = memfile_test.c @@ -1869,6 +1870,9 @@ os_vms.pro: os_vms.c if_perl.pro: auto/if_perl.c $(CPROTO) -DFEAT_GUI auto/if_perl.c | sed "/_VI/d" > proto/$@ +gui_gtk_gresources.pro: auto/gui_gtk_gresources.c + $(CPROTO) -DFEAT_GUI $< > proto/$@ + echo "/* vim: set ft=c : */" >> proto/$@ notags: -rm -f tags @@ -2441,7 +2445,7 @@ uninstall_runtime: # We support common typing mistakes for Juergen! :-) clean celan: testclean -rm -f *.o objects/* core $(VIMTARGET).core $(VIMTARGET) vim xxd/*.o - -rm -f $(TOOLS) auto/osdef.h auto/pathdef.c auto/if_perl.c + -rm -f $(TOOLS) auto/osdef.h auto/pathdef.c auto/if_perl.c auto/gui_gtk_gresources.c auto/gui_gtk_gresources.h -rm -f conftest* *~ auto/link.sed -rm -f $(UNITTEST_TARGETS) -rm -f runtime pixmaps @@ -2578,6 +2582,11 @@ auto/pathdef.c: Makefile auto/config.mk -@echo '";' >> $@ -@sh $(srcdir)/pathdef.sh +auto/gui_gtk_gresources.c: gui_gtk_gresources.xml + $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=../pixmaps --generate --c-name=gui_gtk --manual-register $< +auto/gui_gtk_gresources.h: gui_gtk_gresources.xml + $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=../pixmaps --generate --c-name=gui_gtk --manual-register $< + # All the object files are put in the "objects" directory. Since not all make # commands understand putting object files in another directory, it must be # specified for each file separately. @@ -2663,6 +2672,9 @@ objects/gui_gtk.o: gui_gtk.c objects/gui_gtk_f.o: gui_gtk_f.c $(CCC) -o $@ gui_gtk_f.c +objects/gui_gtk_gresources.o: auto/gui_gtk_gresources.c + $(CCC) $(PERL_CFLAGS) -o $@ auto/gui_gtk_gresources.c + objects/gui_gtk_x11.o: gui_gtk_x11.c $(CCC) -o $@ gui_gtk_x11.c @@ -3145,6 +3157,16 @@ objects/gui_gtk_f.o: gui_gtk_f.c vim.h a auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \ regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \ globals.h farsi.h arabic.h gui_gtk_f.h +objects/gui_gtk_gresources.o: auto/gui_gtk_gresources.c gui_gtk_gresources.xml \ + ../pixmaps/stock_vim_build_tags.png ../pixmaps/stock_vim_find_help.png \ + ../pixmaps/stock_vim_save_all.png ../pixmaps/stock_vim_session_load.png \ + ../pixmaps/stock_vim_session_new.png ../pixmaps/stock_vim_session_save.png \ + ../pixmaps/stock_vim_shell.png ../pixmaps/stock_vim_window_maximize.png \ + ../pixmaps/stock_vim_window_maximize_width.png \ + ../pixmaps/stock_vim_window_minimize.png \ + ../pixmaps/stock_vim_window_minimize_width.png \ + ../pixmaps/stock_vim_window_split.png \ + ../pixmaps/stock_vim_window_split_vertical.png objects/gui_motif.o: gui_motif.c vim.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \ regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \ @@ -3197,7 +3219,7 @@ objects/gui_gtk_x11.o: gui_gtk_x11.c vim auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \ regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \ globals.h farsi.h arabic.h gui_gtk_f.h ../runtime/vim32x32.xpm \ - ../runtime/vim16x16.xpm ../runtime/vim48x48.xpm + ../runtime/vim16x16.xpm ../runtime/vim48x48.xpm $(GRESOURCE_HDR) objects/gui_x11.o: gui_x11.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \ ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \ gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \ diff --git a/src/auto/configure b/src/auto/configure --- a/src/auto/configure +++ b/src/auto/configure @@ -636,6 +636,10 @@ GUI_LIB_LOC GUI_INC_LOC NARROW_PROTO MOTIF_LIBNAME +GRESOURCE_OBJ +GRESOURCE_SRC +GRESOURCE_HDR +GLIB_COMPILE_RESOURCES GNOME_INCLUDEDIR GNOME_LIBDIR GNOME_LIBS @@ -8907,6 +8911,86 @@ fi fi fi +if test "x$GUITYPE" = "xGTK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of Gdk-Pixbuf" >&5 +$as_echo_n "checking version of Gdk-Pixbuf... " >&6; } + gdk_pixbuf_version=`$PKG_CONFIG --modversion gdk-pixbuf-2.0` + if test "x$gdk_pixbuf_version" != x ; then + gdk_pixbuf_version_minor=`echo $gdk_pixbuf_version | \ + sed -e 's/[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*/\1/'` + if test "x$gdk_pixbuf_version_minor" != x -a \ + $gdk_pixbuf_version_minor -ge 32 ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK." >&5 +$as_echo "OK." >&6; } + # Extract the first word of "glib-compile-resources", so it can be a program name with args. +set dummy glib-compile-resources; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GLIB_COMPILE_RESOURCES+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GLIB_COMPILE_RESOURCES in + [\\/]* | ?:[\\/]*) + ac_cv_path_GLIB_COMPILE_RESOURCES="$GLIB_COMPILE_RESOURCES" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GLIB_COMPILE_RESOURCES="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GLIB_COMPILE_RESOURCES" && ac_cv_path_GLIB_COMPILE_RESOURCES="no" + ;; +esac +fi +GLIB_COMPILE_RESOURCES=$ac_cv_path_GLIB_COMPILE_RESOURCES +if test -n "$GLIB_COMPILE_RESOURCES"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_COMPILE_RESOURCES" >&5 +$as_echo "$GLIB_COMPILE_RESOURCES" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking glib-compile-resources" >&5 +$as_echo_n "checking glib-compile-resources... " >&6; } + if test "x$GLIB_COMPILE_RESOURCES" = xno ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot be found in PATH." >&5 +$as_echo "cannot be found in PATH." >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: usable." >&5 +$as_echo "usable." >&6; } + $as_echo "#define USE_GRESOURCE 1" >>confdefs.h + + GRESOURCE_HDR="auto/gui_gtk_gresources.h" + GRESOURCE_SRC="auto/gui_gtk_gresources.c" + GRESOURCE_OBJ="objects/gui_gtk_gresources.o" + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not usable." >&5 +$as_echo "not usable." >&6; } + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot obtain from pkg_config." >&5 +$as_echo "cannot obtain from pkg_config." >&6; } + fi +fi + + + + + if test -z "$SKIP_MOTIF"; then gui_XXX="/usr/XXX/Motif* /usr/Motif*/XXX /usr/XXX /usr/shlib /usr/X11*/XXX /usr/XXX/X11* /usr/dt/XXX /local/Motif*/XXX /local/XXX/Motif* /usr/local/Motif*/XXX /usr/local/XXX/Motif* /usr/local/XXX /usr/local/X11*/XXX /usr/local/LessTif/Motif*/XXX $MOTIFHOME/XXX" diff --git a/src/config.h.in b/src/config.h.in --- a/src/config.h.in +++ b/src/config.h.in @@ -452,3 +452,6 @@ /* Define if Xutf8SetWMProperties() is in an X library. */ #undef HAVE_XUTF8SETWMPROPERTIES + +/* Define if GResource is used to load icons */ +#undef USE_GRESOURCE diff --git a/src/config.mk.in b/src/config.mk.in --- a/src/config.mk.in +++ b/src/config.mk.in @@ -158,6 +158,11 @@ GUI_X_LIBS = @GUI_X_LIBS@ MOTIF_LIBNAME = @MOTIF_LIBNAME@ GTK_LIBNAME = @GTK_LIBNAME@ +GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ +GRESOURCE_HDR = @GRESOURCE_HDR@ +GRESOURCE_SRC = @GRESOURCE_SRC@ +GRESOURCE_OBJ = @GRESOURCE_OBJ@ + ### Any OS dependent extra source and object file OS_EXTRA_SRC = @OS_EXTRA_SRC@ OS_EXTRA_OBJ = @OS_EXTRA_OBJ@ diff --git a/src/configure.in b/src/configure.in --- a/src/configure.in +++ b/src/configure.in @@ -2500,6 +2500,40 @@ if test -z "$SKIP_GTK2"; then fi fi +dnl Check the version of Gdk-Pixbuf. If the version is 2.32 or later and +dnl glib-compile-resources is found in PATH, use GResource. +if test "x$GUITYPE" = "xGTK"; then + AC_MSG_CHECKING([version of Gdk-Pixbuf]) + gdk_pixbuf_version=`$PKG_CONFIG --modversion gdk-pixbuf-2.0` + if test "x$gdk_pixbuf_version" != x ; then + gdk_pixbuf_version_minor=`echo $gdk_pixbuf_version | \ + sed -e 's/[[0-9]][[0-9]]*\.\([[0-9]][[0-9]]*\)\.[[0-9]][[0-9]]*/\1/'` + if test "x$gdk_pixbuf_version_minor" != x -a \ + $gdk_pixbuf_version_minor -ge 32 ; then + AC_MSG_RESULT([OK.]) + AC_PATH_PROG(GLIB_COMPILE_RESOURCES,[glib-compile-resources],no) + AC_MSG_CHECKING([glib-compile-resources]) + if test "x$GLIB_COMPILE_RESOURCES" = xno ; then + AC_MSG_RESULT([cannot be found in PATH.]) + else + AC_MSG_RESULT([usable.]) + AC_DEFINE(USE_GRESOURCE) + GRESOURCE_HDR="auto/gui_gtk_gresources.h" + GRESOURCE_SRC="auto/gui_gtk_gresources.c" + GRESOURCE_OBJ="objects/gui_gtk_gresources.o" + fi + else + AC_MSG_RESULT([not usable.]) + fi + else + AC_MSG_RESULT([cannot obtain from pkg_config.]) + fi +fi +AC_SUBST(GLIB_COMPILE_RESOURCES) +AC_SUBST(GRESOURCE_HDR) +AC_SUBST(GRESOURCE_SRC) +AC_SUBST(GRESOURCE_OBJ) + dnl Check for Motif include files location. dnl The LAST one found is used, this makes the highest version to be used, dnl e.g. when Motif1.2 and Motif2.0 are both present. diff --git a/src/gui_gtk.c b/src/gui_gtk.c --- a/src/gui_gtk.c +++ b/src/gui_gtk.c @@ -140,6 +140,31 @@ static const char * const menu_stock_ids /* 31 */ GTK_STOCK_QUIT }; +#ifdef USE_GRESOURCE +typedef struct IconNames { + const char *icon_name; + const char *file_name; +} IconNames; + +static IconNames stock_vim_icons[] = { + { "vim-build-tags", "stock_vim_build_tags.png" }, + { "vim-find-help", "stock_vim_find_help.png" }, + { "vim-save-all", "stock_vim_save_all.png" }, + { "vim-session-load", "stock_vim_session_load.png" }, + { "vim-session-new", "stock_vim_session_new.png" }, + { "vim-session-save", "stock_vim_session_save.png" }, + { "vim-shell", "stock_vim_shell.png" }, + { "vim-window-maximize", "stock_vim_window_maximize.png" }, + { "vim-window-maximize-width", "stock_vim_window_maximize_width.png" }, + { "vim-window-minimize", "stock_vim_window_minimize.png" }, + { "vim-window-minimize-width", "stock_vim_window_minimize_width.png" }, + { "vim-window-split", "stock_vim_window_split.png" }, + { "vim-window-split-vertical", "stock_vim_window_split_vertical.png" }, + { NULL, NULL } +}; +#endif + +#ifndef USE_GRESOURCE static void add_stock_icon(GtkIconFactory *factory, const char *stock_id, @@ -157,6 +182,7 @@ add_stock_icon(GtkIconFactory *factory, gtk_icon_set_unref(icon_set); g_object_unref(pixbuf); } +#endif static int lookup_menu_iconfile(char_u *iconfile, char_u *dest) @@ -262,11 +288,12 @@ toolbar_button_focus_in_event(GtkWidget void gui_gtk_register_stock_icons(void) { -# include "../pixmaps/stock_icons.h" +#ifndef USE_GRESOURCE +# include "../pixmaps/stock_icons.h" GtkIconFactory *factory; factory = gtk_icon_factory_new(); -# define ADD_ICON(Name, Data) add_stock_icon(factory, Name, Data, (int)sizeof(Data)) +# define ADD_ICON(Name, Data) add_stock_icon(factory, Name, Data, (int)sizeof(Data)) ADD_ICON("vim-build-tags", stock_vim_build_tags); ADD_ICON("vim-find-help", stock_vim_find_help); @@ -282,7 +309,28 @@ gui_gtk_register_stock_icons(void) ADD_ICON("vim-window-split", stock_vim_window_split); ADD_ICON("vim-window-split-vertical", stock_vim_window_split_vertical); -# undef ADD_ICON +# undef ADD_ICON +#else + GtkIconFactory * const factory = gtk_icon_factory_new(); + const char * const path_prefix = "/org/vim/gui/icon"; + IconNames *names; + + for (names = stock_vim_icons; names->icon_name != NULL; names++) + { + char path[MAXPATHL]; + GdkPixbuf *pixbuf; + + vim_snprintf(path, MAXPATHL, "%s/%s", path_prefix, names->file_name); + pixbuf = gdk_pixbuf_new_from_resource(path, NULL); + if (pixbuf != NULL) + { + GtkIconSet *icon_set = gtk_icon_set_new_from_pixbuf(pixbuf); + gtk_icon_factory_add(factory, names->icon_name, icon_set); + gtk_icon_set_unref(icon_set); + g_object_unref(pixbuf); + } + } +#endif gtk_icon_factory_add_default(factory); g_object_unref(factory); } diff --git a/src/gui_gtk_gresources.xml b/src/gui_gtk_gresources.xml new file mode 100644 --- /dev/null +++ b/src/gui_gtk_gresources.xml @@ -0,0 +1,18 @@ + + + + stock_vim_build_tags.png + stock_vim_find_help.png + stock_vim_save_all.png + stock_vim_session_load.png + stock_vim_session_new.png + stock_vim_session_save.png + stock_vim_shell.png + stock_vim_window_maximize.png + stock_vim_window_maximize_width.png + stock_vim_window_minimize.png + stock_vim_window_minimize_width.png + stock_vim_window_split.png + stock_vim_window_split_vertical.png + + diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c --- a/src/gui_gtk_x11.c +++ b/src/gui_gtk_x11.c @@ -22,6 +22,9 @@ */ #include "vim.h" +#ifdef USE_GRESOURCE +#include "auto/gui_gtk_gresources.h" +#endif #ifdef FEAT_GUI_GNOME /* Gnome redefines _() and N_(). Grrr... */ @@ -1434,6 +1437,9 @@ gui_mch_early_init_check(void) EMSG(_((char *)e_opendisp)); return FAIL; } +#ifdef USE_GRESOURCE + gui_gtk_register_resource(); +#endif return OK; } @@ -3620,6 +3626,9 @@ mainwin_destroy_cb(GtkObject *object UNU IOSIZE - 1); preserve_exit(); } +#ifdef USE_GRESOURCE + gui_gtk_unregister_resource(); +#endif } diff --git a/src/proto/gui_gtk_gresources.pro b/src/proto/gui_gtk_gresources.pro new file mode 100644 --- /dev/null +++ b/src/proto/gui_gtk_gresources.pro @@ -0,0 +1,5 @@ +/* auto/gui_gtk_gresources.c */ +GResource *gui_gtk_get_resource __ARGS((void)); +void gui_gtk_register_resource __ARGS((void)); +void gui_gtk_unregister_resource __ARGS((void)); +/* vim: set ft=c : */ diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 995, +/**/ 994, /**/ 993,