1 /* 2 * This program is free software; you can redistribute it and/or modify it 3 * under the terms of the GNU Lesser General Public License as published by 4 * the Free Software Foundation. 5 * 6 * This program is distributed in the hope that it will be useful, but 7 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 8 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 9 * for more details. 10 * 11 * You should have received a copy of the GNU Lesser General Public License 12 * along with this program; if not, see <http://www.gnu.org/licenses/>. 13 * 14 * 15 * Authors: 16 * NotZed <notzed@ximian.com> 17 * Jeffrey Stedfast <fejj@ximian.com> 18 * 19 * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) 20 * 21 */ 22 23 #ifndef EM_VFOLDER_EDITOR_RULE_H 24 #define EM_VFOLDER_EDITOR_RULE_H 25 26 #include <e-util/e-util.h> 27 #include <libemail-engine/libemail-engine.h> 28 29 /* Standard GObject macros */ 30 #define EM_TYPE_VFOLDER_EDITOR_RULE \ 31 (em_vfolder_editor_rule_get_type ()) 32 #define EM_VFOLDER_EDITOR_RULE(obj) \ 33 (G_TYPE_CHECK_INSTANCE_CAST \ 34 ((obj), EM_TYPE_VFOLDER_EDITOR_RULE, EMVFolderEditorRule)) 35 #define EM_VFOLDER_EDITOR_RULE_CLASS(cls) \ 36 (G_TYPE_CHECK_CLASS_CAST \ 37 ((cls), EM_TYPE_VFOLDER_EDITOR_RULE, EMVFolderEditorRuleClass)) 38 #define EM_IS_VFOLDER_EDITOR_RULE(obj) \ 39 (G_TYPE_CHECK_INSTANCE_TYPE \ 40 ((obj), EM_TYPE_VFOLDER_EDITOR_RULE)) 41 #define EM_IS_VFOLDER_EDITOR_RULE_CLASS(cls) \ 42 (G_TYPE_CHECK_CLASS_TYPE \ 43 ((cls), EM_TYPE_VFOLDER_EDITOR_RULE)) 44 #define EM_VFOLDER_EDITOR_RULE_GET_CLASS(obj) \ 45 (G_TYPE_INSTANCE_GET_CLASS \ 46 ((obj), EM_TYPE_VFOLDER_EDITOR_RULE, EMVFolderEditorRuleClass)) 47 48 G_BEGIN_DECLS 49 50 /* perhaps should be bits? */ 51 enum _em_vfolder_editor_rule_with_t { 52 EM_VFOLDER_EDITOR_RULE_WITH_SPECIFIC, 53 EM_VFOLDER_EDITOR_RULE_WITH_LOCAL_REMOTE_ACTIVE, 54 EM_VFOLDER_EDITOR_RULE_WITH_REMOTE_ACTIVE, 55 EM_VFOLDER_EDITOR_RULE_WITH_LOCAL 56 }; 57 58 typedef struct _EMVFolderEditorRule EMVFolderEditorRule; 59 typedef struct _EMVFolderEditorRuleClass EMVFolderEditorRuleClass; 60 typedef struct _EMVFolderEditorRulePrivate EMVFolderEditorRulePrivate; 61 62 typedef enum _em_vfolder_editor_rule_with_t em_vfolder_editor_rule_with_t; 63 64 struct _EMVFolderEditorRule { 65 EMVFolderRule rule; 66 EMVFolderEditorRulePrivate *priv; 67 }; 68 69 struct _EMVFolderEditorRuleClass { 70 EMVFolderRuleClass parent_class; 71 }; 72 73 GType em_vfolder_editor_rule_get_type (void); 74 EFilterRule * em_vfolder_editor_rule_new (EMailSession *session); 75 EMailSession * em_vfolder_editor_rule_get_session (EMVFolderEditorRule *rule); 76 77 G_END_DECLS 78 79 #endif /* EM_VFOLDER_EDITOR_RULE_H */ 80