summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk/Makefile.am2
-rw-r--r--gtk/gtkstyleanimation.c82
-rw-r--r--gtk/gtkstyleanimationprivate.h67
3 files changed, 151 insertions, 0 deletions
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index cc9c3020f1..f8e4c32c13 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -508,6 +508,7 @@ gtk_private_h_sources = \
gtksettingsprivate.h \
gtksizegroup-private.h \
gtksocketprivate.h \
+ gtkstyleanimationprivate.h \
gtkstylecascadeprivate.h \
gtkstylecontextprivate.h \
gtkstylepropertiesprivate.h \
@@ -791,6 +792,7 @@ gtk_base_c_sources = \
gtkstatusbar.c \
gtkstatusicon.c \
gtkstock.c \
+ gtkstyleanimation.c \
gtkstylecascade.c \
gtkstylecontext.c \
gtkstyleproperties.c \
diff --git a/gtk/gtkstyleanimation.c b/gtk/gtkstyleanimation.c
new file mode 100644
index 0000000000..aab78bddd7
--- /dev/null
+++ b/gtk/gtkstyleanimation.c
@@ -0,0 +1,82 @@
+/*
+ * Copyright © 2012 Red Hat Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * 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 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/>.
+ *
+ * Authors: Benjamin Otte <otte@gnome.org>
+ */
+
+#include "config.h"
+
+#include "gtkstyleanimationprivate.h"
+
+G_DEFINE_ABSTRACT_TYPE (GtkStyleAnimation, _gtk_style_animation, G_TYPE_OBJECT)
+
+static GtkBitmask *
+gtk_style_animation_real_set_values (GtkStyleAnimation *animation,
+ GtkBitmask *changed,
+ gint64 for_time_us,
+ GtkCssComputedValues *values)
+{
+ return changed;
+}
+
+static gboolean
+gtk_style_animation_real_is_finished (GtkStyleAnimation *animation,
+ gint64 at_time_us)
+{
+ return TRUE;
+}
+
+static void
+_gtk_style_animation_class_init (GtkStyleAnimationClass *klass)
+{
+ klass->set_values = gtk_style_animation_real_set_values;
+ klass->is_finished = gtk_style_animation_real_is_finished;
+}
+
+static void
+_gtk_style_animation_init (GtkStyleAnimation *animation)
+{
+}
+
+GtkBitmask *
+_gtk_style_animation_set_values (GtkStyleAnimation *animation,
+ GtkBitmask *changed,
+ gint64 for_time_us,
+ GtkCssComputedValues *values)
+{
+ GtkStyleAnimationClass *klass;
+
+ g_return_val_if_fail (GTK_IS_STYLE_ANIMATION (animation), changed);
+ g_return_val_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values), changed);
+
+ klass = GTK_STYLE_ANIMATION_GET_CLASS (animation);
+
+ return klass->set_values (animation, changed, for_time_us, values);
+}
+
+gboolean
+_gtk_style_animation_is_finished (GtkStyleAnimation *animation,
+ gint64 at_time_us)
+{
+ GtkStyleAnimationClass *klass;
+
+ g_return_val_if_fail (GTK_IS_STYLE_ANIMATION (animation), TRUE);
+
+ klass = GTK_STYLE_ANIMATION_GET_CLASS (animation);
+
+ return klass->is_finished (animation, at_time_us);
+}
+
diff --git a/gtk/gtkstyleanimationprivate.h b/gtk/gtkstyleanimationprivate.h
new file mode 100644
index 0000000000..5d5d6c602e
--- /dev/null
+++ b/gtk/gtkstyleanimationprivate.h
@@ -0,0 +1,67 @@
+/*
+ * Copyright © 2012 Red Hat Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * 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 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/>.
+ *
+ * Authors: Benjamin Otte <otte@gnome.org>
+ */
+
+#ifndef __GTK_STYLE_ANIMATION_PRIVATE_H__
+#define __GTK_STYLE_ANIMATION_PRIVATE_H__
+
+#include <glib-object.h>
+#include "gtkcsscomputedvaluesprivate.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_STYLE_ANIMATION (_gtk_style_animation_get_type ())
+#define GTK_STYLE_ANIMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, GTK_TYPE_STYLE_ANIMATION, GtkStyleAnimation))
+#define GTK_STYLE_ANIMATION_CLASS(cls) (G_TYPE_CHECK_CLASS_CAST (cls, GTK_TYPE_STYLE_ANIMATION, GtkStyleAnimationClass))
+#define GTK_IS_STYLE_ANIMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, GTK_TYPE_STYLE_ANIMATION))
+#define GTK_IS_STYLE_ANIMATION_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE (obj, GTK_TYPE_STYLE_ANIMATION))
+#define GTK_STYLE_ANIMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_STYLE_ANIMATION, GtkStyleAnimationClass))
+
+typedef struct _GtkStyleAnimation GtkStyleAnimation;
+typedef struct _GtkStyleAnimationClass GtkStyleAnimationClass;
+
+struct _GtkStyleAnimation
+{
+ GObject parent;
+};
+
+struct _GtkStyleAnimationClass
+{
+ GObjectClass parent_class;
+
+ gboolean (* is_finished) (GtkStyleAnimation *animation,
+ gint64 at_time_us);
+ GtkBitmask * (* set_values) (GtkStyleAnimation *animation,
+ GtkBitmask *changed,
+ gint64 for_time_us,
+ GtkCssComputedValues *values);
+};
+
+GType _gtk_style_animation_get_type (void) G_GNUC_CONST;
+
+GtkBitmask * _gtk_style_animation_set_values (GtkStyleAnimation *animation,
+ GtkBitmask *changed,
+ gint64 for_time_us,
+ GtkCssComputedValues *values) G_GNUC_WARN_UNUSED_RESULT;
+gboolean _gtk_style_animation_is_finished (GtkStyleAnimation *animation,
+ gint64 at_time_us);
+
+
+G_END_DECLS
+
+#endif /* __GTK_STYLE_ANIMATION_PRIVATE_H__ */