From f963cc39a7d21f64f578dae50fd08c44181a3bf6 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Mon, 9 Mar 2009 03:31:24 +0000 Subject: Cleaning up the attachment bar, centralizing its popup menu, and converting everything to GtkUIManager/GtkActions. Saving progress mid-stream... not sure about the MIME part utilities yet. Also, add some EActivity subclasses. Considering an EFileActivity subclass for asynchronous GIO operations (loading/saving attachments, etc.), but still ironing out details. svn path=/branches/kill-bonobo/; revision=37389 --- widgets/misc/e-attachment-bar.h | 135 +++++++++++++++++++++++++--------------- 1 file changed, 86 insertions(+), 49 deletions(-) (limited to 'widgets/misc/e-attachment-bar.h') diff --git a/widgets/misc/e-attachment-bar.h b/widgets/misc/e-attachment-bar.h index 363b7f0fb8..a55dcb11f6 100644 --- a/widgets/misc/e-attachment-bar.h +++ b/widgets/misc/e-attachment-bar.h @@ -21,8 +21,8 @@ * */ -#ifndef __E_ATTACHMENT_BAR_H__ -#define __E_ATTACHMENT_BAR_H__ +#ifndef E_ATTACHMENT_BAR_H +#define E_ATTACHMENT_BAR_H #include #include @@ -30,70 +30,107 @@ #include #include "e-attachment.h" -#ifdef __cplusplus -extern "C" { -#pragma } -#endif /* __cplusplus */ - #define E_TYPE_ATTACHMENT_BAR \ (e_attachment_bar_get_type ()) #define E_ATTACHMENT_BAR(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), E_TYPE_ATTACHMENT_BAR, EAttachmentBar)) -#define E_ATTACHMENT_BAR_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), E_TYPE_ATTACHMENT_BAR, EAttachmentBarClass)) + (G_TYPE_CHECK_INSTANCE_CAST \ + ((obj), E_TYPE_ATTACHMENT_BAR, EAttachmentBar)) +#define E_ATTACHMENT_BAR_CLASS(cls) \ + (G_TYPE_CHECK_CLASS_CAST \ + ((cls), E_TYPE_ATTACHMENT_BAR, EAttachmentBarClass)) #define E_IS_ATTACHMENT_BAR(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), E_TYPE_ATTACHMENT_BAR)) -#define E_IS_ATTACHMENT_BAR_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((obj), E_TYPE_ATTACHMENT_BAR)) + (G_TYPE_CHECK_INSTANCE_TYPE \ + ((obj), E_TYPE_ATTACHMENT_BAR)) +#define E_IS_ATTACHMENT_BAR_CLASS(cls) \ + (G_TYPE_CHECK_CLASS_TYPE \ + ((cls), E_TYPE_ATTACHMENT_BAR)) +#define E_ATTACHMENT_BAR_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS \ + ((obj), E_TYPE_ATTACHMENT_BAR, EAttachmentBarClass)) + +G_BEGIN_DECLS typedef struct _EAttachmentBar EAttachmentBar; typedef struct _EAttachmentBarClass EAttachmentBarClass; +typedef struct _EAttachmentBarPrivate EAttachmentBarPrivate; struct _EAttachmentBar { GnomeIconList parent; gboolean expand; - - struct _EAttachmentBarPrivate *priv; + EAttachmentBarPrivate *priv; }; struct _EAttachmentBarClass { GnomeIconListClass parent_class; - void (* changed) (EAttachmentBar *bar); + /* Signals */ + void (*changed) (EAttachmentBar *bar); + void (*update_actions) (EAttachmentBar *bar); }; +GType e_attachment_bar_get_type (void); +GtkWidget * e_attachment_bar_new (void); +void e_attachment_bar_to_multipart (EAttachmentBar *bar, + CamelMultipart *multipart, + const gchar *default_charset); +guint e_attachment_bar_get_num_attachments + (EAttachmentBar *bar); +void e_attachment_bar_attach (EAttachmentBar *bar, + const gchar *filename, + const gchar *disposition); +void e_attachment_bar_attach_mime_part + (EAttachmentBar *bar, + CamelMimePart *part); +gint e_attachment_bar_get_download_count + (EAttachmentBar *bar); +void e_attachment_bar_attach_remote_file + (EAttachmentBar *bar, + const gchar *url, + const gchar *disposition); +GSList * e_attachment_bar_get_attachment (EAttachmentBar *bar, + gint id); +void e_attachment_bar_add_attachment (EAttachmentBar *bar, + EAttachment *attachment); +GSList * e_attachment_bar_get_parts (EAttachmentBar *bar); +GSList * e_attachment_bar_get_selected (EAttachmentBar *bar); +void e_attachment_bar_set_width (EAttachmentBar *bar, + gint bar_width); +GSList * e_attachment_bar_get_all_attachments + (EAttachmentBar *bar); +void e_attachment_bar_create_attachment_cache + (EAttachment *attachment); +GtkAction * e_attachment_bar_recent_action_new + (EAttachmentBar *bar, + const gchar *action_name, + const gchar *action_label); +void e_attachment_bar_add_attachment_silent + (EAttachmentBar *bar, + EAttachment *attachment); +void e_attachment_bar_refresh (EAttachmentBar *bar); +gint e_attachment_bar_file_chooser_dialog_run + (EAttachmentBar *attachment_bar, + GtkWidget *dialog); +void e_attachment_bar_update_actions (EAttachmentBar *attachment_bar); +const gchar * e_attachment_bar_get_background_filename + (EAttachmentBar *attachment_bar); +void e_attachment_bar_set_background_filename + (EAttachmentBar *attachment_bar, + const gchar *background_filename); +const gchar * e_attachment_bar_get_background_options + (EAttachmentBar *attachment_bar); +void e_attachment_bar_set_background_options + (EAttachmentBar *attachment_bar, + const gchar *background_options); +const gchar * e_attachment_bar_get_current_folder + (EAttachmentBar *attachment_bar); +void e_attachment_bar_set_current_folder + (EAttachmentBar *attachment_bar, + const gchar *current_folder); +gboolean e_attachment_bar_get_editable (EAttachmentBar *attachment_bar); +void e_attachment_bar_set_editable (EAttachmentBar *attachment_bar, + gboolean editable); +GtkUIManager * e_attachment_bar_get_ui_manager (EAttachmentBar *attachment_bar); -GType e_attachment_bar_get_type (void); - -GtkWidget *e_attachment_bar_new (GtkAdjustment *adj); -void e_attachment_bar_to_multipart (EAttachmentBar *bar, CamelMultipart *multipart, - const char *default_charset); -guint e_attachment_bar_get_num_attachments (EAttachmentBar *bar); -void e_attachment_bar_attach (EAttachmentBar *bar, const char *file_name, const char *disposition); -void e_attachment_bar_attach_mime_part (EAttachmentBar *bar, CamelMimePart *part); -int e_attachment_bar_get_download_count (EAttachmentBar *bar); -void e_attachment_bar_attach_remote_file (EAttachmentBar *bar, const char *url, const char *disposition); -GSList *e_attachment_bar_get_attachment (EAttachmentBar *bar, int id); -void e_attachment_bar_add_attachment (EAttachmentBar *bar, EAttachment *attachment); -void e_attachment_bar_edit_selected (EAttachmentBar *bar); -void e_attachment_bar_remove_selected (EAttachmentBar *bar); -GtkWidget ** e_attachment_bar_get_selector(EAttachmentBar *bar); -GSList *e_attachment_bar_get_parts (EAttachmentBar *bar); -GSList *e_attachment_bar_get_selected (EAttachmentBar *bar); -void e_attachment_bar_set_width(EAttachmentBar *bar, int bar_width); -GSList * e_attachment_bar_get_all_attachments (EAttachmentBar *bar); -void e_attachment_bar_create_attachment_cache (EAttachment *attachment); -GtkAction * -e_attachment_bar_recent_action_new (EAttachmentBar *bar, - const gchar *action_name, - const gchar *action_label); -void -e_attachment_bar_add_attachment_silent (EAttachmentBar *bar, EAttachment *attachment); -void -e_attachment_bar_refresh (EAttachmentBar *bar); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ +G_END_DECLS -#endif /* __E_ATTACHMENT_BAR_H__ */ +#endif /* E_ATTACHMENT_BAR_H */ -- cgit