2 * Copyright 2006-2010, Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
5 #ifndef _GROUP_LAYOUT_BUILDER_H
6 #define _GROUP_LAYOUT_BUILDER_H
8 #include <GroupLayout.h>
12 class BGroupLayoutBuilder
{
15 orientation orientation
= B_HORIZONTAL
,
16 float spacing
= B_USE_DEFAULT_SPACING
);
17 BGroupLayoutBuilder(BGroupLayout
* layout
);
18 BGroupLayoutBuilder(BGroupView
* view
);
20 BGroupLayout
* RootLayout() const;
21 BGroupLayout
* TopLayout() const;
22 BGroupLayoutBuilder
& GetTopLayout(BGroupLayout
** _layout
);
23 BView
* TopView() const;
24 BGroupLayoutBuilder
& GetTopView(BView
** _view
);
26 BGroupLayoutBuilder
& Add(BView
* view
);
27 BGroupLayoutBuilder
& Add(BView
* view
, float weight
);
28 BGroupLayoutBuilder
& Add(BLayoutItem
* item
);
29 BGroupLayoutBuilder
& Add(BLayoutItem
* item
, float weight
);
31 BGroupLayoutBuilder
& AddGroup(orientation orientation
,
32 float spacing
= B_USE_DEFAULT_SPACING
,
34 BGroupLayoutBuilder
& End();
36 BGroupLayoutBuilder
& AddGlue(float weight
= 1.0f
);
37 BGroupLayoutBuilder
& AddStrut(float size
);
39 BGroupLayoutBuilder
& SetInsets(float left
, float top
, float right
,
42 operator BGroupLayout
*();
45 bool _PushLayout(BGroupLayout
* layout
);
49 BGroupLayout
* fRootLayout
;
53 #endif // _GROUP_LAYOUT_BUILDER_H