#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>
/* Function for appending selected items to the destination widget */
typedef void SelectItemsFunc (GtkTreeIter iter,
GtkWidget *dest,
- GtkTreeModel *source_model);
+ GtkTreeModel *source_model,
+ gpointer data);
+
+/* Function to determine if items may be selected */
+typedef gboolean AllowSelectionFunc (GtkWidget *src, GtkWidget *dest);
/* Function to determine whether an item in MODEL, pointed to by ITER
/* <private> */
GtkWidget *arrow;
+ GtkAction *action;
+
+ gboolean dispose_has_run;
enum psppire_selector_dir direction;
+
GtkWidget *source;
GtkWidget *dest;
GtkTreeModelFilter *filtered_source;
SelectItemsFunc *select_items;
+ gpointer select_user_data;
+
FilterItemsFunc *filter;
+
+ AllowSelectionFunc *allow_selection;
+
+ gulong row_activate_id ;
+
+ gulong source_select_id ;
+
+ gboolean primary_requested;
};
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 * );
+
+
+/* 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;
PSPPIRE_SELECT_SOURCE_BELOW_DEST
} PsppireSelectorOrientation;
-#define G_TYPE_PSPPIRE_SELECTOR_ORIENTATION \
+#define PSPPIRE_TYPE_SELECTOR_ORIENTATION \
(psppire_selector_orientation_get_type())
+void psppire_selector_set_default_selection_func (GType type, SelectItemsFunc *);
+
G_END_DECLS