4
* An OpenGL based 'interactive canvas' library.
6
* Copyright (C) 2009 Intel Corporation.
8
* This library is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU Lesser General Public
10
* License as published by the Free Software Foundation; either
11
* version 2 of the License, or (at your option) any later version.
13
* This library is distributed in the hope that it will be useful,
14
* but 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.
18
* You should have received a copy of the GNU Lesser General Public
19
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
22
* Emmanuele Bassi <ebassi@linux.intel.com>
25
#if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
26
#error "Only <clutter/clutter.h> can be included directly."
29
#ifndef __CLUTTER_BIN_LAYOUT_H__
30
#define __CLUTTER_BIN_LAYOUT_H__
32
#include <clutter/clutter-layout-manager.h>
36
#define CLUTTER_TYPE_BIN_LAYOUT (clutter_bin_layout_get_type ())
37
#define CLUTTER_BIN_LAYOUT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_BIN_LAYOUT, ClutterBinLayout))
38
#define CLUTTER_IS_BIN_LAYOUT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_BIN_LAYOUT))
39
#define CLUTTER_BIN_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_BIN_LAYOUT, ClutterBinLayoutClass))
40
#define CLUTTER_IS_BIN_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_BIN_LAYOUT))
41
#define CLUTTER_BIN_LAYOUT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_BIN_LAYOUT, ClutterBinLayoutClass))
43
typedef struct _ClutterBinLayout ClutterBinLayout;
44
typedef struct _ClutterBinLayoutPrivate ClutterBinLayoutPrivate;
45
typedef struct _ClutterBinLayoutClass ClutterBinLayoutClass;
48
* ClutterBinAlignment:
49
* @CLUTTER_BIN_ALIGNMENT_FIXED: Fixed position alignment; the
50
* #ClutterBinLayout will honour the fixed position provided
51
* by the actors themselves when allocating them
52
* @CLUTTER_BIN_ALIGNMENT_FILL: Fill the allocation size
53
* @CLUTTER_BIN_ALIGNMENT_START: Position the actors at the top
54
* or left side of the container, depending on the axis
55
* @CLUTTER_BIN_ALIGNMENT_END: Position the actors at the bottom
56
* or right side of the container, depending on the axis
57
* @CLUTTER_BIN_ALIGNMENT_CENTER: Position the actors at the
58
* center of the container, depending on the axis
60
* The alignment policies available on each axis for #ClutterBinLayout
65
CLUTTER_BIN_ALIGNMENT_FIXED,
66
CLUTTER_BIN_ALIGNMENT_FILL,
67
CLUTTER_BIN_ALIGNMENT_START,
68
CLUTTER_BIN_ALIGNMENT_END,
69
CLUTTER_BIN_ALIGNMENT_CENTER
70
} ClutterBinAlignment;
75
* The #ClutterBinLayout structure contains only private data
76
* and should be accessed using the provided API
80
struct _ClutterBinLayout
83
ClutterLayoutManager parent_instance;
85
ClutterBinLayoutPrivate *priv;
89
* ClutterBinLayoutClass:
91
* The #ClutterBinLayoutClass structure contains only private
92
* data and should be accessed using the provided API
96
struct _ClutterBinLayoutClass
99
ClutterLayoutManagerClass parent_class;
102
GType clutter_bin_layout_get_type (void) G_GNUC_CONST;
104
ClutterLayoutManager *clutter_bin_layout_new (ClutterBinAlignment x_align,
105
ClutterBinAlignment y_align);
107
void clutter_bin_layout_set_alignment (ClutterBinLayout *self,
109
ClutterBinAlignment x_align,
110
ClutterBinAlignment y_align);
111
void clutter_bin_layout_get_alignment (ClutterBinLayout *self,
113
ClutterBinAlignment *x_align,
114
ClutterBinAlignment *y_align);
116
void clutter_bin_layout_add (ClutterBinLayout *self,
118
ClutterBinAlignment x_align,
119
ClutterBinAlignment y_align);
123
#endif /* __CLUTTER_BIN_LAYOUT_H__ */