[gtk/deprecate-render: 1/4] stylecontext: Deprecate most apis




commit 5c2537228ea1538ad6cf648335dad023362d84d4
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Oct 9 23:30:06 2022 -0400

    stylecontext: Deprecate most apis
    
    The notable exception here are the global provider apis,
    which are needed in some form and don't have a replacement
    yet. Move them to gtkstyleprovider.[hc], so we can wholly
    deprecated gtkstylecontext.[hc].

 gtk/{ => deprecated}/gtkstylecontext.c        | 95 +++++++++++----------------
 gtk/{ => deprecated}/gtkstylecontext.h        | 46 ++++++-------
 gtk/{ => deprecated}/gtkstylecontextprivate.h |  0
 gtk/deprecated/meson.build                    |  2 +
 gtk/gtk.h                                     |  2 +-
 gtk/gtkcsscolorvalue.c                        |  2 +
 gtk/gtkcsskeyframes.c                         |  1 +
 gtk/gtkcssnodeprivate.h                       |  2 +-
 gtk/gtkcssselector.c                          |  2 +-
 gtk/gtkcsstypes.c                             |  1 -
 gtk/gtkcsswidgetnode.c                        |  2 +-
 gtk/gtkicontheme.c                            |  1 -
 gtk/gtkimcontextime.c                         |  2 +-
 gtk/gtknotebook.c                             |  1 -
 gtk/gtkpopovercontent.c                       |  2 +-
 gtk/gtksettings.c                             |  2 +-
 gtk/gtksnapshot.c                             |  1 -
 gtk/gtkstylepropertyprivate.h                 |  1 -
 gtk/gtkstyleprovider.c                        | 63 ++++++++++++++++++
 gtk/gtkstyleprovider.h                        |  9 +++
 gtk/gtkstyleproviderprivate.h                 |  1 +
 gtk/gtktextutil.c                             |  1 -
 gtk/gtkwidget.c                               | 14 +++-
 gtk/gtkwidget.h                               |  2 +-
 gtk/gtkwidgetprivate.h                        |  9 ---
 gtk/inspector/css-editor.c                    |  1 -
 gtk/inspector/graphrenderer.c                 |  4 +-
 gtk/inspector/window.c                        |  1 -
 gtk/meson.build                               |  2 -
 29 files changed, 160 insertions(+), 112 deletions(-)
