X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-selector.c;h=d6ea3375257186d0566aa8a7706da717030db17c;hb=767a4e133dc7fc0f6e6b9cd8d115a4f5284f1a1b;hp=9acc2829b22fd575fac9c1579dd08c1b47af02dd;hpb=833944dfd2ecf9dc78f7e9575f4900260df70164;p=pspp-builds.git diff --git a/src/ui/gui/psppire-selector.c b/src/ui/gui/psppire-selector.c index 9acc2829..d6ea3375 100644 --- a/src/ui/gui/psppire-selector.c +++ b/src/ui/gui/psppire-selector.c @@ -179,7 +179,7 @@ psppire_selector_class_init (PsppireSelectorClass *class) g_param_spec_enum ("orientation", "Orientation", "Where the selector is relative to its subjects", - G_TYPE_PSPPIRE_SELECTOR_ORIENTATION, + PSPPIRE_TYPE_SELECTOR_ORIENTATION, PSPPIRE_SELECT_SOURCE_BEFORE_DEST /* default value */, G_PARAM_CONSTRUCT_ONLY |G_PARAM_READWRITE); @@ -465,7 +465,9 @@ select_selection (PsppireSelector *selector) selector->select_items (child_iter, selector->dest, - childmodel); + childmodel, + selector->select_user_data + ); } g_list_foreach (selected_rows, (GFunc) gtk_tree_path_free, NULL); @@ -549,10 +551,21 @@ is_item_in_dest (GtkTreeModel *model, GtkTreeIter *iter, do { + int x; GValue value = {0}; + GValue int_value = {0}; gtk_tree_model_get_value (dest_model, &dest_iter, 0, &value); - if ( g_value_get_int (&value) == index) + g_value_init (&int_value, G_TYPE_INT); + + g_value_transform (&value, &int_value); + + x = g_value_get_int (&int_value); + + g_value_unset (&int_value); + g_value_unset (&value); + + if ( x == index ) return TRUE; } while (gtk_tree_model_iter_next (dest_model, &dest_iter)); @@ -772,7 +785,8 @@ psppire_selector_set_subjects (PsppireSelector *selector, GtkWidget *source, GtkWidget *dest, SelectItemsFunc *select_func, - FilterItemsFunc *filter_func ) + FilterItemsFunc *filter_func, + gpointer user_data) { g_assert(selector); @@ -780,6 +794,7 @@ psppire_selector_set_subjects (PsppireSelector *selector, selector->source = source; selector->dest = dest; + selector->select_user_data = user_data; if ( filter_func == NULL) { @@ -794,7 +809,9 @@ psppire_selector_set_subjects (PsppireSelector *selector, g_assert ( GTK_IS_TREE_MODEL_FILTER (selector->filtered_source)); - if ( GTK_IS_TREE_VIEW (dest)) + if ( NULL == dest) + ; + else if ( GTK_IS_TREE_VIEW (dest)) set_tree_view_dest (selector, GTK_TREE_VIEW (dest)); else if ( GTK_IS_ENTRY (dest))