1 /*
2  *
3  * This program is free software; you can redistribute it and/or modify it
4  * under the terms of the GNU Lesser General Public License as published by
5  * the Free Software Foundation.
6  *
7  * This program is distributed in the hope that it will be useful, but
8  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
9  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
10  * for more details.
11  *
12  * You should have received a copy of the GNU Lesser General Public License
13  * along with this program; if not, see <http://www.gnu.org/licenses/>.
14  *
15  *
16  * Authors:
17  *		Chris Lahey <clahey@ximian.com>
18  *
19  * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
20  *
21  */
22 
23 #ifndef __E_MINICARD_VIEW_H__
24 #define __E_MINICARD_VIEW_H__
25 
26 #include "e-minicard.h"
27 
28 #include <e-util/e-util.h>
29 
30 #include "e-addressbook-reflow-adapter.h"
31 
32 G_BEGIN_DECLS
33 
34 /* EMinicardView - A canvas item container.
35  *
36  * The following arguments are available:
37  *
38  * name		type		read/write	description
39  * --------------------------------------------------------------------------------
40  * book         EBook           RW              book to query
41  * query        string          RW              query string
42  *
43  * From EReflowSorted:   (you should really know what you're doing if you set these.)
44  * compare_func  GCompareFunc   RW              compare function
45  * string_func   EReflowStringFunc RW           string function
46  *
47  * From EReflow:
48  * minimum_width double         RW              minimum width of the reflow.  width >= minimum_width
49  * width        double          R               width of the reflow
50  * height       double          RW              height of the reflow
51  */
52 
53 #define E_TYPE_MINICARD_VIEW			(e_minicard_view_get_type ())
54 #define E_MINICARD_VIEW(obj)			(G_TYPE_CHECK_INSTANCE_CAST ((obj), E_TYPE_MINICARD_VIEW, EMinicardView))
55 #define E_MINICARD_VIEW_CLASS(klass)		(G_TYPE_CHECK_CLASS_CAST ((klass), E_TYPE_MINICARD_VIEW, EMinicardViewClass))
56 #define E_IS_MINICARD_VIEW(obj)		(G_TYPE_CHECK_INSTANCE_TYPE ((obj), E_TYPE_MINICARD_VIEW))
57 #define E_IS_MINICARD_VIEW_CLASS(klass)	(G_TYPE_CHECK_CLASS_TYPE ((obj), E_TYPE_MINICARD_VIEW))
58 
59 typedef struct _EMinicardView       EMinicardView;
60 typedef struct _EMinicardViewClass  EMinicardViewClass;
61 
62 struct _EMinicardView
63 {
64 	EReflow parent;
65 
66 	EAddressbookReflowAdapter *adapter;
67 
68 	/* item specific fields */
69 
70 	GSList *drag_list;
71 
72 	guint canvas_drag_data_get_id;
73 	guint writable_status_id;
74 	guint stop_state_id;
75 };
76 
77 struct _EMinicardViewClass
78 {
79 	EReflowClass parent_class;
80 
81 	void (*right_click) (EMinicardView *view, GdkEvent *event);
82 };
83 
84 GType    e_minicard_view_get_type          (void);
85 void     e_minicard_view_jump_to_letter    (EMinicardView *view,
86 					    gunichar       letter);
87 GSList  *e_minicard_view_get_card_list     (EMinicardView *view);
88 void     e_minicard_view_create_contact    (EMinicardView *view);
89 void     e_minicard_view_create_contact_list (EMinicardView *view);
90 
91 G_END_DECLS
92 
93 #endif /* __E_MINICARD_VIEW_H__ */
94