Add system_time to the Jamfile, missed in hrev49598.
[haiku.git] / headers / libs / alm / ALMGroup.h
blob7889588a6dcbcc5a3c89236f929de037ea7260b1
1 /*
2 * Copyright 2012, Haiku, Inc. All rights reserved.
3 * Copyright 2010, Clemens Zeidler <haiku@clemens-zeidler.de>
4 * Distributed under the terms of the MIT License.
5 */
6 #ifndef ALMGROUP_H
7 #define ALMGROUP_H
10 #include <vector>
12 #include <InterfaceDefs.h> // for enum orientation
13 #include <Referenceable.h>
15 #include "Tab.h"
18 class BLayoutItem;
19 class BView;
22 namespace BALM {
24 class BALMLayout;
27 class ALMGroup {
28 public:
29 ALMGroup(BLayoutItem* item);
30 ALMGroup(BView* view);
32 BLayoutItem* LayoutItem() const;
33 BView* View() const;
35 const std::vector<ALMGroup>& Groups() const;
36 enum orientation Orientation() const;
38 ALMGroup& operator|(const ALMGroup& right);
39 ALMGroup& operator/(const ALMGroup& bottom);
41 void BuildLayout(BALMLayout* layout,
42 XTab* left = NULL, YTab* top = NULL,
43 XTab* right = NULL, YTab* bottom = NULL);
45 private:
46 ALMGroup();
48 void _Init(BLayoutItem* item, BView* view,
49 enum orientation orien = B_HORIZONTAL);
50 ALMGroup& _AddItem(const ALMGroup& item,
51 enum orientation orien);
53 void _Build(BALMLayout* layout,
54 BReference<XTab> left, BReference<YTab> top,
55 BReference<XTab> right,
56 BReference<YTab> bottom) const;
59 BLayoutItem* fLayoutItem;
60 BView* fView;
62 std::vector<ALMGroup> fGroups;
63 enum orientation fOrientation;
65 uint32 _reserved[4];
72 using BALM::ALMGroup;
74 #endif