Revision: 1479
          http://geeqie.svn.sourceforge.net/geeqie/?rev=1479&view=rev
Author:   nadvornik
Date:     2009-03-06 14:24:11 +0000 (Fri, 06 Mar 2009)

Log Message:
-----------
use standard GtkHPaned for sidebar width

Modified Paths:
--------------
    trunk/src/bar.c
    trunk/src/bar.h
    trunk/src/layout.c
    trunk/src/layout_image.c
    trunk/src/layout_util.c
    trunk/src/main.h
    trunk/src/typedefs.h

Modified: trunk/src/bar.c
===================================================================
--- trunk/src/bar.c     2009-03-06 11:42:25 UTC (rev 1478)
+++ trunk/src/bar.c     2009-03-06 14:24:11 UTC (rev 1479)
@@ -30,8 +30,8 @@
 #include "histogram.h"
 #include "rcfile.h"
 
-#define BAR_SIZE_INCREMENT 48
-#define BAR_ARROW_SIZE 7
+//#define BAR_SIZE_INCREMENT 48
+//#define BAR_ARROW_SIZE 7
 
 
 typedef struct _BarData BarData;
@@ -223,10 +223,6 @@
        return;
 }
 
-
-
-
-
 void bar_add(GtkWidget *bar, GtkWidget *pane)
 {
        GtkWidget *expander;
@@ -278,37 +274,20 @@
        bar_add(bar, widget);
 }
 
-static void bar_sized(GtkWidget *widget, GtkAllocation *allocation, gpointer 
data)
+static void bar_size_allocate(GtkWidget *widget, GtkAllocation *allocation, 
gpointer data)
 {
        BarData *bd = data;
+       
        bd->width = allocation->width;
 }
 
-
-static void bar_width(BarData *bd, gint val)
+gint bar_get_width(GtkWidget *bar)
 {
-       gint size;
-
-       size = bd->widget->allocation.width;
-       size = CLAMP(size + val, BAR_SIZE_INCREMENT * 2, BAR_SIZE_INCREMENT * 
16);
-
-       gtk_widget_set_size_request(bd->widget, size, -1);
+       BarData *bd = g_object_get_data(G_OBJECT(bar), "bar_data");
+       if (!bd) return 0;
+       return bd->width;
 }
 
