aboutsummaryrefslogtreecommitdiffstats
path: root/composer/e-icon-list.h
diff options
context:
space:
mode:
authorIain Holmes <iain@src.gnome.org>2000-10-01 11:43:17 +0800
committerIain Holmes <iain@src.gnome.org>2000-10-01 11:43:17 +0800
commit9d6c76ce37be81f83d3df0cf2bfc8d81adfa18e8 (patch)
tree06d938871ce13b0fbc66a5396c89d9aa46490b6d /composer/e-icon-list.h
parent711bef6798d08dcb34bc83730f11575ffa411d07 (diff)
downloadgsoc2013-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.h178
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_ */