From: Vladimir Nadvornik Date: Mon, 6 Apr 2009 19:53:59 +0000 (+0000) Subject: added pane_notify_selection to pane API X-Git-Tag: v1.0.0~283 X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commitdiff_plain;h=61856b1efe4b60ad03ffeaee4766e7c011fd12ce added pane_notify_selection to pane API --- diff --git a/src/bar.c b/src/bar.c index 130e3866..3e956d28 100644 --- a/src/bar.c +++ b/src/bar.c @@ -304,7 +304,7 @@ static gboolean bar_menu_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer } -void bar_pane_set_fd_cb(GtkWidget *expander, gpointer data) +static void bar_pane_set_fd_cb(GtkWidget *expander, gpointer data) { GtkWidget *widget = gtk_bin_get_child(GTK_BIN(expander)); PaneData *pd = g_object_get_data(G_OBJECT(widget), "pane_data"); @@ -327,6 +327,23 @@ void bar_set_fd(GtkWidget *bar, FileData *fd) } +static void bar_pane_notify_selection_cb(GtkWidget *expander, gpointer data) +{ + GtkWidget *widget = gtk_bin_get_child(GTK_BIN(expander)); + PaneData *pd = g_object_get_data(G_OBJECT(widget), "pane_data"); + if (!pd) return; + if (pd->pane_notify_selection) pd->pane_notify_selection(widget, GPOINTER_TO_INT(data)); +} + +void bar_notify_selection(GtkWidget *bar, gint count) +{ + BarData *bd; + bd = g_object_get_data(G_OBJECT(bar), "bar_data"); + if (!bd) return; + + gtk_container_foreach(GTK_CONTAINER(bd->vbox), bar_pane_notify_selection_cb, GINT_TO_POINTER(count)); +} + gboolean bar_event(GtkWidget *bar, GdkEvent *event) { BarData *bd; diff --git a/src/bar.h b/src/bar.h index 2ef1ad06..44996c9a 100644 --- a/src/bar.h +++ b/src/bar.h @@ -27,6 +27,7 @@ typedef struct _PaneData PaneData; struct _PaneData { /* filled in by pane */ void (*pane_set_fd)(GtkWidget *pane, FileData *fd); + void (*pane_notify_selection)(GtkWidget *pane, gint count); gint (*pane_event)(GtkWidget *pane, GdkEvent *event); void (*pane_write_config)(GtkWidget *pane, GString *outstr, gint indent); GtkWidget *title; @@ -58,6 +59,7 @@ GtkWidget *bar_find_pane_by_id(GtkWidget *bar, PaneType type, const gchar *id); void bar_clear(GtkWidget *bar); void bar_set_fd(GtkWidget *bar, FileData *fd); +void bar_notify_selection(GtkWidget *bar, gint count); gboolean bar_event(GtkWidget *bar, GdkEvent *event); gint bar_get_width(GtkWidget *bar); diff --git a/src/layout_util.c b/src/layout_util.c index e25c4ef5..9cf0fb33 100644 --- a/src/layout_util.c +++ b/src/layout_util.c @@ -2063,7 +2063,7 @@ static void layout_bar_new_selection(LayoutWindow *lw, gint count) { if (!layout_bar_enabled(lw)) return; -// bar_info_selection(lw->bar_info, count - 1); + bar_notify_selection(lw->bar, count); } static gboolean layout_bar_sort_enabled(LayoutWindow *lw)