-static void bar_larger(GtkWidget *widget, gpointer data)
-{
-       BarData *bd = data;
-
-       bar_width(bd, BAR_SIZE_INCREMENT);
-}
-
-static void bar_smaller(GtkWidget *widget, gpointer data)
-{
-       BarData *bd = data;
-
-       bar_width(bd, -BAR_SIZE_INCREMENT);
-}
-
 void bar_close(GtkWidget *bar)
 {
        BarData *bd;
@@ -343,19 +322,14 @@
        g_signal_connect(G_OBJECT(bd->widget), "destroy",
                         G_CALLBACK(bar_destroy), bd);
 
-       g_signal_connect(G_OBJECT(bd->widget), "size_allocate",
-                        G_CALLBACK(bar_sized), bd);
+       g_signal_connect(G_OBJECT(bd->widget), "size-allocate",
+                        G_CALLBACK(bar_size_allocate), bd);
 
-       bd->width = PANEL_DEFAULT_WIDTH;
+       bd->width = SIDEBAR_DEFAULT_WIDTH;
        gtk_widget_set_size_request(bd->widget, bd->width, -1);
 
        box = gtk_hbox_new(FALSE, 0);
 
-       sizer = sizer_new(bd->widget, bounding_widget, SIZER_POS_LEFT);
-       sizer_set_limits(sizer, BAR_SIZE_INCREMENT * 2, -1, -1 , -1);
-       gtk_box_pack_start(GTK_BOX(box), sizer, FALSE, FALSE, 0);
-       gtk_widget_show(sizer);
-
        bd->label_file_name = gtk_label_new("");
        gtk_label_set_ellipsize(GTK_LABEL(bd->label_file_name), 
PANGO_ELLIPSIZE_END);
        gtk_label_set_selectable(GTK_LABEL(bd->label_file_name), TRUE);
@@ -363,28 +337,6 @@
        gtk_box_pack_start(GTK_BOX(box), bd->label_file_name, TRUE, TRUE, 0);
        gtk_widget_show(bd->label_file_name);
 
-       button = gtk_button_new();
-       gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
-       g_signal_connect(G_OBJECT(button), "clicked",
-                        G_CALLBACK(bar_smaller), bd);
-       gtk_box_pack_end(GTK_BOX(box), button, FALSE, FALSE, 0);
-       arrow = gtk_arrow_new(GTK_ARROW_RIGHT, GTK_SHADOW_NONE);
-       gtk_widget_set_size_request(arrow, BAR_ARROW_SIZE, BAR_ARROW_SIZE);
-       gtk_container_add(GTK_CONTAINER(button), arrow);
-       gtk_widget_show(arrow);
-       gtk_widget_show(button);
-
-       button = gtk_button_new();
-       gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
-       g_signal_connect(G_OBJECT(button), "clicked",
-                        G_CALLBACK(bar_larger), bd);
-       gtk_box_pack_end(GTK_BOX(box), button, FALSE, FALSE, 0);
-       arrow = gtk_arrow_new(GTK_ARROW_LEFT, GTK_SHADOW_NONE);
-       gtk_widget_set_size_request(arrow, BAR_ARROW_SIZE, BAR_ARROW_SIZE);
-       gtk_container_add(GTK_CONTAINER(button), arrow);
-       gtk_widget_show(arrow);
-       gtk_widget_show(button);
-
        gtk_box_pack_start(GTK_BOX(bd->widget), box, FALSE, FALSE, 0);
        gtk_widget_show(box);
 
@@ -420,7 +372,7 @@
        GtkWidget *bar = bar_new(bounding_widget);
        
        gboolean enabled = TRUE;
-       gint width = PANEL_DEFAULT_WIDTH;
+       gint width = SIDEBAR_DEFAULT_WIDTH;
 
        while (*attribute_names)
                {

Modified: trunk/src/bar.h
===================================================================
--- trunk/src/bar.h     2009-03-06 11:42:25 UTC (rev 1478)
+++ trunk/src/bar.h     2009-03-06 14:24:11 UTC (rev 1479)
@@ -45,6 +45,7 @@
 gint bar_event(GtkWidget *bar, GdkEvent *event);
 
 void bar_set_selection_func(GtkWidget *bar, GList *(*list_func)(gpointer 
data), gpointer data); 
+gint bar_get_width(GtkWidget *bar);
 
 /* following functions are common for all panes */
 void bar_pane_set_selection_func(GtkWidget *pane, GList *(*list_func)(gpointer 
data), gpointer data); 

Modified: trunk/src/layout.c
===================================================================
--- trunk/src/layout.c  2009-03-06 11:42:25 UTC (rev 1478)
+++ trunk/src/layout.c  2009-03-06 14:24:11 UTC (rev 1479)
@@ -1562,16 +1562,17 @@
                if (lw->split_images[i])
                        {
                        gtk_widget_hide(lw->split_images[i]->widget);
-                       if (lw->split_images[i]->widget->parent != 
lw->utility_box)
+                       if (lw->split_images[i]->widget->parent != 
lw->utility_paned)
                                
gtk_container_remove(GTK_CONTAINER(lw->split_images[i]->widget->parent), 
lw->split_images[i]->widget);
                        }
                }
-       gtk_container_remove(GTK_CONTAINER(lw->utility_box), 
lw->split_image_widget);
+       gtk_container_remove(GTK_CONTAINER(lw->utility_paned), 
lw->split_image_widget);
 
        image = layout_image_setup_split(lw, mode);
 
-       gtk_box_pack_start(GTK_BOX(lw->utility_box), image, TRUE, TRUE, 0);
-       gtk_box_reorder_child(GTK_BOX(lw->utility_box), image, 0);
+//     gtk_box_pack_start(GTK_BOX(lw->utility_box), image, TRUE, TRUE, 0);
+//     gtk_box_reorder_child(GTK_BOX(lw->utility_box), image, 0);
+       gtk_paned_pack1(GTK_PANED(lw->utility_paned), image, TRUE, FALSE);
        gtk_widget_show(image);
 }
 

