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.
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
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/>.
16 * NotZed <notzed@ximian.com>
17 * Jeffrey Stedfast <fejj@ximian.com>
19 * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
23 #if !defined (__LIBEMAIL_ENGINE_H_INSIDE__) && !defined (LIBEMAIL_ENGINE_COMPILATION)
24 #error "Only <libemail-engine/libemail-engine.h> should be included directly."
27 #ifndef EM_VFOLDER_RULE_H
28 #define EM_VFOLDER_RULE_H
30 #include <e-util/e-util.h>
32 /* Standard GObject macros */
33 #define EM_TYPE_VFOLDER_RULE \
34 (em_vfolder_rule_get_type ())
35 #define EM_VFOLDER_RULE(obj) \
36 (G_TYPE_CHECK_INSTANCE_CAST \
37 ((obj), EM_TYPE_VFOLDER_RULE, EMVFolderRule))
38 #define EM_VFOLDER_RULE_CLASS(cls) \
39 (G_TYPE_CHECK_CLASS_CAST \
40 ((cls), EM_TYPE_VFOLDER_RULE, EMVFolderRuleClass))
41 #define EM_IS_VFOLDER_RULE(obj) \
42 (G_TYPE_CHECK_INSTANCE_TYPE \
43 ((obj), EM_TYPE_VFOLDER_RULE))
44 #define EM_IS_VFOLDER_RULE_CLASS(cls) \
45 (G_TYPE_CHECK_CLASS_TYPE \
46 ((cls), EM_TYPE_VFOLDER_RULE))
47 #define EM_VFOLDER_RULE_GET_CLASS(obj) \
48 (G_TYPE_INSTANCE_GET_CLASS \
49 ((obj), EM_TYPE_VFOLDER_RULE, EMVFolderRuleClass))
53 /* perhaps should be bits? */
54 enum _em_vfolder_rule_with_t
{
55 EM_VFOLDER_RULE_WITH_SPECIFIC
,
56 EM_VFOLDER_RULE_WITH_LOCAL_REMOTE_ACTIVE
,
57 EM_VFOLDER_RULE_WITH_REMOTE_ACTIVE
,
58 EM_VFOLDER_RULE_WITH_LOCAL
61 typedef struct _EMVFolderRule EMVFolderRule
;
62 typedef struct _EMVFolderRuleClass EMVFolderRuleClass
;
63 typedef struct _EMVFolderRulePrivate EMVFolderRulePrivate
;
65 typedef enum _em_vfolder_rule_with_t em_vfolder_rule_with_t
;
67 struct _EMVFolderRule
{
69 EMVFolderRulePrivate
*priv
;
72 struct _EMVFolderRuleClass
{
73 EFilterRuleClass parent_class
;
76 GType
em_vfolder_rule_get_type (void);
77 EFilterRule
* em_vfolder_rule_new (void);
78 void em_vfolder_rule_add_source (EMVFolderRule
*rule
,
80 void em_vfolder_rule_remove_source (EMVFolderRule
*rule
,
82 const gchar
* em_vfolder_rule_find_source (EMVFolderRule
*rule
,
84 const gchar
* em_vfolder_rule_next_source (EMVFolderRule
*rule
,
86 GQueue
* em_vfolder_rule_get_sources (EMVFolderRule
*rule
);
87 void em_vfolder_rule_sources_changed (EMVFolderRule
*rule
);
88 gboolean em_vfolder_rule_source_get_include_subfolders
91 void em_vfolder_rule_source_set_include_subfolders
94 gboolean include_subfolders
);
95 em_vfolder_rule_with_t
96 em_vfolder_rule_get_with (EMVFolderRule
*rule
);
97 void em_vfolder_rule_set_with (EMVFolderRule
*rule
,
98 em_vfolder_rule_with_t with
);
99 gboolean
em_vfolder_rule_get_autoupdate (EMVFolderRule
*rule
);
100 void em_vfolder_rule_set_autoupdate (EMVFolderRule
*rule
,
101 gboolean autoupdate
);
105 #endif /* EM_VFOLDER_RULE_H */