Add ui::element::transparent attribute

This commit is contained in:
Nikita Lisitsa 2022-04-20 18:46:21 +03:00
parent df963e18a3
commit cabe5721aa
8 changed files with 19 additions and 0 deletions

View file

@ -63,6 +63,8 @@ namespace psemek::ui
virtual void hide() { set_hidden(true); } virtual void hide() { set_hidden(true); }
virtual void show() { set_hidden(false); } virtual void show() { set_hidden(false); }
virtual bool transparent() const { return false; }
virtual std::shared_ptr<struct style const> style() const { return style_; } virtual std::shared_ptr<struct style const> style() const { return style_; }
virtual std::shared_ptr<struct style const> own_style() const { return own_style_; } virtual std::shared_ptr<struct style const> own_style() const { return own_style_; }
virtual std::shared_ptr<struct style const> set_style(std::shared_ptr<struct style const> st); virtual std::shared_ptr<struct style const> set_style(std::shared_ptr<struct style const> st);

View file

@ -25,6 +25,8 @@ namespace psemek::ui
bool on_event(mouse_wheel const & event) override; bool on_event(mouse_wheel const & event) override;
bool on_event(key_press const & event) override; bool on_event(key_press const & event) override;
bool transparent() const override { return true; }
void draw(painter &) const override {} void draw(painter &) const override {}
private: private:

View file

@ -52,6 +52,8 @@ namespace psemek::ui
struct shape const & shape() const override { return shape_; } struct shape const & shape() const override { return shape_; }
void reshape(geom::box<float, 2> const & bbox) override; void reshape(geom::box<float, 2> const & bbox) override;
bool transparent() const override { return true; }
void draw(painter &) const override {} void draw(painter &) const override {}
~grid_layout() override; ~grid_layout() override;

View file

@ -31,6 +31,8 @@ namespace psemek::ui
geom::box<float, 2> size_constraints() const override; geom::box<float, 2> size_constraints() const override;
bool transparent() const override { return true; }
void draw(painter & p) const override; void draw(painter & p) const override;
private: private:

View file

@ -75,6 +75,8 @@ namespace psemek::ui
void style_updated() override; void style_updated() override;
void own_style_updated() override; void own_style_updated() override;
bool transparent() const override { return true; }
void draw(painter & p) const override; void draw(painter & p) const override;
protected: protected:

View file

@ -28,6 +28,8 @@ namespace psemek::ui
virtual void set_position(geom::point<float, 2> const & p, x_align x, y_align y, bool clamp = true); virtual void set_position(geom::point<float, 2> const & p, x_align x, y_align y, bool clamp = true);
bool transparent() const override { return true; }
void draw(ui::painter &) const override {} void draw(ui::painter &) const override {}
private: private:

View file

@ -42,6 +42,8 @@ namespace psemek::ui
geom::box<float, 2> size_constraints() const override; geom::box<float, 2> size_constraints() const override;
bool transparent() const override { return true; }
void draw(painter &) const override {} void draw(painter &) const override {}
~screen() override; ~screen() override;

View file

@ -41,6 +41,11 @@ namespace psemek::ui
return root->size_constraints(); return root->size_constraints();
} }
bool transparent() const override
{
return true;
}
void draw(painter &) const override {} void draw(painter &) const override {}
std::shared_ptr<element> root; std::shared_ptr<element> root;