* improvements in display of address, refactored some code
[modest] / src / modest-widget-factory.h
1 /* Copyright (c) 2006, Nokia Corporation
2  * All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met:
7  *
8  * * Redistributions of source code must retain the above copyright
9  *   notice, this list of conditions and the following disclaimer.
10  * * Redistributions in binary form must reproduce the above copyright
11  *   notice, this list of conditions and the following disclaimer in the
12  *   documentation and/or other materials provided with the distribution.
13  * * Neither the name of the Nokia Corporation nor the names of its
14  *   contributors may be used to endorse or promote products derived from
15  *   this software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
18  * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
20  * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
21  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29
30 #ifndef __MODEST_WIDGET_FACTORY_H__
31 #define __MODEST_WIDGET_FACTORY_H__
32
33 #include <glib-object.h>
34 #include "../modest-account-mgr.h"
35 #include "../modest-tny-account-store.h"
36 #include "../modest-tny-header-tree-view.h"
37 #include "../modest-tny-folder-tree-view.h"
38 #include "../modest-tny-msg-view.h"
39
40 G_BEGIN_DECLS
41
42 /* convenience macros */
43 #define MODEST_TYPE_WIDGET_FACTORY             (modest_widget_factory_get_type())
44 #define MODEST_WIDGET_FACTORY(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj),MODEST_TYPE_WIDGET_FACTORY,ModestWidgetFactory))
45 #define MODEST_WIDGET_FACTORY_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass),MODEST_TYPE_WIDGET_FACTORY,GObject))
46 #define MODEST_IS_WIDGET_FACTORY(obj)          (G_TYPE_CHECK_INSTANCE_TYPE((obj),MODEST_TYPE_WIDGET_FACTORY))
47 #define MODEST_IS_WIDGET_FACTORY_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),MODEST_TYPE_WIDGET_FACTORY))
48 #define MODEST_WIDGET_FACTORY_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj),MODEST_TYPE_WIDGET_FACTORY,ModestWidgetFactoryClass))
49
50 typedef struct _ModestWidgetFactory      ModestWidgetFactory;
51 typedef struct _ModestWidgetFactoryClass ModestWidgetFactoryClass;
52
53 struct _ModestWidgetFactory {
54          GObject parent;
55         /* insert public members, if any */
56 };
57
58 struct _ModestWidgetFactoryClass {
59         GObjectClass parent_class;
60         /* insert signal callback declarations, eg. */
61         /* void (* my_event) (ModestWidgetFactory* obj); */
62 };
63
64 /**
65  * modest_widget_factory_get_type
66  *
67  * get the GType for ModestWidgetFactory
68  *
69  * Returns: the GType
70  */
71 GType        modest_widget_factory_get_type    (void) G_GNUC_CONST;
72
73
74 /**
75  * modest_widget_factory_new
76  * @acc_mgr: a modest account mgr instance
77  * @autoconnect: should we autoconnect the widgets (ie. depedent widgets are update
78  * automagically)
79  *
80  * instantiates a ModestWidgetFactory
81  *
82  * Returns: a new ModestWidgetFactory, or NULL in case of error
83  */
84 ModestWidgetFactory*                  modest_widget_factory_new   (ModestTnyAccountStore *acc_store,
85                                                                    gboolean autoconnect);
86
87 /**
88  * modest_widget_factory_get_folder_tree_widget
89  * @self: a ModestWidgetFactory instance
90  * 
91  * return the folder tree widget (ie. the widget with the list of folders);
92  *
93  * This factory will always return the
94  * same widget, and takes care of its lifetime - users should *not* destroy it.
95  *
96  * Returns: a folder tree view, or NULL in case of error
97  */
98 ModestTnyFolderTreeView*    modest_widget_factory_get_folder_tree_widget (ModestWidgetFactory *self);
99
100
101 /**
102  * modest_widget_factory_get_header_tree_widget
103  * @self: a ModestWidgetFactory instance
104  * 
105  * return the header tree widget (ie. the widget with the list of headers);
106  *
107  * This factory will always return the
108  * same widget, and takes care of its lifetime - users should *not* destroy it.
109  *
110  * Returns: a header tree view, or NULL in case of error
111  */
112 ModestTnyHeaderTreeView*    modest_widget_factory_get_header_tree_widget (ModestWidgetFactory *self);
113
114
115 /**
116  * modest_widget_factory_get_header_tree_widget
117  * @self: a ModestWidgetFactory instance
118  * 
119  * return the message preview widget (ie. the widget with shows the currently selected message);
120  *
121  * This factory will always return the
122  * same widget, and takes care of its lifetime - users should *not* destroy it.
123  *
124  * Returns: a header tree view, or NULL in case of error
125  */
126 ModestTnyMsgView*           modest_widget_factory_get_msg_preview_widget (ModestWidgetFactory *self);
127
128
129 G_END_DECLS
130
131 #endif /* __MODEST_WIDGET_FACTORY_H__ */
132