sf::Vector2f Table::GetRequisitionImpl() const { sf::Vector2f size( 0.f, 0.f ); // Update requisitions. UpdateRequisitions(); // Count allocations of columns. TableOptionsArray::const_iterator column_iter( m_columns.begin() ); TableOptionsArray::const_iterator column_iter_end( m_columns.end() ); for( ; column_iter != column_iter_end; ++column_iter ) { size.x += column_iter->requisition; } // Count allocations of rows. TableOptionsArray::const_iterator row_iter( m_rows.begin() ); TableOptionsArray::const_iterator row_iter_end( m_rows.end() ); for( ; row_iter != row_iter_end; ++row_iter ) { size.y += row_iter->requisition; } AllocateChildrenSizes(); return size; }
void Table::SetRowSpacing( std::size_t index, float spacing ) { if( index >= m_rows.size() ) { return; } m_rows[index].spacing = spacing; UpdateRequisitions(); RequestResize(); }
void Table::SetColumnSpacings( float spacing ) { for( std::size_t column_index = 0; column_index < m_columns.size(); ++column_index ) { m_columns[column_index].spacing = spacing; } m_general_spacings.x = spacing; UpdateRequisitions(); RequestResize(); }
void Table::SetRowSpacings( float spacing ) { for( std::size_t row_index = 0; row_index < m_rows.size(); ++row_index ) { m_rows[row_index].spacing = spacing; } m_general_spacings.y = spacing; UpdateRequisitions(); RequestResize(); }
sf::Vector2f Table::CalculateRequisition() { float gap( Context::Get().GetEngine().GetProperty<float>( "Gap", shared_from_this() ) ); sf::Vector2f size( 2 * gap, 2 * gap ); UpdateRequisitions(); // Count requisitions of columns and rows. for( std::size_t col_idx = 0; col_idx < m_columns.size(); ++col_idx ) { size.x += m_columns[col_idx].requisition; } for( std::size_t row_idx = 0; row_idx < m_rows.size(); ++row_idx ) { size.y += m_rows[row_idx].requisition; } return size; }