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