diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2012-12-07 22:37:37 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2012-12-08 03:01:05 +0800 |
commit | 00b211b0f515d6b6d9147c1ca568d0c4b42af699 (patch) | |
tree | f12c1f0180a6c76918f0f6b379d64246f689105f /em-format/e-mail-formatter-extension.h | |
parent | 54455ca1ad6cae527544fed12d0de4ae95341082 (diff) | |
download | gsoc2013-evolution-00b211b0f515d6b6d9147c1ca568d0c4b42af699.tar gsoc2013-evolution-00b211b0f515d6b6d9147c1ca568d0c4b42af699.tar.gz gsoc2013-evolution-00b211b0f515d6b6d9147c1ca568d0c4b42af699.tar.bz2 gsoc2013-evolution-00b211b0f515d6b6d9147c1ca568d0c4b42af699.tar.lz gsoc2013-evolution-00b211b0f515d6b6d9147c1ca568d0c4b42af699.tar.xz gsoc2013-evolution-00b211b0f515d6b6d9147c1ca568d0c4b42af699.tar.zst gsoc2013-evolution-00b211b0f515d6b6d9147c1ca568d0c4b42af699.zip |
Convert EMailFormatterExtension to an abstract class.
With the previous changes, all formatter extensions derive from
GObjectClass and implement the EMailFormatterExtensionInterface.
Simplify things further by making EMailFormatterExtension an abstract
base class so formatter extensions are now just direct subclasses and
need not bother with implementing GObject interfaces.
Diffstat (limited to 'em-format/e-mail-formatter-extension.h')
-rw-r--r-- | em-format/e-mail-formatter-extension.h | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/em-format/e-mail-formatter-extension.h b/em-format/e-mail-formatter-extension.h index 9a3f3925c4..9111ad85f3 100644 --- a/em-format/e-mail-formatter-extension.h +++ b/em-format/e-mail-formatter-extension.h @@ -30,29 +30,41 @@ #define E_MAIL_FORMATTER_EXTENSION(obj) \ (G_TYPE_CHECK_INSTANCE_CAST \ ((obj), E_TYPE_MAIL_FORMATTER_EXTENSION, EMailFormatterExtension)) -#define E_MAIL_FORMATTER_EXTENSION_INTERFACE(cls) \ +#define E_MAIL_FORMATTER_EXTENSION_CLASS(cls) \ (G_TYPE_CHECK_CLASS_CAST \ - ((cls), E_TYPE_MAIL_FORMATTER_EXTENSION, EMailFormatterExtensionInterface)) + ((cls), E_TYPE_MAIL_FORMATTER_EXTENSION, EMailFormatterExtensionClass)) #define E_IS_MAIL_FORMATTER_EXTENSION(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE \ ((obj), E_TYPE_MAIL_FORMATTER_EXTENSION)) -#define E_IS_MAIL_FORMATTER_EXTENSION_INTERFACE(cls) \ +#define E_IS_MAIL_FORMATTER_EXTENSION_CLASS(cls) \ (G_TYPE_CHECK_CLASS_TYPE \ ((cls), E_TYPE_MAIL_FORMATTER_EXTENSION)) -#define E_MAIL_FORMATTER_EXTENSION_GET_INTERFACE(obj) \ - (G_TYPE_INSTANCE_GET_INTERFACE \ - ((obj), E_TYPE_MAIL_FORMATTER_EXTENSION, EMailFormatterExtensionInterface)) +#define E_MAIL_FORMATTER_EXTENSION_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS \ + ((obj), E_TYPE_MAIL_FORMATTER_EXTENSION, EMailFormatterExtensionClass)) #define EMF_EXTENSION_GET_FORMATTER(e) \ E_MAIL_FORMATTER (e_extension_get_extensible (E_EXTENSION (e))) G_BEGIN_DECLS +/** + * EMailFormatterExtension: + * + * The #EMailFormatterExtension is an abstract class for all extensions for + * #EMailFormatter. + */ typedef struct _EMailFormatterExtension EMailFormatterExtension; -typedef struct _EMailFormatterExtensionInterface EMailFormatterExtensionInterface; +typedef struct _EMailFormatterExtensionClass EMailFormatterExtensionClass; +typedef struct _EMailFormatterExtensionPrivate EMailFormatterExtensionPrivate; + +struct _EMailFormatterExtension { + GObject parent; + EMailFormatterExtensionPrivate *priv; +}; -struct _EMailFormatterExtensionInterface { - GTypeInterface parent_interface; +struct _EMailFormatterExtensionClass { + GObjectClass parent_class; /* This is a NULL-terminated array of supported MIME types. * The MIME types can be exact (e.g. "text/plain") or use a @@ -65,23 +77,19 @@ struct _EMailFormatterExtensionInterface { EMailPart *part, CamelStream *stream, GCancellable *cancellable); - GtkWidget * (*get_widget) (EMailFormatterExtension *extension, EMailPartList *context, EMailPart *part, GHashTable *params); - const gchar * (*get_display_name) (EMailFormatterExtension *extension); - const gchar * (*get_description) (EMailFormatterExtension *extension); }; GType e_mail_formatter_extension_get_type - (void); - + (void) G_GNUC_CONST; gboolean e_mail_formatter_extension_format (EMailFormatterExtension *extension, EMailFormatter *formatter, @@ -89,19 +97,15 @@ gboolean e_mail_formatter_extension_format EMailPart *part, CamelStream *stream, GCancellable *cancellable); - gboolean e_mail_formatter_extension_has_widget (EMailFormatterExtension *extension); - GtkWidget * e_mail_formatter_extension_get_widget (EMailFormatterExtension *extension, EMailPartList *context, EMailPart *part, GHashTable *params); - const gchar * e_mail_formatter_extension_get_display_name (EMailFormatterExtension *extension); - const gchar * e_mail_formatter_extension_get_description (EMailFormatterExtension *extension); |