#ifndef BWIDGETS_LAYOUT_HPP #define BWIDGETS_LAYOUT_HPP #include #include namespace bwidgets { class Layout : public virtual Widget { public: // Add widget to the layout virtual void add_widget(std::shared_ptr) = 0; virtual void do_layout() = 0; // Apply a function to every layout widget. virtual void for_widgets(const std::function&) = 0; virtual void for_widgets(const std::function&) const = 0; virtual void remove_widget(const std::shared_ptr&) = 0; virtual void remove_widget(const Widget*) = 0; }; } #endif