Added custom psppire-selector widget.
[pspp] / src / ui / gui / psppire-dict.h
index 96753ab5dcd7bc0d6a91237bcfb84e1751066471..f070bfeb25af4c85c6dd1564041a9939bf535eb0 100644 (file)
@@ -1,7 +1,6 @@
-/* 
+/*
     PSPPIRE --- A Graphical User Interface for PSPP
     Copyright (C) 2004  Free Software Foundation
-    Written by John Darrington
 
     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
@@ -37,8 +36,8 @@ G_BEGIN_DECLS
 #define G_TYPE_PSPPIRE_DICT              (psppire_dict_get_type ())
 #define PSPPIRE_DICT(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_PSPPIRE_DICT, PsppireDict))
 #define PSPPIRE_DICT_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), G_TYPE_PSPPIRE_DICT, PsppireDictClass))
-#define G_IS_PSPPIRE_DICT(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_PSPPIRE_DICT))
-#define G_IS_PSPPIRE_DICT_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), G_TYPE_PSPPIRE_DICT))
+#define PSPPIRE_IS_DICT(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_PSPPIRE_DICT))
+#define PSPPIRE_IS_DICT_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), G_TYPE_PSPPIRE_DICT))
 #define PSPPIRE_DICT_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), G_TYPE_PSPPIRE_DICT, PsppireDictClass))
 
 
@@ -47,15 +46,15 @@ G_BEGIN_DECLS
 typedef struct _PsppireDict       PsppireDict;
 typedef struct _PsppireDictClass PsppireDictClass;
 
+enum {DICT_TVM_COL_NAME=0, DICT_TVM_COL_VAR, n_DICT_COLS} ;
+
 struct _PsppireDict
 {
   GObject             parent;
   struct dictionary *dict;
 
-  /* Cache of variables */
-  struct PsppireVariable **variables;
-
-  gint cache_size;
+  /* For GtkTreeModelIface */
+  gint stamp;
 };
 
 struct _PsppireDictClass
@@ -67,39 +66,46 @@ struct _PsppireDictClass
 
 /* -- PsppireDict --- */
 GType          psppire_dict_get_type (void);
-PsppireDict*     psppire_dict_new (void);
 PsppireDict*     psppire_dict_new_from_dict (struct dictionary *d);
 void           psppire_dict_set_name (PsppireDict* s, gint idx, const gchar *name);
 void           psppire_dict_delete_var (PsppireDict *s, gint idx);
 
 /* Return the number of variables in the dictionary */
-gint psppire_dict_get_var_cnt(const PsppireDict *d);
+gint psppire_dict_get_var_cnt (const PsppireDict *d);
 
 /* Return a variable by name.
    Return NULL if it doesn't exist
 */
 struct variable * psppire_dict_lookup_var (const PsppireDict *d, const gchar *name);
 
-/* Tell the dictionary that one of its variable has changed */
-void psppire_dict_var_changed(PsppireDict *d, gint idx);
-
-
 /* Clears the contents of D */
-void psppire_dict_clear(PsppireDict *d);
+void psppire_dict_clear (PsppireDict *d);
 
 /* Return the IDXth variable */
-
-struct PsppireVariable * psppire_dict_get_variable(PsppireDict *d, gint idx);
+struct variable * psppire_dict_get_variable (const PsppireDict *d, gint idx);
 
 /* Delete N variables beginning at FIRST */
-void psppire_dict_delete_variables(PsppireDict *d, gint first, gint n);
+void psppire_dict_delete_variables (PsppireDict *d, gint first, gint n);
 
 /* Insert a new variable at posn IDX */
-void psppire_dict_insert_variable(PsppireDict *d, gint idx, const gchar *name);
+void psppire_dict_insert_variable (PsppireDict *d, gint idx, const gchar *name);
 
-gboolean psppire_dict_check_name(const PsppireDict *dict, 
+void psppire_dict_resize_variable (PsppireDict *,
+                                 const struct variable *,
+                                 gint, gint );
+
+gboolean psppire_dict_check_name (const PsppireDict *dict,
                              const gchar *name, gboolean report);
 
+gint psppire_dict_get_next_value_idx (const PsppireDict *dict);
+
+void psppire_dict_rename_var (PsppireDict *dict, struct variable *v,
+                             const gchar *text);
+
+void psppire_dict_replace_dictionary (PsppireDict *, struct dictionary *);
+
+struct variable * psppire_dict_get_weight_variable (const PsppireDict *);
+
 
 G_END_DECLS