aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-list.h
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@helixcode.com>2000-07-04 06:25:47 +0800
committerChris Lahey <clahey@src.gnome.org>2000-07-04 06:25:47 +0800
commit40e24cdab6d294af61ca54a96b0b901181dc7751 (patch)
tree47443df546a952e8a74fb40a514dc6889c290f49 /e-util/e-list.h
parenta1d1e450a1ec2f8c2fd921b18e695031cf061887 (diff)
downloadgsoc2013-evolution-40e24cdab6d294af61ca54a96b0b901181dc7751.tar.gz
gsoc2013-evolution-40e24cdab6d294af61ca54a96b0b901181dc7751.tar.zst
gsoc2013-evolution-40e24cdab6d294af61ca54a96b0b901181dc7751.zip
New list class with iterators.
2000-07-03 Christopher James Lahey <clahey@helixcode.com> * e-iterator.c, e-iterator.h, e-list-iterator.c, e-list-iterator.h, e-list.c, e-list.h: New list class with iterators. * e-canvas.c: Made it so that you don't get the same selection in the selection list more than once. svn path=/trunk/; revision=3871
Diffstat (limited to 'e-util/e-list.h')
-rw-r--r--e-util/e-list.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/e-util/e-list.h b/e-util/e-list.h
new file mode 100644
index 0000000000..545798fbf9
--- /dev/null
+++ b/e-util/e-list.h
@@ -0,0 +1,60 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Authors:
+ * Chris Lahey <clahey@helixcode.com>
+ *
+ * Copyright (C) 2000 Helix Code, Inc.
+ * Copyright (C) 1999 The Free Software Foundation
+ */
+
+#ifndef __E_LIST_H__
+#define __E_LIST_H__
+
+typedef struct _EList EList;
+typedef struct _EListClass EListClass;
+
+#include <time.h>
+#include <gtk/gtk.h>
+#include <stdio.h>
+#include <e-util/e-list-iterator.h>
+
+#define E_TYPE_LIST (e_list_get_type ())
+#define E_LIST(obj) (GTK_CHECK_CAST ((obj), E_TYPE_LIST, EList))
+#define E_LIST_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_LIST, EListClass))
+#define E_IS_LIST(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_LIST))
+#define E_IS_LIST_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), E_TYPE_LIST))
+
+typedef void *(*EListCopyFunc) (const void *data, void *closure);
+typedef void (*EListFreeFunc) (void *data, void *closure);
+
+struct _EList {
+ GtkObject object;
+ GList *list;
+ GList *iterators;
+ EListCopyFunc copy;
+ EListFreeFunc free;
+ void *closure;
+};
+
+struct _EListClass {
+ GtkObjectClass parent_class;
+};
+
+EList *e_list_new (EListCopyFunc copy,
+ EListFreeFunc free,
+ void *closure);
+EIterator *e_list_get_iterator (EList *list);
+void e_list_append (EList *list,
+ const void *data);
+int e_list_length (EList *list);
+
+/* For iterators to call. */
+void e_list_invalidate_iterators (EList *list,
+ EIterator *skip);
+void e_list_remove_iterator (EList *list,
+ EIterator *iterator);
+
+/* Standard Gtk function */
+GtkType e_list_get_type (void);
+
+#endif /* ! __E_LIST_H__ */