Hide bars - grave keystroke
[geeqie.git] / src / layout.c
index fae646b..338b05c 100644 (file)
@@ -324,22 +324,6 @@ static gboolean path_entry_tooltip_cb(GtkWidget *widget, gpointer data)
        return FALSE;
 }
 
-void show_menu_scrollbar_cb(GtkWidget *widget, GdkRectangle *allocation, gpointer data)
-{
-       GtkRequisition requisition;
-
-       gtk_widget_size_request(widget, &requisition);
-
-       if (allocation->width <= requisition.width)
-               {
-               gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(data), GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
-               }
-       else
-               {
-               gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(data), GTK_POLICY_NEVER, GTK_POLICY_NEVER);
-               }
-}
-
 static GtkWidget *layout_tool_setup(LayoutWindow *lw)
 {
        GtkWidget *box;
@@ -359,9 +343,8 @@ static GtkWidget *layout_tool_setup(LayoutWindow *lw)
 
                toolbar = layout_actions_toolbar(lw, TOOLBAR_MAIN);
                scroll_window = gtk_scrolled_window_new(NULL, NULL);
-               gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window), GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
+               gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window), GTK_POLICY_AUTOMATIC,GTK_POLICY_NEVER);
                gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll_window), menu_bar);
-               g_signal_connect(G_OBJECT(menu_bar), "size-allocate", G_CALLBACK(show_menu_scrollbar_cb), scroll_window);
 
                gtk_widget_show(scroll_window);
                gtk_widget_show(menu_bar);
@@ -503,15 +486,28 @@ static void layout_sort_button_press_cb(GtkWidget *widget, gpointer data)
        gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 0, etime);
 }
 
-static GtkWidget *layout_sort_button(LayoutWindow *lw)
+static GtkWidget *layout_sort_button(LayoutWindow *lw, GtkWidget *box)
 {
        GtkWidget *button;
+       GtkWidget *frame;
+       GtkWidget *image;
 
+       frame = gtk_frame_new(NULL);
+       DEBUG_NAME(frame);
+       gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
+       gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 0);
+       gtk_widget_show(frame);
+
+       image = gtk_image_new_from_icon_name("pan-down", GTK_ICON_SIZE_BUTTON);
        button = gtk_button_new_with_label(sort_type_get_text(lw->sort_method));
-       DEBUG_NAME(button);
+       gtk_button_set_image(GTK_BUTTON(button), image);
        g_signal_connect(G_OBJECT(button), "clicked",
                         G_CALLBACK(layout_sort_button_press_cb), lw);
        gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
+       gtk_button_set_image_position(GTK_BUTTON(button), GTK_POS_RIGHT);
+
+       gtk_container_add(GTK_CONTAINER(frame), button);
+       gtk_widget_show(button);
 
        return button;
 }
