/* * e-attachment-view.h * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) version 3. * * This program 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with the program; if not, see * * * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) * */ #ifndef E_ATTACHMENT_VIEW_H #define E_ATTACHMENT_VIEW_H #include #include /* Standard GObject macros */ #define E_TYPE_ATTACHMENT_VIEW \ (e_attachment_view_get_type ()) #define E_ATTACHMENT_VIEW(obj) \ (G_TYPE_CHECK_INSTANCE_CAST \ ((obj), E_TYPE_ATTACHMENT_VIEW, EAttachmentView)) #define E_ATTACHMENT_VIEW_IFACE(cls) \ (G_TYPE_CHECK_CLASS_CAST \ ((cls), E_TYPE_ATTACHMENT_VIEW, EAttachmentViewIface)) #define E_IS_ATTACHMENT_VIEW(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE \ ((obj), E_TYPE_ATTACHMENT_VIEW)) #define E_IS_ATTACHMENT_VIEW_IFACE(cls) \ (G_TYPE_CHECK_CLASS_TYPE \ ((cls), E_TYPE_ATTACHMENT_VIEW)) #define E_ATTACHMENT_VIEW_GET_IFACE(obj) \ (G_TYPE_INSTANCE_GET_INTERFACE \ ((obj), E_TYPE_ATTACHMENT_VIEW, EAttachmentViewIface)) G_BEGIN_DECLS typedef struct _EAttachmentView EAttachmentView; typedef struct _EAttachmentViewIface EAttachmentViewIface; typedef struct _EAttachmentViewPrivate EAttachmentViewPrivate; struct _EAttachmentViewIface { GTypeInterface parent_iface; /* General Methods */ EAttachmentViewPrivate * (*get_private) (EAttachmentView *view); EAttachmentStore * (*get_store) (EAttachmentView *view); /* Selection Methods */ GtkTreePath * (*get_path_at_pos) (EAttachmentView *view, gint x, gint y); GList * (*get_selected_paths) (EAttachmentView *view); gboolean (*path_is_selected) (EAttachmentView *view, GtkTreePath *path); void (*select_path) (EAttachmentView *view, GtkTreePath *path); void (*unselect_path) (EAttachmentView *view, GtkTreePath *path); void (*select_all) (EAttachmentView *view); void (*unselect_all) (EAttachmentView *view); }; struct _EAttachmentViewPrivate { /* Popup Menu Management */ GtkUIManager *ui_manager; GtkActionGroup *standard_actions; GtkActionGroup *editable_actions; GtkActionGroup *openwith_actions; guint merge_id; /* Drag and Drop State */ GdkDragContext *drag_context; GtkSelectionData *selection_data; guint info; guint time; guint editable : 1; }; GType e_attachment_view_get_type (void); void e_attachment_view_init (EAttachmentView *view); void e_attachment_view_dispose (EAttachmentView *view); void e_attachment_view_finalize (EAttachmentView *view); EAttachmentViewPrivate * e_attachment_view_get_private (EAttachmentView *view); EAttachmentStore * e_attachment_view_get_store (EAttachmentView *view); gboolean e_attachment_view_get_editable (EAttachmentView *view); void e_attachment_view_set_editable (EAttachmentView *view, gboolean editable); GList * e_attachment_view_get_selected_attachments (EAttachmentView *view); void e_attachment_view_remove_selected (EAttachmentView *view, gboolean select_next); /* Selection Management */ GtkTreePath * e_attachment_view_get_path_at_pos (EAttachmentView *view, gint x, gint y); GList * e_attachment_view_get_selected_paths (EAttachmentView *view); gboolean e_attachment_view_path_is_selected (EAttachmentView *view, GtkTreePath *path); void e_attachment_view_select_path (EAttachmentView *view, GtkTreePath *path); void e_attachment_view_unselect_path (EAttachmentView *view, GtkTreePath *path); void e_attachment_view_select_all (EAttachmentView *view); void e_attachment_view_unselect_all (EAttachmentView *view); void e_attachment_view_sync_selection(EAttachmentView *view, EAttachmentView *target); /* Drag and Drop Support */ void e_attachment_view_drag_action (EAttachmentView *view, GdkDragAction action); gboolean e_attachment_view_drag_motion (EAttachmentView *view, GdkDragContext *context, gint x, gint y, guint time); void e_attachment_view_drag_data_received (EAttachmentView *view, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection, guint info, guint time); /* Popup Menu Management */ GtkAction * e_attachment_view_get_action (EAttachmentView *view, const gchar *action_name); GtkActionGroup *e_attachment_view_get_action_group (EAttachmentView *view, const gchar *group_name); GtkUIManager * e_attachment_view_get_ui_manager(EAttachmentView *view); GtkAction * e_attachment_view_recent_action_new (EAttachmentView *view, const gchar *action_name, const gchar *action_label); void e_attachment_view_show_popup_menu (EAttachmentView *view, GdkEventButton *event); void e_attachment_view_update_actions(EAttachmentView *view); G_END_DECLS #endif /* E_ATTACHMENT_VIEW_H */