Updated Traditional Chinese translation(Hong Kong and Taiwan)
[evolution.git] / libemail-engine / em-vfolder-rule.h
blob2f77892af534bbdf90cc82bbc2b2c70d0f013259
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.
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.
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/>.
15 * Authors:
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."
25 #endif
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))
51 G_BEGIN_DECLS
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 {
68 EFilterRule rule;
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,
79 const gchar *uri);
80 void em_vfolder_rule_remove_source (EMVFolderRule *rule,
81 const gchar *uri);
82 const gchar * em_vfolder_rule_find_source (EMVFolderRule *rule,
83 const gchar *uri);
84 const gchar * em_vfolder_rule_next_source (EMVFolderRule *rule,
85 const gchar *last);
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
89 (EMVFolderRule *rule,
90 const gchar *source);
91 void em_vfolder_rule_source_set_include_subfolders
92 (EMVFolderRule *rule,
93 const gchar *source,
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);
103 G_END_DECLS
105 #endif /* EM_VFOLDER_RULE_H */