diff options
author | Iain Holmes <iain@src.gnome.org> | 2000-10-01 11:43:17 +0800 |
---|---|---|
committer | Iain Holmes <iain@src.gnome.org> | 2000-10-01 11:43:17 +0800 |
commit | 9d6c76ce37be81f83d3df0cf2bfc8d81adfa18e8 (patch) | |
tree | 06d938871ce13b0fbc66a5396c89d9aa46490b6d /composer/e-icon-list.h | |
parent | 711bef6798d08dcb34bc83730f11575ffa411d07 (diff) | |
download | gsoc2013-evolution-9d6c76ce37be81f83d3df0cf2bfc8d81adfa18e8.tar.gz gsoc2013-evolution-9d6c76ce37be81f83d3df0cf2bfc8d81adfa18e8.tar.zst gsoc2013-evolution-9d6c76ce37be81f83d3df0cf2bfc8d81adfa18e8.zip |
The big eye-candy commit.
Make thumbnails out of image attachments.
svn path=/trunk/; revision=5648
Diffstat (limited to 'composer/e-icon-list.h')
-rw-r--r-- | composer/e-icon-list.h | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/composer/e-icon-list.h b/composer/e-icon-list.h new file mode 100644 index 0000000000..43f2fa105d --- /dev/null +++ b/composer/e-icon-list.h @@ -0,0 +1,178 @@ +/* + * Copyright (C) 1998, 1999 Free Software Foundation + * Copyright (C) 2000 Red Hat, Inc. + * All rights reserved. + * + * This file is part of the Gnome Library. + * + * The Gnome Library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * The Gnome Library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the Gnome Library; see the file COPYING.LIB. If not, + * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +/* + @NOTATION@ + */ + +/* GnomeIconList widget - scrollable icon list + * + * + * Authors: + * Federico Mena <federico@nuclecu.unam.mx> + * Miguel de Icaza <miguel@nuclecu.unam.mx> + */ + +#ifndef _E_ICON_LIST_H_ +#define _E_ICON_LIST_H_ + +#include <libgnome/gnome-defs.h> +#include <libgnomeui/gnome-canvas.h> +#include <gdk-pixbuf/gdk-pixbuf.h> + +BEGIN_GNOME_DECLS + +#define E_TYPE_ICON_LIST (e_icon_list_get_type ()) +#define E_ICON_LIST(obj) (GTK_CHECK_CAST ((obj), E_TYPE_ICON_LIST, EIconList)) +#define E_ICON_LIST_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_ICON_LIST, EIconListClass)) +#define E_IS_ICON_LIST(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_ICON_LIST)) +#define E_IS_ICON_LIST_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), E_TYPE_ICON_LIST)) +#define E_ICON_LIST_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), E_TYPE_ICON_LIST, EIconListClass)) + +typedef struct _EIconList EIconList; +typedef struct _EIconListPrivate EIconListPrivate; +typedef struct _EIconListClass EIconListClass; + +typedef enum { + E_ICON_LIST_ICONS, + E_ICON_LIST_TEXT_BELOW, + E_ICON_LIST_TEXT_RIGHT +} EIconListMode; + +/* This structure has been converted to use public and private parts. To avoid + * breaking binary compatibility, the slots for private fields have been + * replaced with padding. Please remove these fields when gnome-libs has + * reached another major version and it is "fine" to break binary compatibility. + */ +struct _EIconList { + GnomeCanvas canvas; + + /*< private >*/ + EIconListPrivate * _priv; +}; + +struct _EIconListClass { + GnomeCanvasClass parent_class; + + void (*select_icon) (EIconList *gil, gint num, GdkEvent *event); + void (*unselect_icon) (EIconList *gil, gint num, GdkEvent *event); + gboolean (*text_changed) (EIconList *gil, gint num, const char *new_text); +}; + +enum { + E_ICON_LIST_IS_EDITABLE = 1 << 0, + E_ICON_LIST_STATIC_TEXT = 1 << 1 +}; + +guint e_icon_list_get_type (void) G_GNUC_CONST; + +GtkWidget *e_icon_list_new (guint icon_width, + int flags); +void e_icon_list_construct (EIconList *gil, + guint icon_width, + int flags); + + +/* To avoid excesive recomputes during insertion/deletion */ +void e_icon_list_freeze (EIconList *gil); +void e_icon_list_thaw (EIconList *gil); + + +void e_icon_list_insert (EIconList *gil, + int idx, + const char *icon_filename, + const char *text); +void e_icon_list_insert_pixbuf (EIconList *gil, + int idx, + GdkPixbuf *im, + const char *icon_filename, + const char *text); + +int e_icon_list_append (EIconList *gil, + const char *icon_filename, + const char *text); +int e_icon_list_append_pixbuf (EIconList *gil, + GdkPixbuf *im, + const char *icon_filename, + const char *text); + +void e_icon_list_clear (EIconList *gil); +void e_icon_list_remove (EIconList *gil, + int idx); + +guint e_icon_list_get_num_icons (EIconList *gil); + + +/* Managing the selection */ +void e_icon_list_set_selection_mode (EIconList *gil, + GtkSelectionMode mode); +void e_icon_list_select_icon (EIconList *gil, + int idx); +void e_icon_list_unselect_icon (EIconList *gil, + int idx); +int e_icon_list_unselect_all (EIconList *gil); +GList * e_icon_list_get_selection (EIconList *gil); + +/* Setting the spacing values */ +void e_icon_list_set_icon_width (EIconList *gil, + int w); +void e_icon_list_set_row_spacing (EIconList *gil, + int pixels); +void e_icon_list_set_col_spacing (EIconList *gil, + int pixels); +void e_icon_list_set_text_spacing (EIconList *gil, + int pixels); +void e_icon_list_set_icon_border (EIconList *gil, + int pixels); +void e_icon_list_set_separators (EIconList *gil, + const char *sep); +/* Icon filename. */ +gchar * e_icon_list_get_icon_filename (EIconList *gil, + int idx); +int e_icon_list_find_icon_from_filename (EIconList *gil, + const char *filename); + +/* Attaching information to the icons */ +void e_icon_list_set_icon_data (EIconList *gil, + int idx, gpointer data); +void e_icon_list_set_icon_data_full (EIconList *gil, + int idx, gpointer data, + GtkDestroyNotify destroy); +int e_icon_list_find_icon_from_data (EIconList *gil, + gpointer data); +gpointer e_icon_list_get_icon_data (EIconList *gil, + int idx); + +/* Visibility */ +void e_icon_list_moveto (EIconList *gil, + int idx, double yalign); +GtkVisibility e_icon_list_icon_is_visible (EIconList *gil, + int idx); + +int e_icon_list_get_icon_at (EIconList *gil, + int x, int y); + +int e_icon_list_get_items_per_line (EIconList *gil); + +END_GNOME_DECLS + +#endif /* _GNOME_ICON_LIST_H_ */ |