@@ -602,7 +598,7 @@ static GtkWidget *layout_zoom_button(LayoutWindow *lw, GtkWidget *box, gint size
 {
        GtkWidget *button;
        GtkWidget *frame;
-
+       GtkWidget *image;
 
        frame = gtk_frame_new(NULL);
        DEBUG_NAME(frame);
@@ -613,10 +609,13 @@ static GtkWidget *layout_zoom_button(LayoutWindow *lw, GtkWidget *box, gint size
 
        gtk_widget_show(frame);
 
+       image = gtk_image_new_from_icon_name("pan-down", GTK_ICON_SIZE_BUTTON);
        button = gtk_button_new_with_label("1:1");
+       gtk_button_set_image(GTK_BUTTON(button), image);
        g_signal_connect(G_OBJECT(button), "clicked",
                         G_CALLBACK(layout_zoom_button_press_cb), lw);
        gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
+       gtk_button_set_image_position(GTK_BUTTON(button), GTK_POS_RIGHT);
 
        gtk_container_add(GTK_CONTAINER(frame), button);
        gtk_widget_show(button);
@@ -849,6 +848,7 @@ static GtkWidget *layout_status_label(gchar *text, GtkWidget *box, gboolean star
        gtk_widget_show(frame);
 
        label = gtk_label_new(text ? text : "");
+       gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_END);
        gtk_container_add(GTK_CONTAINER(frame), label);
        gtk_widget_show(label);
 
@@ -897,9 +897,8 @@ static void layout_status_setup(LayoutWindow *lw, GtkWidget *box, gboolean small
        gtk_box_pack_start(GTK_BOX(hbox), lw->info_progress_bar, FALSE, FALSE, 0);
        gtk_widget_show(lw->info_progress_bar);
 
-       lw->info_sort = layout_sort_button(lw);
+       lw->info_sort = layout_sort_button(lw, hbox);
        gtk_widget_set_tooltip_text(GTK_WIDGET(lw->info_sort), _("Select sort order"));
-       gtk_box_pack_start(GTK_BOX(hbox), lw->info_sort, FALSE, FALSE, 0);
        gtk_widget_show(lw->info_sort);
 
        lw->info_status = layout_status_label(NULL, lw->info_box, TRUE, 0, (!small_format));
@@ -1351,8 +1350,7 @@ void layout_sort_set(LayoutWindow *lw, SortType type, gboolean ascend)
        lw->sort_method = type;
        lw->sort_ascend = ascend;
 
-       if (lw->info_sort) gtk_label_set_text(GTK_LABEL(gtk_bin_get_child(GTK_BIN(lw->info_sort))),
-                                             sort_type_get_text(type));
+       if (lw->info_sort) gtk_button_set_label(GTK_BUTTON(lw->info_sort), sort_type_get_text(type));
        layout_list_sync_sort(lw);
 }
 
@@ -2497,9 +2495,6 @@ void save_layout(LayoutWindow *lw)
 
 void layout_close(LayoutWindow *lw)
 {
-       GList *list;
-       LayoutWindow *tmp_lw;
-
        if (layout_window_list && layout_window_list->next)
                {
                save_layout(lw);
@@ -2827,6 +2822,11 @@ void layout_write_attributes(LayoutOptions *layout, GString *outstr, gint indent
        WRITE_NL(); WRITE_INT(*layout, dupe_window.y);
        WRITE_NL(); WRITE_INT(*layout, dupe_window.w);
        WRITE_NL(); WRITE_INT(*layout, dupe_window.h);
+
+       WRITE_NL(); WRITE_INT(*layout, advanced_exif_window.x);
+       WRITE_NL(); WRITE_INT(*layout, advanced_exif_window.y);
+       WRITE_NL(); WRITE_INT(*layout, advanced_exif_window.w);
+       WRITE_NL(); WRITE_INT(*layout, advanced_exif_window.h);
        WRITE_SEPARATOR();
 
        WRITE_NL(); WRITE_BOOL(*layout, animate);
@@ -2937,6 +2937,11 @@ void layout_load_attributes(LayoutOptions *layout, const gchar **attribute_names
                if (READ_INT(*layout, dupe_window.w)) continue;
                if (READ_INT(*layout, dupe_window.h)) continue;
 
+               if (READ_INT(*layout, advanced_exif_window.x)) continue;
+               if (READ_INT(*layout, advanced_exif_window.y)) continue;
+               if (READ_INT(*layout, advanced_exif_window.w)) continue;
+               if (READ_INT(*layout, advanced_exif_window.h)) continue;
+
                if (READ_BOOL(*layout, animate)) continue;
                if (READ_INT(*layout, workspace)) continue;
 
@@ -3051,7 +3056,6 @@ void layout_update_from_config(LayoutWindow *lw, const gchar **attribute_names,
 LayoutWindow *layout_new_from_default()
 {
        LayoutWindow *lw;
-       gchar *path = NULL;
        GList *work;
        gboolean success;
        gchar *default_path;
@@ -3069,7 +3073,7 @@ LayoutWindow *layout_new_from_default()
                }
        else
                {
-               layout_new_from_config(NULL, NULL, TRUE);
+               lw = layout_new_from_config(NULL, NULL, TRUE);
                }
        return lw;
 }