Added callback for when the weights on a dictionary change.
[pspp-builds.git] / src / data / dictionary.h
index e0425b8552129b0f48bd3b7b6ef0f686bf88b703..3b1ea56eef5392f90779591c8b551ce0f1ac9e3f 100644 (file)
@@ -1,6 +1,5 @@
 /* PSPP - computes sample statistics.
    Copyright (C) 2004 Free Software Foundation, Inc.
-   Written by Ben Pfaff <blp@gnu.org>.
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
 #include <stdbool.h>
 #include <stddef.h>
 
-/* Dictionary. */ 
+/* Dictionary. */
 
 struct variable;
+struct dictionary;
+
+struct dict_callbacks
+ {
+  void (*var_added) (struct dictionary *, int, void *);
+  void (*var_deleted) (struct dictionary *, int, void *);
+  void (*var_changed) (struct dictionary *, int, void *);
+  void (*weight_changed) (struct dictionary *, int, void *);
+ };
+
+
 struct dictionary *dict_create (void);
 struct dictionary *dict_clone (const struct dictionary *);
+void dict_set_callbacks (struct dictionary *, const struct dict_callbacks *,
+                        void *);
+void dict_copy_callbacks (struct dictionary *, const struct dictionary *);
+
+
 void dict_clear (struct dictionary *);
 void dict_clear_aux (struct dictionary *);
 void dict_destroy (struct dictionary *);
@@ -55,6 +70,8 @@ bool dict_contains_var (const struct dictionary *, const struct variable *);
 void dict_delete_var (struct dictionary *, struct variable *);
 void dict_delete_vars (struct dictionary *,
                        struct variable *const *, size_t count);
+void dict_delete_consecutive_vars (struct dictionary *d,
+                                   size_t idx, size_t count);
 void dict_delete_scratch_vars (struct dictionary *);
 void dict_reorder_var (struct dictionary *d, struct variable *v,
                        size_t new_index);
@@ -114,4 +131,8 @@ void dict_clear_vectors (struct dictionary *);
 
 void dict_assign_short_names (struct dictionary *);
 
+/* Called only from variable.c */
+void dict_var_changed (const struct variable *v);
+
+
 #endif /* dictionary.h */