#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;
return;
}
-
-
-
-
void bar_add(GtkWidget *bar, GtkWidget *pane)
{
GtkWidget *expander;
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 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);
-}
-
-static void bar_larger(GtkWidget *widget, gpointer data)
+gint bar_get_width(GtkWidget *bar)
{
- 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);
+ BarData *bd = g_object_get_data(G_OBJECT(bar), "bar_data");
+ if (!bd) return 0;
+ return bd->width;
}
void bar_close(GtkWidget *bar)
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);
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);
GtkWidget *bar = bar_new(bounding_widget);
gboolean enabled = TRUE;
- gint width = PANEL_DEFAULT_WIDTH;
+ gint width = SIDEBAR_DEFAULT_WIDTH;
while (*attribute_names)
{
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);
}
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));
}
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;