Mercurial > geeqie
diff src/view_dir.c @ 1612:5d54bc073bfa
Attempt to use stock gtk icons for directory list and tree views.
author | zas_ |
---|---|
date | Thu, 21 May 2009 09:20:48 +0000 |
parents | 626adbb26387 |
children | 66bf394d162a |
line wrap: on
line diff
--- a/src/view_dir.c Sat May 16 11:31:48 2009 +0000 +++ b/src/view_dir.c Thu May 21 09:20:48 2009 +0000 @@ -18,6 +18,7 @@ #include "filedata.h" #include "layout_image.h" #include "layout_util.h" +#include "pixbuf_util.h" #include "ui_fileops.h" #include "ui_tree_edit.h" #include "ui_menu.h" @@ -26,6 +27,43 @@ #include "view_dir_list.h" #include "view_dir_tree.h" +/* Folders icons to be used in tree or list directory view */ +static PixmapFolders *folder_icons_new(GtkWidget *widget) +{ + PixmapFolders *pf = g_new0(PixmapFolders, 1); + +#if 1 + GtkIconSize size = GTK_ICON_SIZE_MENU; + + /* Attempt to use stock gtk icons */ + pf->close = gtk_widget_render_icon(widget, GTK_STOCK_DIRECTORY, size, NULL); + pf->open = gtk_widget_render_icon(widget, GTK_STOCK_OPEN, size, NULL); + pf->deny = gtk_widget_render_icon(widget, GTK_STOCK_STOP, size, NULL); + pf->parent = gtk_widget_render_icon(widget, GTK_STOCK_GO_UP, size, NULL); +#else + /* GQView legacy icons */ + pf->close = pixbuf_inline(PIXBUF_INLINE_FOLDER_CLOSED); + pf->open = pixbuf_inline(PIXBUF_INLINE_FOLDER_OPEN); + pf->deny = pixbuf_inline(PIXBUF_INLINE_FOLDER_LOCKED); + pf->parent = pixbuf_inline(PIXBUF_INLINE_FOLDER_UP); +#endif + return pf; +} + +static void folder_icons_free(PixmapFolders *pf) +{ + if (!pf) return; + + g_object_unref(pf->close); + g_object_unref(pf->open); + g_object_unref(pf->deny); + g_object_unref(pf->parent); + + g_free(pf); +} + + + static void vd_notify_cb(FileData *fd, NotifyType type, gpointer data); GtkRadioActionEntry menu_view_dir_radio_entries[] = { @@ -72,7 +110,7 @@ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(vd->widget), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); - vd->pf = folder_icons_new(); + vd->pf = folder_icons_new(vd->widget); switch (type) {