1/*
2 * Copyright 2006 - 2010, Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef	COLUMN_H
6#define	COLUMN_H
7
8
9#include <ObjectList.h>
10#include <Referenceable.h>
11
12
13namespace LinearProgramming {
14	class Constraint;
15	class LinearSpec;
16};
17
18
19namespace BPrivate {
20	class SharedSolver;
21};
22
23
24namespace BALM {
25
26
27class Area;
28class BALMLayout;
29class RowColumnManager;
30class XTab;
31class YTab;
32
33
34/**
35 * Represents a column defined by two x-tabs.
36 */
37class Column {
38public:
39								~Column();
40
41			XTab*				Left() const;
42			XTab*				Right() const;
43
44private:
45	friend class BALMLayout;
46	friend class BALM::RowColumnManager;
47	friend class BPrivate::SharedSolver;
48
49								Column(LinearProgramming::LinearSpec* ls,
50									XTab* left, XTab* right);
51
52			BReference<XTab>	fLeft;
53			BReference<XTab>	fRight;
54
55			LinearProgramming::LinearSpec* fLS;
56			LinearProgramming::Constraint* fPrefSizeConstraint;
57				// managed by RowColumnManager
58
59			BObjectList<Area>	fAreas;
60};
61
62}	// namespace BALM
63
64using BALM::Column;
65
66#endif	// COLUMN_H
67