]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/toggle.cpp
Change State into a bitmask to allow more fine-grained control of styles
[libs/gltk.git] / source / toggle.cpp
index 1495344219f89013e790636e4d621f21e8399013..dd6ce359cad95ef691884b1e67128fcebafb81be 100644 (file)
@@ -22,7 +22,10 @@ Toggle::Toggle(const Resources &r):
 void Toggle::set_value(bool v)
 {
        value=v;
-       state=(value ? ACTIVE : HOVER);
+       if(value)
+               state|=ACTIVE;
+       else
+               state&=~ACTIVE;
 }
 
 void Toggle::button_press(int, int, unsigned btn)
@@ -40,25 +43,11 @@ void Toggle::button_release(int x, int y, unsigned btn)
                        set_value(!value);
                        signal_toggled.emit(value);
                }
-               else
-                       state=NORMAL;
 
                pressed=false;
        }
 }
 
-void Toggle::pointer_enter()
-{
-       if(!value)
-               state=HOVER;
-}
-
-void Toggle::pointer_leave()
-{
-       if(!value)
-               state=NORMAL;
-}
-
 void Toggle::render_special(const Part &part) const
 {
        if(part.get_name()=="text")
@@ -81,7 +70,10 @@ Toggle &Toggle::Loader::get_object() const
 void Toggle::Loader::finish()
 {
        Toggle &tgl=static_cast<Toggle &>(wdg);
-       tgl.state=(tgl.value ? ACTIVE : NORMAL);
+       if(tgl.value)
+               tgl.state|=ACTIVE;
+       else
+               tgl.state&=~ACTIVE;
 }
 
 } // namespace GLtk