# HG changeset patch # User nadvornik # Date 1236354767 0 # Node ID 6f31fa931d3fa13065f99677dddf9040aa81f737 # Parent 4da6d326919ce6b18b543489b28a466753f23f94 simplified bar interface diff -r 4da6d326919c -r 6f31fa931d3f src/bar.c --- a/src/bar.c Fri Mar 06 15:04:35 2009 +0000 +++ b/src/bar.c Fri Mar 06 15:52:47 2009 +0000 @@ -42,8 +42,7 @@ FileData *fd; GtkWidget *label_file_name; - GList *(*list_func)(gpointer); - gpointer list_data; + LayoutWindow *lw; gint width; }; @@ -187,42 +186,6 @@ } -void bar_pane_set_selection_func(GtkWidget *pane, GList *(*list_func)(gpointer data), gpointer data) -{ - PaneData *pd; - - pd = g_object_get_data(G_OBJECT(pane), "pane_data"); - if (!pd) return; - - pd->list_func = list_func; - pd->list_data = data; -} - -void bar_set_selection_func(GtkWidget *bar, GList *(*list_func)(gpointer data), gpointer data) -{ - BarData *bd; - GList *list, *work; - bd = g_object_get_data(G_OBJECT(bar), "bar_data"); - if (!bd) return; - - bd->list_func = list_func; - bd->list_data = data; - - list = gtk_container_get_children(GTK_CONTAINER(bd->vbox)); - - work = list; - while (work) - { - GtkWidget *widget = gtk_bin_get_child(GTK_BIN(work->data)); - - bar_pane_set_selection_func(widget, list_func, data); - - work = work->next; - } - g_list_free(list); - return; -} - void bar_add(GtkWidget *bar, GtkWidget *pane) { GtkWidget *expander; @@ -232,12 +195,14 @@ if (!bd) return; + pd->lw = bd->lw; + pd->bar = bar; + expander = gtk_expander_new(NULL); if (pd && pd->title) { gtk_expander_set_label_widget(GTK_EXPANDER(expander), pd->title); gtk_widget_show(pd->title); - pref_label_bold(pd->title, TRUE, FALSE); } gtk_box_pack_start(GTK_BOX(bd->vbox), expander, FALSE, TRUE, 0); @@ -250,7 +215,6 @@ gtk_widget_show(expander); - if (bd->list_func) bar_pane_set_selection_func(pane, bd->list_func, bd->list_data); if (bd->fd && pd && pd->pane_set_fd) pd->pane_set_fd(pane, bd->fd); } @@ -306,17 +270,16 @@ g_free(bd); } -GtkWidget *bar_new(GtkWidget *bounding_widget) +GtkWidget *bar_new(LayoutWindow *lw) { BarData *bd; GtkWidget *box; - GtkWidget *sizer; - GtkWidget *button; - GtkWidget *arrow; GtkWidget *scrolled; bd = g_new0(BarData, 1); + bd->lw = lw; + bd->widget = gtk_vbox_new(FALSE, PREF_PAD_GAP); g_object_set_data(G_OBJECT(bd->widget), "bar_data", bd); g_signal_connect(G_OBJECT(bd->widget), "destroy", @@ -356,9 +319,9 @@ return bd->widget; } -GtkWidget *bar_new_default(GtkWidget *bounding_widget) +GtkWidget *bar_new_default(LayoutWindow *lw) { - GtkWidget *bar = bar_new(bounding_widget); + GtkWidget *bar = bar_new(lw); bar_populate_default(bar); @@ -367,9 +330,9 @@ return bar; } -GtkWidget *bar_new_from_config(GtkWidget *bounding_widget, const gchar **attribute_names, const gchar **attribute_values) +GtkWidget *bar_new_from_config(LayoutWindow *lw, const gchar **attribute_names, const gchar **attribute_values) { - GtkWidget *bar = bar_new(bounding_widget); + GtkWidget *bar = bar_new(lw); gboolean enabled = TRUE; gint width = SIDEBAR_DEFAULT_WIDTH; diff -r 4da6d326919c -r 6f31fa931d3f src/bar.h --- a/src/bar.h Fri Mar 06 15:04:35 2009 +0000 +++ b/src/bar.h Fri Mar 06 15:52:47 2009 +0000 @@ -17,22 +17,23 @@ typedef struct _PaneData PaneData; struct _PaneData { + /* filled in by pane */ void (*pane_set_fd)(GtkWidget *pane, FileData *fd); gint (*pane_event)(GtkWidget *pane, GdkEvent *event); void (*pane_write_config)(GtkWidget *pane, GString *outstr, gint indent); GtkWidget *title; gboolean expanded; - GList *(*list_func)(gpointer); - gpointer list_data; - + /* filled in by bar */ + GtkWidget *bar; + LayoutWindow *lw; }; -GtkWidget *bar_new(GtkWidget *bounding_widget); -GtkWidget *bar_new_default(GtkWidget *bounding_widget); -GtkWidget *bar_new_from_config(GtkWidget *bounding_widget, const gchar **attribute_names, const gchar **attribute_values); +GtkWidget *bar_new(LayoutWindow *lw); +GtkWidget *bar_new_default(LayoutWindow *lw); +GtkWidget *bar_new_from_config(LayoutWindow *lw, const gchar **attribute_names, const gchar **attribute_values); void bar_close(GtkWidget *bar); @@ -44,11 +45,7 @@ void bar_set_fd(GtkWidget *bar, FileData *fd); 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); - #endif /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ diff -r 4da6d326919c -r 6f31fa931d3f src/bar_comment.c --- a/src/bar_comment.c Fri Mar 06 15:04:35 2009 +0000 +++ b/src/bar_comment.c Fri Mar 06 15:52:47 2009 +0000 @@ -20,6 +20,7 @@ #include "ui_menu.h" #include "ui_misc.h" #include "rcfile.h" +#include "layout.h" static void bar_pane_comment_changed(GtkTextBuffer *buffer, gpointer data); @@ -79,11 +80,9 @@ GList *work; gchar *comment = NULL; - if (!pcd->pane.list_func) return; - comment = text_widget_text_pull(pcd->comment_view); - list = pcd->pane.list_func(pcd->pane.list_data); + list = layout_selection_list(pcd->pane.lw); work = list; while (work) { @@ -223,6 +222,8 @@ pcd->pane.pane_event = bar_pane_comment_event; pcd->pane.pane_write_config = bar_pane_comment_write_config; pcd->pane.title = gtk_label_new(title); + pref_label_bold(pcd->pane.title, TRUE, FALSE); + pcd->pane.expanded = expanded; pcd->key = g_strdup(key); diff -r 4da6d326919c -r 6f31fa931d3f src/bar_exif.c --- a/src/bar_exif.c Fri Mar 06 15:04:35 2009 +0000 +++ b/src/bar_exif.c Fri Mar 06 15:52:47 2009 +0000 @@ -623,6 +623,7 @@ ped->pane.pane_set_fd = bar_pane_exif_set_fd; ped->pane.pane_write_config = bar_pane_exif_write_config; ped->pane.title = gtk_label_new(title); + pref_label_bold(ped->pane.title, TRUE, FALSE); ped->pane.expanded = expanded; ped->size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); diff -r 4da6d326919c -r 6f31fa931d3f src/bar_histogram.c --- a/src/bar_histogram.c Fri Mar 06 15:04:35 2009 +0000 +++ b/src/bar_histogram.c Fri Mar 06 15:52:47 2009 +0000 @@ -334,6 +334,8 @@ phd->pane.pane_set_fd = bar_pane_histogram_set_fd; phd->pane.pane_write_config = bar_pane_histogram_write_config; phd->pane.title = gtk_label_new(title); + pref_label_bold(phd->pane.title, TRUE, FALSE); + phd->pane.expanded = expanded; phd->idle_id = -1; diff -r 4da6d326919c -r 6f31fa931d3f src/bar_keywords.c --- a/src/bar_keywords.c Fri Mar 06 15:04:35 2009 +0000 +++ b/src/bar_keywords.c Fri Mar 06 15:52:47 2009 +0000 @@ -26,6 +26,7 @@ #include "bar.h" #include "ui_menu.h" #include "rcfile.h" +#include "layout.h" static const gchar *keyword_favorite_defaults[] = { N_("Favorite"), @@ -561,11 +562,9 @@ GList *list = NULL; GList *work; - if (!pkd->pane.list_func) return; - keywords = keyword_list_pull(pkd->keyword_view); - list = pkd->pane.list_func(pkd->pane.list_data); + list = layout_selection_list(pkd->pane.lw); work = list; while (work) { @@ -729,6 +728,8 @@ pkd->pane.pane_event = bar_pane_keywords_event; pkd->pane.pane_write_config = bar_pane_keywords_write_config; pkd->pane.title = gtk_label_new(title); + pref_label_bold(pkd->pane.title, TRUE, FALSE); + pkd->pane.expanded = expanded; pkd->key = g_strdup(key); diff -r 4da6d326919c -r 6f31fa931d3f src/layout_util.c --- a/src/layout_util.c Fri Mar 06 15:04:35 2009 +0000 +++ b/src/layout_util.c Fri Mar 06 15:52:47 2009 +0000 @@ -1954,20 +1954,13 @@ */ } -static GList *layout_bar_list_cb(gpointer data) -{ - LayoutWindow *lw = data; - - return layout_selection_list(lw); -} - static void layout_bar_set_default(LayoutWindow *lw) { GtkWidget *bar; if (!lw->utility_box) return; - bar = bar_new_default(lw->utility_box); + bar = bar_new_default(lw); layout_bar_set(lw, bar); } @@ -1991,7 +1984,6 @@ if (!bar) return; lw->bar = bar; - bar_set_selection_func(lw->bar, layout_bar_list_cb, lw); g_signal_connect(G_OBJECT(lw->bar), "destroy", G_CALLBACK(layout_bar_destroyed), lw); diff -r 4da6d326919c -r 6f31fa931d3f src/rcfile.c --- a/src/rcfile.c Fri Mar 06 15:04:35 2009 +0000 +++ b/src/rcfile.c Fri Mar 06 15:52:47 2009 +0000 @@ -913,7 +913,7 @@ LayoutWindow *lw = data; if (g_ascii_strcasecmp(element_name, "bar") == 0) { - GtkWidget *bar = bar_new_from_config(lw->utility_box, attribute_names, attribute_values); + GtkWidget *bar = bar_new_from_config(lw, attribute_names, attribute_values); layout_bar_set(lw, bar); options_parse_func_push(parser_data, options_parse_bar, NULL, lw->bar); }