diff options
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkcssprovider.c | 57 | ||||
-rw-r--r-- | gtk/gtkcssprovider.h | 10 | ||||
-rw-r--r-- | gtk/inspector/css-editor.c | 2 |
3 files changed, 64 insertions, 5 deletions
diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c index 89f5fd9e93..897fa337f4 100644 --- a/gtk/gtkcssprovider.c +++ b/gtk/gtkcssprovider.c @@ -1095,6 +1095,9 @@ gtk_css_provider_load_internal (GtkCssProvider *self, * Loads @data into @css_provider. * * This clears any previously loaded information. + * + * Deprecated: 4.12: Use [method@Gtk.CssProvider.load_from_string] + * or [method@Gtk.CssProvider.load_from_bytes] instead */ void gtk_css_provider_load_from_data (GtkCssProvider *css_provider, @@ -1111,11 +1114,59 @@ gtk_css_provider_load_from_data (GtkCssProvider *css_provider, bytes = g_bytes_new_static (data, length); - gtk_css_provider_reset (css_provider); + gtk_css_provider_load_from_bytes (css_provider, bytes); - g_bytes_ref (bytes); - gtk_css_provider_load_internal (css_provider, NULL, NULL, bytes); g_bytes_unref (bytes); +} + +/** + * gtk_css_provider_load_from_string: + * @css_provider: a `GtkCssProvider` + * @string: the CSS to load + * + * Loads @string into @css_provider. + * + * This clears any previously loaded information. + * + * Since: 4.12 + */ +void +gtk_css_provider_load_from_string (GtkCssProvider *css_provider, + const char *string) +{ + GBytes *bytes; + + g_return_if_fail (GTK_IS_CSS_PROVIDER (css_provider)); + g_return_if_fail (string != NULL); + + bytes = g_bytes_new_static (string, strlen (string)); + + gtk_css_provider_load_from_bytes (css_provider, bytes); + + g_bytes_unref (bytes); +} + +/** + * gtk_css_provider_load_from_bytes: + * @css_provider: a `GtkCssProvider` + * @data: `GBytes` containing the data to load + * + * Loads @data into @css_provider. + * + * This clears any previously loaded information. + * + * Since: 4.12 + */ +void +gtk_css_provider_load_from_bytes (GtkCssProvider *css_provider, + GBytes *data) +{ + g_return_if_fail (GTK_IS_CSS_PROVIDER (css_provider)); + g_return_if_fail (data != NULL); + + gtk_css_provider_reset (css_provider); + + gtk_css_provider_load_internal (css_provider, NULL, NULL, g_bytes_ref (data)); gtk_style_provider_changed (GTK_STYLE_PROVIDER (css_provider)); } diff --git a/gtk/gtkcssprovider.h b/gtk/gtkcssprovider.h index 2b0085c1e3..ee1dc98d22 100644 --- a/gtk/gtkcssprovider.h +++ b/gtk/gtkcssprovider.h @@ -45,10 +45,18 @@ GtkCssProvider * gtk_css_provider_new (void); GDK_AVAILABLE_IN_ALL char * gtk_css_provider_to_string (GtkCssProvider *provider); -GDK_AVAILABLE_IN_ALL +GDK_DEPRECATED_IN_4_12_FOR(gtk_css_provider_load_from_string) void gtk_css_provider_load_from_data (GtkCssProvider *css_provider, const char *data, gssize length); +GDK_AVAILABLE_IN_4_12 +void gtk_css_provider_load_from_string (GtkCssProvider *css_provider, + const char *string); + +GDK_AVAILABLE_IN_4_12 +void gtk_css_provider_load_from_bytes (GtkCssProvider *css_provider, + GBytes *data); + GDK_AVAILABLE_IN_ALL void gtk_css_provider_load_from_file (GtkCssProvider *css_provider, GFile *file); diff --git a/gtk/inspector/css-editor.c b/gtk/inspector/css-editor.c index d0e71c8d37..e8515a4bea 100644 --- a/gtk/inspector/css-editor.c +++ b/gtk/inspector/css-editor.c @@ -260,7 +260,7 @@ update_style (GtkInspectorCssEditor *ce) ce->priv->errors = NULL; text = get_current_text (ce->priv->text); - gtk_css_provider_load_from_data (ce->priv->provider, text, -1); + gtk_css_provider_load_from_string (ce->priv->provider, text); g_free (text); } |