summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk/Makefile.am4
-rw-r--r--gtk/gtk-default.css8
-rw-r--r--gtk/gtk-win32-base.css6
-rw-r--r--gtk/gtkanimationdescription.c175
-rw-r--r--gtk/gtkanimationdescription.h49
-rw-r--r--gtk/gtkcssstylefuncs.c42
-rw-r--r--gtk/gtkcssstylepropertyimpl.c48
-rw-r--r--gtk/gtkcsstypesprivate.h1
-rw-r--r--gtk/gtkexpander.c23
-rw-r--r--gtk/gtkstylecontext.c574
-rw-r--r--gtk/gtkstylecontext.h6
-rw-r--r--gtk/gtkstylecontextprivate.h3
-rw-r--r--gtk/gtkstyleproperties.c1
-rw-r--r--gtk/gtkswitch.c11
-rw-r--r--gtk/gtkthemingengine.c7
-rw-r--r--gtk/gtktimeline.c760
-rw-r--r--gtk/gtktimeline.h116
-rw-r--r--gtk/gtktoolitemgroup.c19
-rw-r--r--gtk/gtktreeview.c52
-rw-r--r--gtk/gtkwidget.c119
-rw-r--r--tests/styleexamples.c6
21 files changed, 23 insertions, 2007 deletions
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 062b99916b..7d8d6ddac8 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -405,7 +405,6 @@ gtk_private_h_sources = \
gtkaccelgroupprivate.h \
gtkaccelmapprivate.h \
gtkallocatedbitmaskprivate.h \
- gtkanimationdescription.h \
gtkappchooserprivate.h \
gtkappchoosermodule.h \
gtkappchooseronline.h \
@@ -525,7 +524,6 @@ gtk_private_h_sources = \
gtktextutil.h \
gtkthemingbackgroundprivate.h \
gtkthemingengineprivate.h \
- gtktimeline.h \
gtktoolpaletteprivate.h \
gtktreedatalist.h \
gtktreeprivate.h \
@@ -591,7 +589,6 @@ gtk_base_c_sources = \
gtkappchooseronline.c \
gtkapplication.c \
gtkapplicationwindow.c \
- gtkanimationdescription.c \
gtkarrow.c \
gtkaspectframe.c \
gtkassistant.c \
@@ -819,7 +816,6 @@ gtk_base_c_sources = \
gtktextview.c \
gtkthemingbackground.c \
gtkthemingengine.c \
- gtktimeline.c \
gtktoggleaction.c \
gtktogglebutton.c \
gtktoggletoolbutton.c \
diff --git a/gtk/gtk-default.css b/gtk/gtk-default.css
index 023139f775..593ae8997f 100644
--- a/gtk/gtk-default.css
+++ b/gtk/gtk-default.css
@@ -36,10 +36,6 @@ GtkTreeView.view.expander:selected:hover {
color: @text_color;
}
-.expander:active {
- transition: 200ms linear;
-}
-
*:insensitive {
border-color: shade (@bg_color, 0.7);
background-color: shade (@bg_color, 0.9);
@@ -295,10 +291,6 @@ GtkLabel:selected:focused {
background-color: @selected_bg_color;
}
-.spinner:active {
- transition: 750ms linear loop;
-}
-
.info {
background-color: @info_bg_color;
color: @info_fg_color;
diff --git a/gtk/gtk-win32-base.css b/gtk/gtk-win32-base.css
index f6284569fb..0c86bbb058 100644
--- a/gtk/gtk-win32-base.css
+++ b/gtk/gtk-win32-base.css
@@ -77,10 +77,6 @@ GtkFrame {
color: #fff;
}
-.spinner:active {
- transition: 750ms linear loop;
-}
-
.notebook > GtkScrolledWindow.frame {
border-style: none;
}
@@ -837,4 +833,4 @@ GtkStatusbar > GtkFrame {
background-color: transparent;
background-image: -gtk-win32-theme-part(status, 3 1);
}
-*/ \ No newline at end of file
+*/
diff --git a/gtk/gtkanimationdescription.c b/gtk/gtkanimationdescription.c
deleted file mode 100644
index c8bf5fb06a..0000000000
--- a/gtk/gtkanimationdescription.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/* GTK - The GIMP Toolkit
- * Copyright (C) 2010 Carlos Garnacho <carlosg@gnome.org>
- *
- * 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 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/>.
- */
-
-#include "config.h"
-#include "gtkanimationdescription.h"
-#include "gtkintl.h"
-
-struct GtkAnimationDescription
-{
- GtkTimelineProgressType progress_type;
- gdouble duration;
- guint loop : 1;
- guint ref_count;
-};
-
-GtkAnimationDescription *
-_gtk_animation_description_new (gdouble duration,
- GtkTimelineProgressType progress_type,
- gboolean loop)
-{
- GtkAnimationDescription *desc;
-
- desc = g_slice_new (GtkAnimationDescription);
- desc->duration = duration;
- desc->progress_type = progress_type;
- desc->loop = loop;
- desc->ref_count = 1;
-
- return desc;
-}
-
-gdouble
-_gtk_animation_description_get_duration (GtkAnimationDescription *desc)
-{
- return desc->duration;
-}
-
-GtkTimelineProgressType
-_gtk_animation_description_get_progress_type (GtkAnimationDescription *desc)
-{
- return desc->progress_type;
-}
-
-gboolean
-_gtk_animation_description_get_loop (GtkAnimationDescription *desc)
-{
- return (desc->loop != 0);
-}
-
-GtkAnimationDescription *
-_gtk_animation_description_ref (GtkAnimationDescription *desc)
-{
- desc->ref_count++;
- return desc;
-}
-
-void
-_gtk_animation_description_unref (GtkAnimationDescription *desc)
-{
- desc->ref_count--;
-
- if (desc->ref_count == 0)
- g_slice_free (GtkAnimationDescription, desc);
-}
-
-GtkAnimationDescription *
-_gtk_animation_description_from_string (const gchar *str)
-{
- gchar timing_function[16] = { 0, };
- gchar duration_unit[3] = { 0, };
- gchar loop_str[5] = { 0, };
- GtkTimelineProgressType progress_type;
- guint duration = 0;
- gboolean loop;
-
- if (sscanf (str, "%d%2s %15s %5s", &duration, duration_unit, timing_function, loop_str) == 4)
- loop = TRUE;
- else if (sscanf (str, "%d%2s %15s", &duration, duration_unit, timing_function) == 3)
- loop = FALSE;
- else
- return NULL;
-
- if (strcmp (duration_unit, "s") == 0)
- duration *= 1000;
- else if (strcmp (duration_unit, "ms") != 0)
- {
- g_warning ("Unknown duration unit: %s\n", duration_unit);
- return NULL;
- }
-
- if (strcmp (timing_function, "linear") == 0)
- progress_type = GTK_TIMELINE_PROGRESS_LINEAR;
- else if (strcmp (timing_function, "ease") == 0)
- progress_type = GTK_TIMELINE_PROGRESS_EASE;
- else if (strcmp (timing_function, "ease-in") == 0)
- progress_type = GTK_TIMELINE_PROGRESS_EASE_IN;
- else if (strcmp (timing_function, "ease-out") == 0)
- progress_type = GTK_TIMELINE_PROGRESS_EASE_OUT;
- else if (strcmp (timing_function, "ease-in-out") == 0)
- progress_type = GTK_TIMELINE_PROGRESS_EASE_IN_OUT;
- else
- {
- g_warning ("Unknown timing function: %s\n", timing_function);
- return NULL;
- }
-
- return _gtk_animation_description_new ((gdouble) duration, progress_type, loop);
-}
-
-void
-_gtk_animation_description_print (GtkAnimationDescription *desc,
- GString *str)
-{
- int duration;
-
- g_return_if_fail (desc != NULL);
- g_return_if_fail (str != NULL);
-
- duration = desc->duration;
- if (duration % 1000 == 0)
- g_string_append_printf (str, "%ds", (int) desc->duration / 1000);
- else
- g_string_append_printf (str, "%dms", (int) desc->duration);
-
- switch (desc->progress_type)
- {
- case GTK_TIMELINE_PROGRESS_LINEAR:
- g_string_append (str, " linear");
- break;
- case GTK_TIMELINE_PROGRESS_EASE:
- g_string_append (str, " ease");
- break;
- case GTK_TIMELINE_PROGRESS_EASE_IN:
- g_string_append (str, " ease-in");
- break;
- case GTK_TIMELINE_PROGRESS_EASE_OUT:
- g_string_append (str, " ease-out");
- break;
- case GTK_TIMELINE_PROGRESS_EASE_IN_OUT:
- g_string_append (str, " ease-in-out");
- break;
- default:
- g_assert_not_reached ();
- }
-
- if (desc->loop)
- g_string_append (str, " loop");
-}
-
-GType
-_gtk_animation_description_get_type (void)
-{
- static GType type = 0;
-
- if (G_UNLIKELY (!type))
- type = g_boxed_type_register_static (I_("GtkAnimationDescription"),
- (GBoxedCopyFunc) _gtk_animation_description_ref,
- (GBoxedFreeFunc) _gtk_animation_description_unref);
-
- return type;
-}
diff --git a/gtk/gtkanimationdescription.h b/gtk/gtkanimationdescription.h
deleted file mode 100644
index 408f2a6b97..0000000000
--- a/gtk/gtkanimationdescription.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* GTK - The GIMP Toolkit
- * Copyright (C) 2010 Carlos Garnacho <carlosg@gnome.org>
- *
- * 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 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/>.
- */
-
-#ifndef __GTK_ANIMATION_DESCRIPTION_H__
-#define __GTK_ANIMATION_DESCRIPTION_H__
-
-#include "gtktimeline.h"
-
-G_BEGIN_DECLS
-
-/* Dummy typedefs */
-typedef struct GtkAnimationDescription GtkAnimationDescription;
-
-#define GTK_TYPE_ANIMATION_DESCRIPTION (_gtk_animation_description_get_type ())
-
-GType _gtk_animation_description_get_type (void) G_GNUC_CONST;
-
-GtkAnimationDescription * _gtk_animation_description_new (gdouble duration,
- GtkTimelineProgressType progress_type,
- gboolean loop);
-
-gdouble _gtk_animation_description_get_duration (GtkAnimationDescription *desc);
-GtkTimelineProgressType _gtk_animation_description_get_progress_type (GtkAnimationDescription *desc);
-gboolean _gtk_animation_description_get_loop (GtkAnimationDescription *desc);
-
-GtkAnimationDescription * _gtk_animation_description_ref (GtkAnimationDescription *desc);
-void _gtk_animation_description_unref (GtkAnimationDescription *desc);
-
-GtkAnimationDescription * _gtk_animation_description_from_string (const gchar *str);
-void _gtk_animation_description_print (GtkAnimationDescription *desc,
- GString *string);
-
-G_END_DECLS
-
-#endif /* __GTK_ANIMATION_DESCRIPTION_H__ */
diff --git a/gtk/gtkcssstylefuncs.c b/gtk/gtkcssstylefuncs.c
index 2105d5aa9e..3315fbfdbc 100644
--- a/gtk/gtkcssstylefuncs.c
+++ b/gtk/gtkcssstylefuncs.c
@@ -27,7 +27,6 @@
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <cairo-gobject.h>
-#include "gtkanimationdescription.h"
#include "gtkcssimagegradientprivate.h"
#include "gtkcssprovider.h"
#include "gtkcssrgbavalueprivate.h"
@@ -603,43 +602,6 @@ theming_engine_value_print (const GValue *value,
}
static gboolean
-animation_description_value_parse (GtkCssParser *parser,
- GFile *base,
- GValue *value)
-{
- GtkAnimationDescription *desc;
- char *str;
-
- str = _gtk_css_parser_read_value (parser);
- if (str == NULL)
- return FALSE;
-
- desc = _gtk_animation_description_from_string (str);
- g_free (str);
-
- if (desc == NULL)
- {
- _gtk_css_parser_error (parser, "Invalid animation description");
- return FALSE;
- }
-
- g_value_take_boxed (value, desc);
- return TRUE;
-}
-
-static void
-animation_description_value_print (const GValue *value,
- GString *string)
-{
- GtkAnimationDescription *desc = g_value_get_boxed (value);
-
- if (desc == NULL)
- g_string_append (string, "none");
- else
- _gtk_animation_description_print (desc, string);
-}
-
-static gboolean
border_value_parse (GtkCssParser *parser,
GFile *base,
GValue *value)
@@ -1038,10 +1000,6 @@ gtk_css_style_funcs_init (void)
theming_engine_value_parse,
theming_engine_value_print,
NULL);
- register_conversion_function (GTK_TYPE_ANIMATION_DESCRIPTION,
- animation_description_value_parse,
- animation_description_value_print,
- NULL);
register_conversion_function (GTK_TYPE_BORDER,
border_value_parse,
border_value_print,
diff --git a/gtk/gtkcssstylepropertyimpl.c b/gtk/gtkcssstylepropertyimpl.c
index dab9abd499..2f365ead22 100644
--- a/gtk/gtkcssstylepropertyimpl.c
+++ b/gtk/gtkcssstylepropertyimpl.c
@@ -38,7 +38,6 @@
#include "fallback-c89.c"
/* the actual parsers we have */
-#include "gtkanimationdescription.h"
#include "gtkbindings.h"
#include "gtkcssarrayvalueprivate.h"
#include "gtkcssbgsizevalueprivate.h"
@@ -114,21 +113,6 @@ gtk_css_style_property_register (const char * name,
/*** IMPLEMENTATIONS ***/
static void
-query_simple (GtkCssStyleProperty *property,
- const GtkCssValue *css_value,
- GValue *value)
-{
- _gtk_css_value_init_gvalue (css_value, value);
-}
-
-static GtkCssValue *
-assign_simple (GtkCssStyleProperty *property,
- const GValue *value)
-{
- return _gtk_css_value_new_from_gvalue (value);
-}
-
-static void
query_length_as_int (GtkCssStyleProperty *property,
const GtkCssValue *css_value,
GValue *value)
@@ -817,27 +801,6 @@ engine_assign (GtkCssStyleProperty *property,
}
static GtkCssValue *
-transition_parse (GtkCssStyleProperty *property,
- GtkCssParser *parser,
- GFile *base)
-{
- GValue value = G_VALUE_INIT;
- GtkCssValue *result;
-
- g_value_init (&value, GTK_TYPE_ANIMATION_DESCRIPTION);
- if (!_gtk_css_style_parse_value (&value, parser, base))
- {
- g_value_unset (&value);
- return NULL;
- }
-
- result = _gtk_css_value_new_from_gvalue (&value);
- g_value_unset (&value);
-
- return result;
-}
-
-static GtkCssValue *
parse_margin (GtkCssStyleProperty *property,
GtkCssParser *parser,
GFile *base)
@@ -1602,17 +1565,6 @@ _gtk_css_style_property_init_properties (void)
engine_assign,
NULL,
_gtk_css_engine_value_new (gtk_theming_engine_load (NULL)));
- gtk_css_style_property_register ("transition",
- GTK_CSS_PROPERTY_TRANSITION,
- GTK_TYPE_ANIMATION_DESCRIPTION,
- 0,
- transition_parse,
- NULL,
- NULL,
- query_simple,
- assign_simple,
- NULL,
- _gtk_css_value_new_from_boxed (GTK_TYPE_ANIMATION_DESCRIPTION, NULL));
/* Private property holding the binding sets */
gtk_css_style_property_register ("gtk-key-bindings",
diff --git a/gtk/gtkcsstypesprivate.h b/gtk/gtkcsstypesprivate.h
index 9f2b370f5f..22c1546d4e 100644
--- a/gtk/gtkcsstypesprivate.h
+++ b/gtk/gtkcsstypesprivate.h
@@ -108,7 +108,6 @@ enum { /*< skip >*/
GTK_CSS_PROPERTY_TRANSITION_TIMING_FUNCTION,
GTK_CSS_PROPERTY_TRANSITION_DELAY,
GTK_CSS_PROPERTY_ENGINE,
- GTK_CSS_PROPERTY_TRANSITION,
GTK_CSS_PROPERTY_GTK_KEY_BINDINGS,
/* add more */
GTK_CSS_PROPERTY_N_PROPERTIES
diff --git a/gtk/gtkexpander.c b/gtk/gtkexpander.c
index a72cc1f605..6a98910b06 100644
--- a/gtk/gtkexpander.c
+++ b/gtk/gtkexpander.c
@@ -911,15 +911,11 @@ gtk_expander_paint (GtkExpander *expander,
gtk_style_context_set_state (context, state);
gtk_style_context_add_class (context, GTK_STYLE_CLASS_EXPANDER);
- /* The expander is the only animatable region */
- gtk_style_context_push_animatable_region (context, GUINT_TO_POINTER (1));
-
gtk_render_expander (context, cr,
clip.x - allocation.x,
clip.y - allocation.y,
size, size);
- gtk_style_context_pop_animatable_region (context);
gtk_style_context_restore (context);
}
@@ -1709,28 +1705,9 @@ gtk_expander_set_expanded (GtkExpander *expander,
if (priv->expanded != expanded)
{
GtkWidget *widget = GTK_WIDGET (expander);
- GtkSettings *settings = gtk_widget_get_settings (widget);
- GtkStyleContext *context;
- gboolean enable_animations;
- context = gtk_widget_get_style_context (widget);
priv->expanded = expanded;
- g_object_get (settings, "gtk-enable-animations", &enable_animations, NULL);
-
- if (enable_animations && gtk_widget_get_realized (widget))
- {
- gtk_style_context_save (context);
- gtk_style_context_add_class (context, GTK_STYLE_CLASS_EXPANDER);
-
- gtk_style_context_notify_state_change (context,
- gtk_widget_get_window (widget),
- GUINT_TO_POINTER (1),
- GTK_STATE_ACTIVE,
- expanded);
- gtk_style_context_restore (context);
- }
-
child = gtk_bin_get_child (GTK_BIN (expander));
if (child)
diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c
index 1af21b6f49..42f6795b0d 100644
--- a/gtk/gtkstylecontext.c
+++ b/gtk/gtkstylecontext.c
@@ -33,9 +33,7 @@
#include "gtkwindow.h"
#include "gtkprivate.h"
#include "gtksymboliccolorprivate.h"
-#include "gtkanimationdescription.h"
#include "gtkcssnumbervalueprivate.h"
-#include "gtktimeline.h"
#include "gtkiconfactory.h"
#include "gtkwidgetpath.h"
#include "gtkwidgetprivate.h"
@@ -314,7 +312,6 @@
typedef struct GtkStyleInfo GtkStyleInfo;
typedef struct GtkRegion GtkRegion;
typedef struct PropertyValue PropertyValue;
-typedef struct AnimationInfo AnimationInfo;
typedef struct StyleData StyleData;
struct GtkRegion
@@ -346,25 +343,6 @@ struct StyleData
GArray *property_cache;
};
-struct AnimationInfo
-{
- GtkTimeline *timeline;
-
- gpointer region_id;
-
- /* Region stack (until region_id) at the time of
- * rendering, this is used for nested cancellation.
- */
- GSList *parent_regions;
-
- GdkWindow *window;
- GtkStateType state;
- gboolean target_value;
-
- cairo_region_t *invalidation_region;
- GArray *rectangles;
-};
-
struct _GtkStyleContextPrivate
{
GdkScreen *screen;
@@ -378,9 +356,6 @@ struct _GtkStyleContextPrivate
GHashTable *style_data;
GSList *info_stack;
- GSList *animation_regions;
- GSList *animations;
-
GtkThemingEngine *theming_engine;
GtkTextDirection direction;
@@ -388,7 +363,6 @@ struct _GtkStyleContextPrivate
GtkCssChange relevant_changes;
GtkCssChange pending_changes;
- guint animations_invalidated : 1;
guint invalidating_context : 1;
guint invalid : 1;
};
@@ -657,167 +631,10 @@ gtk_style_context_init (GtkStyleContext *style_context)
}
static void
-animation_info_free (AnimationInfo *info)
-{
- g_object_unref (info->timeline);
- g_object_unref (info->window);
-
- if (info->invalidation_region)
- cairo_region_destroy (info->invalidation_region);
-
- g_array_free (info->rectangles, TRUE);
- g_slist_free (info->parent_regions);
- g_slice_free (AnimationInfo, info);
-}
-
-static AnimationInfo *
-animation_info_lookup_by_timeline (GtkStyleContext *context,
- GtkTimeline *timeline)
-{
- GtkStyleContextPrivate *priv;
- AnimationInfo *info;
- GSList *l;
-
- priv = context->priv;
-
- for (l = priv->animations; l; l = l->next)
- {
- info = l->data;
-
- if (info->timeline == timeline)
- return info;
- }
-
- return NULL;
-}
-
-static void
-timeline_frame_cb (GtkTimeline *timeline,
- gdouble progress,
- gpointer user_data)
-{
- GtkStyleContextPrivate *priv;
- GtkStyleContext *context;
- AnimationInfo *info;
-
- context = user_data;
- priv = context->priv;
- info = animation_info_lookup_by_timeline (context, timeline);
-
- g_assert (info != NULL);
-
- /* Cancel transition if window is gone */
- if (gdk_window_is_destroyed (info->window) ||
- !gdk_window_is_visible (info->window))
- {
- priv->animations = g_slist_remove (priv->animations, info);
- animation_info_free (info);
- return;
- }
-
- if (info->invalidation_region &&
- !cairo_region_is_empty (info->invalidation_region))
- gdk_window_invalidate_region (info->window, info->invalidation_region, TRUE);
- else
- gdk_window_invalidate_rect (info->window, NULL, TRUE);
-}
-
-static void
-timeline_finished_cb (GtkTimeline *timeline,
- gpointer user_data)
-{
- GtkStyleContextPrivate *priv;
- GtkStyleContext *context;
- AnimationInfo *info;
-
- context = user_data;
- priv = context->priv;
- info = animation_info_lookup_by_timeline (context, timeline);
-
- g_assert (info != NULL);
-
- priv->animations = g_slist_remove (priv->animations, info);
-
- /* Invalidate one last time the area, so the final content is painted */
- if (info->invalidation_region &&
- !cairo_region_is_empty (info->invalidation_region))
- gdk_window_invalidate_region (info->window, info->invalidation_region, TRUE);
- else
- gdk_window_invalidate_rect (info->window, NULL, TRUE);
-
- animation_info_free (info);
-}
-
-static AnimationInfo *
-animation_info_new (GtkStyleContext *context,
- gpointer region_id,
- guint duration,
- GtkTimelineProgressType progress_type,
- gboolean loop,
- GtkStateType state,
- gboolean target_value,
- GdkWindow *window)
-{
- AnimationInfo *info;
-
- info = g_slice_new0 (AnimationInfo);
-
- info->rectangles = g_array_new (FALSE, FALSE, sizeof (cairo_rectangle_int_t));
- info->timeline = _gtk_timeline_new (duration);
- info->window = g_object_ref (window);
- info->state = state;
- info->target_value = target_value;
- info->region_id = region_id;
-
- _gtk_timeline_set_progress_type (info->timeline, progress_type);
- _gtk_timeline_set_loop (info->timeline, loop);
-
- if (!loop && !target_value)
- {
- _gtk_timeline_set_direction (info->timeline, GTK_TIMELINE_DIRECTION_BACKWARD);
- _gtk_timeline_rewind (info->timeline);
- }
-
- g_signal_connect (info->timeline, "frame",
- G_CALLBACK (timeline_frame_cb), context);
- g_signal_connect (info->timeline, "finished",
- G_CALLBACK (timeline_finished_cb), context);
-
- _gtk_timeline_start (info->timeline);
-
- return info;
-}
-
-static AnimationInfo *
-animation_info_lookup (GtkStyleContext *context,
- gpointer region_id,
- GtkStateType state)
-{
- GtkStyleContextPrivate *priv;
- GSList *l;
-
- priv = context->priv;
-
- for (l = priv->animations; l; l = l->next)
- {
- AnimationInfo *info;
-
- info = l->data;
-
- if (info->state == state &&
- info->region_id == region_id)
- return info;
- }
-
- return NULL;
-}
-
-static void
gtk_style_context_finalize (GObject *object)
{
GtkStyleContextPrivate *priv;
GtkStyleContext *style_context;
- GSList *l;
style_context = GTK_STYLE_CONTEXT (object);
priv = style_context->priv;
@@ -836,13 +653,6 @@ gtk_style_context_finalize (GObject *object)
g_slist_free_full (priv->info_stack, (GDestroyNotify) style_info_free);
- g_slist_free (priv->animation_regions);
-
- for (l = priv->animations; l; l = l->next)
- animation_info_free ((AnimationInfo *) l->data);
-
- g_slist_free (priv->animations);
-
if (priv->theming_engine)
g_object_unref (priv->theming_engine);
@@ -1481,22 +1291,6 @@ gtk_style_context_get_state (GtkStyleContext *context)
return info->state_flags;
}
-static gboolean
-context_has_animatable_region (GtkStyleContext *context,
- gpointer region_id)
-{
- GtkStyleContextPrivate *priv;
-
- /* NULL region_id means everything
- * rendered through the style context
- */
- if (!region_id)
- return TRUE;
-
- priv = context->priv;
- return g_slist_find (priv->animation_regions, region_id) != NULL;
-}
-
/**
* gtk_style_context_state_is_running:
* @context: a #GtkStyleContext
@@ -1515,34 +1309,16 @@ context_has_animatable_region (GtkStyleContext *context,
* Returns: %TRUE if there is a running transition animation for @state.
*
* Since: 3.0
+ *
+ * Deprecated: 3.6: This function always returns %FALSE
**/
gboolean
gtk_style_context_state_is_running (GtkStyleContext *context,
GtkStateType state,
gdouble *progress)
{
- GtkStyleContextPrivate *priv;
- AnimationInfo *info;
- GSList *l;
-
g_return_val_if_fail (GTK_IS_STYLE_CONTEXT (context), FALSE);
- priv = context->priv;
-
- for (l = priv->animations; l; l = l->next)
- {
- info = l->data;
-
- if (info->state == state &&
- context_has_animatable_region (context, info->region_id))
- {
- if (progress)
- *progress = _gtk_timeline_get_progress (info->timeline);
-
- return TRUE;
- }
- }
-
return FALSE;
}
@@ -2861,6 +2637,8 @@ gtk_style_context_lookup_color (GtkStyleContext *context,
* is why the style places the transition under the :hover pseudo-class.
*
* Since: 3.0
+ *
+ * Deprecated: 3.6: This function does nothing.
**/
void
gtk_style_context_notify_state_change (GtkStyleContext *context,
@@ -2869,100 +2647,10 @@ gtk_style_context_notify_state_change (GtkStyleContext *context,
GtkStateType state,
gboolean state_value)
{
- GtkStyleContextPrivate *priv;
- GtkAnimationDescription *desc;
- AnimationInfo *info;
- GtkStateFlags flags;
- GtkCssValue *v;
- StyleData *data;
-
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (GDK_IS_WINDOW (window));
g_return_if_fail (state > GTK_STATE_NORMAL && state <= GTK_STATE_FOCUSED);
-
- priv = context->priv;
- g_return_if_fail (priv->widget != NULL || priv->widget_path != NULL);
-
- state_value = (state_value == TRUE);
-
- switch (state)
- {
- case GTK_STATE_ACTIVE:
- flags = GTK_STATE_FLAG_ACTIVE;
- break;
- case GTK_STATE_PRELIGHT:
- flags = GTK_STATE_FLAG_PRELIGHT;
- break;
- case GTK_STATE_SELECTED:
- flags = GTK_STATE_FLAG_SELECTED;
- break;
- case GTK_STATE_INSENSITIVE:
- flags = GTK_STATE_FLAG_INSENSITIVE;
- break;
- case GTK_STATE_INCONSISTENT:
- flags = GTK_STATE_FLAG_INCONSISTENT;
- break;
- case GTK_STATE_FOCUSED:
- flags = GTK_STATE_FLAG_FOCUSED;
- break;
- case GTK_STATE_NORMAL:
- default:
- flags = 0;
- break;
- }
-
- /* Find out if there is any animation description for the given
- * state, it will fallback to the normal state as well if necessary.
- */
- gtk_style_context_save (context);
- gtk_style_context_set_state (context, flags);
- data = style_data_lookup (context);
- gtk_style_context_restore (context);
- v = _gtk_css_computed_values_get_value (data->store, GTK_CSS_PROPERTY_TRANSITION);
- if (!v)
- return;
- desc = _gtk_css_value_get_boxed (v);
- if (!desc)
- return;
-
- if (_gtk_animation_description_get_duration (desc) == 0)
- return;
-
- info = animation_info_lookup (context, region_id, state);
-
- if (info &&
- info->target_value != state_value)
- {
- /* Target values are the opposite */
- if (!_gtk_timeline_get_loop (info->timeline))
- {
- /* Reverse the animation */
- if (_gtk_timeline_get_direction (info->timeline) == GTK_TIMELINE_DIRECTION_FORWARD)
- _gtk_timeline_set_direction (info->timeline, GTK_TIMELINE_DIRECTION_BACKWARD);
- else
- _gtk_timeline_set_direction (info->timeline, GTK_TIMELINE_DIRECTION_FORWARD);
-
- info->target_value = state_value;
- }
- else
- {
- /* Take it out of its looping state */
- _gtk_timeline_set_loop (info->timeline, FALSE);
- }
- }
- else if (!info &&
- (!_gtk_animation_description_get_loop (desc) ||
- state_value))
- {
- info = animation_info_new (context, region_id,
- _gtk_animation_description_get_duration (desc),
- _gtk_animation_description_get_progress_type (desc),
- _gtk_animation_description_get_loop (desc),
- state, state_value, window);
-
- priv->animations = g_slist_prepend (priv->animations, info);
- priv->animations_invalidated = TRUE;
- }
+ g_return_if_fail (context->priv->widget != NULL || context->priv->widget_path != NULL);
}
/**
@@ -2982,60 +2670,14 @@ gtk_style_context_notify_state_change (GtkStyleContext *context,
* animatable regions.
*
* Since: 3.0
+ *
+ * Deprecated: 3.6: This function does nothing.
**/
void
gtk_style_context_cancel_animations (GtkStyleContext *context,
gpointer region_id)
{
- GtkStyleContextPrivate *priv;
- AnimationInfo *info;
- GSList *l;
-
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
-
- priv = context->priv;
- l = priv->animations;
-
- while (l)
- {
- info = l->data;
- l = l->next;
-
- if (!region_id ||
- info->region_id == region_id ||
- g_slist_find (info->parent_regions, region_id))
- {
- priv->animations = g_slist_remove (priv->animations, info);
- animation_info_free (info);
- }
- }
-}
-
-static gboolean
-is_parent_of (GdkWindow *parent,
- GdkWindow *child)
-{
- GtkWidget *child_widget, *parent_widget;
- GdkWindow *window;
-
- gdk_window_get_user_data (child, (gpointer *) &child_widget);
- gdk_window_get_user_data (parent, (gpointer *) &parent_widget);
-
- if (child_widget != parent_widget &&
- !gtk_widget_is_ancestor (child_widget, parent_widget))
- return FALSE;
-
- window = child;
-
- while (window)
- {
- if (window == parent)
- return TRUE;
-
- window = gdk_window_get_parent (window);
- }
-
- return FALSE;
}
/**
@@ -3052,6 +2694,8 @@ is_parent_of (GdkWindow *parent,
* with it.
*
* Since: 3.0
+ *
+ * Deprecated: 3.6: This function does nothing.
**/
void
gtk_style_context_scroll_animations (GtkStyleContext *context,
@@ -3059,26 +2703,8 @@ gtk_style_context_scroll_animations (GtkStyleContext *context,
gint dx,
gint dy)
{
- GtkStyleContextPrivate *priv;
- AnimationInfo *info;
- GSList *l;
-
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (GDK_IS_WINDOW (window));
-
- priv = context->priv;
- l = priv->animations;
-
- while (l)
- {
- info = l->data;
- l = l->next;
-
- if (info->invalidation_region &&
- (window == info->window ||
- is_parent_of (window, info->window)))
- cairo_region_translate (info->invalidation_region, dx, dy);
- }
}
/**
@@ -3097,18 +2723,15 @@ gtk_style_context_scroll_animations (GtkStyleContext *context,
* can uniquely identify rendered elements subject to a state transition.
*
* Since: 3.0
+ *
+ * Deprecated: 3.6: This function does nothing.
**/
void
gtk_style_context_push_animatable_region (GtkStyleContext *context,
gpointer region_id)
{
- GtkStyleContextPrivate *priv;
-
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (region_id != NULL);
-
- priv = context->priv;
- priv->animation_regions = g_slist_prepend (priv->animation_regions, region_id);
}
/**
@@ -3119,150 +2742,13 @@ gtk_style_context_push_animatable_region (GtkStyleContext *context,
* See gtk_style_context_push_animatable_region().
*
* Since: 3.0
+ *
+ * Deprecated: 3.6: This function does nothing.
**/
void
gtk_style_context_pop_animatable_region (GtkStyleContext *context)
{
- GtkStyleContextPrivate *priv;
-
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
-
- priv = context->priv;
- priv->animation_regions = g_slist_delete_link (priv->animation_regions,
- priv->animation_regions);
-}
-
-void
-_gtk_style_context_invalidate_animation_areas (GtkStyleContext *context)
-{
- GtkStyleContextPrivate *priv;
- GSList *l;
-
- priv = context->priv;
-
- for (l = priv->animations; l; l = l->next)
- {
- AnimationInfo *info;
-
- info = l->data;
-
- /* A NULL invalidation region means it has to be recreated on
- * the next expose event, this happens usually after a widget
- * allocation change, so the next expose after it will update
- * the invalidation region.
- */
- if (info->invalidation_region)
- {
- cairo_region_destroy (info->invalidation_region);
- info->invalidation_region = NULL;
- }
- }
-
- priv->animations_invalidated = TRUE;
-}
-
-void
-_gtk_style_context_coalesce_animation_areas (GtkStyleContext *context,
- GtkWidget *widget)
-{
- GtkStyleContextPrivate *priv;
- GSList *l;
-
- priv = context->priv;
-
- if (!priv->animations_invalidated)
- return;
-
- l = priv->animations;
-
- while (l)
- {
- AnimationInfo *info;
- gint rel_x, rel_y;
- GSList *cur;
- guint i;
-
- cur = l;
- info = cur->data;
- l = l->next;
-
- if (info->invalidation_region)
- continue;
-
- if (info->rectangles->len == 0)
- continue;
-
- info->invalidation_region = cairo_region_create ();
- _gtk_widget_get_translation_to_window (widget, info->window, &rel_x, &rel_y);
-
- for (i = 0; i < info->rectangles->len; i++)
- {
- cairo_rectangle_int_t *rect;
-
- rect = &g_array_index (info->rectangles, cairo_rectangle_int_t, i);
-
- /* These are widget relative coordinates,
- * so have them inverted to be window relative
- */
- rect->x -= rel_x;
- rect->y -= rel_y;
-
- cairo_region_union_rectangle (info->invalidation_region, rect);
- }
-
- g_array_remove_range (info->rectangles, 0, info->rectangles->len);
- }
-
- priv->animations_invalidated = FALSE;
-}
-
-static void
-store_animation_region (GtkStyleContext *context,
- gdouble x,
- gdouble y,
- gdouble width,
- gdouble height)
-{
- GtkStyleContextPrivate *priv;
- GSList *l;
-
- priv = context->priv;
-
- if (!priv->animations_invalidated)
- return;
-
- for (l = priv->animations; l; l = l->next)
- {
- AnimationInfo *info;
-
- info = l->data;
-
- /* The animation doesn't need updating
- * the invalidation area, bail out.
- */
- if (info->invalidation_region)
- continue;
-
- if (context_has_animatable_region (context, info->region_id))
- {
- cairo_rectangle_int_t rect;
-
- rect.x = (gint) x;
- rect.y = (gint) y;
- rect.width = (gint) width;
- rect.height = (gint) height;
-
- g_array_append_val (info->rectangles, rect);
-
- if (!info->parent_regions)
- {
- GSList *parent_regions;
-
- parent_regions = g_slist_find (priv->animation_regions, info->region_id);
- info->parent_regions = g_slist_copy (parent_regions);
- }
- }
- }
}
static void
@@ -3772,7 +3258,6 @@ gtk_render_check (GtkStyleContext *context,
cairo_save (cr);
- store_animation_region (context, x, y, width, height);
_gtk_theming_engine_set_context (priv->theming_engine, context);
engine_class->render_check (priv->theming_engine, cr,
@@ -3823,8 +3308,6 @@ gtk_render_option (GtkStyleContext *context,
cairo_save (cr);
- store_animation_region (context, x, y, width, height);
-
_gtk_theming_engine_set_context (priv->theming_engine, context);
engine_class->render_option (priv->theming_engine, cr,
x, y, width, height);
@@ -3875,8 +3358,6 @@ gtk_render_arrow (GtkStyleContext *context,
gtk_style_context_save (context);
gtk_style_context_add_class (context, GTK_STYLE_CLASS_ARROW);
- store_animation_region (context, x, y, size, size);
-
_gtk_theming_engine_set_context (priv->theming_engine, context);
engine_class->render_arrow (priv->theming_engine, cr,
angle, x, y, size);
@@ -3928,8 +3409,6 @@ gtk_render_background (GtkStyleContext *context,
cairo_save (cr);
- store_animation_region (context, x, y, width, height);
-
_gtk_theming_engine_set_context (priv->theming_engine, context);
engine_class->render_background (priv->theming_engine, cr, x, y, width, height);
@@ -3981,8 +3460,6 @@ gtk_render_frame (GtkStyleContext *context,
cairo_save (cr);
- store_animation_region (context, x, y, width, height);
-
_gtk_theming_engine_set_context (priv->theming_engine, context);
engine_class->render_frame (priv->theming_engine, cr, x, y, width, height);
@@ -4031,8 +3508,6 @@ gtk_render_expander (GtkStyleContext *context,
cairo_save (cr);
- store_animation_region (context, x, y, width, height);
-
_gtk_theming_engine_set_context (priv->theming_engine, context);
engine_class->render_expander (priv->theming_engine, cr, x, y, width, height);
@@ -4078,8 +3553,6 @@ gtk_render_focus (GtkStyleContext *context,
cairo_save (cr);
- store_animation_region (context, x, y, width, height);
-
_gtk_theming_engine_set_context (priv->theming_engine, context);
engine_class->render_focus (priv->theming_engine, cr, x, y, width, height);
@@ -4120,12 +3593,6 @@ gtk_render_layout (GtkStyleContext *context,
pango_layout_get_extents (layout, &extents, NULL);
- store_animation_region (context,
- x + extents.x,
- y + extents.y,
- extents.width,
- extents.height);
-
_gtk_theming_engine_set_context (priv->theming_engine, context);
engine_class->render_layout (priv->theming_engine, cr, x, y, layout);
@@ -4214,8 +3681,6 @@ gtk_render_slider (GtkStyleContext *context,
cairo_save (cr);
- store_animation_region (context, x, y, width, height);
-
_gtk_theming_engine_set_context (priv->theming_engine, context);
engine_class->render_slider (priv->theming_engine, cr, x, y, width, height, orientation);
@@ -4279,8 +3744,6 @@ gtk_render_frame_gap (GtkStyleContext *context,
cairo_save (cr);
- store_animation_region (context, x, y, width, height);
-
_gtk_theming_engine_set_context (priv->theming_engine, context);
engine_class->render_frame_gap (priv->theming_engine, cr,
x, y, width, height, gap_side,
@@ -4333,8 +3796,6 @@ gtk_render_extension (GtkStyleContext *context,
cairo_save (cr);
- store_animation_region (context, x, y, width, height);
-
_gtk_theming_engine_set_context (priv->theming_engine, context);
engine_class->render_extension (priv->theming_engine, cr, x, y, width, height, gap_side);
@@ -4383,8 +3844,6 @@ gtk_render_handle (GtkStyleContext *context,
cairo_save (cr);
- store_animation_region (context, x, y, width, height);
-
_gtk_theming_engine_set_context (priv->theming_engine, context);
engine_class->render_handle (priv->theming_engine, cr, x, y, width, height);
@@ -4428,8 +3887,6 @@ gtk_render_activity (GtkStyleContext *context,
cairo_save (cr);
- store_animation_region (context, x, y, width, height);
-
_gtk_theming_engine_set_context (priv->theming_engine, context);
engine_class->render_activity (priv->theming_engine, cr, x, y, width, height);
@@ -4499,11 +3956,6 @@ gtk_render_icon (GtkStyleContext *context,
cairo_save (cr);
- store_animation_region (context,
- x, y,
- gdk_pixbuf_get_width (pixbuf),
- gdk_pixbuf_get_height (pixbuf));
-
_gtk_theming_engine_set_context (priv->theming_engine, context);
engine_class->render_icon (priv->theming_engine, cr, pixbuf, x, y);
diff --git a/gtk/gtkstylecontext.h b/gtk/gtkstylecontext.h
index 65725374fa..c5dd07edd2 100644
--- a/gtk/gtkstylecontext.h
+++ b/gtk/gtkstylecontext.h
@@ -741,6 +741,7 @@ void gtk_style_context_set_state (GtkStyleContext *context,
GtkStateFlags flags);
GtkStateFlags gtk_style_context_get_state (GtkStyleContext *context);
+GDK_DEPRECATED_IN_3_6
gboolean gtk_style_context_state_is_running (GtkStyleContext *context,
GtkStateType state,
gdouble *progress);
@@ -803,20 +804,25 @@ gboolean gtk_style_context_lookup_color (GtkStyleContext *context,
const gchar *color_name,
GdkRGBA *color);
+GDK_DEPRECATED_IN_3_6
void gtk_style_context_notify_state_change (GtkStyleContext *context,
GdkWindow *window,
gpointer region_id,
GtkStateType state,
gboolean state_value);
+GDK_DEPRECATED_IN_3_6
void gtk_style_context_cancel_animations (GtkStyleContext *context,
gpointer region_id);
+GDK_DEPRECATED_IN_3_6
void gtk_style_context_scroll_animations (GtkStyleContext *context,
GdkWindow *window,
gint dx,
gint dy);
+GDK_DEPRECATED_IN_3_6
void gtk_style_context_push_animatable_region (GtkStyleContext *context,
gpointer region_id);
+GDK_DEPRECATED_IN_3_6
void gtk_style_context_pop_animatable_region (GtkStyleContext *context);
/* Some helper functions to retrieve most common properties */
diff --git a/gtk/gtkstylecontextprivate.h b/gtk/gtkstylecontextprivate.h
index 9feaf78fb3..43566c92a8 100644
--- a/gtk/gtkstylecontextprivate.h
+++ b/gtk/gtkstylecontextprivate.h
@@ -39,9 +39,6 @@ void _gtk_style_context_validate (GtkStyleContext *c
GtkCssChange change);
void _gtk_style_context_queue_invalidate (GtkStyleContext *context,
GtkCssChange change);
-void _gtk_style_context_invalidate_animation_areas (GtkStyleContext *context);
-void _gtk_style_context_coalesce_animation_areas (GtkStyleContext *context,
- GtkWidget *widget);
gboolean _gtk_style_context_check_region_name (const gchar *str);
gboolean _gtk_style_context_resolve_color (GtkStyleContext *context,
diff --git a/gtk/gtkstyleproperties.c b/gtk/gtkstyleproperties.c
index 8d01fb261e..2b1986fb5a 100644
--- a/gtk/gtkstyleproperties.c
+++ b/gtk/gtkstyleproperties.c
@@ -26,7 +26,6 @@
#include "gtkstyleprovider.h"
#include "gtksymboliccolor.h"
#include "gtkthemingengine.h"
-#include "gtkanimationdescription.h"
#include "gtkgradient.h"
#include "gtkcssshadowvalueprivate.h"
#include "gtkcssshorthandpropertyprivate.h"
diff --git a/gtk/gtkswitch.c b/gtk/gtkswitch.c
index d81a68cca0..b3ed707d78 100644
--- a/gtk/gtkswitch.c
+++ b/gtk/gtkswitch.c
@@ -1021,10 +1021,7 @@ gtk_switch_set_active (GtkSwitch *sw,
if (priv->is_active != is_active)
{
AtkObject *accessible;
- GtkWidget *widget;
- GtkStyleContext *context;
- widget = GTK_WIDGET (sw);
priv->is_active = is_active;
g_object_notify_by_pspec (G_OBJECT (sw), switch_props[PROP_ACTIVE]);
@@ -1038,14 +1035,6 @@ gtk_switch_set_active (GtkSwitch *sw,
accessible = gtk_widget_get_accessible (GTK_WIDGET (sw));
atk_object_notify_state_change (accessible, ATK_STATE_CHECKED, priv->is_active);
- if (gtk_widget_get_realized (widget))
- {
- context = gtk_widget_get_style_context (widget);
- gtk_style_context_notify_state_change (context,
- gtk_widget_get_window (widget),
- NULL, GTK_STATE_ACTIVE, is_active);
- }
-
if (priv->is_active)
gtk_widget_set_state_flags (GTK_WIDGET (sw), GTK_STATE_FLAG_ACTIVE, FALSE);
else
diff --git a/gtk/gtkthemingengine.c b/gtk/gtkthemingengine.c
index 675f8ae7ca..3f3751284b 100644
--- a/gtk/gtkthemingengine.c
+++ b/gtk/gtkthemingengine.c
@@ -580,18 +580,17 @@ gtk_theming_engine_get_state (GtkThemingEngine *engine)
* Returns: %TRUE if there is a running transition animation for @state.
*
* Since: 3.0
+ *
+ * Deprecated: 3.6: Always returns %FALSE
**/
gboolean
gtk_theming_engine_state_is_running (GtkThemingEngine *engine,
GtkStateType state,
gdouble *progress)
{
- GtkThemingEnginePrivate *priv;
-
g_return_val_if_fail (GTK_IS_THEMING_ENGINE (engine), FALSE);
- priv = engine->priv;
- return gtk_style_context_state_is_running (priv->context, state, progress);
+ return FALSE;
}
/**
diff --git a/gtk/gtktimeline.c b/gtk/gtktimeline.c
deleted file mode 100644
index 340cb36faf..0000000000
--- a/gtk/gtktimeline.c
+++ /dev/null
@@ -1,760 +0,0 @@
-/* GTK - The GIMP Toolkit
- * Copyright (C) 2007 Carlos Garnacho <carlos@imendio.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <gtk/gtktimeline.h>
-#include <gtk/gtktypebuiltins.h>
-#include <gtk/gtksettings.h>
-#include <math.h>
-
-#define MSECS_PER_SEC 1000
-#define FRAME_INTERVAL(nframes) (MSECS_PER_SEC / nframes)
-#define DEFAULT_FPS 30
-
-typedef struct GtkTimelinePriv GtkTimelinePriv;
-
-struct GtkTimelinePriv
-{
- guint duration;
- guint fps;
- guint source_id;
-
- GTimer *timer;
- gdouble elapsed_time;
-
- gdouble progress;
- gdouble last_progress;
-
- GdkScreen *screen;
-
- GtkTimelineProgressType progress_type;
-
- guint animations_enabled : 1;
- guint loop : 1;
- guint direction : 1;
-};
-
-enum {
- PROP_0,
- PROP_FPS,
- PROP_DURATION,
- PROP_LOOP,
- PROP_DIRECTION,
- PROP_SCREEN
-};
-
-enum {
- STARTED,
- PAUSED,
- FINISHED,
- FRAME,
- LAST_SIGNAL
-};
-
-static guint signals [LAST_SIGNAL] = { 0, };
-
-
-static void gtk_timeline_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gtk_timeline_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-static void _gtk_timeline_finalize (GObject *object);
-
-
-G_DEFINE_TYPE (GtkTimeline, _gtk_timeline, G_TYPE_OBJECT)
-
-
-static void
-_gtk_timeline_class_init (GtkTimelineClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- object_class->set_property = gtk_timeline_set_property;
- object_class->get_property = gtk_timeline_get_property;
- object_class->finalize = _gtk_timeline_finalize;
-
- g_object_class_install_property (object_class,
- PROP_FPS,
- g_param_spec_uint ("fps",
- "FPS",
- "Frames per second for the timeline",
- 1, G_MAXUINT,
- DEFAULT_FPS,
- G_PARAM_READWRITE));
- g_object_class_install_property (object_class,
- PROP_DURATION,
- g_param_spec_uint ("duration",
- "Animation Duration",
- "Animation Duration",
- 0, G_MAXUINT,
- 0,
- G_PARAM_READWRITE));
- g_object_class_install_property (object_class,
- PROP_LOOP,
- g_param_spec_boolean ("loop",
- "Loop",
- "Whether the timeline loops or not",
- FALSE,
- G_PARAM_READWRITE));
- g_object_class_install_property (object_class,
- PROP_SCREEN,
- g_param_spec_object ("screen",
- "Screen",
- "Screen to get the settings from",
- GDK_TYPE_SCREEN,
- G_PARAM_READWRITE));
-
- signals[STARTED] =
- g_signal_new ("started",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GtkTimelineClass, started),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-
- signals[PAUSED] =
- g_signal_new ("paused",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GtkTimelineClass, paused),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-
- signals[FINISHED] =
- g_signal_new ("finished",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GtkTimelineClass, finished),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-
- signals[FRAME] =
- g_signal_new ("frame",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GtkTimelineClass, frame),
- NULL, NULL,
- g_cclosure_marshal_VOID__DOUBLE,
- G_TYPE_NONE, 1,
- G_TYPE_DOUBLE);
-
- g_type_class_add_private (klass, sizeof (GtkTimelinePriv));
-}
-
-static void
-_gtk_timeline_init (GtkTimeline *timeline)
-{
- GtkTimelinePriv *priv;
-
- priv = timeline->priv = G_TYPE_INSTANCE_GET_PRIVATE (timeline,
- GTK_TYPE_TIMELINE,
- GtkTimelinePriv);
-
- priv->fps = DEFAULT_FPS;
- priv->duration = 0.0;
- priv->direction = GTK_TIMELINE_DIRECTION_FORWARD;
- priv->screen = gdk_screen_get_default ();
-
- priv->last_progress = 0;
-}
-
-static void
-gtk_timeline_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GtkTimeline *timeline;
-
- timeline = GTK_TIMELINE (object);
-
- switch (prop_id)
- {
- case PROP_FPS:
- _gtk_timeline_set_fps (timeline, g_value_get_uint (value));
- break;
- case PROP_DURATION:
- _gtk_timeline_set_duration (timeline, g_value_get_uint (value));
- break;
- case PROP_LOOP:
- _gtk_timeline_set_loop (timeline, g_value_get_boolean (value));
- break;
- case PROP_DIRECTION:
- _gtk_timeline_set_direction (timeline, g_value_get_enum (value));
- break;
- case PROP_SCREEN:
- _gtk_timeline_set_screen (timeline,
- GDK_SCREEN (g_value_get_object (value)));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- }
-}
-
-static void
-gtk_timeline_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GtkTimeline *timeline;
- GtkTimelinePriv *priv;
-
- timeline = GTK_TIMELINE (object);
- priv = timeline->priv;
-
- switch (prop_id)
- {
- case PROP_FPS:
- g_value_set_uint (value, priv->fps);
- break;
- case PROP_DURATION:
- g_value_set_uint (value, priv->duration);
- break;
- case PROP_LOOP:
- g_value_set_boolean (value, priv->loop);
- break;
- case PROP_DIRECTION:
- g_value_set_enum (value, priv->direction);
- break;
- case PROP_SCREEN:
- g_value_set_object (value, priv->screen);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- }
-}
-
-static void
-_gtk_timeline_finalize (GObject *object)
-{
- GtkTimelinePriv *priv;
- GtkTimeline *timeline;
-
- timeline = (GtkTimeline *) object;
- priv = timeline->priv;
-
- if (priv->source_id)
- {
- g_source_remove (priv->source_id);
- priv->source_id = 0;
- }
-
- if (priv->timer)
- g_timer_destroy (priv->timer);
-
- G_OBJECT_CLASS (_gtk_timeline_parent_class)->finalize (object);
-}
-
-static gdouble
-calculate_progress (gdouble linear_progress,
- GtkTimelineProgressType progress_type)
-{
- gdouble progress;
-
- progress = linear_progress;
-
- switch (progress_type)
- {
- case GTK_TIMELINE_PROGRESS_LINEAR:
- break;
- case GTK_TIMELINE_PROGRESS_EASE_IN_OUT:
- progress *= 2;
-
- if (progress < 1)
- progress = pow (progress, 3) / 2;
- else
- progress = (pow (progress - 2, 3) + 2) / 2;
-
- break;
- case GTK_TIMELINE_PROGRESS_EASE:
- progress = (sin ((progress - 0.5) * G_PI) + 1) / 2;
- break;
- case GTK_TIMELINE_PROGRESS_EASE_IN:
- progress = pow (progress, 3);
- break;
- case GTK_TIMELINE_PROGRESS_EASE_OUT:
- progress = pow (progress - 1, 3) + 1;
- break;
- default:
- g_warning ("Timeline progress type not implemented");
- }
-
- return progress;
-}
-
-static gboolean
-gtk_timeline_run_frame (GtkTimeline *timeline)
-{
- GtkTimelinePriv *priv;
- gdouble delta_progress, progress;
-
- /* the user may unref us during the signals, so save ourselves */
- g_object_ref (timeline);
-
- priv = timeline->priv;
-
- priv->elapsed_time = (guint) (g_timer_elapsed (priv->timer, NULL) * 1000);
- g_timer_start (priv->timer);
-
- if (priv->animations_enabled)
- {
- delta_progress = (gdouble) priv->elapsed_time / priv->duration;
- progress = priv->last_progress;
-
- if (priv->direction == GTK_TIMELINE_DIRECTION_BACKWARD)
- progress -= delta_progress;
- else
- progress += delta_progress;
-
- priv->last_progress = progress;
-
- progress = CLAMP (progress, 0., 1.);
- }
- else
- progress = (priv->direction == GTK_TIMELINE_DIRECTION_FORWARD) ? 1.0 : 0.0;
-
- priv->progress = progress;
- g_signal_emit (timeline, signals [FRAME], 0,
- calculate_progress (progress, priv->progress_type));
-
- if ((priv->direction == GTK_TIMELINE_DIRECTION_FORWARD && progress == 1.0) ||
- (priv->direction == GTK_TIMELINE_DIRECTION_BACKWARD && progress == 0.0))
- {
- gboolean loop;
-
- loop = priv->loop && priv->animations_enabled;
-
- if (loop)
- _gtk_timeline_rewind (timeline);
- else
- {
- if (priv->source_id)
- {
- g_source_remove (priv->source_id);
- priv->source_id = 0;
- }
- g_timer_stop (priv->timer);
- g_signal_emit (timeline, signals [FINISHED], 0);
- g_object_unref (timeline);
- return FALSE;
- }
- }
-
- g_object_unref (timeline);
-
- return TRUE;
-}
-
-/*
- * _gtk_timeline_new:
- * @duration: duration in milliseconds for the timeline
- *
- * Creates a new #GtkTimeline with the specified number of frames.
- *
- * Return Value: the newly created #GtkTimeline
- */
-GtkTimeline *
-_gtk_timeline_new (guint duration)
-{
- return g_object_new (GTK_TYPE_TIMELINE,
- "duration", duration,
- NULL);
-}
-
-GtkTimeline *
-_gtk_timeline_new_for_screen (guint duration,
- GdkScreen *screen)
-{
- return g_object_new (GTK_TYPE_TIMELINE,
- "duration", duration,
- "screen", screen,
- NULL);
-}
-
-/*
- * _gtk_timeline_start:
- * @timeline: A #GtkTimeline
- *
- * Runs the timeline from the current frame.
- */
-void
-_gtk_timeline_start (GtkTimeline *timeline)
-{
- GtkTimelinePriv *priv;
- GtkSettings *settings;
- gboolean enable_animations = FALSE;
-
- g_return_if_fail (GTK_IS_TIMELINE (timeline));
-
- priv = timeline->priv;
-
- if (!priv->source_id)
- {
- if (priv->timer)
- g_timer_continue (priv->timer);
- else
- priv->timer = g_timer_new ();
-
- /* sanity check */
- g_assert (priv->fps > 0);
-
- if (priv->screen)
- {
- settings = gtk_settings_get_for_screen (priv->screen);
- g_object_get (settings, "gtk-enable-animations", &enable_animations, NULL);
- }
-
- priv->animations_enabled = enable_animations;
-
- g_signal_emit (timeline, signals [STARTED], 0);
-
- if (enable_animations)
- priv->source_id = gdk_threads_add_timeout (FRAME_INTERVAL (priv->fps),
- (GSourceFunc) gtk_timeline_run_frame,
- timeline);
- else
- priv->source_id = gdk_threads_add_idle ((GSourceFunc) gtk_timeline_run_frame,
- timeline);
- }
-}
-
-/*
- * _gtk_timeline_pause:
- * @timeline: A #GtkTimeline
- *
- * Pauses the timeline.
- */
-void
-_gtk_timeline_pause (GtkTimeline *timeline)
-{
- GtkTimelinePriv *priv;
-
- g_return_if_fail (GTK_IS_TIMELINE (timeline));
-
- priv = timeline->priv;
-
- if (priv->source_id)
- {
- g_timer_stop (priv->timer);
- g_source_remove (priv->source_id);
- priv->source_id = 0;
- g_signal_emit (timeline, signals [PAUSED], 0);
- }
-}
-
-/*
- * _gtk_timeline_rewind:
- * @timeline: A #GtkTimeline
- *
- * Rewinds the timeline.
- */
-void
-_gtk_timeline_rewind (GtkTimeline *timeline)
-{
- GtkTimelinePriv *priv;
-
- g_return_if_fail (GTK_IS_TIMELINE (timeline));
-
- priv = timeline->priv;
-
- if (_gtk_timeline_get_direction (timeline) != GTK_TIMELINE_DIRECTION_FORWARD)
- priv->progress = priv->last_progress = 1.;
- else
- priv->progress = priv->last_progress = 0.;
-
- /* reset timer */
- if (priv->timer)
- {
- g_timer_start (priv->timer);
-
- if (!priv->source_id)
- g_timer_stop (priv->timer);
- }
-}
-
-/*
- * _gtk_timeline_is_running:
- * @timeline: A #GtkTimeline
- *
- * Returns whether the timeline is running or not.
- *
- * Return Value: %TRUE if the timeline is running
- */
-gboolean
-_gtk_timeline_is_running (GtkTimeline *timeline)
-{
- GtkTimelinePriv *priv;
-
- g_return_val_if_fail (GTK_IS_TIMELINE (timeline), FALSE);
-
- priv = timeline->priv;
-
- return (priv->source_id != 0);
-}
-
-/*
- * _gtk_timeline_get_elapsed_time:
- * @timeline: A #GtkTimeline
- *
- * Returns the elapsed time since the last GtkTimeline::frame signal
- *
- * Return Value: elapsed time in milliseconds since the last frame
- */
-guint
-_gtk_timeline_get_elapsed_time (GtkTimeline *timeline)
-{
- GtkTimelinePriv *priv;
-
- g_return_val_if_fail (GTK_IS_TIMELINE (timeline), 0);
-
- priv = timeline->priv;
- return priv->elapsed_time;
-}
-
-/*
- * _gtk_timeline_get_fps:
- * @timeline: A #GtkTimeline
- *
- * Returns the number of frames per second.
- *
- * Return Value: frames per second
- */
-guint
-_gtk_timeline_get_fps (GtkTimeline *timeline)
-{
- GtkTimelinePriv *priv;
-
- g_return_val_if_fail (GTK_IS_TIMELINE (timeline), 1);
-
- priv = timeline->priv;
- return priv->fps;
-}
-
-/*
- * _gtk_timeline_set_fps:
- * @timeline: A #GtkTimeline
- * @fps: frames per second
- *
- * Sets the number of frames per second that
- * the timeline will play.
- */
-void
-_gtk_timeline_set_fps (GtkTimeline *timeline,
- guint fps)
-{
- GtkTimelinePriv *priv;
-
- g_return_if_fail (GTK_IS_TIMELINE (timeline));
- g_return_if_fail (fps > 0);
-
- priv = timeline->priv;
-
- priv->fps = fps;
-
- if (_gtk_timeline_is_running (timeline))
- {
- g_source_remove (priv->source_id);
- priv->source_id = gdk_threads_add_timeout (FRAME_INTERVAL (priv->fps),
- (GSourceFunc) gtk_timeline_run_frame,
- timeline);
- }
-
- g_object_notify (G_OBJECT (timeline), "fps");
-}
-
-/*
- * _gtk_timeline_get_loop:
- * @timeline: A #GtkTimeline
- *
- * Returns whether the timeline loops to the
- * beginning when it has reached the end.
- *
- * Return Value: %TRUE if the timeline loops
- */
-gboolean
-_gtk_timeline_get_loop (GtkTimeline *timeline)
-{
- GtkTimelinePriv *priv;
-
- g_return_val_if_fail (GTK_IS_TIMELINE (timeline), FALSE);
-
- priv = timeline->priv;
- return priv->loop;
-}
-
-/*
- * _gtk_timeline_set_loop:
- * @timeline: A #GtkTimeline
- * @loop: %TRUE to make the timeline loop
- *
- * Sets whether the timeline loops to the beginning
- * when it has reached the end.
- */
-void
-_gtk_timeline_set_loop (GtkTimeline *timeline,
- gboolean loop)
-{
- GtkTimelinePriv *priv;
-
- g_return_if_fail (GTK_IS_TIMELINE (timeline));
-
- priv = timeline->priv;
-
- if (loop != priv->loop)
- {
- priv->loop = loop;
- g_object_notify (G_OBJECT (timeline), "loop");
- }
-}
-
-void
-_gtk_timeline_set_duration (GtkTimeline *timeline,
- guint duration)
-{
- GtkTimelinePriv *priv;
-
- g_return_if_fail (GTK_IS_TIMELINE (timeline));
-
- priv = timeline->priv;
-
- if (duration != priv->duration)
- {
- priv->duration = duration;
- g_object_notify (G_OBJECT (timeline), "duration");
- }
-}
-
-guint
-_gtk_timeline_get_duration (GtkTimeline *timeline)
-{
- GtkTimelinePriv *priv;
-
- g_return_val_if_fail (GTK_IS_TIMELINE (timeline), 0);
-
- priv = timeline->priv;
-
- return priv->duration;
-}
-
-/*
- * _gtk_timeline_set_direction:
- * @timeline: A #GtkTimeline
- * @direction: direction
- *
- * Sets the direction of the timeline.
- */
-void
-_gtk_timeline_set_direction (GtkTimeline *timeline,
- GtkTimelineDirection direction)
-{
- GtkTimelinePriv *priv;
-
- g_return_if_fail (GTK_IS_TIMELINE (timeline));
-
- priv = timeline->priv;
- priv->direction = direction;
-}
-
-/*
- * _gtk_timeline_get_direction:
- * @timeline: A #GtkTimeline
- *
- * Returns the direction of the timeline.
- *
- * Return Value: direction
- */
-GtkTimelineDirection
-_gtk_timeline_get_direction (GtkTimeline *timeline)
-{
- GtkTimelinePriv *priv;
-
- g_return_val_if_fail (GTK_IS_TIMELINE (timeline), GTK_TIMELINE_DIRECTION_FORWARD);
-
- priv = timeline->priv;
- return priv->direction;
-}
-
-void
-_gtk_timeline_set_screen (GtkTimeline *timeline,
- GdkScreen *screen)
-{
- GtkTimelinePriv *priv;
-
- g_return_if_fail (GTK_IS_TIMELINE (timeline));
- g_return_if_fail (GDK_IS_SCREEN (screen));
-
- priv = timeline->priv;
-
- if (priv->screen)
- g_object_unref (priv->screen);
-
- priv->screen = g_object_ref (screen);
-
- g_object_notify (G_OBJECT (timeline), "screen");
-}
-
-GdkScreen *
-_gtk_timeline_get_screen (GtkTimeline *timeline)
-{
- GtkTimelinePriv *priv;
-
- g_return_val_if_fail (GTK_IS_TIMELINE (timeline), NULL);
-
- priv = timeline->priv;
- return priv->screen;
-}
-
-gdouble
-_gtk_timeline_get_progress (GtkTimeline *timeline)
-{
- GtkTimelinePriv *priv;
-
- g_return_val_if_fail (GTK_IS_TIMELINE (timeline), 0.);
-
- priv = timeline->priv;
- return calculate_progress (priv->progress, priv->progress_type);
-}
-
-GtkTimelineProgressType
-_gtk_timeline_get_progress_type (GtkTimeline *timeline)
-{
- GtkTimelinePriv *priv;
-
- g_return_val_if_fail (GTK_IS_TIMELINE (timeline), GTK_TIMELINE_PROGRESS_LINEAR);
-
- priv = timeline->priv;
- return priv->progress_type;
-}
-
-void
-_gtk_timeline_set_progress_type (GtkTimeline *timeline,
- GtkTimelineProgressType progress_type)
-{
- GtkTimelinePriv *priv;
-
- g_return_if_fail (GTK_IS_TIMELINE (timeline));
-
- priv = timeline->priv;
- priv->progress_type = progress_type;
-}
diff --git a/gtk/gtktimeline.h b/gtk/gtktimeline.h
deleted file mode 100644
index 54744ef9a2..0000000000
--- a/gtk/gtktimeline.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* GTK - The GIMP Toolkit
- * Copyright (C) 2007 Carlos Garnacho <carlos@imendio.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __GTK_TIMELINE_H__
-#define __GTK_TIMELINE_H__
-
-#include <glib-object.h>
-#include <gtk/gtkenums.h>
-#include <gdk/gdk.h>
-
-G_BEGIN_DECLS
-
-#define GTK_TYPE_TIMELINE (_gtk_timeline_get_type ())
-#define GTK_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TIMELINE, GtkTimeline))
-#define GTK_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TIMELINE, GtkTimelineClass))
-#define GTK_IS_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TIMELINE))
-#define GTK_IS_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TIMELINE))
-#define GTK_TIMELINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TIMELINE, GtkTimelineClass))
-
-typedef struct GtkTimeline GtkTimeline;
-typedef struct GtkTimelineClass GtkTimelineClass;
-
-typedef enum {
- GTK_TIMELINE_DIRECTION_FORWARD,
- GTK_TIMELINE_DIRECTION_BACKWARD
-} GtkTimelineDirection;
-
-typedef enum {
- GTK_TIMELINE_PROGRESS_LINEAR,
- GTK_TIMELINE_PROGRESS_EASE,
- GTK_TIMELINE_PROGRESS_EASE_IN,
- GTK_TIMELINE_PROGRESS_EASE_OUT,
- GTK_TIMELINE_PROGRESS_EASE_IN_OUT
-} GtkTimelineProgressType;
-
-struct GtkTimeline
-{
- GObject parent_instance;
- gpointer priv;
-};
-
-struct GtkTimelineClass
-{
- GObjectClass parent_class;
-
- void (* started) (GtkTimeline *timeline);
- void (* finished) (GtkTimeline *timeline);
- void (* paused) (GtkTimeline *timeline);
-
- void (* frame) (GtkTimeline *timeline,
- gdouble progress);
-
- void (* __gtk_reserved1) (void);
- void (* __gtk_reserved2) (void);
- void (* __gtk_reserved3) (void);
- void (* __gtk_reserved4) (void);
-};
-
-
-GType _gtk_timeline_get_type (void) G_GNUC_CONST;
-
-GtkTimeline * _gtk_timeline_new (guint duration);
-GtkTimeline * _gtk_timeline_new_for_screen (guint duration,
- GdkScreen *screen);
-
-void _gtk_timeline_start (GtkTimeline *timeline);
-void _gtk_timeline_pause (GtkTimeline *timeline);
-void _gtk_timeline_rewind (GtkTimeline *timeline);
-
-gboolean _gtk_timeline_is_running (GtkTimeline *timeline);
-guint _gtk_timeline_get_elapsed_time (GtkTimeline *timeline);
-
-guint _gtk_timeline_get_fps (GtkTimeline *timeline);
-void _gtk_timeline_set_fps (GtkTimeline *timeline,
- guint fps);
-
-gboolean _gtk_timeline_get_loop (GtkTimeline *timeline);
-void _gtk_timeline_set_loop (GtkTimeline *timeline,
- gboolean loop);
-
-guint _gtk_timeline_get_duration (GtkTimeline *timeline);
-void _gtk_timeline_set_duration (GtkTimeline *timeline,
- guint duration);
-
-GdkScreen * _gtk_timeline_get_screen (GtkTimeline *timeline);
-void _gtk_timeline_set_screen (GtkTimeline *timeline,
- GdkScreen *screen);
-
-GtkTimelineDirection _gtk_timeline_get_direction (GtkTimeline *timeline);
-void _gtk_timeline_set_direction (GtkTimeline *timeline,
- GtkTimelineDirection direction);
-
-gdouble _gtk_timeline_get_progress (GtkTimeline *timeline);
-
-GtkTimelineProgressType _gtk_timeline_get_progress_type (GtkTimeline *timeline);
-void _gtk_timeline_set_progress_type (GtkTimeline *timeline,
- GtkTimelineProgressType progress_type);
-
-
-G_END_DECLS
-
-#endif /* __GTK_TIMELINE_H__ */
diff --git a/gtk/gtktoolitemgroup.c b/gtk/gtktoolitemgroup.c
index 09f6e3a553..82215716b6 100644
--- a/gtk/gtktoolitemgroup.c
+++ b/gtk/gtktoolitemgroup.c
@@ -303,14 +303,10 @@ gtk_tool_item_group_header_draw_cb (GtkWidget *widget,
y = 0;
}
- /* The expander is the only animatable region */
- gtk_style_context_push_animatable_region (context, GUINT_TO_POINTER (1));
-
gtk_render_expander (context, cr, x, y,
priv->expander_size,
priv->expander_size);
- gtk_style_context_pop_animatable_region (context);
gtk_style_context_restore (context);
return FALSE;
@@ -1909,8 +1905,6 @@ gtk_tool_item_group_set_collapsed (GtkToolItemGroup *group,
GTK_WIDGET (group));
if (collapsed != priv->collapsed)
{
- GtkStyleContext *context;
-
if (priv->animation)
{
if (priv->animation_timeout)
@@ -1923,19 +1917,6 @@ gtk_tool_item_group_set_collapsed (GtkToolItemGroup *group,
gtk_tool_item_group_animation_cb,
group, NULL);
g_source_attach (priv->animation_timeout, NULL);
-
- context = gtk_widget_get_style_context (gtk_bin_get_child (GTK_BIN (priv->header)));
-
- gtk_style_context_save (context);
- gtk_style_context_add_class (context, GTK_STYLE_CLASS_EXPANDER);
-
- gtk_style_context_notify_state_change (context,
- gtk_widget_get_window (priv->header),
- GUINT_TO_POINTER (1),
- GTK_STATE_FLAG_ACTIVE,
- !collapsed);
-
- gtk_style_context_restore (context);
}
else
gtk_tool_item_group_force_expose (group);
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index 52c7aa34cc..93ccb6ed3c 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -2299,7 +2299,6 @@ gtk_tree_view_unrealize (GtkWidget *widget)
{
GtkTreeView *tree_view = GTK_TREE_VIEW (widget);
GtkTreeViewPrivate *priv = tree_view->priv;
- GtkStyleContext *context;
GList *list;
if (priv->scroll_timeout != 0)
@@ -2320,9 +2319,6 @@ gtk_tree_view_unrealize (GtkWidget *widget)
priv->open_dest_timeout = 0;
}
- context = gtk_widget_get_style_context (widget);
- gtk_style_context_cancel_animations (context, NULL);
-
if (priv->presize_handler_timer != 0)
{
g_source_remove (priv->presize_handler_timer);
@@ -9009,7 +9005,6 @@ gtk_tree_view_row_deleted (GtkTreeModel *model,
gboolean selection_changed = FALSE, cursor_changed = FALSE;
GtkRBTree *cursor_tree = NULL;
GtkRBNode *cursor_node = NULL;
- GtkStyleContext *context;
g_return_if_fail (path != NULL);
@@ -9114,10 +9109,6 @@ gtk_tree_view_row_deleted (GtkTreeModel *model,
tree_view->priv->top_row = NULL;
}
- /* Cancel any ongoing animation happening within the row */
- context = gtk_widget_get_style_context (GTK_WIDGET (tree_view));
- gtk_style_context_cancel_animations (context, node);
-
install_scroll_sync_handler (tree_view);
gtk_widget_queue_resize (GTK_WIDGET (tree_view));
@@ -10140,13 +10131,10 @@ gtk_tree_view_draw_arrow (GtkTreeView *tree_view,
gtk_style_context_set_state (context, state);
gtk_style_context_add_class (context, GTK_STYLE_CLASS_EXPANDER);
- gtk_style_context_push_animatable_region (context, node);
-
gtk_render_expander (context, cr,
area.x, area.y,
area.width, area.height);
- gtk_style_context_pop_animatable_region (context);
gtk_style_context_restore (context);
}
@@ -11255,7 +11243,6 @@ gtk_tree_view_adjustment_changed (GtkAdjustment *adjustment,
{
if (gtk_widget_get_realized (GTK_WIDGET (tree_view)))
{
- GtkStyleContext *context;
gint dy;
gdk_window_move (tree_view->priv->bin_window,
@@ -11298,9 +11285,6 @@ gtk_tree_view_adjustment_changed (GtkAdjustment *adjustment,
}
gdk_window_scroll (tree_view->priv->bin_window, 0, dy);
- context = gtk_widget_get_style_context (GTK_WIDGET (tree_view));
- gtk_style_context_scroll_animations (context, tree_view->priv->bin_window, 0, dy);
-
if (tree_view->priv->dy != (int) gtk_adjustment_get_value (tree_view->priv->vadjustment))
{
/* update our dy and top_row */
@@ -11395,14 +11379,10 @@ gtk_tree_view_set_model (GtkTreeView *tree_view,
if (tree_view->priv->model)
{
GList *tmplist = tree_view->priv->columns;
- GtkStyleContext *context;
gtk_tree_view_unref_and_check_selection_tree (tree_view, tree_view->priv->tree);
gtk_tree_view_stop_editing (tree_view, TRUE);
- context = gtk_widget_get_style_context (GTK_WIDGET (tree_view));
- gtk_style_context_cancel_animations (context, NULL);
-
g_signal_handlers_disconnect_by_func (tree_view->priv->model,
gtk_tree_view_row_changed,
tree_view);
@@ -12794,22 +12774,6 @@ gtk_tree_view_real_expand_row (GtkTreeView *tree_view,
tree, node,
GTK_CELL_RENDERER_EXPANDED);
- if (animate)
- {
- GtkStyleContext *context;
-
- context = gtk_widget_get_style_context (GTK_WIDGET (tree_view));
-
- gtk_style_context_save (context);
- gtk_style_context_add_class (context, GTK_STYLE_CLASS_EXPANDER);
-
- gtk_style_context_notify_state_change (context, tree_view->priv->bin_window,
- node, GTK_STATE_ACTIVE, TRUE);
-
- _gtk_style_context_invalidate_animation_areas (context);
- gtk_style_context_restore (context);
- }
-
install_presize_handler (tree_view);
g_signal_emit (tree_view, tree_view_signals[ROW_EXPANDED], 0, &iter, path);
@@ -12973,22 +12937,6 @@ gtk_tree_view_real_collapse_row (GtkTreeView *tree_view,
if (selection_changed)
g_signal_emit_by_name (tree_view->priv->selection, "changed");
- if (animate)
- {
- GtkStyleContext *context;
-
- context = gtk_widget_get_style_context (GTK_WIDGET (tree_view));
-
- gtk_style_context_save (context);
- gtk_style_context_add_class (context, GTK_STYLE_CLASS_EXPANDER);
-
- gtk_style_context_notify_state_change (context, tree_view->priv->bin_window,
- node, GTK_STATE_ACTIVE, FALSE);
-
- _gtk_style_context_invalidate_animation_areas (context);
- gtk_style_context_restore (context);
- }
-
if (gtk_widget_get_mapped (GTK_WIDGET (tree_view)))
{
gtk_widget_queue_resize (GTK_WIDGET (tree_view));
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 4738d2a364..d74c94140e 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -56,7 +56,6 @@
#include "gtkstylecontextprivate.h"
#include "gtksymboliccolor.h"
#include "gtkcssprovider.h"
-#include "gtkanimationdescription.h"
#include "gtkmodifierstyle.h"
#include "gtkversion.h"
#include "gtkdebug.h"
@@ -4177,82 +4176,6 @@ gtk_widget_show_all (GtkWidget *widget)
class->show_all (widget);
}
-static void
-_gtk_widget_notify_state_change (GtkWidget *widget,
- GtkStateFlags flag,
- gboolean target)
-{
- GtkStateType state;
-
- switch (flag)
- {
- case GTK_STATE_FLAG_ACTIVE:
- state = GTK_STATE_ACTIVE;
- break;
- case GTK_STATE_FLAG_PRELIGHT:
- state = GTK_STATE_PRELIGHT;
- break;
- case GTK_STATE_FLAG_SELECTED:
- state = GTK_STATE_SELECTED;
- break;
- case GTK_STATE_FLAG_INSENSITIVE:
- state = GTK_STATE_INSENSITIVE;
- break;
- case GTK_STATE_FLAG_INCONSISTENT:
- state = GTK_STATE_INCONSISTENT;
- break;
- case GTK_STATE_FLAG_FOCUSED:
- state = GTK_STATE_FOCUSED;
- break;
- default:
- return;
- }
-
- gtk_style_context_notify_state_change (widget->priv->context,
- gtk_widget_get_window (widget),
- NULL, state, target);
-}
-
-/* Initializes state transitions for those states that
- * were enabled before mapping and have a looping animation.
- */
-static void
-_gtk_widget_start_state_transitions (GtkWidget *widget)
-{
- GtkStateFlags state, flag;
-
- if (!widget->priv->context)
- return;
-
- state = gtk_widget_get_state_flags (widget);
- flag = GTK_STATE_FLAG_FOCUSED;
-
- while (flag)
- {
- GtkAnimationDescription *animation_desc;
-
- if ((state & flag) == 0)
- {
- flag >>= 1;
- continue;
- }
-
- gtk_style_context_get (widget->priv->context, state,
- "transition", &animation_desc,
- NULL);
-
- if (animation_desc)
- {
- if (_gtk_animation_description_get_loop (animation_desc))
- _gtk_widget_notify_state_change (widget, flag, TRUE);
-
- _gtk_animation_description_unref (animation_desc);
- }
-
- flag >>= 1;
- }
-}
-
/**
* gtk_widget_map:
* @widget: a #GtkWidget
@@ -4284,8 +4207,6 @@ gtk_widget_map (GtkWidget *widget)
gdk_window_invalidate_rect (priv->window, &priv->allocation, FALSE);
gtk_widget_pop_verify_invariants (widget);
-
- _gtk_widget_start_state_transitions (widget);
}
}
@@ -4316,9 +4237,6 @@ gtk_widget_unmap (GtkWidget *widget)
gtk_widget_pop_verify_invariants (widget);
- if (priv->context)
- gtk_style_context_cancel_animations (priv->context, NULL);
-
/* Unset pointer/window info */
g_object_set_qdata (G_OBJECT (widget), quark_pointer_window, NULL);
}
@@ -5024,14 +4942,6 @@ gtk_widget_size_allocate (GtkWidget *widget,
cairo_region_destroy (invalidate);
}
}
-
- if (size_changed || position_changed)
- {
- GtkStyleContext *context;
-
- context = gtk_widget_get_style_context (widget);
- _gtk_style_context_invalidate_animation_areas (context);
- }
}
if ((size_changed || position_changed) && priv->parent &&
@@ -5807,8 +5717,6 @@ _gtk_widget_draw_internal (GtkWidget *widget,
cairo_t *cr,
gboolean clip_to_size)
{
- GtkStyleContext *context;
-
if (!gtk_widget_is_drawable (widget))
return;
@@ -5844,9 +5752,6 @@ _gtk_widget_draw_internal (GtkWidget *widget,
cairo_status_to_string (cairo_status (cr)));
}
}
-
- context = gtk_widget_get_style_context (widget);
- _gtk_style_context_coalesce_animation_areas (context, widget);
}
/**
@@ -11024,30 +10929,6 @@ gtk_widget_propagate_state (GtkWidget *widget,
&child_data);
}
- /* Trigger state change transitions for the widget */
- if (priv->context &&
- gtk_widget_get_mapped (widget))
- {
- gint diff, flag = 1;
-
- diff = old_flags ^ new_flags;
-
- while (diff != 0)
- {
- if ((diff & flag) != 0)
- {
- gboolean target;
-
- target = ((new_flags & flag) != 0);
- _gtk_widget_notify_state_change (widget, flag, target);
-
- diff &= ~flag;
- }
-
- flag <<= 1;
- }
- }
-
g_object_unref (widget);
}
}
diff --git a/tests/styleexamples.c b/tests/styleexamples.c
index e583ce8aea..b3169f4e9c 100644
--- a/tests/styleexamples.c
+++ b/tests/styleexamples.c
@@ -151,12 +151,6 @@ draw_cb_activity (GtkWidget *widget, cairo_t *cr)
GtkWidgetPath *path;
context = gtk_widget_get_style_context (widget);
- gtk_style_context_notify_state_change (context,
- gtk_widget_get_window (widget),
- NULL,
- GTK_STATE_FLAG_ACTIVE,
- TRUE);
-
gtk_style_context_save (context);
path = gtk_widget_path_new ();