Class CssProvider

All Implemented Interfaces:
PointerInterface

public class CssProvider extends Object
`GtkCssProvider` is an object implementing the `GtkStyleProvider` interface
for CSS.

It is able to parse CSS-like input in order to style widgets.

An application can make GTK parse a specific CSS style sheet by calling
[method@Gtk.CssProvider.load_from_file] or
[method@Gtk.CssProvider.load_from_resource]
and adding the provider with [method@Gtk.StyleContext.add_provider] or
[func@Gtk.StyleContext.add_provider_for_display].

In addition, certain files will be read when GTK is initialized.
First, the file `$XDG_CONFIG_HOME/gtk-4.0/gtk.css` is loaded if it
exists. Then, GTK loads the first existing file among
`XDG_DATA_HOME/themes/THEME/gtk-VERSION/gtk-VARIANT.css`,
`$HOME/.themes/THEME/gtk-VERSION/gtk-VARIANT.css`,
`$XDG_DATA_DIRS/themes/THEME/gtk-VERSION/gtk-VARIANT.css` and
`DATADIR/share/themes/THEME/gtk-VERSION/gtk-VARIANT.css`,
where `THEME` is the name of the current theme (see the
[property@Gtk.Settings:gtk-theme-name] setting), `VARIANT` is the
variant to load (see the
[property@Gtk.Settings:gtk-application-prefer-dark-theme] setting),
`DATADIR` is the prefix configured when GTK was compiled (unless
overridden by the `GTK_DATA_PREFIX` environment variable), and
`VERSION` is the GTK version number. If no file is found for the
current version, GTK tries older versions all the way back to 4.0.

To track errors while loading CSS, connect to the
[signal@Gtk.CssProvider::parsing-error] signal.

https://docs.gtk.org/gtk4/class.CssProvider.html

  • Field Details

  • Constructor Details

    • CssProvider

      public CssProvider(PointerContainer pointer)
    • CssProvider

      public CssProvider()
      Returns a newly created `GtkCssProvider`.
  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • loadFromData

      public void loadFromData(@Nonnull Str data, long length)
      Loads @data into @css_provider.

      This clears any previously loaded information.
      Parameters:
      data - CSS data loaded in memory
      length - the length of @data in bytes, or -1 for NUL terminated strings. If @length is not -1, the code will assume it is not NUL terminated and will potentially do a copy.
    • loadFromData

      public void loadFromData(String data, long length)
      Loads @data into @css_provider.

      This clears any previously loaded information.
      Parameters:
      data - CSS data loaded in memory
      length - the length of @data in bytes, or -1 for NUL terminated strings. If @length is not -1, the code will assume it is not NUL terminated and will potentially do a copy.
    • loadFromFile

      public void loadFromFile(@Nonnull File file)
      Loads the data contained in @file into @css_provider.

      This clears any previously loaded information.
      Parameters:
      file - `GFile` pointing to a file to load
    • loadFromPath

      public void loadFromPath(@Nonnull Str path)
      Loads the data contained in @path into @css_provider.

      This clears any previously loaded information.
      Parameters:
      path - the path of a filename to load, in the GLib filename encoding
    • loadFromPath

      public void loadFromPath(String path)
      Loads the data contained in @path into @css_provider.

      This clears any previously loaded information.
      Parameters:
      path - the path of a filename to load, in the GLib filename encoding
    • loadFromResource

      public void loadFromResource(@Nonnull Str resource_path)
      Loads the data contained in the resource at @resource_path into
      the @css_provider.

      This clears any previously loaded information.
      Parameters:
      resource_path - a `GResource` resource path
    • loadFromResource

      public void loadFromResource(String resource_path)
      Loads the data contained in the resource at @resource_path into
      the @css_provider.

      This clears any previously loaded information.
      Parameters:
      resource_path - a `GResource` resource path
    • loadNamed

      public void loadNamed(@Nonnull Str name, @Nullable Str variant)
      Loads a theme from the usual theme paths.

      The actual process of finding the theme might change between
      releases, but it is guaranteed that this function uses the same
      mechanism to load the theme that GTK uses for loading its own theme.
      Parameters:
      name - A theme name
      variant - variant to load, for example, "dark", or %NULL for the default
    • loadNamed

      public void loadNamed(String name, String variant)
      Loads a theme from the usual theme paths.

      The actual process of finding the theme might change between
      releases, but it is guaranteed that this function uses the same
      mechanism to load the theme that GTK uses for loading its own theme.
      Parameters:
      name - A theme name
      variant - variant to load, for example, "dark", or %NULL for the default
    • toStr

      public Str toStr()
      Converts the @provider into a string representation in CSS
      format.

      Using [method@Gtk.CssProvider.load_from_data] with the return
      value from this function on a new provider created with
      [ctor@Gtk.CssProvider.new] will basically create a duplicate
      of this @provider.
      Returns:
      a new string representing the @provider.
    • onParsingError

      public SignalHandler onParsingError(CssProvider.OnParsingError signal)
      Connect to signal "parsing-error".
      See CssProvider.OnParsingError.onParsingError(ch.bailu.gtk.gtk.CssSection, ch.bailu.gtk.glib.Error) for signal description.
      Field SIGNAL_ON_PARSING_ERROR contains original signal name and can be used as resource reference.
      Parameters:
      signal - callback function (lambda).
      Returns:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • asStyleProvider

      public StyleProvider asStyleProvider()
      Implements interface StyleProvider. Call this to get access to interface functions.
      Returns:
      StyleProvider
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()