This file is indexed.

/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