Update selector widgets on dialog activation.
[pspp] / src / ui / gui / psppire-selector.h
index c2d18424738c93aa01a47ab8be111fc824b90bb3..c4990c9229eec3e156be160fad6d01de9a1c693d 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPPIRE - a graphical user interface for PSPP.
-   Copyright (C) 2007  Free Software Foundation
+   Copyright (C) 2007, 2010  Free Software Foundation
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
 #include <glib.h>
 #include <glib-object.h>
-#include <gtk/gtkbutton.h>
-#include <gtk/gtkaction.h>
-#include <gtk/gtkarrow.h>
-#include <gtk/gtktreemodel.h>
-#include <gtk/gtktreemodelfilter.h>
+#include <gtk/gtk.h>
 
 G_BEGIN_DECLS
 
@@ -75,7 +71,6 @@ struct _PsppireSelector
 
   /* <private> */
   GtkWidget *arrow;
-  GtkAction *action;
 
   gboolean dispose_has_run;
 
@@ -92,8 +87,6 @@ struct _PsppireSelector
 
   gint orientation;
 
-  GtkTreeModelFilter *filtered_source;
-
   SelectItemsFunc *select_items;
   gpointer select_user_data;
 
@@ -102,10 +95,10 @@ struct _PsppireSelector
   AllowSelectionFunc *allow_selection;
 
   gulong row_activate_id ;
-
   gulong source_select_id ;
 
   gboolean primary_requested;
+  GList *source_litem;
 };
 
 struct _PsppireSelectorClass
@@ -115,6 +108,9 @@ struct _PsppireSelectorClass
   /* This is a hash of Lists of FilterItemsFunc pointers, keyed by address of
      the source widget */
   GHashTable *source_hash;
+
+  /* A hash of SelectItemFuncs indexed by GType */
+  GHashTable *default_selection_funcs;
 };
 
 GType      psppire_selector_get_type        (void);
@@ -130,6 +126,9 @@ void psppire_selector_set_select_func (PsppireSelector *selector,
                                       SelectItemsFunc *select_func,
                                       gpointer user_data);
 
+/* Force the selector to update its dest and source widgets */
+void psppire_selector_update_subjects (PsppireSelector *selector);
+
 
 void psppire_selector_set_allow (PsppireSelector *, AllowSelectionFunc *);
 
@@ -148,6 +147,8 @@ typedef enum {
   (psppire_selector_orientation_get_type())
 
 
+void psppire_selector_set_default_selection_func (GType type, SelectItemsFunc *);
+
 
 G_END_DECLS