From 14e8637d6b1a98b4ed6bedc70d0fca744b7b3e0f Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 7 Feb 2009 20:04:52 +0000 Subject: 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 --- mail/e-mail-label-manager.h | 81 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 mail/e-mail-label-manager.h (limited to 'mail/e-mail-label-manager.h') diff --git a/mail/e-mail-label-manager.h b/mail/e-mail-label-manager.h new file mode 100644 index 0000000000..0a36ee27c8 --- /dev/null +++ b/mail/e-mail-label-manager.h @@ -0,0 +1,81 @@ +/* + * e-mail-label-manager.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_MAIL_LABEL_MANAGER_H +#define E_MAIL_LABEL_MANAGER_H + +#include +#include + +/* Standard GObject macros */ +#define E_TYPE_MAIL_LABEL_MANAGER \ + (e_mail_label_manager_get_type ()) +#define E_MAIL_LABEL_MANAGER(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST \ + ((obj), E_TYPE_MAIL_LABEL_MANAGER, EMailLabelManager)) +#define E_MAIL_LABEL_MANAGER_CLASS(cls) \ + (G_TYPE_CHECK_CLASS_CAST \ + ((cls), E_TYPE_MAIL_LABEL_MANAGER, EMailLabelManagerClass)) +#define E_IS_MAIL_LABEL_MANAGER(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE \ + ((obj), E_TYPE_MAIL_LABEL_MANAGER)) +#define E_IS_MAIL_LABEL_MANAGER_CLASS(cls) \ + (G_TYPE_CHECK_CLASS_TYPE \ + ((cls), E_TYPE_MAIL_LABEL_MANAGER)) +#define E_MAIL_LABEL_MANAGER_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS \ + ((obj), E_TYPE_MAIL_LABEL_MANAGER, EMailLabelManagerClass)) + +G_BEGIN_DECLS + +typedef struct _EMailLabelManager EMailLabelManager; +typedef struct _EMailLabelManagerClass EMailLabelManagerClass; +typedef struct _EMailLabelManagerPrivate EMailLabelManagerPrivate; + +struct _EMailLabelManager { + GtkTable parent; + EMailLabelManagerPrivate *priv; +}; + +struct _EMailLabelManagerClass { + GtkTableClass parent_class; + + void (*add_label) (EMailLabelManager *manager); + void (*edit_label) (EMailLabelManager *manager); + void (*remove_label) (EMailLabelManager *manager); +}; + +GType e_mail_label_manager_get_type (void); +GtkWidget * e_mail_label_manager_new (void); +void e_mail_label_manager_add_label (EMailLabelManager *manager); +void e_mail_label_manager_edit_label (EMailLabelManager *manager); +void e_mail_label_manager_remove_label + (EMailLabelManager *manager); +EMailLabelListStore * + e_mail_label_manager_get_list_store + (EMailLabelManager *manager); +void e_mail_label_manager_set_list_store + (EMailLabelManager *manager, + EMailLabelListStore *list_store); + +G_END_DECLS + +#endif /* E_MAIL_LABEL_MANAGER_H */ -- cgit v1.2.3