You.i Engine
YiGridLayout.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_GRID_LAYOUT_H_
3 #define _YI_GRID_LAYOUT_H_
4 
6 
172 {
173 public:
179  {
180  AUTOMATIC = 0,
189  };
190 
197  {
201  };
202 
203  CYIGridLayout();
204  virtual ~CYIGridLayout();
205 
213  void SetSpacing(float fSpacing);
214  float GetSpacing() const;
215 
219  void SetRowsCount(uint32_t uRows);
220  uint32_t GetRowsCount() const;
221 
225  void SetColumnsCount(uint32_t uColumns);
226  uint32_t GetColumnsCount() const;
227 
231  void SetUseUniformRows(bool bUseUniformRows);
232  bool IsUsingUniformRows() const;
233 
237  void SetUseUniformColumns(bool bUseUniformColumns);
238  bool IsUsingUniformColumns() const;
239 
243  void SetUseTableCells(bool bUseTableCells);
244  bool IsUsingTableCells() const;
245 
250  void SetFillOrder(FILL_ORDER eOrder);
251  FILL_ORDER GetFillOrder() const;
252 
256  void SetPackMode(PACK_MODE eMode);
257  PACK_MODE GetPackMode() const;
258 
259 protected:
260  virtual void Configure() override;
261 
262  virtual void OnMeasure(const CYISceneNode::MeasureSpec &widthSpec, const CYISceneNode::MeasureSpec &heightSpec, const CYISceneNode::MeasureSpec &depthSpec) override;
263 
264  virtual void OnApplyMeasurements() override;
265 
266  virtual const CYIRuntimeTypeInfo &GetLayoutConfigType() const override;
267 
268  float m_fSpacing;
269  uint32_t m_uRows;
270  uint32_t m_uColumns;
276 
277 private:
278  void *m_pOpaqueMeasurementData;
279 
281 };
282 
289 {
290 public:
292  virtual ~CYIGridLayoutConfig();
293 
294  virtual void ConfigureFrom(const IYIPropertiesSource *pSource) override;
295 
301  void SetCellWidth(uint32_t uWidth);
302  uint32_t GetCellWidth() const;
303 
309  void SetCellHeight(uint32_t uHeight);
310  uint32_t GetCellHeight() const;
311 
312 protected:
313  uint32_t m_uCellWidth;
314  uint32_t m_uCellHeight;
315 
317 };
318 
321 #endif // _YI_GRID_LAYOUT_H_
float m_fSpacing
Definition: YiGridLayout.h:268
uint32_t m_uCellWidth
Definition: YiGridLayout.h:313
A class used to hold per-child layout configuration for CYIAnimatingLayout layouts.
Definition: YiAnimatingLayout.h:156
Start in top-left corner and fill row-by-row.
Definition: YiGridLayout.h:181
virtual void OnApplyMeasurements() override
bool m_bUniformColumns
Definition: YiGridLayout.h:272
Definition: YiSceneNode.h:356
Start in bottom-left corner and fill row-by-row.
Definition: YiGridLayout.h:185
Start in top-left corner and fill column-by-column.
Definition: YiGridLayout.h:182
uint32_t m_uCellHeight
Definition: YiGridLayout.h:314
Places items in the next position which minimizes its y position. Reduces gaps when non-1x1 items are...
Definition: YiGridLayout.h:199
virtual void Configure() override
void SetFillOrder(FILL_ORDER eOrder)
uint32_t GetColumnsCount() const
uint32_t GetRowsCount() const
Start in bottom-right corner and fill row-by-row.
Definition: YiGridLayout.h:187
PACK_MODE GetPackMode() const
void SetColumnsCount(uint32_t uColumns)
#define YI_TYPE_BASES(...)
Definition: YiRtti.h:350
PACK_MODE
Definition: YiGridLayout.h:196
A layout that positions items in a grid.
Definition: YiGridLayout.h:171
bool IsUsingUniformRows() const
Start in bottom-left corner and fill column-by-column.
Definition: YiGridLayout.h:186
void SetRowsCount(uint32_t uRows)
bool IsUsingUniformColumns() const
uint32_t m_uRows
Definition: YiGridLayout.h:269
FILL_ORDER GetFillOrder() const
Places items in the first position that can fit them. Significantly reduces gaps when non-1x1 items a...
Definition: YiGridLayout.h:200
void SetUseUniformRows(bool bUseUniformRows)
bool IsUsingTableCells() const
FILL_ORDER m_eFillOrder
Definition: YiGridLayout.h:274
bool m_bTableCells
Definition: YiGridLayout.h:273
Places items row-by-row, wrapping to another row when the row is full. Leaves gaps when non-1x1 items...
Definition: YiGridLayout.h:198
PACK_MODE m_ePackMode
Definition: YiGridLayout.h:275
A class used to hold per-child layout configuration for CYIGridLayout layouts.
Definition: YiGridLayout.h:288
Start in top-right corner and fill column-by-column.
Definition: YiGridLayout.h:184
The abstract runtime representation of a C++ type.
Definition: YiRtti.h:48
bool m_bUniformRows
Definition: YiGridLayout.h:271
A layout that can animate its children's position and size.
Definition: YiAnimatingLayout.h:67
void SetUseTableCells(bool bUseTableCells)
An interface to a class that provides key-value properties.
Definition: YiPropertiesSource.h:17
uint32_t m_uColumns
Definition: YiGridLayout.h:270
virtual ~CYIGridLayout()
Use CYIGridLayout::LEFT_TOP_TO_BOTTOM when the number of rows is fixed, use CYIGridLayout::TOP_LEFT_T...
Definition: YiGridLayout.h:180
void SetUseUniformColumns(bool bUseUniformColumns)
void SetSpacing(float fSpacing)
Start in top-right corner and fill row-by-row.
Definition: YiGridLayout.h:183
virtual void OnMeasure(const CYISceneNode::MeasureSpec &widthSpec, const CYISceneNode::MeasureSpec &heightSpec, const CYISceneNode::MeasureSpec &depthSpec) override
void SetPackMode(PACK_MODE eMode)
virtual const CYIRuntimeTypeInfo & GetLayoutConfigType() const override
FILL_ORDER
Definition: YiGridLayout.h:178
Start in bottom-right corner and fill column-by-column.
Definition: YiGridLayout.h:188
float GetSpacing() const