Add default ui::edit implementation

This commit is contained in:
Nikita Lisitsa 2022-12-18 21:55:30 +03:00
parent 9ab72a7c1a
commit 852a170c97
2 changed files with 19 additions and 0 deletions

View file

@ -26,6 +26,7 @@ namespace psemek::ui
std::shared_ptr<button> make_arrow_button(int direction) override;
std::shared_ptr<scroller> make_scroller() override;
std::shared_ptr<selector> make_selector() override;
std::shared_ptr<edit> make_edit() override;
private:
psemek_declare_pimpl

View file

@ -11,6 +11,7 @@
#include <psemek/ui/grid_layout.hpp>
#include <psemek/ui/scroller.hpp>
#include <psemek/ui/selector.hpp>
#include <psemek/ui/edit.hpp>
#include <psemek/io/memory_stream.hpp>
@ -783,6 +784,18 @@ namespace psemek::ui
}
};
struct edit_impl
: edit
{
void draw(painter & p) const override
{
auto st = merged_own_style();
p.draw_rect(shape().bbox(), *st->action_color);
edit::draw(p);
}
};
}
struct default_element_factory::impl
@ -859,4 +872,9 @@ namespace psemek::ui
return std::make_shared<selector_impl>();
}
std::shared_ptr<edit> default_element_factory::make_edit()
{
return std::make_shared<edit_impl>();
}
}