Fix FSF address (Tobias Mueller, #470445)
[platform/upstream/evolution-data-server.git] / servers / exchange / storage / e-folder-type-registry.h
1 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
2 /* e-folder-type-registry.h
3  *
4  * Copyright (C) 2000  Ximian, Inc.
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of version 2 of the GNU Lesser General Public
8  * License as published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this program; if not, write to the
17  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  * Boston, MA 02110-1301, USA.
19  *
20  * Author: Ettore Perazzoli
21  */
22
23 #ifndef _E_FOLDER_TYPE_REGISTRY_H_
24 #define _E_FOLDER_TYPE_REGISTRY_H_
25
26 #include <glib-object.h>
27 #include <gdk-pixbuf/gdk-pixbuf.h>
28
29 #ifdef __cplusplus
30 extern "C" {
31 #pragma }
32 #endif /* __cplusplus */
33
34 #define E_TYPE_FOLDER_TYPE_REGISTRY             (e_folder_type_registry_get_type ())
35 #define E_FOLDER_TYPE_REGISTRY(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), E_TYPE_FOLDER_TYPE_REGISTRY, EFolderTypeRegistry))
36 #define E_FOLDER_TYPE_REGISTRY_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), E_TYPE_FOLDER_TYPE_REGISTRY, EFolderTypeRegistryClass))
37 #define E_IS_FOLDER_TYPE_REGISTRY(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), E_TYPE_FOLDER_TYPE_REGISTRY))
38 #define E_IS_FOLDER_TYPE_REGISTRY_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((obj), E_TYPE_FOLDER_TYPE_REGISTRY))
39
40 typedef struct EFolderTypeRegistry        EFolderTypeRegistry;
41 typedef struct EFolderTypeRegistryPrivate EFolderTypeRegistryPrivate;
42 typedef struct EFolderTypeRegistryClass   EFolderTypeRegistryClass;
43
44 struct EFolderTypeRegistry {
45         GObject parent;
46
47         EFolderTypeRegistryPrivate *priv;
48 };
49
50 struct EFolderTypeRegistryClass {
51         GObjectClass parent_class;
52 };
53
54 GType                e_folder_type_registry_get_type   (void);
55 EFolderTypeRegistry *e_folder_type_registry_new        (void);
56
57 gboolean  e_folder_type_registry_register_type         (EFolderTypeRegistry           *folder_type_registry,
58                                                         const char                    *type_name,
59                                                         const char                    *icon_name,
60                                                         const char                    *display_name,
61                                                         const char                    *description,
62                                                         gboolean                       user_creatable,
63                                                         int                            num_accepted_dnd_types,
64                                                         const char                   **accepted_dnd_types);
65 gboolean  e_folder_type_registry_set_handler_for_type  (EFolderTypeRegistry           *folder_type_registry,
66                                                         const char                    *type_name,
67                                                         GObject                       *handler);
68
69 GList *e_folder_type_registry_get_type_names  (EFolderTypeRegistry *folder_type_registry);
70
71 gboolean  e_folder_type_registry_type_registered  (EFolderTypeRegistry *folder_type_registry,
72                                                    const char          *type_name);
73 void      e_folder_type_registry_unregister_type  (EFolderTypeRegistry *folder_type_registry,
74                                                    const char          *type_name);
75
76 const char                    *e_folder_type_registry_get_icon_name_for_type     (EFolderTypeRegistry *folder_type_registry,
77                                                                                   const char          *type_name);
78 GObject                       *e_folder_type_registry_get_handler_for_type       (EFolderTypeRegistry *folder_type_registry,
79                                                                                   const char          *type_name);
80 gboolean                       e_folder_type_registry_type_is_user_creatable     (EFolderTypeRegistry *folder_type_registry,
81                                                                                   const char          *type_name);
82 const char                    *e_folder_type_registry_get_display_name_for_type  (EFolderTypeRegistry *folder_type_registry,
83                                                                                   const char          *type_name);
84 const char                    *e_folder_type_registry_get_description_for_type   (EFolderTypeRegistry *folder_type_registry,
85                                                                                   const char          *type_name);
86
87 GList *e_folder_type_registry_get_accepted_dnd_types_for_type (EFolderTypeRegistry *folder_type_registry,
88                                                                const char *type_name);
89
90
91 #ifdef __cplusplus
92 }
93 #endif /* __cplusplus */
94
95 #endif /* _E_FOLDER_TYPE_REGISTRY_H_ */