Implement default ui::selector
This commit is contained in:
parent
83cb71d2c0
commit
3d2c03c1b4
2 changed files with 23 additions and 0 deletions
|
|
@ -22,6 +22,7 @@ namespace psemek::ui
|
||||||
std::shared_ptr<spinbox> make_spinbox() override;
|
std::shared_ptr<spinbox> make_spinbox() override;
|
||||||
std::shared_ptr<button> make_arrow_button(int direction) override;
|
std::shared_ptr<button> make_arrow_button(int direction) override;
|
||||||
std::shared_ptr<scroller> make_scroller() override;
|
std::shared_ptr<scroller> make_scroller() override;
|
||||||
|
std::shared_ptr<selector> make_selector() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
psemek_declare_pimpl
|
psemek_declare_pimpl
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@
|
||||||
#include <psemek/ui/container.hpp>
|
#include <psemek/ui/container.hpp>
|
||||||
#include <psemek/ui/grid_layout.hpp>
|
#include <psemek/ui/grid_layout.hpp>
|
||||||
#include <psemek/ui/scroller.hpp>
|
#include <psemek/ui/scroller.hpp>
|
||||||
|
#include <psemek/ui/selector.hpp>
|
||||||
|
|
||||||
#include <psemek/io/memory_stream.hpp>
|
#include <psemek/io/memory_stream.hpp>
|
||||||
|
|
||||||
|
|
@ -746,6 +747,22 @@ namespace psemek::ui
|
||||||
button * dec_button_;
|
button * dec_button_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct selector_impl
|
||||||
|
: selector
|
||||||
|
{
|
||||||
|
void draw(painter & p) const override
|
||||||
|
{
|
||||||
|
auto st = merged_own_style();
|
||||||
|
|
||||||
|
p.draw_rect(shape().bbox(), *st->bg_color);
|
||||||
|
|
||||||
|
if (auto i = selected())
|
||||||
|
{
|
||||||
|
p.draw_rect(item_box(*i), *st->highlight_color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct default_element_factory::impl
|
struct default_element_factory::impl
|
||||||
|
|
@ -812,4 +829,9 @@ namespace psemek::ui
|
||||||
return std::make_shared<scroller>();
|
return std::make_shared<scroller>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<selector> default_element_factory::make_selector()
|
||||||
|
{
|
||||||
|
return std::make_shared<selector_impl>();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue