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) {