From f10c23370d51b6251edb667093a54ea3f872cb0f Mon Sep 17 00:00:00 2001 From: John Ellis Date: Wed, 27 Apr 2005 19:29:15 +0000 Subject: [PATCH] Wed Apr 27 15:17:57 2005 John Ellis * bar_info.c, bar_sort.c: Update for new pref_toolbar_button args. * fullscreen.c, layout.c: Remove use of GDK_HINT_USER_SIZE as we never actually set these dimensions. Increase default size of main window. * layout_util.c: Use GTkToolbar for the main window toolbar. * pixbuf_util.[ch]: Add inline pixbufs for thumb and float icons. * rcfile.c: Add note to config file that it is autogenerated. * typedefs.h: Remove no longer used tooltip in LayoutWindow. * ui_misc.[ch]: pref_toolbar additions. * icons/icon_float.png, icons/icon_thumb.png: Icons in png format. * icons/icon_float.xpm, icons/icon_thumb.xpm: Remove xpm versions. * icons/Makefile.am: Add above icons to inline pixbuf list. ##### Note: GQview CVS on sourceforge is not always up to date, please use ##### ##### an offical release when making enhancements and translation updates. ##### --- ChangeLog | 15 ++++++ TODO | 3 ++ src/bar_info.c | 8 +-- src/bar_sort.c | 54 ++++++------------- src/fullscreen.c | 2 +- src/icons/Makefile.am | 10 ++-- src/icons/icon_float.png | Bin 0 -> 264 bytes src/icons/icon_float.xpm | 28 ---------- src/icons/icon_thumb.png | Bin 0 -> 215 bytes src/icons/icon_thumb.xpm | 26 ---------- src/layout.c | 32 ++---------- src/layout_util.c | 109 +++++++++++++-------------------------- src/pixbuf_util.c | 2 + src/pixbuf_util.h | 3 ++ src/rcfile.c | 5 +- src/typedefs.h | 2 - src/ui_misc.c | 40 +++++++++++++- src/ui_misc.h | 4 +- 18 files changed, 136 insertions(+), 207 deletions(-) create mode 100644 src/icons/icon_float.png delete mode 100644 src/icons/icon_float.xpm create mode 100644 src/icons/icon_thumb.png delete mode 100644 src/icons/icon_thumb.xpm diff --git a/ChangeLog b/ChangeLog index 622b8175..1db0d675 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +Wed Apr 27 15:17:57 2005 John Ellis + + * bar_info.c, bar_sort.c: Update for new pref_toolbar_button args. + * fullscreen.c, layout.c: Remove use of GDK_HINT_USER_SIZE as we + never actually set these dimensions. Increase default size of main + window. + * layout_util.c: Use GTkToolbar for the main window toolbar. + * pixbuf_util.[ch]: Add inline pixbufs for thumb and float icons. + * rcfile.c: Add note to config file that it is autogenerated. + * typedefs.h: Remove no longer used tooltip in LayoutWindow. + * ui_misc.[ch]: pref_toolbar additions. + * icons/icon_float.png, icons/icon_thumb.png: Icons in png format. + * icons/icon_float.xpm, icons/icon_thumb.xpm: Remove xpm versions. + * icons/Makefile.am: Add above icons to inline pixbuf list. + Sat Apr 16 12:29:42 2005 John Ellis * pan-view.c: Add option to ignore symbolic links to folders when diff --git a/TODO b/TODO index 40e70f07..76d3c296 100644 --- a/TODO +++ b/TODO @@ -57,6 +57,9 @@ Major: > under consideration: > split view +d> fix window size hints not to use USER_SIZE as we do not use gtk_window_resize to set the hint's attribute, and + apparently GTK passes in unitialized values for this case (definite programming error, but also a GTK bug?). + > the info dialog is not set as a transient of the calling window, this causes it to be behind a full screen window when 'stay above other windows' is enabled. diff --git a/src/bar_info.c b/src/bar_info.c index d07a97e8..7e41ea2a 100644 --- a/src/bar_info.c +++ b/src/bar_info.c @@ -1115,18 +1115,18 @@ GtkWidget *bar_info_new(const gchar *path, gint metadata_only, GtkWidget *boundi tbar = pref_toolbar_new(bd->group_box, GTK_TOOLBAR_ICONS); - pref_toolbar_button(tbar, GTK_STOCK_INDEX, NULL, + pref_toolbar_button(tbar, GTK_STOCK_INDEX, NULL, FALSE, _("Edit favorite keywords list."), G_CALLBACK(bar_keyword_edit_cb), bd); pref_toolbar_spacer(tbar); - bd->button_set_add = pref_toolbar_button(tbar, GTK_STOCK_ADD, NULL, + bd->button_set_add = pref_toolbar_button(tbar, GTK_STOCK_ADD, NULL, FALSE, _("Add keywords to selected files"), G_CALLBACK(bar_info_set_add), bd); - bd->button_set_replace = pref_toolbar_button(tbar, GTK_STOCK_CONVERT, NULL, + bd->button_set_replace = pref_toolbar_button(tbar, GTK_STOCK_CONVERT, NULL, FALSE, _("Add keywords to selected files, replacing the existing ones."), G_CALLBACK(bar_info_set_replace), bd); pref_toolbar_spacer(tbar); - bd->button_save = pref_toolbar_button(tbar, GTK_STOCK_SAVE, NULL, + bd->button_save = pref_toolbar_button(tbar, GTK_STOCK_SAVE, NULL, FALSE, _("Save comment now"), G_CALLBACK(bar_info_save), bd); diff --git a/src/bar_sort.c b/src/bar_sort.c index 81caa48e..1541792e 100644 --- a/src/bar_sort.c +++ b/src/bar_sort.c @@ -545,7 +545,6 @@ static void bar_sort_destroy(GtkWidget *widget, gpointer data) GtkWidget *bar_sort_new(LayoutWindow *lw) { SortData *sd; - GtkWidget *button; GtkWidget *buttongrp; GtkWidget *label; GtkWidget *tbar; @@ -583,43 +582,24 @@ GtkWidget *bar_sort_new(LayoutWindow *lw) sd->folder_group = pref_box_new(sd->vbox, FALSE, GTK_ORIENTATION_VERTICAL, 0); - buttongrp = gtk_radio_button_new_with_label(NULL, _("Copy")); - if (sd->action == BAR_SORT_COPY) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(buttongrp), TRUE); - g_signal_connect(G_OBJECT(buttongrp), "clicked", - G_CALLBACK(bar_sort_set_copy_cb), sd); - gtk_box_pack_start(GTK_BOX(sd->folder_group), buttongrp, FALSE, FALSE, 0); - gtk_widget_show(buttongrp); - - button = gtk_radio_button_new_with_label(gtk_radio_button_get_group(GTK_RADIO_BUTTON(buttongrp)), _("Move")); - if (sd->action == BAR_SORT_MOVE) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); - g_signal_connect(G_OBJECT(button), "clicked", - G_CALLBACK(bar_sort_set_move_cb), sd); - gtk_box_pack_start(GTK_BOX(sd->folder_group), button, FALSE, FALSE, 0); - gtk_widget_show(button); - - button = gtk_radio_button_new_with_label(gtk_radio_button_get_group(GTK_RADIO_BUTTON(buttongrp)), _("Link")); - - if (sd->action == BAR_SORT_LINK) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); - g_signal_connect(G_OBJECT(button), "clicked", - G_CALLBACK(bar_sort_set_link_cb), sd); - gtk_box_pack_start(GTK_BOX(sd->folder_group), button, FALSE, FALSE, 0); - gtk_widget_show(button); + buttongrp = pref_radiobutton_new(sd->folder_group, NULL, + _("Copy"), (sd->action == BAR_SORT_COPY), + G_CALLBACK(bar_sort_set_copy_cb), sd); + pref_radiobutton_new(sd->folder_group, buttongrp, + _("Move"), (sd->action == BAR_SORT_MOVE), + G_CALLBACK(bar_sort_set_move_cb), sd); + pref_radiobutton_new(sd->folder_group, buttongrp, + _("Link"), (sd->action == BAR_SORT_LINK), + G_CALLBACK(bar_sort_set_link_cb), sd); sd->collection_group = pref_box_new(sd->vbox, FALSE, GTK_ORIENTATION_VERTICAL, 0); - buttongrp = gtk_radio_button_new_with_label(NULL, _("Add image")); - if (sd->selection == BAR_SORT_SELECTION_IMAGE) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(buttongrp), TRUE); - g_signal_connect(G_OBJECT(buttongrp), "clicked", - G_CALLBACK(bar_sort_set_selection_image_cb), sd); - gtk_box_pack_start(GTK_BOX(sd->collection_group), buttongrp, FALSE, FALSE, 0); - gtk_widget_show(buttongrp); - - button = gtk_radio_button_new_with_label(gtk_radio_button_get_group(GTK_RADIO_BUTTON(buttongrp)), _("Add selection")); - if (sd->selection == BAR_SORT_SELECTION_SELECTED) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); - g_signal_connect(G_OBJECT(button), "clicked", - G_CALLBACK(bar_sort_set_selection_selected_cb), sd); - gtk_box_pack_start(GTK_BOX(sd->collection_group), button, FALSE, FALSE, 0); - gtk_widget_show(button); + buttongrp = pref_radiobutton_new(sd->collection_group, NULL, + _("Add image"), (sd->selection == BAR_SORT_SELECTION_IMAGE), + G_CALLBACK(bar_sort_set_selection_image_cb), sd); + pref_radiobutton_new(sd->collection_group, buttongrp, + _("Add selection"), (sd->selection == BAR_SORT_SELECTION_SELECTED), + G_CALLBACK(bar_sort_set_selection_selected_cb), sd); sd->bookmarks = bookmark_list_new(SORT_KEY_FOLDERS, bar_sort_bookmark_select, sd); gtk_box_pack_start(GTK_BOX(sd->vbox), sd->bookmarks, TRUE, TRUE, 0); @@ -627,10 +607,10 @@ GtkWidget *bar_sort_new(LayoutWindow *lw) tbar = pref_toolbar_new(sd->vbox, GTK_TOOLBAR_ICONS); - sd->add_button = pref_toolbar_button(tbar, GTK_STOCK_ADD, NULL, + sd->add_button = pref_toolbar_button(tbar, GTK_STOCK_ADD, NULL, FALSE, _("Add Bookmark"), G_CALLBACK(bar_sort_add_cb), sd); - sd->undo_button = pref_toolbar_button(tbar, GTK_STOCK_UNDO, NULL, + sd->undo_button = pref_toolbar_button(tbar, GTK_STOCK_UNDO, NULL, FALSE, _("Undo last image"), G_CALLBACK(bar_sort_undo_cb), sd); diff --git a/src/fullscreen.c b/src/fullscreen.c index 1507a6c0..01b8d2f7 100644 --- a/src/fullscreen.c +++ b/src/fullscreen.c @@ -283,7 +283,7 @@ FullScreenData *fullscreen_start(GtkWidget *window, ImageWindow *imd, gtk_window_set_geometry_hints(GTK_WINDOW(fs->window), fs->window, &geometry, GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE | GDK_HINT_BASE_SIZE | GDK_HINT_WIN_GRAVITY | - GDK_HINT_USER_POS | GDK_HINT_USER_SIZE); + GDK_HINT_USER_POS); gtk_window_set_default_size(GTK_WINDOW(fs->window), w, h); gtk_window_move(GTK_WINDOW(fs->window), x, y); diff --git a/src/icons/Makefile.am b/src/icons/Makefile.am index c3fd0b88..d4474fe7 100644 --- a/src/icons/Makefile.am +++ b/src/icons/Makefile.am @@ -7,7 +7,9 @@ ICONS_INLINE = \ folder_up.png \ scroller.png \ sheet_broken.png \ - gqview_logo.png + gqview_logo.png \ + icon_float.png \ + icon_thumb.png ICONS_INLINE_PAIRS = \ folder_closed $(srcdir)/folder_closed.png \ @@ -16,7 +18,9 @@ ICONS_INLINE_PAIRS = \ folder_up $(srcdir)/folder_up.png \ icon_scroller $(srcdir)/scroller.png \ icon_broken $(srcdir)/sheet_broken.png \ - gqview_logo $(srcdir)/gqview_logo.png + gqview_logo $(srcdir)/gqview_logo.png \ + icon_float $(srcdir)/icon_float.png \ + icon_thumb $(srcdir)/icon_thumb.png icons_inline.h: $(ICONS_INLINE) gdk-pixbuf-csource --raw --extern --build-list $(ICONS_INLINE_PAIRS) > icons_inline.h @@ -33,8 +37,6 @@ EXTRA_DIST = \ config.xpm \ dialog.xpm \ icon.xpm \ - icon_float.xpm \ - icon_thumb.xpm \ marker.xpm \ tools.xpm \ view.xpm diff --git a/src/icons/icon_float.png b/src/icons/icon_float.png new file mode 100644 index 0000000000000000000000000000000000000000..8b7293be6f3a3b1f754ef95ede8ef5a5a95f188c GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^Ahrkx8<5=cZcP}FVoUONcVYMsf(!O8p9~b?Ebxdd zW?KIl+Il-^act|^>lFz(Kx?#q9fm71p(&t)pi{7 zjyDGL+2sG6Sl!qnc5BJhSEso$Q?AAB(8vx>KeKkfiXvzEeRYRZp8g6BYo`h@ZM}AK zTXR~PHIG2D%2Sg@h8BT)dRDc6S8Wpged=Q0g;_DlJ<83y?$plOoBTR&_1|M(zF#~0 zRCrQR&`qv)cBMNeMQMG#tXutO$$y|B%N-@8AB5X7SZ_+$r=#fd8R$R;Pgg&ebxsLQ E052zFT>t<8 literal 0 HcmV?d00001 diff --git a/src/icons/icon_float.xpm b/src/icons/icon_float.xpm deleted file mode 100644 index ae27662c..00000000 --- a/src/icons/icon_float.xpm +++ /dev/null @@ -1,28 +0,0 @@ -/* XPM */ -static char * icon_float_xpm[] = { -"10 20 5 1", -" c None", -". c #000000", -"+ c #FFFFFF", -"@ c #CFCFCF", -"# c #797D79", -" ", -" ....... ", -" .++@+@.# ", -" .+@+@@.# ", -" .@@@.## ", -" .+@@.## ", -" .@@@.# ", -" .+@@.# ", -" .++@@@. ", -".++@+@+@. ", -".+@@@@@@.#", -".........#", -" #.@.####", -" .+.# ", -" .+.# ", -" .+.# ", -" .+.# ", -" .## ", -" # ", -" "}; diff --git a/src/icons/icon_thumb.png b/src/icons/icon_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..27d6b2ed8a3a50387113a597499ada0e8091534b GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VTavfC3&Vd9T(EcfWS|IVfk$L9 z0|U1(2s1Lwnj--eWH0gbb!ETGA}z>eyd*_%Cr~KG)5S5w;&gI?#G3}e&cE|HOj#I( z6list); -#endif g_signal_connect(G_OBJECT(lw->path_entry->parent), "changed", G_CALLBACK(layout_path_entry_changed_cb), lw); @@ -1089,7 +1083,7 @@ static void layout_tools_setup(LayoutWindow *lw, GtkWidget *tools, GtkWidget *fi if (save_window_positions) { - hints = GDK_HINT_USER_POS | GDK_HINT_USER_SIZE; + hints = GDK_HINT_USER_POS; } else { @@ -1401,10 +1395,6 @@ void layout_style_set(LayoutWindow *lw, gint style, const gchar *order) lw->info_details = NULL; lw->info_zoom = NULL; -#if 0 - if (lw->menu_fact) g_object_unref(G_OBJECT(lw->menu_fact)); - lw->menu_fact = NULL; -#endif if (lw->ui_manager) g_object_unref(lw->ui_manager); lw->ui_manager = NULL; lw->action_group = NULL; @@ -1593,10 +1583,6 @@ void layout_free(LayoutWindow *lw) layout_bars_close(lw); -#if 0 - if (lw->menu_fact) g_object_unref(G_OBJECT(lw->menu_fact)); -#endif - if (lw->tooltips) g_object_unref(G_OBJECT(lw->tooltips)); gtk_widget_destroy(lw->window); g_free(lw->path); @@ -1675,7 +1661,7 @@ LayoutWindow *layout_new(const gchar *path, gint popped, gint hidden) if (save_window_positions) { - hints = GDK_HINT_USER_POS | GDK_HINT_USER_SIZE; + hints = GDK_HINT_USER_POS; } else { @@ -1708,14 +1694,6 @@ LayoutWindow *layout_new(const gchar *path, gint popped, gint hidden) layout_keyboard_init(lw, lw->window); -#if 0 - gtk_widget_realize(lw->window); -#endif - - lw->tooltips = gtk_tooltips_new(); - g_object_ref(G_OBJECT(lw->tooltips)); - gtk_object_sink(GTK_OBJECT(lw->tooltips)); - lw->main_box = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(lw->window), lw->main_box); gtk_widget_show(lw->main_box); diff --git a/src/layout_util.c b/src/layout_util.c index 99c97299..b76e44b8 100644 --- a/src/layout_util.c +++ b/src/layout_util.c @@ -37,9 +37,6 @@ #include /* for keyboard values */ -#include "icons/icon_thumb.xpm" -#include "icons/icon_float.xpm" - #define MENU_EDIT_ACTION_OFFSET 16 @@ -471,17 +468,6 @@ static void layout_menu_list_cb(GtkRadioAction *action, GtkRadioAction *current, layout_views_set(lw, lw->tree_view, (gtk_radio_action_get_current_value(action) == 1)); } -#if 0 -static void layout_menu_icon_cb(gpointer data, guint action, GtkWidget *widget) -{ - LayoutWindow *lw = data; - - if (!GTK_CHECK_MENU_ITEM(widget)->active) return; - - layout_views_set(lw, lw->tree_view, TRUE); -} -#endif - static void layout_menu_tree_cb(GtkToggleAction *action, gpointer data) { LayoutWindow *lw = data; @@ -980,7 +966,7 @@ static void layout_button_thumb_cb(GtkWidget *widget, gpointer data) { LayoutWindow *lw = data; - layout_thumb_set(lw, GTK_TOGGLE_BUTTON(widget)->active); + layout_thumb_set(lw, gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget))); } static void layout_button_home_cb(GtkWidget *widget, gpointer data) @@ -1038,75 +1024,50 @@ static void layout_button_float_cb(GtkWidget *widget, gpointer data) layout_tools_float_toggle(lw); } -GtkWidget *layout_button(GtkWidget *box, gchar **pixmap_data, const gchar *stock_id, gint toggle, - GtkTooltips *tooltips, const gchar *tip_text, - GCallback func, gpointer data) +static void layout_button_custom_icon(GtkWidget *button, const gchar *key) { - GtkWidget *button; GtkWidget *icon; + GdkPixbuf *pixbuf; - if (toggle) - { - button = gtk_toggle_button_new(); - } - else - { - button = gtk_button_new(); - } - - g_signal_connect(G_OBJECT(button), "clicked", func, data); - gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0); - gtk_widget_show(button); - gtk_tooltips_set_tip(tooltips, button, tip_text, NULL); + pixbuf = pixbuf_inline(key); + if (!pixbuf) return; - if (stock_id) - { - icon = gtk_image_new_from_stock(stock_id, GTK_ICON_SIZE_BUTTON); - } - else - { - GdkPixbuf *pixbuf; + icon = gtk_image_new_from_pixbuf(pixbuf); + g_object_unref(pixbuf); - pixbuf = gdk_pixbuf_new_from_xpm_data((const char **)pixmap_data); - icon = gtk_image_new_from_pixbuf(pixbuf); - gdk_pixbuf_unref(pixbuf); - } - - gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); - - gtk_container_add(GTK_CONTAINER(button), icon); + pref_toolbar_button_set_icon(button, icon, NULL); gtk_widget_show(icon); - - return button; } GtkWidget *layout_button_bar(LayoutWindow *lw) { GtkWidget *box; - GtkTooltips *tooltips; - - tooltips = lw->tooltips; - - box = gtk_hbox_new(FALSE, 0); - - lw->thumb_button = layout_button(box, (gchar **)icon_thumb_xpm, NULL, TRUE, - tooltips, _("Show thumbnails"), G_CALLBACK(layout_button_thumb_cb), lw); - layout_button(box, NULL, GTK_STOCK_HOME, FALSE, - tooltips, _("Change to home folder"), G_CALLBACK(layout_button_home_cb), lw); - layout_button(box, NULL, GTK_STOCK_REFRESH, FALSE, - tooltips, _("Refresh file list"), G_CALLBACK(layout_button_refresh_cb), lw); - layout_button(box, NULL, GTK_STOCK_ZOOM_IN, FALSE, - tooltips, _("Zoom in"), G_CALLBACK(layout_button_zoom_in_cb), lw); - layout_button(box, NULL, GTK_STOCK_ZOOM_OUT, FALSE, - tooltips, _("Zoom out"), G_CALLBACK(layout_button_zoom_out_cb), lw); - layout_button(box, NULL, GTK_STOCK_ZOOM_FIT, FALSE, - tooltips, _("Fit image to window"), G_CALLBACK(layout_button_zoom_fit_cb), lw); - layout_button(box, NULL, GTK_STOCK_ZOOM_100, FALSE, - tooltips, _("Set zoom 1:1"), G_CALLBACK(layout_button_zoom_1_1_cb), lw); - layout_button(box, NULL, GTK_STOCK_PREFERENCES, FALSE, - tooltips, _("Configure options"), G_CALLBACK(layout_button_config_cb), lw); - layout_button(box, (gchar **)icon_float_xpm, NULL, FALSE, - tooltips, _("Float Controls"), G_CALLBACK(layout_button_float_cb), lw); + GtkWidget *button; + + box = pref_toolbar_new(NULL, GTK_TOOLBAR_ICONS); + + button = pref_toolbar_button(box, NULL, _("_Thumbnails"), TRUE, + _("Show thumbnails"), G_CALLBACK(layout_button_thumb_cb), lw); + layout_button_custom_icon(button, PIXBUF_INLINE_ICON_THUMB); + lw->thumb_button = button; + + pref_toolbar_button(box, GTK_STOCK_HOME, NULL, FALSE, + _("Change to home folder"), G_CALLBACK(layout_button_home_cb), lw); + pref_toolbar_button(box, GTK_STOCK_REFRESH, NULL, FALSE, + _("Refresh file list"), G_CALLBACK(layout_button_refresh_cb), lw); + pref_toolbar_button(box, GTK_STOCK_ZOOM_IN, NULL, FALSE, + _("Zoom in"), G_CALLBACK(layout_button_zoom_in_cb), lw); + pref_toolbar_button(box, GTK_STOCK_ZOOM_OUT, NULL, FALSE, + _("Zoom out"), G_CALLBACK(layout_button_zoom_out_cb), lw); + pref_toolbar_button(box, GTK_STOCK_ZOOM_FIT, NULL, FALSE, + _("Fit image to window"), G_CALLBACK(layout_button_zoom_fit_cb), lw); + pref_toolbar_button(box, GTK_STOCK_ZOOM_100, NULL, FALSE, + _("Set zoom 1:1"), G_CALLBACK(layout_button_zoom_1_1_cb), lw); + pref_toolbar_button(box, GTK_STOCK_PREFERENCES, NULL, FALSE, + _("Configure options"), G_CALLBACK(layout_button_config_cb), lw); + button = pref_toolbar_button(box, NULL, _("_Float"), FALSE, + _("Float Controls"), G_CALLBACK(layout_button_float_cb), lw); + layout_button_custom_icon(button, PIXBUF_INLINE_ICON_FLOAT); return box; } @@ -1155,7 +1116,7 @@ void layout_util_sync_thumb(LayoutWindow *lw) gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->thumbs_enabled); g_object_set(action, "sensitive", !lw->icon_view, NULL); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lw->thumb_button), lw->thumbs_enabled); + gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(lw->thumb_button), lw->thumbs_enabled); gtk_widget_set_sensitive(lw->thumb_button, !lw->icon_view); } diff --git a/src/pixbuf_util.c b/src/pixbuf_util.c index 59347473..047112fc 100644 --- a/src/pixbuf_util.c +++ b/src/pixbuf_util.c @@ -98,6 +98,8 @@ static PixbufInline inline_pixbuf_data[] = { { PIXBUF_INLINE_SCROLLER, icon_scroller }, { PIXBUF_INLINE_BROKEN, icon_broken }, { PIXBUF_INLINE_LOGO, gqview_logo }, + { PIXBUF_INLINE_ICON_FLOAT, icon_float }, + { PIXBUF_INLINE_ICON_THUMB, icon_thumb }, { NULL, NULL } }; diff --git a/src/pixbuf_util.h b/src/pixbuf_util.h index dcdf9f32..fa052e39 100644 --- a/src/pixbuf_util.h +++ b/src/pixbuf_util.h @@ -28,6 +28,9 @@ GdkPixbuf *pixbuf_inline(const gchar *key); #define PIXBUF_INLINE_BROKEN "broken" #define PIXBUF_INLINE_LOGO "logo" +#define PIXBUF_INLINE_ICON_FLOAT "icon_float" +#define PIXBUF_INLINE_ICON_THUMB "icon_thumb" + GdkPixbuf *pixbuf_copy_rotate_90(GdkPixbuf *src, gint counter_clockwise); GdkPixbuf *pixbuf_copy_mirror(GdkPixbuf *src, gint mirror, gint flip); diff --git a/src/rcfile.c b/src/rcfile.c index 83ea210b..368cb6d8 100644 --- a/src/rcfile.c +++ b/src/rcfile.c @@ -194,6 +194,9 @@ void save_options(void) fprintf(f,"# GQview config file version %7s #\n", VERSION); fprintf(f,"######################################################################\n"); fprintf(f,"\n"); + fprintf(f,"# Note: This file is autogenerated. Options can be changed here,\n"); + fprintf(f,"# but user comments and formatting will be lost.\n"); + fprintf(f,"\n"); fprintf(f,"##### General Options #####\n\n"); write_int_option(f, "layout_style", layout_style); @@ -303,7 +306,7 @@ void save_options(void) filter_write_list(f); fprintf(f,"\n##### External Programs #####\n"); - fprintf(f,"# Maximum of 8 programs (external_1 through external 8)\n"); + fprintf(f,"# Maximum of 10 programs (external_1 through external_10)\n"); fprintf(f,"# format: external_n: \"menu name\" \"command line\"\n\n"); for (i = 0; i < GQVIEW_EDITOR_SLOTS; i++) diff --git a/src/typedefs.h b/src/typedefs.h index 902ef493..21baf985 100644 --- a/src/typedefs.h +++ b/src/typedefs.h @@ -309,8 +309,6 @@ struct _LayoutWindow GtkWidget *h_pane; GtkWidget *v_pane; - GtkTooltips *tooltips; - /* menus, path selector */ GtkActionGroup *action_group; diff --git a/src/ui_misc.c b/src/ui_misc.c index e3c0c29f..c8952197 100644 --- a/src/ui_misc.c +++ b/src/ui_misc.c @@ -749,13 +749,37 @@ GtkWidget *pref_toolbar_new(GtkWidget *parent_box, GtkToolbarStyle style) return tbar; } -GtkWidget *pref_toolbar_button(GtkWidget *toolbar, const gchar *stock_id, const gchar *label, +GtkWidget *pref_toolbar_button(GtkWidget *toolbar, + const gchar *stock_id, const gchar *label, gint toggle, const gchar *description, GCallback func, gpointer data) { GtkWidget *item; - item = GTK_WIDGET(gtk_tool_button_new_from_stock(stock_id)); + if (toggle) + { + if (stock_id) + { + item = GTK_WIDGET(gtk_toggle_tool_button_new_from_stock(stock_id)); + } + else + { + item = GTK_WIDGET(gtk_toggle_tool_button_new()); + } + } + else + { + if (stock_id) + { + item = GTK_WIDGET(gtk_tool_button_new_from_stock(stock_id)); + } + else + { + item = GTK_WIDGET(gtk_tool_button_new(NULL, NULL)); + } + } + gtk_tool_button_set_use_underline(GTK_TOOL_BUTTON(item), TRUE); + if (label) gtk_tool_button_set_label(GTK_TOOL_BUTTON(item), label); if (func) g_signal_connect(item, "clicked", func, data); @@ -773,6 +797,18 @@ GtkWidget *pref_toolbar_button(GtkWidget *toolbar, const gchar *stock_id, const return item; } +void pref_toolbar_button_set_icon(GtkWidget *button, GtkWidget *widget, const gchar *stock_id) +{ + if (widget) + { + gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(button), widget); + } + else if (stock_id) + { + gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(button), stock_id); + } +} + GtkWidget *pref_toolbar_spacer(GtkWidget *toolbar) { GtkWidget *item; diff --git a/src/ui_misc.h b/src/ui_misc.h index 6e533700..1c98bbcd 100644 --- a/src/ui_misc.h +++ b/src/ui_misc.h @@ -137,9 +137,11 @@ GtkWidget *pref_table_spin(GtkWidget *table, gint column, gint row, GtkWidget *pref_toolbar_new(GtkWidget *parent_box, GtkToolbarStyle style); -GtkWidget *pref_toolbar_button(GtkWidget *toolbar, const gchar *stock_id, const gchar *label, +GtkWidget *pref_toolbar_button(GtkWidget *toolbar, + const gchar *stock_id, const gchar *label, gint toggle, const gchar *description, GCallback func, gpointer data); +void pref_toolbar_button_set_icon(GtkWidget *button, GtkWidget *widget, const gchar *stock_id); GtkWidget *pref_toolbar_spacer(GtkWidget *toolbar); -- 2.20.1