Modified: trunk/src/layout_image.c
===================================================================
--- trunk/src/layout_image.c    2009-03-06 11:42:25 UTC (rev 1478)
+++ trunk/src/layout_image.c    2009-03-06 14:24:11 UTC (rev 1479)
@@ -1579,6 +1579,8 @@
                image_color_profile_set_use(lw->split_images[i], 
options->color_profile.enabled);
 
                gtk_size_group_add_widget(lw->split_image_sizegroup, 
lw->split_images[i]->widget);
+               gtk_widget_set_size_request(lw->split_images[i]->widget, 
IMAGE_MIN_WIDTH, -1);
+
                }
 
        return lw->split_images[i]->widget;

Modified: trunk/src/layout_util.c
===================================================================
--- trunk/src/layout_util.c     2009-03-06 11:42:25 UTC (rev 1478)
+++ trunk/src/layout_util.c     2009-03-06 14:24:11 UTC (rev 1479)
@@ -1996,7 +1996,8 @@
                         G_CALLBACK(layout_bar_destroyed), lw);
 
 
-       gtk_box_pack_start(GTK_BOX(lw->utility_box), lw->bar, FALSE, FALSE, 0);
+//     gtk_box_pack_start(GTK_BOX(lw->utility_box), lw->bar, FALSE, FALSE, 0);
+       gtk_paned_pack2(GTK_PANED(lw->utility_paned), lw->bar, FALSE, TRUE); 
 
        bar_set_fd(lw->bar, layout_image_get_fd(lw));
 }
@@ -2124,7 +2125,12 @@
 GtkWidget *layout_bars_prepare(LayoutWindow *lw, GtkWidget *image)
 {
        lw->utility_box = gtk_hbox_new(FALSE, PREF_PAD_GAP);
-       gtk_box_pack_start(GTK_BOX(lw->utility_box), image, TRUE, TRUE, 0);
+       lw->utility_paned = gtk_hpaned_new();
+       gtk_box_pack_start(GTK_BOX(lw->utility_box), lw->utility_paned, TRUE, 
TRUE, 0);
+
+       gtk_paned_pack1(GTK_PANED(lw->utility_paned), image, TRUE, FALSE); 
+       gtk_widget_show(lw->utility_paned);
+       
        gtk_widget_show(image);
 
        return lw->utility_box;

Modified: trunk/src/main.h
===================================================================
--- trunk/src/main.h    2009-03-06 11:42:25 UTC (rev 1478)
+++ trunk/src/main.h    2009-03-06 14:24:11 UTC (rev 1479)
@@ -106,10 +106,10 @@
 #define IMAGE_LOADER_IDLE_READ_LOOP_COUNT_MIN          1
 #define IMAGE_LOADER_IDLE_READ_LOOP_COUNT_MAX          16
 
-#define PANEL_MIN_WIDTH        64
-#define PANEL_DEFAULT_WIDTH 288
-#define PANEL_MAX_WIDTH 1200
+#define IMAGE_MIN_WIDTH 100
+#define SIDEBAR_DEFAULT_WIDTH 250
 
+
 #define DEFAULT_OVERLAY_INFO   "%collection:<i>*</i>\\n%" \
                                "(%number%/%total%) [%zoom%] <b>%name%</b>\n" \
                                "%res%|%date%|%size%\n" \

Modified: trunk/src/typedefs.h
===================================================================
--- trunk/src/typedefs.h        2009-03-06 11:42:25 UTC (rev 1478)
+++ trunk/src/typedefs.h        2009-03-06 14:24:11 UTC (rev 1479)
@@ -645,6 +645,7 @@
        /* misc */
 
        GtkWidget *utility_box;
+       GtkWidget *utility_paned; /* between image and bar */
        GtkWidget *bar_sort;
        GtkWidget *bar;
 


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Geeqie-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geeqie-svn

Reply via email to