1 /* GTK - The GIMP Toolkit
2 * Copyright (C) 2007 Carlos Garnacho <carlos@imendio.com>
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details.
14 * You should have received a copy of the GNU Library General Public
15 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
18 #ifndef __GTK_TIMELINE_H__
19 #define __GTK_TIMELINE_H__
21 #include <glib-object.h>
22 #include <gtk/gtkenums.h>
27 #define GTK_TYPE_TIMELINE (gtk_timeline_get_type ())
28 #define GTK_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TIMELINE, GtkTimeline))
29 #define GTK_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TIMELINE, GtkTimelineClass))
30 #define GTK_IS_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TIMELINE))
31 #define GTK_IS_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TIMELINE))
32 #define GTK_TIMELINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TIMELINE, GtkTimelineClass))
34 typedef struct GtkTimeline GtkTimeline;
35 typedef struct GtkTimelineClass GtkTimelineClass;
38 GTK_TIMELINE_DIRECTION_FORWARD,
39 GTK_TIMELINE_DIRECTION_BACKWARD
40 } GtkTimelineDirection;
43 GTK_TIMELINE_PROGRESS_LINEAR,
44 GTK_TIMELINE_PROGRESS_EASE,
45 GTK_TIMELINE_PROGRESS_EASE_IN,
46 GTK_TIMELINE_PROGRESS_EASE_OUT,
47 GTK_TIMELINE_PROGRESS_EASE_IN_OUT
48 } GtkTimelineProgressType;
52 GObject parent_instance;
56 struct GtkTimelineClass
58 GObjectClass parent_class;
60 void (* started) (GtkTimeline *timeline);
61 void (* finished) (GtkTimeline *timeline);
62 void (* paused) (GtkTimeline *timeline);
64 void (* frame) (GtkTimeline *timeline,
67 void (* __gtk_reserved1) (void);
68 void (* __gtk_reserved2) (void);
69 void (* __gtk_reserved3) (void);
70 void (* __gtk_reserved4) (void);
74 GType gtk_timeline_get_type (void) G_GNUC_CONST;
76 GtkTimeline * gtk_timeline_new (guint duration);
77 GtkTimeline * gtk_timeline_new_for_screen (guint duration,
80 void gtk_timeline_start (GtkTimeline *timeline);
81 void gtk_timeline_pause (GtkTimeline *timeline);
82 void gtk_timeline_rewind (GtkTimeline *timeline);
84 gboolean gtk_timeline_is_running (GtkTimeline *timeline);
85 guint gtk_timeline_get_elapsed_time (GtkTimeline *timeline);
87 gboolean gtk_timeline_get_loop (GtkTimeline *timeline);
88 void gtk_timeline_set_loop (GtkTimeline *timeline,
91 guint gtk_timeline_get_duration (GtkTimeline *timeline);
92 void gtk_timeline_set_duration (GtkTimeline *timeline,
95 GdkScreen * gtk_timeline_get_screen (GtkTimeline *timeline);
96 void gtk_timeline_set_screen (GtkTimeline *timeline,
99 GtkTimelineDirection gtk_timeline_get_direction (GtkTimeline *timeline);
100 void gtk_timeline_set_direction (GtkTimeline *timeline,
101 GtkTimelineDirection direction);
103 gdouble gtk_timeline_get_progress (GtkTimeline *timeline);
105 GtkTimelineProgressType gtk_timeline_get_progress_type (GtkTimeline *timeline);
106 void gtk_timeline_set_progress_type (GtkTimeline *timeline,
107 GtkTimelineProgressType progress_type);
112 #endif /* _GTK_TIMELINE_H__ */