added pane_notify_selection to pane API
authorVladimir Nadvornik <nadvornik@suse.cz>
Mon, 6 Apr 2009 19:53:59 +0000 (19:53 +0000)
committerVladimir Nadvornik <nadvornik@suse.cz>
Mon, 6 Apr 2009 19:53:59 +0000 (19:53 +0000)
src/bar.c
src/bar.h
src/layout_util.c

index 130e386..3e956d2 100644 (file)
--- 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;
index 2ef1ad0..44996c9 100644 (file)
--- 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);
index e25c4ef..9cf0fb3 100644 (file)
@@ -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)