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 13 namespace LinearProgramming { 14 class Constraint; 15 class LinearSpec; 16 }; 17 18 19 namespace BPrivate { 20 class SharedSolver; 21 }; 22 23 24 namespace BALM { 25 26 27 class Area; 28 class BALMLayout; 29 class RowColumnManager; 30 class XTab; 31 class YTab; 32 33 34 /** 35 * Represents a row defined by two y-tabs. 36 */ 37 class Row { 38 public: 39 ~Row(); 40 41 YTab* Top() const; 42 YTab* Bottom() const; 43 44 private: 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 64 using BALM::Row; 65 66 #endif // ROW_H 67