1 /* 2 * Copyright © 2012 Red Hat Inc. 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 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 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 16 * 17 * Authors: Benjamin Otte <otte@gnome.org> 18 */ 19 20 #ifndef __GTK_CSS_ANIMATION_PRIVATE_H__ 21 #define __GTK_CSS_ANIMATION_PRIVATE_H__ 22 23 #include "gtkstyleanimationprivate.h" 24 25 #include "gtkcsskeyframesprivate.h" 26 #include "gtkprogresstrackerprivate.h" 27 28 G_BEGIN_DECLS 29 30 #define GTK_TYPE_CSS_ANIMATION (_gtk_css_animation_get_type ()) 31 #define GTK_CSS_ANIMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, GTK_TYPE_CSS_ANIMATION, GtkCssAnimation)) 32 #define GTK_CSS_ANIMATION_CLASS(cls) (G_TYPE_CHECK_CLASS_CAST (cls, GTK_TYPE_CSS_ANIMATION, GtkCssAnimationClass)) 33 #define GTK_IS_CSS_ANIMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, GTK_TYPE_CSS_ANIMATION)) 34 #define GTK_IS_CSS_ANIMATION_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE (obj, GTK_TYPE_CSS_ANIMATION)) 35 #define GTK_CSS_ANIMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_CSS_ANIMATION, GtkCssAnimationClass)) 36 37 typedef struct _GtkCssAnimation GtkCssAnimation; 38 typedef struct _GtkCssAnimationClass GtkCssAnimationClass; 39 40 struct _GtkCssAnimation 41 { 42 GtkStyleAnimation parent; 43 44 char *name; 45 GtkCssKeyframes *keyframes; 46 GtkCssValue *ease; 47 GtkCssDirection direction; 48 GtkCssPlayState play_state; 49 GtkCssFillMode fill_mode; 50 GtkProgressTracker tracker; 51 }; 52 53 struct _GtkCssAnimationClass 54 { 55 GtkStyleAnimationClass parent_class; 56 }; 57 58 GType _gtk_css_animation_get_type (void) G_GNUC_CONST; 59 60 GtkStyleAnimation * _gtk_css_animation_new (const char *name, 61 GtkCssKeyframes *keyframes, 62 gint64 timestamp, 63 gint64 delay_us, 64 gint64 duration_us, 65 GtkCssValue *ease, 66 GtkCssDirection direction, 67 GtkCssPlayState play_state, 68 GtkCssFillMode fill_mode, 69 double iteration_count); 70 71 GtkStyleAnimation * _gtk_css_animation_advance_with_play_state (GtkCssAnimation *animation, 72 gint64 timestamp, 73 GtkCssPlayState play_state); 74 75 const char * _gtk_css_animation_get_name (GtkCssAnimation *animation); 76 77 G_END_DECLS 78 79 #endif /* __GTK_CSS_ANIMATION_PRIVATE_H__ */ 80