bool checkbox_w::mouse_move( const event &e ) { if ( _tracking ) { if ( contains( e.from_native( e.raw_mouse().x, e.raw_mouse().y ) ) ) _current = !_state; else _current = _state; invalidate(); return true; } return false; }
bool checkbox_w::mouse_release( const event &e ) { if ( e.raw_mouse().button != 1 ) return false; if ( _tracking ) { _tracking = false; if ( contains( e.from_native( e.raw_mouse().x, e.raw_mouse().y ) ) ) set_state( _current ); _current = _state; invalidate(); context::current().release_source( e ); return true; } return false; }