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 - * - * 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 . - */ - -#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 - * - * 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 . - */ - -#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 #include -#include "gtkanimationdescription.h" #include "gtkcssimagegradientprivate.h" #include "gtkcssprovider.h" #include "gtkcssrgbavalueprivate.h" @@ -602,43 +601,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, @@ -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" @@ -113,21 +112,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, @@ -816,27 +800,6 @@ engine_assign (GtkCssStyleProperty *property, return _gtk_css_engine_value_new (g_value_get_object (value)); } -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, @@ -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; }; @@ -656,168 +630,11 @@ gtk_style_context_init (GtkStyleContext *style_context) priv->info_stack = g_slist_prepend (priv->info_stack, info); } -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 - * - * 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 . - */ - -#include -#include -#include -#include - -#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 - * - * 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 . - */ - -#ifndef __GTK_TIMELINE_H__ -#define __GTK_TIMELINE_H__ - -#include -#include -#include - -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 ();