X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-selector.h;h=6fff5d4269da20286062e0f8c36def77374f1fa5;hb=b5c82cc9aabe7e641011130240ae1b2e84348e23;hp=7ba88a96af881c9bdc96328840a892e78d1cc7a4;hpb=a10cebe053263d7e936b6533a3dbf5ac2f0586a1;p=pspp-builds.git diff --git a/src/ui/gui/psppire-selector.h b/src/ui/gui/psppire-selector.h index 7ba88a96..6fff5d42 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 +/* PSPPIRE - a graphical user interface for PSPP. Copyright (C) 2007 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__ @@ -26,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -49,7 +46,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 @@ -74,16 +75,28 @@ struct _PsppireSelector /* */ GtkWidget *arrow; + GtkAction *action; enum psppire_selector_dir direction; GtkWidget *source; GtkWidget *dest; + /* A flag indicating that the object is in the process of + updating its subjects. + (not thread safe if two threads access the same object) + */ + gboolean selecting; + + gint orientation; GtkTreeModelFilter *filtered_source; SelectItemsFunc *select_items; + gpointer select_user_data; + FilterItemsFunc *filter; + + AllowSelectionFunc *allow_selection; }; struct _PsppireSelectorClass @@ -101,7 +114,27 @@ void psppire_selector_set_subjects (PsppireSelector *, GtkWidget *, GtkWidget *, SelectItemsFunc *, - FilterItemsFunc * ); + FilterItemsFunc *, + gpointer ); + +void psppire_selector_set_allow (PsppireSelector *, AllowSelectionFunc *); + + +GType psppire_selector_orientation_get_type (void) G_GNUC_CONST; + + +typedef enum { + PSPPIRE_SELECT_SOURCE_BEFORE_DEST, + PSPPIRE_SELECT_SOURCE_AFTER_DEST, + PSPPIRE_SELECT_SOURCE_ABOVE_DEST, + PSPPIRE_SELECT_SOURCE_BELOW_DEST +} PsppireSelectorOrientation; + +#define PSPPIRE_TYPE_SELECTOR_ORIENTATION \ + (psppire_selector_orientation_get_type()) + + + G_END_DECLS #endif /* __PSPPIRE_SELECTOR_H__ */