aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-iterator.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-iterator.h
parenta1d1e450a1ec2f8c2fd921b18e695031cf061887 (diff)
downloadgsoc2013-evolution-40e24cdab6d294af61ca54a96b0b901181dc7751.tar
gsoc2013-evolution-40e24cdab6d294af61ca54a96b0b901181dc7751.tar.gz
gsoc2013-evolution-40e24cdab6d294af61ca54a96b0b901181dc7751.tar.bz2
gsoc2013-evolution-40e24cdab6d294af61ca54a96b0b901181dc7751.tar.lz
gsoc2013-evolution-40e24cdab6d294af61ca54a96b0b901181dc7751.tar.xz
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-iterator.h')
-rw-r--r--e-util/e-iterator.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/e-util/e-iterator.h b/e-util/e-iterator.h
new file mode 100644
index 0000000000..eb983e9da9
--- /dev/null
+++ b/e-util/e-iterator.h
@@ -0,0 +1,61 @@
+/* -*- 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_ITERATOR_H__
+#define __E_ITERATOR_H__
+
+#include <time.h>
+#include <gtk/gtk.h>
+#include <stdio.h>
+
+#define E_TYPE_ITERATOR (e_iterator_get_type ())
+#define E_ITERATOR(obj) (GTK_CHECK_CAST ((obj), E_TYPE_ITERATOR, EIterator))
+#define E_ITERATOR_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_ITERATOR, EIteratorClass))
+#define E_IS_ITERATOR(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_ITERATOR))
+#define E_IS_ITERATOR_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), E_TYPE_ITERATOR))
+
+typedef struct _EIterator EIterator;
+typedef struct _EIteratorClass EIteratorClass;
+
+struct _EIterator {
+ GtkObject object;
+};
+
+struct _EIteratorClass {
+ GtkObjectClass parent_class;
+
+ /* Signals */
+ void (*invalidate) (EIterator *iterator);
+
+ /* Virtual functions */
+ const void * (*get) (EIterator *iterator);
+ void (*reset) (EIterator *iterator);
+ gboolean (*next) (EIterator *iterator);
+ gboolean (*prev) (EIterator *iterator);
+ void (*delete) (EIterator *iterator);
+ void (*set) (EIterator *iterator,
+ const void *object);
+ gboolean (*is_valid) (EIterator *iterator);
+};
+
+const void *e_iterator_get (EIterator *iterator);
+void e_iterator_reset (EIterator *iterator);
+gboolean e_iterator_next (EIterator *iterator);
+gboolean e_iterator_prev (EIterator *iterator);
+void e_iterator_delete (EIterator *iterator);
+void e_iterator_set (EIterator *iterator,
+ const void *object);
+gboolean e_iterator_is_valid (EIterator *iterator);
+
+void e_iterator_invalidate (EIterator *iterator);
+
+/* Standard Gtk function */
+GtkType e_iterator_get_type (void);
+
+#endif /* ! __E_ITERATOR_H__ */