Author: axeld Date: 2011-01-08 17:14:13 +0100 (Sat, 08 Jan 2011) New Revision: 40154 Changeset: http://dev.haiku-os.org/changeset/40154 Modified: haiku/trunk/headers/os/interface/GridLayout.h haiku/trunk/src/kits/interface/GridLayout.cpp Log: * Added ItemAt() method that accepts column and row. Modified: haiku/trunk/headers/os/interface/GridLayout.h =================================================================== --- haiku/trunk/headers/os/interface/GridLayout.h 2011-01-08 15:03:58 UTC (rev 40153) +++ haiku/trunk/headers/os/interface/GridLayout.h 2011-01-08 16:14:13 UTC (rev 40154) @@ -1,10 +1,11 @@ /* - * Copyright 2006-2010, Haiku, Inc. All rights reserved. + * Copyright 2006-2011, Haiku, Inc. All rights reserved. * Distributed under the terms of the MIT License. */ #ifndef _GRID_LAYOUT_H #define _GRID_LAYOUT_H + #include <TwoDimensionalLayout.h> @@ -44,6 +45,8 @@ float MaxRowHeight(int32 row) const; void SetMaxRowHeight(int32 row, float height); + BLayoutItem* ItemAt(int32 column, int32 row) const; + virtual BLayoutItem* AddView(BView* child); virtual BLayoutItem* AddView(int32 index, BView* child); virtual BLayoutItem* AddView(BView* child, int32 column, int32 row, @@ -63,13 +66,13 @@ virtual status_t ItemUnarchived(const BMessage* from, BLayoutItem* item, int32 index); -protected: +protected: virtual bool ItemAdded(BLayoutItem* item, int32 atIndex); virtual void ItemRemoved(BLayoutItem* item, int32 fromIndex); virtual bool HasMultiColumnItems(); virtual bool HasMultiRowItems(); - + virtual int32 InternalCountColumns(); virtual int32 InternalCountRows(); virtual void GetColumnRowConstraints( @@ -79,11 +82,11 @@ virtual void GetItemDimensions(BLayoutItem* item, Dimensions* dimensions); -private: +private: class DummyLayoutItem; class RowInfoArray; struct ItemLayoutData; - + bool _IsGridCellEmpty(int32 column, int32 row); bool _AreGridCellsEmpty(int32 column, int32 row, int32 columnCount, int32 rowCount); @@ -105,4 +108,5 @@ int32 fMultiRowItems; }; + #endif // _GRID_LAYOUT_H Modified: haiku/trunk/src/kits/interface/GridLayout.cpp =================================================================== --- haiku/trunk/src/kits/interface/GridLayout.cpp 2011-01-08 15:03:58 UTC (rev 40153) +++ haiku/trunk/src/kits/interface/GridLayout.cpp 2011-01-08 16:14:13 UTC (rev 40154) @@ -1,5 +1,5 @@ /* - * Copyright 2010, Haiku Inc. + * Copyright 2010-2011, Haiku Inc. * Copyright 2006, Ingo Weinhold <bonefish@xxxxxxxxxxxxxxx>. * All rights reserved. Distributed under the terms of the MIT License. */ @@ -373,6 +373,17 @@ BLayoutItem* +BGridLayout::ItemAt(int32 column, int32 row) const +{ + if (column < 0 || column >= CountColumns() + || row < 0 || row >= CountRows()) + return NULL; + + return fGrid[column][row]; +} + + +BLayoutItem* BGridLayout::AddView(BView* child) { return BTwoDimensionalLayout::AddView(child);