diff options
author | Matthew Barnes <mbarnes@src.gnome.org> | 2009-02-08 04:04:52 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@src.gnome.org> | 2009-02-08 04:04:52 +0800 |
commit | 14e8637d6b1a98b4ed6bedc70d0fca744b7b3e0f (patch) | |
tree | ec49b42bc6e0cfb3115ca56f41106e63a0b67d85 /mail/message-list.h | |
parent | fee5916b60c605ff5086d8fdc2a85c5ea21351f6 (diff) | |
download | gsoc2013-evolution-14e8637d6b1a98b4ed6bedc70d0fca744b7b3e0f.tar gsoc2013-evolution-14e8637d6b1a98b4ed6bedc70d0fca744b7b3e0f.tar.gz gsoc2013-evolution-14e8637d6b1a98b4ed6bedc70d0fca744b7b3e0f.tar.bz2 gsoc2013-evolution-14e8637d6b1a98b4ed6bedc70d0fca744b7b3e0f.tar.lz gsoc2013-evolution-14e8637d6b1a98b4ed6bedc70d0fca744b7b3e0f.tar.xz gsoc2013-evolution-14e8637d6b1a98b4ed6bedc70d0fca744b7b3e0f.tar.zst gsoc2013-evolution-14e8637d6b1a98b4ed6bedc70d0fca744b7b3e0f.zip |
Rewrite the mail label code from top to bottom.
- Kill the e-util-labels API and read label information into a
single-column GtkListStore. Use GConfBridge to automatically
keep GConf synched with the list store.
- The list store (a singleton instance) is stored in EShellSettings
so it's available everywhere.
- The list store serves as the model for EMailLabelTreeView,
which itself is embedded in EMailLabelManager; a complete
label management UI as seen in the preferences dialog.
- EMailLabelDialog is used to add or edit a label. Avoid using a
color button, instead embed a GtkColorSelection directly in the
dialog so everything is in one window.
Open issues:
- The weird toggle/color/text menu items in the popup menu aren't
there. For now they're just regular toggle items. I'll deal
with it later.
- Filter intergration is broken at the moment.
svn path=/branches/kill-bonobo/; revision=37233
Diffstat (limited to 'mail/message-list.h')
-rw-r--r-- | mail/message-list.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/mail/message-list.h b/mail/message-list.h index 34e971482f..0876d93d05 100644 --- a/mail/message-list.h +++ b/mail/message-list.h @@ -29,6 +29,7 @@ #include <table/e-tree-scrolled.h> #include <camel/camel-folder.h> +#include <shell/e-shell-module.h> #ifdef __cplusplus extern "C" { @@ -87,11 +88,13 @@ enum { #define ML_HIDE_SAME (2147483646) typedef struct _MessageList MessageList; +typedef struct _MessageListClass MessageListClass; +typedef struct _MessageListPrivate MessageListPrivate; struct _MessageList { ETreeScrolled parent; - struct _MessageListPrivate *priv; + MessageListPrivate *priv; /* The table */ ETreeModel *model; @@ -167,14 +170,14 @@ struct _MessageList { struct _MailAsyncEvent *async_event; }; -typedef struct { +struct _MessageListClass { ETreeScrolledClass parent_class; /* signals - select a message */ void (*message_selected) (MessageList *ml, const char *uid); void (*message_list_built) (MessageList *ml); void (*message_list_scrolled) (MessageList *ml); -} MessageListClass; +}; typedef enum { MESSAGE_LIST_SELECT_NEXT = 0, @@ -184,7 +187,8 @@ typedef enum { } MessageListSelectDirection; GType message_list_get_type (void); -GtkWidget *message_list_new (void); +GtkWidget *message_list_new (EShellModule *shell_module); +EShellModule *message_list_get_shell_module (MessageList *message_list); void message_list_set_folder (MessageList *message_list, CamelFolder *camel_folder, const char *uri, gboolean outgoing); void message_list_freeze(MessageList *ml); |