istereo2
diff libs/goatkit/screen.cc @ 15:7bd4264bf74a
gui done?
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Wed, 30 Sep 2015 04:41:21 +0300 |
parents | 3bccfc7d10fe |
children |
line diff
1.1 --- a/libs/goatkit/screen.cc Tue Sep 29 01:11:54 2015 +0300 1.2 +++ b/libs/goatkit/screen.cc Wed Sep 30 04:41:21 2015 +0300 1.3 @@ -21,13 +21,14 @@ 1.4 #include <vector> 1.5 #include "screen.h" 1.6 #include "widget.h" 1.7 +#include "boolanm.h" 1.8 1.9 #define MAX_BUTTONS 16 1.10 1.11 namespace goatkit { 1.12 1.13 struct ScreenImpl { 1.14 - bool visible; 1.15 + BoolAnim visible; 1.16 std::vector<Widget*> widgets; 1.17 BBox box; 1.18 1.19 @@ -137,7 +138,7 @@ 1.20 1.21 void Screen::show() 1.22 { 1.23 - scr->visible = true; 1.24 + scr->visible.change(true); 1.25 1.26 for(size_t i=0; i<scr->widgets.size(); i++) { 1.27 scr->widgets[i]->show(); 1.28 @@ -146,7 +147,7 @@ 1.29 1.30 void Screen::hide() 1.31 { 1.32 - scr->visible = false; 1.33 + scr->visible.change(false); 1.34 1.35 for(size_t i=0; i<scr->widgets.size(); i++) { 1.36 scr->widgets[i]->hide(); 1.37 @@ -158,6 +159,24 @@ 1.38 return scr->visible; 1.39 } 1.40 1.41 +float Screen::get_visibility() const 1.42 +{ 1.43 + return scr->visible.get_value(); 1.44 +} 1.45 + 1.46 +void Screen::set_visibility_transition(long msec) 1.47 +{ 1.48 + scr->visible.set_transition_duration(msec); 1.49 + for(size_t i=0; i<scr->widgets.size(); i++) { 1.50 + scr->widgets[i]->set_visibility_transition(msec); 1.51 + } 1.52 +} 1.53 + 1.54 +long Screen::get_visibility_transition() const 1.55 +{ 1.56 + return scr->visible.get_transition_duration(); 1.57 +} 1.58 + 1.59 bool Screen::grab_mouse(Widget *w) 1.60 { 1.61 if(!scr->mgrab || !w) {