29#ifndef PT_FORMS_TABLELAYOUT_H
30#define PT_FORMS_TABLELAYOUT_H
32#include <Pt/Forms/Api.h>
33#include <Pt/Forms/Layout.h>
40class PT_FORMS_API TableLayout :
public Layout
55 virtual ~TableLayout();
57 void addItem(Control& control, std::size_t row, std::size_t column);
59 void removeItem(Control& control);
61 void setColumn(std::size_t col, SizeMode mode,
double size = 0);
63 void setRow(std::size_t row, SizeMode mode,
double size = 0);
66 virtual void onRemoveControl(Control& control);
68 virtual Gfx::SizeF onMeasure(
const SizePolicy& policy);
70 virtual void onLayout(
const Gfx::RectF& rect);
81 SizeInfo(SizeMode m,
double size)
92 void setSize(
double s)
100 std::vector<SizeInfo> _columnSizes;
101 std::vector<SizeInfo> _rowSizes;
103 typedef std::vector<Control*> Row;
104 std::vector<Row> _rows;
212 SizeInfo(SizeMode m,
double size)
217 SizeMode mode()
const
228 typedef std::vector<Control*> Row;
230 Control* cell(std::size_t row, std::size_t column)
const;
232 SizeMode columnMode(std::size_t column)
const;
234 SizeMode rowMode(std::size_t row)
const;
236 void measureItem(Control& item,
242 void computeTracks(std::vector<double>& tracks,
243 const std::vector<SizeInfo>& infos,
246 bool horizontal)
const;
249 std::vector<SizeInfo> _columnSizes;
250 std::vector<SizeInfo> _rowSizes;
251 std::vector<Row> _rows;
Core module.
Definition Allocator.h:33