X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-selector.h;h=33f96c21aadba3730dc07e4376abf466f60842ce;hb=1c492427c0c4e03065f4a327549a6d31b9e693a8;hp=cb3f10f824e41b031a7331467bf7466a4d10def3;hpb=1d5a97ba2afec23855a8294ff2814ab052f6777a;p=pspp diff --git a/src/ui/gui/psppire-selector.h b/src/ui/gui/psppire-selector.h index cb3f10f824..33f96c21aa 100644 --- a/src/ui/gui/psppire-selector.h +++ b/src/ui/gui/psppire-selector.h @@ -1,10 +1,9 @@ -/* - PSPPIRE --- A Graphical User Interface for PSPP - Copyright (C) 2007 Free Software Foundation +/* PSPPIRE - a graphical user interface for PSPP. + Copyright (C) 2007, 2010 Free Software Foundation - This program is free software; you can redistribute it and/or modify + 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 - the Free Software Foundation; either version 2 of the License, or + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -13,10 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. -*/ + along with this program. If not, see . */ #ifndef __PSPPIRE_SELECTOR_H__ @@ -25,10 +21,7 @@ #include #include -#include -#include -#include -#include +#include G_BEGIN_DECLS @@ -49,7 +42,11 @@ typedef struct _PsppireSelectorClass PsppireSelectorClass; /* 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 @@ -75,7 +72,10 @@ struct _PsppireSelector /* */ GtkWidget *arrow; + gboolean dispose_has_run; + enum psppire_selector_dir direction; + GtkWidget *source; GtkWidget *dest; @@ -87,10 +87,18 @@ struct _PsppireSelector gint orientation; - 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; + GList *source_litem; }; struct _PsppireSelectorClass @@ -100,15 +108,27 @@ 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; @@ -120,10 +140,12 @@ typedef enum { 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