1/*
2 * Copyright 2006 - 2010, Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef	ROW_H
6#define	ROW_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 row defined by two y-tabs.
36 */
37class Row {
38public:
39								~Row();
40
41			YTab*				Top() const;
42			YTab*				Bottom() const;
43
44private:
45	friend class BALMLayout;
46	friend class BALM::RowColumnManager;
47	friend class BPrivate::SharedSolver;
48
49								Row(LinearProgramming::LinearSpec* ls,
50										YTab* top, YTab* bottom);
51
52			BReference<YTab>	fTop;
53			BReference<YTab>	fBottom;
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::Row;
65
66#endif	// ROW_H
67