2 * Copyright 2006-2010, Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
5 #ifndef _GROUP_LAYOUT_H
6 #define _GROUP_LAYOUT_H
8 #include <TwoDimensionalLayout.h>
10 class BGroupLayout
: public BTwoDimensionalLayout
{
12 BGroupLayout(orientation orientation
,
13 float spacing
= B_USE_DEFAULT_SPACING
);
14 BGroupLayout(BMessage
* from
);
15 virtual ~BGroupLayout();
17 float Spacing() const;
18 void SetSpacing(float spacing
);
20 orientation
Orientation() const;
21 void SetOrientation(orientation orientation
);
23 float ItemWeight(int32 index
) const;
24 void SetItemWeight(int32 index
, float weight
);
26 virtual BLayoutItem
* AddView(BView
* child
);
27 virtual BLayoutItem
* AddView(int32 index
, BView
* child
);
28 virtual BLayoutItem
* AddView(BView
* child
, float weight
);
29 virtual BLayoutItem
* AddView(int32 index
, BView
* child
,
32 virtual bool AddItem(BLayoutItem
* item
);
33 virtual bool AddItem(int32 index
, BLayoutItem
* item
);
34 virtual bool AddItem(BLayoutItem
* item
, float weight
);
35 virtual bool AddItem(int32 index
, BLayoutItem
* item
,
38 virtual status_t
Archive(BMessage
* into
, bool deep
= true) const;
39 static BArchivable
* Instantiate(BMessage
* from
);
41 virtual status_t
Perform(perform_code d
, void* arg
);
44 virtual status_t
AllArchived(BMessage
* into
) const;
45 virtual status_t
AllUnarchived(const BMessage
* from
);
46 virtual status_t
ItemArchived(BMessage
* into
, BLayoutItem
* item
,
48 virtual status_t
ItemUnarchived(const BMessage
* from
,
49 BLayoutItem
* item
, int32 index
);
51 virtual bool ItemAdded(BLayoutItem
* item
, int32 atIndex
);
52 virtual void ItemRemoved(BLayoutItem
* item
, int32 fromIndex
);
54 virtual void PrepareItems(orientation orientation
);
56 virtual int32
InternalCountColumns();
57 virtual int32
InternalCountRows();
58 virtual void GetColumnRowConstraints(
59 orientation orientation
,
61 ColumnRowConstraints
* constraints
);
62 virtual void GetItemDimensions(BLayoutItem
* item
,
63 Dimensions
* dimensions
);
68 virtual void _ReservedGroupLayout1();
69 virtual void _ReservedGroupLayout2();
70 virtual void _ReservedGroupLayout3();
71 virtual void _ReservedGroupLayout4();
72 virtual void _ReservedGroupLayout5();
73 virtual void _ReservedGroupLayout6();
74 virtual void _ReservedGroupLayout7();
75 virtual void _ReservedGroupLayout8();
76 virtual void _ReservedGroupLayout9();
77 virtual void _ReservedGroupLayout10();
80 BGroupLayout(const BGroupLayout
&);
81 void operator =(const BGroupLayout
&);
83 struct ItemLayoutData
;
85 ItemLayoutData
* _LayoutDataForItem(BLayoutItem
* item
) const;
87 orientation fOrientation
;
93 #endif // _GROUP_LAYOUT_H