Button::Button(const Resources &r, const std::string &t):
Widget(r),
+ text(style),
icon(0),
pressed(false)
{
- set_text(t);
update_style();
+ set_text(t);
}
void Button::set_text(const std::string &t)
{
if(pressed && btn==1)
{
- if(geom.is_inside_relative(x, y))
- signal_clicked.emit();
-
state&=~ACTIVE;
pressed=false;
+
+ if(geom.is_inside_relative(x, y))
+ signal_clicked.emit();
}
}
void Button::render_special(const Part &part) const
{
if(part.get_name()=="text")
- render_text(part, text);
+ text.render(part, geom);
if(part.get_name()=="icon" && icon)
{
Geometry rgeom;
}
}
+void Button::on_style_change()
+{
+ text.update_style();
+}
+
Button::Loader::Loader(Button &btn):
Widget::Loader(btn)
{
- add("text", &Button::text);
+ add("text", &Loader::text);
}
-Button &Button::Loader::get_object() const
+void Button::Loader::text(const std::string &t)
{
- return static_cast<Button &>(wdg);
+ static_cast<Button &>(wdg).text=t;
}
} // namespace GLtk