gameui

annotate src/boolanm.h @ 5:5a84873185ff

rudimentary theme plugin system and other minor fixes
author John Tsiombikas <nuclear@member.fsf.org>
date Sat, 22 Mar 2014 01:50:01 +0200
parents e5b1525084f7
children
rev   line source
nuclear@2 1 #ifndef BOOLANIM_H_
nuclear@2 2 #define BOOLANIM_H_
nuclear@2 3
nuclear@2 4 class BoolAnim {
nuclear@2 5 private:
nuclear@2 6 mutable float value;
nuclear@2 7 mutable float trans_dir; // transition direction (sign)
nuclear@2 8 long trans_start; // transition start time
nuclear@2 9 long trans_dur;
nuclear@2 10
nuclear@2 11 long (*get_msec)();
nuclear@2 12
nuclear@2 13 void update(long tm) const;
nuclear@2 14
nuclear@2 15 public:
nuclear@2 16 BoolAnim(bool st = false);
nuclear@2 17
nuclear@2 18 void set_transition_duration(long dur);
nuclear@2 19 void set_time_callback(long (*time_func)());
nuclear@2 20
nuclear@3 21 void set(bool st);
nuclear@3 22
nuclear@2 23 void change(bool st);
nuclear@2 24 void change(bool st, long trans_start);
nuclear@2 25
nuclear@2 26 bool get_state() const;
nuclear@2 27 bool get_state(long tm) const;
nuclear@2 28
nuclear@2 29 float get_value() const;
nuclear@2 30 float get_value(long tm) const;
nuclear@2 31
nuclear@2 32 // transition direction (-1, 0, 1)
nuclear@2 33 float get_dir() const;
nuclear@2 34 float get_dir(long tm) const;
nuclear@2 35
nuclear@2 36 operator bool() const; // equivalent to get_state
nuclear@2 37 operator float() const; // equivalent to get_value
nuclear@2 38 };
nuclear@2 39
nuclear@2 40 #endif // BOOLANIM_H_