]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/widget.cpp
Add protected functions for manipulating widget state
[libs/gltk.git] / source / widget.cpp
index 643331602b16069863d03e905bb17f455a12f695..b10b6b560d8226cd9e1ddd68cef905e7189cc0bf 100644 (file)
@@ -134,6 +134,11 @@ void Widget::set_focus()
        signal_request_focus.emit();
 }
 
+void Widget::set_state(State mask, State bits)
+{
+       state = (state&~mask)|bits;
+}
+
 void Widget::render() const
 {
        if(!style)
@@ -157,22 +162,22 @@ void Widget::render() const
 
 void Widget::pointer_enter()
 {
-       state |= HOVER;
+       set_state(HOVER);
 }
 
 void Widget::pointer_leave()
 {
-       state &= ~HOVER;
+       clear_state(HOVER);
 }
 
 void Widget::focus_in()
 {
-       state |= FOCUS;
+       set_state(FOCUS);
 }
 
 void Widget::focus_out()
 {
-       state &= ~FOCUS;
+       clear_state(FOCUS);
 }