gui: Include only <gtk/gtk.h> to use GTK+.
[pspp-builds.git] / src / ui / gui / psppire-selector.h
index 6fff5d4269da20286062e0f8c36def77374f1fa5..028af187ea6b3cf2e21224b13c711f59c1cc798a 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
 
@@ -77,7 +73,10 @@ struct _PsppireSelector
   GtkWidget *arrow;
   GtkAction *action;
 
+  gboolean dispose_has_run;
+
   enum psppire_selector_dir direction;
+
   GtkWidget *source;
   GtkWidget *dest;
 
@@ -97,6 +96,12 @@ struct _PsppireSelector
   FilterItemsFunc *filter;
 
   AllowSelectionFunc *allow_selection;
+
+  gulong row_activate_id ;
+
+  gulong source_select_id ;
+
+  gboolean primary_requested;
 };
 
 struct _PsppireSelectorClass
@@ -106,18 +111,26 @@ 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);
 GtkWidget* psppire_selector_new             (void);
-void       psppire_selector_set_subjects    (PsppireSelector *,
-                                            GtkWidget *,
-                                            GtkWidget *,
-                                            SelectItemsFunc *,
-                                            FilterItemsFunc *,
-                                            gpointer );
 
-void      psppire_selector_set_allow        (PsppireSelector *, AllowSelectionFunc *);
+
+/* Set FILTER_FUNC for this selector */
+void psppire_selector_set_filter_func (PsppireSelector *selector,
+                                      FilterItemsFunc *filter_func);
+
+/* Set SELECT_FUNC for this selector */
+void psppire_selector_set_select_func (PsppireSelector *selector,
+                                      SelectItemsFunc *select_func,
+                                      gpointer user_data);
+
+
+void psppire_selector_set_allow (PsppireSelector *, AllowSelectionFunc *);
 
 
 GType psppire_selector_orientation_get_type (void) G_GNUC_CONST;
@@ -134,6 +147,8 @@ typedef enum {
   (psppire_selector_orientation_get_type())
 
 
+void psppire_selector_set_default_selection_func (GType type, SelectItemsFunc *);
+
 
 G_END_DECLS