/usr/include/Nux-4.0/Nux/Timeline.h is in libnux-4.0-dev 4.0.8+16.04.20160209-0ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | /*
* Copyright (C) 2010 Canonical, Ltd.
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License
* version 3.0 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3.0 for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* <http://www.gnu.org/licenses/>.
*
* Authored by Gordon Allott <gord.allott@canonical.com>
*/
#ifndef TIMELINE_H
#define TIMELINE_H
namespace nux
{
class Timeline : public Object
{
public:
Timeline(unsigned int msecs, const char *Caption, NUX_FILE_LINE_DECL);
~Timeline();
void Stop();
void Start();
void Pause();
void Rewind();
double GetProgress(); //ranges from 0.0 -> 1.0
virtual double GetEasing(); // override to provide easing values
void DoTick(unsigned long msecs); // If you use this, you make baby kittens cry
bool Looping;
unsigned long Duration;
bool IsPlaying;
sigc::signal <void, unsigned long> NewFrame;
sigc::signal <void> Completed;
sigc::signal <void> Started;
sigc::signal <void> Paused;
protected:
unsigned long _ElapsedTime;
};
// template <typename T>
// class PropertyAnimationContainer
// {
// };
// class AnimatedPropertyBase
// {
// public:
// AnimatedPropertyBase(){};
// virtual void Animate(float t){};
// };
// // Explicit specialization. The explicit type could be float, int, Color....
// template <>
// class PropertyAnimationContainer<float> : public AnimatedPropertyBase
// {
// public:
// PropertyAnimationContainer(Property<float>& prop, float start_value, float end_value)
// : prop_(prop)
// {
// start_value_ = start_value;
// end_value_ = end_value;
// }
// virtual void Animate(float t)
// {
// float value = (1.0f - t) * start_value_ + t * end_value_;
// prop_.set(value);
// }
// Property<float>& prop_;
// float start_value_;
// float end_value_;
// };
// template <>
// class PropertyAnimationContainer<Color> : public AnimatedPropertyBase
// {
// public:
// PropertyAnimationContainer(Property<Color>& prop, Color start_value, Color end_value)
// : prop_(prop)
// {
// start_value_ = start_value;
// end_value_ = end_value;
// }
// virtual void Animate(float t)
// {
// Color value = (1.0f - t) * start_value_ + t * end_value_;
// prop_.set(value);
// }
// Property<Color>& prop_;
// Color start_value_;
// Color end_value_;
// };
// class AnimationTimeline : public Object
// {
// public:
// AnimationTimeline() {};
// template <typename T>
// void AddProperty(Property<T>& prop, T start_value, T end_value)
// {
// PropertyAnimationContainer<T>* a = new PropertyAnimationContainer<T> (prop, start_value, end_value);
// animated_properties_.push_back(a);
// }
// void Animate(float t)
// {
// std::list<AnimatedPropertyBase*>::iterator it;
// // Go through all the properties and update them.
// for (it = animated_properties_.begin(); it != animated_properties_.end(); ++it)
// {
// (*it)->Animate(t);
// }
// }
// std::list<AnimatedPropertyBase*> animated_properties_;
// };
}
#endif // TIMELINE_H
|