2006-10-05 Michael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
[hildon] / hildon-widgets / hildon-caption.h
1 /*
2  * This file is part of hildon-libs
3  *
4  * Copyright (C) 2005, 2006 Nokia Corporation, all rights reserved.
5  *
6  * Contact: Michael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public License
10  * as published by the Free Software Foundation; version 2.1 of
11  * the License or any later version.
12  *
13  * This library is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
21  * 02110-1301 USA
22  *
23  */
24  
25 #ifndef __HILDON_CAPTION_H__
26 #define __HILDON_CAPTION_H__
27
28 #include <glib.h>
29 #include <glib-object.h>
30 #include <gtk/gtkeventbox.h>
31 #include <gtk/gtksizegroup.h>
32
33 G_BEGIN_DECLS
34
35
36 #define HILDON_TYPE_CAPTION ( hildon_caption_get_type() )
37 #define HILDON_CAPTION(obj) \
38     (GTK_CHECK_CAST (obj, HILDON_TYPE_CAPTION, HildonCaption))
39 #define HILDON_CAPTION_CLASS(klass) \
40     (GTK_CHECK_CLASS_CAST ((klass),\
41      HILDON_TYPE_CAPTION, HildonCaptionClass))
42 #define HILDON_IS_CAPTION(obj) (GTK_CHECK_TYPE (obj, HILDON_TYPE_CAPTION))
43 #define HILDON_IS_CAPTION_CLASS(klass) \
44     (GTK_CHECK_CLASS_TYPE ((klass), HILDON_TYPE_CAPTION))
45
46     
47 /**
48  * HildonCaptionStatus:
49  * @HILDON_CAPTION_OPTIONAL: Optional.
50  * @HILDON_CAPTION_MANDATORY: Mandatory.
51  *
52  * Keys to set the #HildonCaption to be optional or mandatory.
53  */
54 typedef enum /*< skip >*/
55 {
56     HILDON_CAPTION_OPTIONAL = 0,
57     HILDON_CAPTION_MANDATORY
58 } HildonCaptionStatus;
59
60 /**
61  * HildonCaptionIconPosition:
62  * @HILDON_CAPTION_POSITION_LEFT: Show the icon on the left side.
63  * @HILDON_CAPTION_POSITION_RIGHT: Show the icon on the right side.
64  *
65  * Keys to set the icon placement in #HildonCaption.
66  *
67  * Since: 0.14.5
68  */
69 typedef enum /*< skip >*/
70 {
71     HILDON_CAPTION_POSITION_LEFT = 0,
72     HILDON_CAPTION_POSITION_RIGHT
73 } HildonCaptionIconPosition;
74
75 #define HILDON_TYPE_CAPTION_STATUS (hildon_caption_status_get_type ())
76
77 #define HILDON_TYPE_CAPTION_ICON_POSITION (hildon_caption_icon_position_get_type ())
78
79 GType hildon_caption_status_get_type (void) G_GNUC_CONST;
80
81 GType hildon_caption_icon_position_get_type (void) G_GNUC_CONST;
82
83 /**
84  * HildonCaption:
85  *
86  * Contains only private data.
87  */
88 typedef struct _HildonCaption HildonCaption;
89 typedef struct _HildonCaptionClass HildonCaptionClass;
90
91
92 struct _HildonCaption
93 {
94   GtkEventBox event_box;
95 };
96
97
98 struct _HildonCaptionClass
99 {
100   GtkEventBoxClass parent_class;
101   void (*activate) (HildonCaption *widget);
102 };
103
104
105 GType hildon_caption_get_type (void) G_GNUC_CONST;
106
107 GtkWidget *hildon_caption_new( GtkSizeGroup *group, const gchar *value,
108                                GtkWidget *control, GtkWidget *icon,
109                                HildonCaptionStatus flag );
110 #ifndef HILDON_DISABLE_DEPRECATED
111 GtkSizeGroup *hildon_caption_get_sizegroup( const HildonCaption *caption );
112
113 void hildon_caption_set_sizegroup( const HildonCaption *caption,
114                                    GtkSizeGroup *new_group );
115 #endif
116
117 gboolean hildon_caption_is_mandatory( const HildonCaption *caption );
118
119 void hildon_caption_set_status( HildonCaption *caption,
120                                HildonCaptionStatus flag );
121
122 HildonCaptionStatus hildon_caption_get_status( const HildonCaption *caption );
123
124 void hildon_caption_set_icon_position( HildonCaption *caption,
125                                HildonCaptionIconPosition pos );
126
127 HildonCaptionIconPosition hildon_caption_get_icon_position( const HildonCaption *caption );
128
129 void hildon_caption_set_icon_image( HildonCaption *caption, GtkWidget *icon );
130
131 GtkWidget *hildon_caption_get_icon_image(const HildonCaption *caption);
132
133 void hildon_caption_set_label( HildonCaption *caption, const gchar *label );
134
135 gchar *hildon_caption_get_label( const HildonCaption *caption );
136
137 void hildon_caption_set_separator( HildonCaption *caption, 
138                                     const gchar *separator );
139
140 gchar *hildon_caption_get_separator( const HildonCaption *caption );
141
142 void hildon_caption_set_label_alignment(HildonCaption *caption, 
143                                         gfloat alignment);
144 gfloat hildon_caption_get_label_alignment(HildonCaption *caption);
145
146 #ifndef HILDON_DISABLE_DEPRECATED
147 GtkWidget *hildon_caption_get_control( const HildonCaption *caption );
148
149 void hildon_caption_set_control( HildonCaption *caption, GtkWidget *control );
150 #endif
151
152 void hildon_caption_set_child_expand( HildonCaption *caption, gboolean expand );
153 gboolean hildon_caption_get_child_expand( const HildonCaption *caption );
154
155 G_END_DECLS
156 #endif /* __HILDON_CAPTION_H__ */