8 #include <SFML/Graphics/Rect.hpp>     9 #include <SFML/Graphics/RenderTexture.hpp>    10 #include <SFML/Graphics/View.hpp>    11 #include <SFML/System/Vector2.hpp>    12 #include <SFML/Window/Event.hpp>    14 #include <NasNas/core/data/ShaderHolder.hpp>    15 #include <NasNas/core/graphics/Renderable.hpp>    16 #include <NasNas/ui/Style.hpp>    17 #include <NasNas/ui/Widget.hpp>    25         auto addWidget() -> T&;
    27         void setSize(
float x, 
float y);
    28         void setSize(
const sf::Vector2f& size);
    29         auto getSize() 
const -> sf::Vector2f;
    31         auto getGlobalBounds() 
const -> sf::FloatRect 
override;
    32         auto contains(
const sf::Vector2f& pos) 
const -> 
bool override;
    34         void onEvent(
const sf::Event& event);
    35         void render() 
override;
    38         auto transformPosition(
const sf::Vector2f& position) 
const -> sf::Vector2f;
    39         auto getWidgetUnder(
const sf::Vector2f& position) 
const -> 
Widget*;
    40         void draw(sf::RenderTarget& target, sf::RenderStates states) 
const override;
    42         std::vector<std::unique_ptr<Widget>> m_widgets;
    43         Widget* m_hovered_widget = 
nullptr;
    44         std::vector<Widget*> m_touched_widgets;
    47         sf::RenderTexture m_render_texture;
    51     auto Container::addWidget() -> T& {
    52         auto* new_widget = 
new T();
    53         new_widget->m_root = m_root;
    54         new_widget->m_parent = 
this;
    55         m_widgets.emplace_back(new_widget);