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_FLOW_LAYOUT_H__
30
#define __CLUTTER_FLOW_LAYOUT_H__
32
#include <clutter/clutter-layout-manager.h>
36
#define CLUTTER_TYPE_FLOW_LAYOUT (clutter_flow_layout_get_type ())
37
#define CLUTTER_FLOW_LAYOUT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_FLOW_LAYOUT, ClutterFlowLayout))
38
#define CLUTTER_IS_FLOW_LAYOUT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_FLOW_LAYOUT))
39
#define CLUTTER_FLOW_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_FLOW_LAYOUT, ClutterFlowLayoutClass))
40
#define CLUTTER_IS_FLOW_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_FLOW_LAYOUT))
41
#define CLUTTER_FLOW_LAYOUT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_FLOW_LAYOUT, ClutterFlowLayoutClass))
43
typedef struct _ClutterFlowLayout ClutterFlowLayout;
44
typedef struct _ClutterFlowLayoutPrivate ClutterFlowLayoutPrivate;
45
typedef struct _ClutterFlowLayoutClass ClutterFlowLayoutClass;
48
* ClutterFlowOrientation:
49
* @CLUTTER_FLOW_HORIZONTAL: Arrange the children of the flow layout
51
* @CLUTTER_FLOW_VERTICAL: Arrange the children of the flow layout
54
* The direction of the arrangement of the children inside
55
* a #ClutterFlowLayout
59
typedef enum { /*< prefix=CLUTTER_FLOW >*/
60
CLUTTER_FLOW_HORIZONTAL,
62
} ClutterFlowOrientation;
67
* The #ClutterFlowLayout structure contains only private data
68
* and should be accessed using the provided API
72
struct _ClutterFlowLayout
75
ClutterLayoutManager parent_instance;
77
ClutterFlowLayoutPrivate *priv;
81
* ClutterFlowLayoutClass:
83
* The #ClutterFlowLayoutClass structure contains only private data
84
* and should be accessed using the provided API
88
struct _ClutterFlowLayoutClass
91
ClutterLayoutManagerClass parent_class;
94
GType clutter_flow_layout_get_type (void) G_GNUC_CONST;
96
ClutterLayoutManager * clutter_flow_layout_new (ClutterFlowOrientation orientation);
98
void clutter_flow_layout_set_orientation (ClutterFlowLayout *layout,
99
ClutterFlowOrientation orientation);
100
ClutterFlowOrientation clutter_flow_layout_get_orientation (ClutterFlowLayout *layout);
101
void clutter_flow_layout_set_homogeneous (ClutterFlowLayout *layout,
102
gboolean homogeneous);
103
gboolean clutter_flow_layout_get_homogeneous (ClutterFlowLayout *layout);
105
void clutter_flow_layout_set_column_spacing (ClutterFlowLayout *layout,
107
gfloat clutter_flow_layout_get_column_spacing (ClutterFlowLayout *layout);
108
void clutter_flow_layout_set_row_spacing (ClutterFlowLayout *layout,
110
gfloat clutter_flow_layout_get_row_spacing (ClutterFlowLayout *layout);
112
void clutter_flow_layout_set_column_width (ClutterFlowLayout *layout,
115
void clutter_flow_layout_get_column_width (ClutterFlowLayout *layout,
118
void clutter_flow_layout_set_row_height (ClutterFlowLayout *layout,
121
void clutter_flow_layout_get_row_height (ClutterFlowLayout *layout,
127
#endif /* __CLUTTER_FLOW_LAYOUT_H__ */