---
diff --git a/gtk/gtkstylecontext.c b/gtk/deprecated/gtkstylecontext.c
similarity index 93%
rename from gtk/gtkstylecontext.c
rename to gtk/deprecated/gtkstylecontext.c
index 18c90bf0d9..72e30e2822 100644
--- a/gtk/gtkstylecontext.c
+++ b/gtk/deprecated/gtkstylecontext.c
@@ -220,7 +220,9 @@ gtk_style_context_impl_set_property (GObject      *object,
   switch (prop_id)
     {
     case PROP_DISPLAY:
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
       gtk_style_context_set_display (context, g_value_get_object (value));
+G_GNUC_END_IGNORE_DEPRECATIONS
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -341,6 +343,8 @@ gtk_style_context_new_for_node (GtkCssNode *node)
  * Note: If both priorities are the same, a `GtkStyleProvider`
  * added through this function takes precedence over another added
  * through [func@Gtk.StyleContext.add_provider_for_display].
+ *
+ * Deprecated: 4.10: Use style classes instead
  */
 void
 gtk_style_context_add_provider (GtkStyleContext  *context,
@@ -376,6 +380,8 @@ gtk_style_context_add_provider (GtkStyleContext  *context,
  * @provider: a `GtkStyleProvider`
  *
  * Removes @provider from the style providers list in @context.
+ *
+ * Deprecated: 4.10
  */
 void
 gtk_style_context_remove_provider (GtkStyleContext  *context,
@@ -392,68 +398,14 @@ gtk_style_context_remove_provider (GtkStyleContext  *context,
   _gtk_style_cascade_remove_provider (priv->cascade, provider);
 }
 
-/**
- * gtk_style_context_add_provider_for_display:
- * @display: a `GdkDisplay`
- * @provider: a `GtkStyleProvider`
- * @priority: the priority of the style provider. The lower
- *   it is, the earlier it will be used in the style construction.
- *   Typically this will be in the range between
- *   %GTK_STYLE_PROVIDER_PRIORITY_FALLBACK and
- *   %GTK_STYLE_PROVIDER_PRIORITY_USER
- *
- * Adds a global style provider to @display, which will be used
- * in style construction for all `GtkStyleContexts` under @display.
- *
- * GTK uses this to make styling information from `GtkSettings`
- * available.
- *
- * Note: If both priorities are the same, A `GtkStyleProvider`
- * added through [method@Gtk.StyleContext.add_provider] takes
- * precedence over another added through this function.
- **/
-void
-gtk_style_context_add_provider_for_display (GdkDisplay       *display,
-                                            GtkStyleProvider *provider,
-                                            guint             priority)
-{
-  GtkStyleCascade *cascade;
-
-  g_return_if_fail (GDK_IS_DISPLAY (display));
-  g_return_if_fail (GTK_IS_STYLE_PROVIDER (provider));
-  g_return_if_fail (!GTK_IS_SETTINGS (provider) || _gtk_settings_get_display (GTK_SETTINGS (provider)) == 
display);
-
-  cascade = _gtk_settings_get_style_cascade (gtk_settings_get_for_display (display), 1);
-  _gtk_style_cascade_add_provider (cascade, provider, priority);
-}
-
-/**
- * gtk_style_context_remove_provider_for_display:
- * @display: a `GdkDisplay`
- * @provider: a `GtkStyleProvider`
- *
- * Removes @provider from the global style providers list in @display.
- */
-void
-gtk_style_context_remove_provider_for_display (GdkDisplay       *display,
-                                               GtkStyleProvider *provider)
-{
-  GtkStyleCascade *cascade;
-
-  g_return_if_fail (GDK_IS_DISPLAY (display));
-  g_return_if_fail (GTK_IS_STYLE_PROVIDER (provider));
-  g_return_if_fail (!GTK_IS_SETTINGS (provider));
-
-  cascade = _gtk_settings_get_style_cascade (gtk_settings_get_for_display (display), 1);
-  _gtk_style_cascade_remove_provider (cascade, provider);
-}
-
 /**
  * gtk_style_context_set_state:
  * @context: a `GtkStyleContext`
  * @flags: state to represent
  *
  * Sets the state to be used for style matching.
+ *
+ * Deprecated: 4.10: You should not use this api
  */
 void
 gtk_style_context_set_state (GtkStyleContext *context,
@@ -479,6 +431,8 @@ gtk_style_context_set_state (GtkStyleContext *context,
  * [method@Gtk.Widget.get_state_flags].
  *
  * Returns: the state flags
+ *
+ * Deprecated: 4.10: Use [method@Gtk.Widget.get_state_flags] instead
  **/
 GtkStateFlags
 gtk_style_context_get_state (GtkStyleContext *context)
@@ -496,6 +450,8 @@ gtk_style_context_get_state (GtkStyleContext *context)
  * @scale: scale
  *
  * Sets the scale to use when getting image assets for the style.
+ *
+ * Deprecated: 4.10: You should not use this api
  **/
 void
 gtk_style_context_set_scale (GtkStyleContext *context,
@@ -529,6 +485,8 @@ gtk_style_context_set_scale (GtkStyleContext *context,
  * Returns the scale used for assets.
  *
  * Returns: the scale
+ *
+ * Deprecated 4.10: Use [method@Gtk.Widget.get_scale_factor] instead
  **/
 int
 gtk_style_context_get_scale (GtkStyleContext *context)
@@ -586,6 +544,8 @@ gtk_style_context_save_to_node (GtkStyleContext *context,
  *
  * The matching call to [method@Gtk.StyleContext.restore]
  * must be done before GTK returns to the main loop.
+ *
+ * Deprecated: 4.10: This API will be removed in GTK 5
  **/
 void
 gtk_style_context_save (GtkStyleContext *context)
@@ -616,6 +576,8 @@ gtk_style_context_save (GtkStyleContext *context)
  * Restores @context state to a previous stage.
  *
  * See [method Gtk StyleContext save].
+ *
+ * Deprecated: 4.10: This API will be removed in GTK 5
  **/
 void
 gtk_style_context_restore (GtkStyleContext *context)
@@ -653,6 +615,7 @@ gtk_style_context_restore (GtkStyleContext *context)
  * ```css
  * .search { ... }
  * ```
+ * Deprecated: 4.10: Use [method@Gtk.Widget.add_css_class] instead
  */
 void
 gtk_style_context_add_class (GtkStyleContext *context,
@@ -675,6 +638,8 @@ gtk_style_context_add_class (GtkStyleContext *context,
  * @class_name: class name to remove
  *
  * Removes @class_name from @context.
+ *
+ * Deprecated: 4.10: Use [method@Gtk.Widget.remove_css_class] instead
  */
 void
 gtk_style_context_remove_class (GtkStyleContext *context,
@@ -702,6 +667,8 @@ gtk_style_context_remove_class (GtkStyleContext *context,
  * given class name.
  *
  * Returns: %TRUE if @context has @class_name defined
+ *
+ * Deprecated: 4.10: Use [method@Gtk.Widget.has_css_class] instead
  **/
 gboolean
 gtk_style_context_has_class (GtkStyleContext *context,
@@ -742,6 +709,8 @@ _gtk_style_context_peek_property (GtkStyleContext *context,
  * If you are using a `GtkStyleContext` returned from
  * [method@Gtk.Widget.get_style_context], you do not need to
  * call this yourself.
+ *
+ * Deprecated: 4.10: You should not use this api
  */
 void
 gtk_style_context_set_display (GtkStyleContext *context,
@@ -780,6 +749,8 @@ gtk_style_context_set_display (GtkStyleContext *context,
  * Returns the `GdkDisplay` to which @context is attached.
  *
  * Returns: (transfer none): a `GdkDisplay`.
+ *
+ * Deprecated: 4.10: Use [method@Gtk.Widget.get_display] instead
  */
 GdkDisplay *
 gtk_style_context_get_display (GtkStyleContext *context)
@@ -824,6 +795,8 @@ gtk_style_context_resolve_color (GtkStyleContext    *context,
  * Looks up and resolves a color name in the @context color map.
  *
  * Returns: %TRUE if @color_name was found and resolved, %FALSE otherwise
+ *
+ * Deprecated: 4.10: This api will be removed in GTK 5
  */
 gboolean
 gtk_style_context_lookup_color (GtkStyleContext *context,
@@ -850,6 +823,8 @@ gtk_style_context_lookup_color (GtkStyleContext *context,
  * @color: (out): return value for the foreground color
  *
  * Gets the foreground color for a given state.
+ *
+ * Deprecated: 4.10: This api will be removed in GTK 5
  */
 void
 gtk_style_context_get_color (GtkStyleContext *context,
@@ -867,6 +842,8 @@ gtk_style_context_get_color (GtkStyleContext *context,
  * @border: (out): return value for the border settings
  *
  * Gets the border for a given state as a `GtkBorder`.
+ *
+ * Deprecated: 4.10: This api will be removed in GTK 5
  */
 void
 gtk_style_context_get_border (GtkStyleContext *context,
@@ -891,6 +868,8 @@ gtk_style_context_get_border (GtkStyleContext *context,
  * @padding: (out): return value for the padding settings
  *
  * Gets the padding for a given state as a `GtkBorder`.
+ *
+ * Deprecated: 4.10: This api will be removed in GTK 5
  */
 void
 gtk_style_context_get_padding (GtkStyleContext *context,
@@ -915,6 +894,8 @@ gtk_style_context_get_padding (GtkStyleContext *context,
  * @margin: (out): return value for the margin settings
  *
  * Gets the margin for a given state as a `GtkBorder`.
+ *
+ * Deprecated: 4.10: This api will be removed in GTK 5
  */
 void
 gtk_style_context_get_margin (GtkStyleContext *context,
@@ -981,6 +962,8 @@ _gtk_style_context_get_cursor_color (GtkStyleContext *context,
  * the format of the returned string, it may change.
  *
  * Returns: a newly allocated string representing @context
+ *
+ * Deprecated: 4.10: This api will be removed in GTK 5
  */
 char *
 gtk_style_context_to_string (GtkStyleContext           *context,
diff --git a/gtk/gtkstylecontext.h b/gtk/deprecated/gtkstylecontext.h
similarity index 85%
rename from gtk/gtkstylecontext.h
rename to gtk/deprecated/gtkstylecontext.h
index 21462ef501..b1e9244034 100644
--- a/gtk/gtkstylecontext.h
+++ b/gtk/deprecated/gtkstylecontext.h
@@ -61,72 +61,64 @@ struct _GtkStyleContextClass
 GDK_AVAILABLE_IN_ALL
 GType gtk_style_context_get_type (void) G_GNUC_CONST;
 
-GDK_AVAILABLE_IN_ALL
-void gtk_style_context_add_provider_for_display    (GdkDisplay       *display,
-                                                    GtkStyleProvider *provider,
-                                                    guint             priority);
-GDK_AVAILABLE_IN_ALL
-void gtk_style_context_remove_provider_for_display (GdkDisplay       *display,
-                                                    GtkStyleProvider *provider);
-
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 void gtk_style_context_add_provider    (GtkStyleContext  *context,
                                         GtkStyleProvider *provider,
                                         guint             priority);
 
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 void gtk_style_context_remove_provider (GtkStyleContext  *context,
                                         GtkStyleProvider *provider);
 
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 void gtk_style_context_save    (GtkStyleContext *context);
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 void gtk_style_context_restore (GtkStyleContext *context);
 
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 void          gtk_style_context_set_state    (GtkStyleContext *context,
                                               GtkStateFlags    flags);
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 GtkStateFlags gtk_style_context_get_state    (GtkStyleContext *context);
 
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 void          gtk_style_context_set_scale    (GtkStyleContext *context,
                                               int              scale);
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 int           gtk_style_context_get_scale    (GtkStyleContext *context);
 
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 void     gtk_style_context_add_class    (GtkStyleContext *context,
                                          const char      *class_name);
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 void     gtk_style_context_remove_class (GtkStyleContext *context,
                                          const char      *class_name);
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 gboolean gtk_style_context_has_class    (GtkStyleContext *context,
                                          const char      *class_name);
 
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 void        gtk_style_context_set_display (GtkStyleContext *context,
                                            GdkDisplay      *display);
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 GdkDisplay *gtk_style_context_get_display (GtkStyleContext *context);
 
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 gboolean gtk_style_context_lookup_color (GtkStyleContext *context,
                                          const char      *color_name,
                                          GdkRGBA         *color);
 
 /* Some helper functions to retrieve most common properties */
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 void gtk_style_context_get_color            (GtkStyleContext *context,
                                              GdkRGBA         *color);
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 void gtk_style_context_get_border           (GtkStyleContext *context,
                                              GtkBorder       *border);
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 void gtk_style_context_get_padding          (GtkStyleContext *context,
                                              GtkBorder       *padding);
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 void gtk_style_context_get_margin           (GtkStyleContext *context,
                                              GtkBorder       *margin);
 
@@ -137,7 +129,7 @@ typedef enum {
   GTK_STYLE_CONTEXT_PRINT_SHOW_CHANGE  = 1 << 2
 } GtkStyleContextPrintFlags;
 
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 char * gtk_style_context_to_string (GtkStyleContext           *context,
                                     GtkStyleContextPrintFlags  flags);
 
diff --git a/gtk/gtkstylecontextprivate.h b/gtk/deprecated/gtkstylecontextprivate.h
similarity index 100%
rename from gtk/gtkstylecontextprivate.h
rename to gtk/deprecated/gtkstylecontextprivate.h
diff --git a/gtk/deprecated/meson.build b/gtk/deprecated/meson.build
index f6f90dd64b..cd5b182170 100644
--- a/gtk/deprecated/meson.build
+++ b/gtk/deprecated/meson.build
@@ -25,6 +25,7 @@ gtk_deprecated_sources = [
   'deprecated/gtkiconview.c',
   'deprecated/gtkliststore.c',
   'deprecated/gtkrender.c',
+  'deprecated/gtkstylecontext.c',
   'deprecated/gtktreedatalist.c',
   'deprecated/gtktreednd.c',
   'deprecated/gtktreemodel.c',
@@ -65,6 +66,7 @@ gtk_deprecated_headers = [
   'deprecated/gtkiconview.h',
   'deprecated/gtkliststore.h',
   'deprecated/gtkrender.h',
+  'deprecated/gtkstylecontext.h',
   'deprecated/gtktreednd.h',
   'deprecated/gtktreemodel.h',
   'deprecated/gtktreemodelfilter.h',
diff --git a/gtk/gtk.h b/gtk/gtk.h
index 0bbc5455c4..cf139b5dda 100644
--- a/gtk/gtk.h
+++ b/gtk/gtk.h
@@ -247,7 +247,7 @@
 #include <gtk/gtkstringfilter.h>
 #include <gtk/gtkstringlist.h>
 #include <gtk/gtkstringsorter.h>
-#include <gtk/gtkstylecontext.h>
+#include <gtk/deprecated/gtkstylecontext.h>
 #include <gtk/gtkstyleprovider.h>
 #include <gtk/gtkswitch.h>
 #include <gtk/gtksymbolicpaintable.h>
diff --git a/gtk/gtkcsscolorvalue.c b/gtk/gtkcsscolorvalue.c
index 5430489401..4b0b4adfe4 100644
--- a/gtk/gtkcsscolorvalue.c
+++ b/gtk/gtkcsscolorvalue.c
@@ -22,6 +22,8 @@
 #include "gtkcssstylepropertyprivate.h"
 #include "gtkprivate.h"
 #include "gtkstylepropertyprivate.h"
+#include "gtkcssstyleprivate.h"
+#include "gtkstyleproviderprivate.h"
 
 #include "gdk/gdkhslaprivate.h"
 #include "gdk/gdkrgbaprivate.h"
diff --git a/gtk/gtkcsskeyframes.c b/gtk/gtkcsskeyframes.c
index 33d71ef067..89c4b0b409 100644
--- a/gtk/gtkcsskeyframes.c
+++ b/gtk/gtkcsskeyframes.c
@@ -19,6 +19,7 @@
 
 #include "gtkcsskeyframesprivate.h"
 
+#include "gtkcssstyleprivate.h"
 #include "gtkcssarrayvalueprivate.h"
 #include "gtkcssshorthandpropertyprivate.h"
 #include "gtkcssstylepropertyprivate.h"
diff --git a/gtk/gtkcssnodeprivate.h b/gtk/gtkcssnodeprivate.h
index e696ec49bc..c713a87df6 100644
--- a/gtk/gtkcssnodeprivate.h
+++ b/gtk/gtkcssnodeprivate.h
@@ -24,7 +24,7 @@
 #include "gtkcssstylechangeprivate.h"
 #include "gtkbitmaskprivate.h"
 #include "gtkcsstypesprivate.h"
-#include "gtkstylecontext.h"
+#include "deprecated/gtkstylecontext.h"
 #include "gtklistlistmodelprivate.h"
 
 G_BEGIN_DECLS
diff --git a/gtk/gtkcssselector.c b/gtk/gtkcssselector.c
index 158110c2d1..207d83ac7d 100644
--- a/gtk/gtkcssselector.c
+++ b/gtk/gtkcssselector.c
@@ -18,12 +18,12 @@
 #include "config.h"
 
 #include "gtkcssselectorprivate.h"
+#include "gtkcssnodeprivate.h"
 
 #include <stdlib.h>
 #include <string.h>
 
 #include "gtkcssprovider.h"
-#include "gtkstylecontextprivate.h"
 
 #include <errno.h>
 #if defined(_MSC_VER) && _MSC_VER >= 1500
diff --git a/gtk/gtkcsstypes.c b/gtk/gtkcsstypes.c
index fcbb47ca8d..a4de027420 100644
--- a/gtk/gtkcsstypes.c
+++ b/gtk/gtkcsstypes.c
@@ -20,7 +20,6 @@
 #include "gtkcsstypesprivate.h"
 
 #include "gtkcssnumbervalueprivate.h"
-#include "gtkstylecontextprivate.h"
 
 void
 gtk_css_change_print (GtkCssChange  change,
diff --git a/gtk/gtkcsswidgetnode.c b/gtk/gtkcsswidgetnode.c
index fcc7682832..c63e367bb5 100644
--- a/gtk/gtkcsswidgetnode.c
+++ b/gtk/gtkcsswidgetnode.c
@@ -22,7 +22,7 @@
 #include "gtkcssanimatedstyleprivate.h"
 #include "gtkprivate.h"
 #include "gtksettingsprivate.h"
-#include "gtkstylecontextprivate.h"
+#include "deprecated/gtkstylecontextprivate.h"
 #include "gtkwidgetprivate.h"
 #include "gtkwindowprivate.h"
 
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c
index 2c66e54ea8..c585d7bef8 100644
--- a/gtk/gtkicontheme.c
+++ b/gtk/gtkicontheme.c
@@ -48,7 +48,6 @@
 #include "gtkprivate.h"
 #include "gtksettingsprivate.h"
 #include "gtksnapshot.h"
-#include "gtkstylecontextprivate.h"
 #include "gtkstyleproviderprivate.h"
 #include "gtksymbolicpaintable.h"
 #include "gtkwidgetprivate.h"
diff --git a/gtk/gtkimcontextime.c b/gtk/gtkimcontextime.c
index e341925733..33a69f45c5 100644
--- a/gtk/gtkimcontextime.c
+++ b/gtk/gtkimcontextime.c
@@ -36,7 +36,7 @@
 #include "gdk/gdkkeysyms.h"
 #include "gdk/win32/gdkwin32.h"
 #include "gtk/gtkimmodule.h"
-#include "gtk/gtkstylecontextprivate.h"
+#include "gtk/deprecated/gtkstylecontextprivate.h"
 #include "gtk/gtkcssstyleprivate.h"
 
 /* avoid warning */
diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c
index 7e75048ce8..7593a1fe63 100644
--- a/gtk/gtknotebook.c
+++ b/gtk/gtknotebook.c
@@ -45,7 +45,6 @@
 #include "gtkpopovermenuprivate.h"
 #include "gtkorientable.h"
 #include "gtksizerequest.h"
-#include "gtkstylecontextprivate.h"
 #include "gtkprivate.h"
 #include "gtkstack.h"
 #include "gtktypebuiltins.h"
diff --git a/gtk/gtkpopovercontent.c b/gtk/gtkpopovercontent.c
index 49b0e4a330..06ca8d38eb 100644
--- a/gtk/gtkpopovercontent.c
+++ b/gtk/gtkpopovercontent.c
@@ -21,8 +21,8 @@
 #include "config.h"
 
 #include "gtkpopovercontentprivate.h"
-#include "gtkstylecontextprivate.h"
 
+#include "gtkcssstylechangeprivate.h"
 #include "gtkwidgetprivate.h"
 #include "gtkprivate.h"
 
diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c
index d6b97a882e..6215455323 100644
--- a/gtk/gtksettings.c
+++ b/gtk/gtksettings.c
@@ -23,7 +23,7 @@
 #include "gtkcssproviderprivate.h"
 #include "gtkprivate.h"
 #include "gtkscrolledwindow.h"
-#include "gtkstylecontextprivate.h"
+#include "deprecated/gtkstylecontextprivate.h"
 #include "gtkstyleproviderprivate.h"
 #include "gtktypebuiltins.h"
 #include "gtkversion.h"
diff --git a/gtk/gtksnapshot.c b/gtk/gtksnapshot.c
index 90cbbb8833..7c17a60728 100644
--- a/gtk/gtksnapshot.c
+++ b/gtk/gtksnapshot.c
@@ -24,7 +24,6 @@
 #include "gtkcssshadowvalueprivate.h"
 #include "gtkdebug.h"
 #include "gtkrendernodepaintableprivate.h"
-#include "gtkstylecontextprivate.h"
 #include "gsktransformprivate.h"
 
 #include "gdk/gdkrgbaprivate.h"
diff --git a/gtk/gtkstylepropertyprivate.h b/gtk/gtkstylepropertyprivate.h
index b57331dd84..7bd0e7f247 100644
--- a/gtk/gtkstylepropertyprivate.h
+++ b/gtk/gtkstylepropertyprivate.h
@@ -21,7 +21,6 @@
 #include <gtk/css/gtkcss.h>
 #include "gtk/css/gtkcsstokenizerprivate.h"
 #include "gtk/css/gtkcssparserprivate.h"
-#include "gtkstylecontextprivate.h"
 #include "gtkcssvalueprivate.h"
 
 G_BEGIN_DECLS
diff --git a/gtk/gtkstyleprovider.c b/gtk/gtkstyleprovider.c
index 19dca70d2a..d7c8af8687 100644
--- a/gtk/gtkstyleprovider.c
+++ b/gtk/gtkstyleprovider.c
@@ -17,6 +17,7 @@
 
 #include "config.h"
 
+#include "gtksettingsprivate.h"
 #include "gtkstyleproviderprivate.h"
 
 #include "gtkprivate.h"
@@ -168,3 +169,65 @@ gtk_style_provider_emit_error (GtkStyleProvider *provider,
   if (iface->emit_error)
     iface->emit_error (provider, section, error);
 }
+
+
+/* These apis are misnamed, and the rest of GtkStyleContext is deprecated,
+ * so put them here for now
+ */
+
+/**
+ * gtk_style_context_add_provider_for_display:
+ * @display: a `GdkDisplay`
+ * @provider: a `GtkStyleProvider`
+ * @priority: the priority of the style provider. The lower
+ *   it is, the earlier it will be used in the style construction.
+ *   Typically this will be in the range between
+ *   %GTK_STYLE_PROVIDER_PRIORITY_FALLBACK and
+ *   %GTK_STYLE_PROVIDER_PRIORITY_USER
+ *
+ * Adds a global style provider to @display, which will be used
+ * in style construction for all `GtkStyleContexts` under @display.
+ *
+ * GTK uses this to make styling information from `GtkSettings`
+ * available.
+ *
+ * Note: If both priorities are the same, A `GtkStyleProvider`
+ * added through [method@Gtk.StyleContext.add_provider] takes
+ * precedence over another added through this function.
+ */
+void
+gtk_style_context_add_provider_for_display (GdkDisplay       *display,
+                                            GtkStyleProvider *provider,
+                                            guint             priority)
+{
+  GtkStyleCascade *cascade;
+
+  g_return_if_fail (GDK_IS_DISPLAY (display));
+  g_return_if_fail (GTK_IS_STYLE_PROVIDER (provider));
+  g_return_if_fail (!GTK_IS_SETTINGS (provider) || _gtk_settings_get_display (GTK_SETTINGS (provider)) == 
display);
+
+  cascade = _gtk_settings_get_style_cascade (gtk_settings_get_for_display (display), 1);
+  _gtk_style_cascade_add_provider (cascade, provider, priority);
+}
+
+/**
+ * gtk_style_context_remove_provider_for_display:
+ * @display: a `GdkDisplay`
+ * @provider: a `GtkStyleProvider`
+ *
+ * Removes @provider from the global style providers list in @display.
+ */
+void
+gtk_style_context_remove_provider_for_display (GdkDisplay       *display,
+                                               GtkStyleProvider *provider)
+{
+  GtkStyleCascade *cascade;
+
+  g_return_if_fail (GDK_IS_DISPLAY (display));
+  g_return_if_fail (GTK_IS_STYLE_PROVIDER (provider));
+  g_return_if_fail (!GTK_IS_SETTINGS (provider));
+
+  cascade = _gtk_settings_get_style_cascade (gtk_settings_get_for_display (display), 1);
+  _gtk_style_cascade_remove_provider (cascade, provider);
+}
+
diff --git a/gtk/gtkstyleprovider.h b/gtk/gtkstyleprovider.h
index 3d696606a8..86de970da8 100644
--- a/gtk/gtkstyleprovider.h
+++ b/gtk/gtkstyleprovider.h
@@ -90,6 +90,15 @@ GType gtk_style_provider_get_type (void) G_GNUC_CONST;
 
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkStyleProvider, g_object_unref)
 
+GDK_AVAILABLE_IN_ALL
+void gtk_style_context_add_provider_for_display    (GdkDisplay       *display,
+                                                    GtkStyleProvider *provider,
+                                                    guint             priority);
+GDK_AVAILABLE_IN_ALL
+void gtk_style_context_remove_provider_for_display (GdkDisplay       *display,
+                                                    GtkStyleProvider *provider);
+
+
 G_END_DECLS
 
 #endif /* __GTK_STYLE_PROVIDER_H__ */
diff --git a/gtk/gtkstyleproviderprivate.h b/gtk/gtkstyleproviderprivate.h
index 5ee16e3d00..f2652113b2 100644
--- a/gtk/gtkstyleproviderprivate.h
+++ b/gtk/gtkstyleproviderprivate.h
@@ -19,6 +19,7 @@
 #define __GTK_STYLE_PROVIDER_PRIVATE_H__
 
 #include <glib-object.h>
+#include <gtk/gtkstyleprovider.h>
 #include "gtk/gtkcountingbloomfilterprivate.h"
 #include "gtk/gtkcsskeyframesprivate.h"
 #include "gtk/gtkcsslookupprivate.h"
diff --git a/gtk/gtktextutil.c b/gtk/gtktextutil.c
index 095d333d9b..a7cc04da61 100644
--- a/gtk/gtktextutil.c
+++ b/gtk/gtktextutil.c
@@ -28,7 +28,6 @@
 #include "gtktextutilprivate.h"
 
 #include "gtkcsscolorvalueprivate.h"
-#include "gtkstylecontextprivate.h"
 #include "gtktextbuffer.h"
 #include "gtktextlayoutprivate.h"
 #include "gtkwidgetprivate.h"
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 8ef948c304..1aa14bf06b 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -65,7 +65,7 @@
 #include "gtkshortcuttrigger.h"
 #include "gtksizegroup-private.h"
 #include "gtksnapshotprivate.h"
-#include "gtkstylecontextprivate.h"
+#include "deprecated/gtkstylecontextprivate.h"
 #include "gtktooltipprivate.h"
 #include "gsktransformprivate.h"
 #include "gtktypebuiltins.h"
@@ -2442,8 +2442,10 @@ gtk_widget_root (GtkWidget *widget)
       priv->root = priv->parent->priv->root;
     }
 
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
   if (priv->context)
     gtk_style_context_set_display (priv->context, gtk_root_get_display (priv->root));
+G_GNUC_END_IGNORE_DEPRECATIONS
 
   if (priv->surface_transform_data)
     add_parent_surface_transform_changed_listener (widget);
@@ -2479,8 +2481,10 @@ gtk_widget_unroot (GtkWidget *widget)
 
   GTK_WIDGET_GET_CLASS (widget)->unroot (widget);
 
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
   if (priv->context)
     gtk_style_context_set_display (priv->context, gdk_display_get_default ());
+G_GNUC_END_IGNORE_DEPRECATIONS
 
   if (priv->layout_manager)
     gtk_layout_manager_set_root (priv->layout_manager, NULL);
@@ -3410,10 +3414,12 @@ gtk_widget_realize (GtkWidget *widget)
 
   g_signal_emit (widget, widget_signals[REALIZE], 0);
 
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
   if (priv->context)
     gtk_style_context_set_scale (priv->context, gtk_widget_get_scale_factor (widget));
   else
     gtk_widget_get_style_context (widget);
+G_GNUC_END_IGNORE_DEPRECATIONS
 
   gtk_widget_pop_verify_invariants (widget);
 }
@@ -6737,8 +6743,10 @@ _gtk_widget_scale_changed (GtkWidget *widget)
 
   g_return_if_fail (GTK_IS_WIDGET (widget));
 
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
   if (priv->context)
     gtk_style_context_set_scale (priv->context, gtk_widget_get_scale_factor (widget));
+G_GNUC_END_IGNORE_DEPRECATIONS
 
   g_object_notify_by_pspec (G_OBJECT (widget), widget_props[PROP_SCALE_FACTOR]);
 
@@ -10712,6 +10720,8 @@ _gtk_widget_peek_style_context (GtkWidget *widget)
  * for the lifetime of @widget.
  *
  * Returns: (transfer none): the widgets `GtkStyleContext`
+ *
+ * Deprecated: 4.10: Style contexts will be removed in GTK 5
  */
 GtkStyleContext *
 gtk_widget_get_style_context (GtkWidget *widget)
@@ -10726,11 +10736,13 @@ gtk_widget_get_style_context (GtkWidget *widget)
 
       priv->context = gtk_style_context_new_for_node (priv->cssnode);
 
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
       gtk_style_context_set_scale (priv->context, gtk_widget_get_scale_factor (widget));
 
       display = _gtk_widget_get_display (widget);
       if (display)
         gtk_style_context_set_display (priv->context, display);
+G_GNUC_END_IGNORE_DEPRECATIONS
     }
 
   return priv->context;
diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h
index 8720017bad..5374160dcf 100644
--- a/gtk/gtkwidget.h
+++ b/gtk/gtkwidget.h
@@ -706,7 +706,7 @@ void            gtk_requisition_free     (GtkRequisition       *requisition);
 GDK_AVAILABLE_IN_ALL
 gboolean     gtk_widget_in_destruction (GtkWidget *widget);
 
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_10
 GtkStyleContext * gtk_widget_get_style_context (GtkWidget *widget);
 
 GDK_AVAILABLE_IN_ALL
diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h
index e1e336e6e6..d902e7117f 100644
--- a/gtk/gtkwidgetprivate.h
+++ b/gtk/gtkwidgetprivate.h
@@ -446,15 +446,6 @@ _gtk_widget_get_display (GtkWidget *widget)
   return gtk_root_get_display (root);
 }
 
-static inline GtkStyleContext *
-_gtk_widget_get_style_context (GtkWidget *widget)
-{
-  if (G_LIKELY (widget->priv->context))
-    return widget->priv->context;
-
-  return gtk_widget_get_style_context (widget);
-}
-
 static inline gpointer
 _gtk_widget_peek_request_cache (GtkWidget *widget)
 {
diff --git a/gtk/inspector/css-editor.c b/gtk/inspector/css-editor.c
index 8047545b62..b1dc9bf701 100644
--- a/gtk/inspector/css-editor.c
+++ b/gtk/inspector/css-editor.c
@@ -28,7 +28,6 @@
 
 #include "gtkcssprovider.h"
 #include "gtkstyleprovider.h"
-#include "gtkstylecontext.h"
 #include "gtktextview.h"
 #include "gtkmessagedialog.h"
 #include "gtkfilechooserdialog.h"
diff --git a/gtk/inspector/graphrenderer.c b/gtk/inspector/graphrenderer.c
index 6ade21e5b2..595f82213e 100644
--- a/gtk/inspector/graphrenderer.c
+++ b/gtk/inspector/graphrenderer.c
@@ -22,7 +22,7 @@
 #include "graphdata.h"
 
 #include "gtksnapshot.h"
-#include "gtkstylecontext.h"
+#include "deprecated/gtkstylecontext.h"
 
 enum {
   PROP_0,
@@ -155,8 +155,10 @@ graph_renderer_snapshot (GtkWidget   *widget,
 
   diff = maximum - minimum;
 
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
   context = gtk_widget_get_style_context (widget);
   gtk_style_context_get_color (context, &color);
+G_GNUC_END_IGNORE_DEPRECATIONS
 
   cr = gtk_snapshot_append_cairo (snapshot,
                                   &GRAPHENE_RECT_INIT (
diff --git a/gtk/inspector/window.c b/gtk/inspector/window.c
index 1364f34d3f..8c55db19a0 100644
--- a/gtk/inspector/window.c
+++ b/gtk/inspector/window.c
@@ -63,7 +63,6 @@
 #include "gtkrevealer.h"
 #include "gtklayoutmanager.h"
 #include "gtkcssprovider.h"
-#include "gtkstylecontext.h"
 #include "gtkwidgetprivate.h"
 
 
diff --git a/gtk/meson.build b/gtk/meson.build
index 4286d14e31..4e7325ad57 100644
--- a/gtk/meson.build
+++ b/gtk/meson.build
@@ -362,7 +362,6 @@ gtk_public_sources = files([
   'gtkstringfilter.c',
   'gtkstringlist.c',
   'gtkstringsorter.c',
-  'gtkstylecontext.c',
   'gtkstyleprovider.c',
   'gtkswitch.c',
   'gtksymbolicpaintable.c',
@@ -602,7 +601,6 @@ gtk_public_headers = files([
   'gtkstringfilter.h',
   'gtkstringlist.h',
   'gtkstringsorter.h',
-  'gtkstylecontext.h',
   'gtkstyleprovider.h',
   'gtkswitch.h',
   'gtksymbolicpaintable.h',


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]