istereo2
diff libs/goatkit/boolanm.h @ 6:3bccfc7d10fe
goatkit is drawing
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Wed, 23 Sep 2015 05:44:58 +0300 |
parents | |
children | 018f997dc646 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/libs/goatkit/boolanm.h Wed Sep 23 05:44:58 2015 +0300 1.3 @@ -0,0 +1,57 @@ 1.4 +/* 1.5 +GoatKit - a themable/animated widget toolkit for games 1.6 +Copyright (C) 2014 John Tsiombikas <nuclear@member.fsf.org> 1.7 + 1.8 +This program is free software: you can redistribute it and/or modify 1.9 +it under the terms of the GNU Lesser General Public License as published by 1.10 +the Free Software Foundation, either version 3 of the License, or 1.11 +(at your option) any later version. 1.12 + 1.13 +This program is distributed in the hope that it will be useful, 1.14 +but WITHOUT ANY WARRANTY; without even the implied warranty of 1.15 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1.16 +GNU Lesser General Public License for more details. 1.17 + 1.18 +You should have received a copy of the GNU Lesser General Public License 1.19 +along with this program. If not, see <http://www.gnu.org/licenses/>. 1.20 +*/ 1.21 +#ifndef BOOLANIM_H_ 1.22 +#define BOOLANIM_H_ 1.23 + 1.24 +class BoolAnim { 1.25 +private: 1.26 + mutable float value; 1.27 + mutable float trans_dir; // transition direction (sign) 1.28 + long trans_start; // transition start time 1.29 + long trans_dur; 1.30 + 1.31 + long (*get_msec)(); 1.32 + 1.33 + void update(long tm) const; 1.34 + 1.35 +public: 1.36 + BoolAnim(bool st = false); 1.37 + 1.38 + void set_transition_duration(long dur); 1.39 + void set_time_callback(long (*time_func)()); 1.40 + 1.41 + void set(bool st); 1.42 + 1.43 + void change(bool st); 1.44 + void change(bool st, long trans_start); 1.45 + 1.46 + bool get_state() const; 1.47 + bool get_state(long tm) const; 1.48 + 1.49 + float get_value() const; 1.50 + float get_value(long tm) const; 1.51 + 1.52 + // transition direction (-1, 0, 1) 1.53 + float get_dir() const; 1.54 + float get_dir(long tm) const; 1.55 + 1.56 + operator bool() const; // equivalent to get_state 1.57 + operator float() const; // equivalent to get_value 1.58 +}; 1.59 + 1.60 +#endif // BOOLANIM_H_