]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/button.cpp
Support loading Buttons from datafiles
[libs/gltk.git] / source / button.cpp
index 2c8bedb17c17a34e45be58003caac18067e2d843..543782e8306a448e616377b6d435c01ee185b218 100644 (file)
@@ -26,12 +26,26 @@ void Button::button_release(int x, int y, unsigned btn)
 {
        if(btn==1)
        {
-               state=NORMAL;
                if(geom.is_inside(x, y))
+               {
                        signal_clicked.emit();
+                       state=HOVER;
+               }
+               else
+                       state=NORMAL;
        }
 }
 
+void Button::pointer_enter()
+{
+       state=HOVER;
+}
+
+void Button::pointer_leave()
+{
+       state=NORMAL;
+}
+
 void Button::render_part(const Part &part) const
 {
        if(part.get_name()=="text")
@@ -40,5 +54,17 @@ void Button::render_part(const Part &part) const
                Widget::render_part(part);
 }
 
+
+Button::Loader::Loader(Button &btn):
+       Widget::Loader(btn)
+{
+       add("text", &Button::text);
+}
+
+Button &Button::Loader::get_object() const
+{
+       return static_cast<Button &>(wdg);
+}
+
 } // namespace GLtk
 } // namespace Msp