2 * This file is a part of hildon
4 * Copyright (C) 2008 Nokia Corporation, all rights reserved.
6 * Contact: Rodrigo Novo <rodrigo.novo@nokia.com>
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU Lesser Public License as published by
10 * the Free Software Foundation; version 2 of the license.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Lesser Public License for more details.
19 #ifndef __HILDON_BUTTON_H__
20 #define __HILDON_BUTTON_H__
22 #include "hildon-gtk.h"
26 #define HILDON_TYPE_BUTTON \
27 (hildon_button_get_type())
29 #define HILDON_BUTTON(obj) \
30 (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
31 HILDON_TYPE_BUTTON, HildonButton))
33 #define HILDON_BUTTON_CLASS(klass) \
34 (G_TYPE_CHECK_CLASS_CAST ((klass), \
35 HILDON_TYPE_BUTTON, HildonButtonClass))
37 #define HILDON_IS_BUTTON(obj) \
38 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), HILDON_TYPE_BUTTON))
40 #define HILDON_IS_BUTTON_CLASS(klass) \
41 (G_TYPE_CHECK_CLASS_TYPE ((klass), HILDON_TYPE_BUTTON))
43 #define HILDON_BUTTON_GET_CLASS(obj) \
44 (G_TYPE_INSTANCE_GET_CLASS ((obj), \
45 HILDON_TYPE_BUTTON, HildonButtonClass))
47 typedef struct _HildonButton HildonButton;
49 typedef struct _HildonButtonClass HildonButtonClass;
51 struct _HildonButtonClass
53 GtkButtonClass parent_class;
63 * HildonButtonArrangement:
64 * @HILDON_BUTTON_ARRANGEMENT_HORIZONTAL: Labels are arranged from left to right
65 * @HILDON_BUTTON_ARRANGEMENT_VERTICAL: Labels are arranged from top to bottom
67 * Describes the arrangement of labels inside a #HildonButton
71 HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
72 HILDON_BUTTON_ARRANGEMENT_VERTICAL
73 } HildonButtonArrangement;
77 * @HILDON_BUTTON_STYLE_NORMAL: The button will look like a normal #HildonButton
78 * @HILDON_BUTTON_STYLE_PICKER: The button will look like a #HildonPickerButton
80 * Describes the visual style of a #HildonButton
83 HILDON_BUTTON_STYLE_NORMAL,
84 HILDON_BUTTON_STYLE_PICKER
88 hildon_button_get_type (void) G_GNUC_CONST;
91 hildon_button_new (HildonSizeType size,
92 HildonButtonArrangement arrangement);
95 hildon_button_new_with_text (HildonSizeType size,
96 HildonButtonArrangement arrangement,
101 hildon_button_set_title (HildonButton *button,
105 hildon_button_set_value (HildonButton *button,
109 hildon_button_get_title (HildonButton *button);
112 hildon_button_get_value (HildonButton *button);
115 hildon_button_set_text (HildonButton *button,
120 hildon_button_set_image (HildonButton *button,
124 hildon_button_get_image (HildonButton *button);
127 hildon_button_set_image_position (HildonButton *button,
128 GtkPositionType position);
131 hildon_button_set_alignment (HildonButton *button,
137 hildon_button_set_title_alignment (HildonButton *button,
142 hildon_button_set_value_alignment (HildonButton *button,
147 hildon_button_set_image_alignment (HildonButton *button,
152 hildon_button_add_title_size_group (HildonButton *button,
153 GtkSizeGroup *size_group);
155 hildon_button_add_value_size_group (HildonButton *button,
156 GtkSizeGroup *size_group);
159 hildon_button_add_image_size_group (HildonButton *button,
160 GtkSizeGroup *size_group);
163 hildon_button_add_size_groups (HildonButton *button,
164 GtkSizeGroup *title_size_group,
165 GtkSizeGroup *value_size_group,
166 GtkSizeGroup *image_size_group);
169 hildon_button_set_style (HildonButton *button,
170 HildonButtonStyle style);
173 hildon_button_get_style (HildonButton *button);
177 #endif /* __HILDON_BUTTON_H__ */