diff options
author | Christopher James Lahey <clahey@helixcode.com> | 2000-07-04 06:25:47 +0800 |
---|---|---|
committer | Chris Lahey <clahey@src.gnome.org> | 2000-07-04 06:25:47 +0800 |
commit | 40e24cdab6d294af61ca54a96b0b901181dc7751 (patch) | |
tree | 47443df546a952e8a74fb40a514dc6889c290f49 /e-util/e-list.h | |
parent | a1d1e450a1ec2f8c2fd921b18e695031cf061887 (diff) | |
download | gsoc2013-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.h | 60 |
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__ */ |