24#include <boost/pool/pool_alloc.hpp>
46 struct item_already_added : std::logic_error { item_already_added() : std::logic_error(
"neogfx::layout::item_already_added") {} };
47 struct widget_is_floating : std::logic_error { widget_is_floating() : std::logic_error(
"neogfx::layout::widget_is_floating") {} };
61 template <
typename SpecializedPolicy>
63 template <
typename Layout>
65 template <
typename Layout>
160 template <typename AxisPolicy>
162 template <typename AxisPolicy>
164 template <typename AxisPolicy>
175 bool iAlwaysUseSpacing;
i_layout_item & add_at(layout_item_index aPosition, i_layout_item &aItem) override
void remove_at(layout_item_index aIndex) override
visibility_constraint child_visibility() const override
item_list::const_reverse_iterator rend() const
item_list::const_reverse_iterator rbegin() const
bool enabled() const override
bool visible() const override
item_list::const_iterator end() const
bool is_widget_at(layout_item_index aIndex) const override
bool always_use_spacing() const override
void remove_all() override
optional_layout_item_index find(const i_layout_item &aItem) const override
void set_spacing(optional_size const &aSpacing, bool aUpdateLayout=true) override
const i_layout_item & item_at(layout_item_index aIndex) const override
item_list::const_iterator begin() const
const i_device_metrics & device_metrics() const override
void set_parent_layout(i_layout *aParentLayout) final
bool has_parent_layout() const final
void layout_item_enabled(i_layout_item &aItem) override
const i_layout & get_layout_at(layout_item_index aIndex) const override
bool has_spacing() const override
bool remove(i_layout_item &aItem) override
void layout_as(const point &aPosition, const size &aSize) override
bool has_parent_widget() const final
void fix_weightings(bool aRecalculate=true) override
ref_ptr< i_layout_item_cache > item
layout(optional_alignment const &aAlignment={})
layout(const layout &)=delete
bool invalidated() const override
const item_list & items() const
neogfx::size_policy size_policy() const override
void move_all_to(i_layout &aDestination) override
const i_widget & get_widget_at(layout_item_index aIndex) const override
void set_parent_widget(i_widget *aParentWidget) final
layout(i_layout &aParent, optional_alignment const &aAlignment={})
layout_item_index index_of(const i_layout_item &aItem) const override
uint32_t items_visible(item_type_e aItemType=static_cast< item_type_e >(ItemTypeWidget|ItemTypeLayout)) const
item_list::const_iterator cbegin() const
uint32_t spacer_count() const
bool ignore_child_visibility() const override
layout(i_widget &aOwner, optional_alignment const &aAlignment={})
void set_ignore_child_visibility(bool aIgnoreChildVisibility) override
const i_layout & parent_layout() const final
layout_direction direction() const override
item_list::const_iterator find_item(const i_layout_item &aItem) const
std::list< item > item_list
void layout_item_disabled(i_layout_item &aItem) override
void do_layout_items(const point &aPosition, const size &aSize)
void set_alignment(optional_alignment const &aAlignment, bool aUpdateLayout=true) override
void set_autoscale(neogfx::autoscale aAutoscale, bool aUpdateLayout=true) override
bool has_alignment() const override
void invalidate(bool aDeferLayout=true) override
layout_item_index count() const override
size spacing() const override
bool device_metrics_available() const override
void set_extents(const size &aExtents) override
size do_maximum_size(optional_size const &aAvailableSpace) const
item_list::const_iterator cend() const
size do_minimum_size(optional_size const &aAvailableSpace) const
void set_always_use_spacing(bool aAlwaysUseSpacing) override
const i_widget & parent_widget() const final
uint32_t layout_item_index
std::optional< layout_item_index > optional_layout_item_index
#define define_declared_event(name, declName,...)