Class CssProvider
- All Implemented Interfaces:
StyleProvider, Proxy
A style provider 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
loadFromFile(File) or
loadFromResource(String)
and adding the provider with StyleContext.addProvider(StyleProvider, int) or
StyleContext.addProviderForDisplay.
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
Gtk.Settings:gtk-theme-name setting), VARIANT is the
variant to load (see the
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
Gtk.CssProvider::parsing-error signal.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classCssProvider.Builder<B extends CssProvider.Builder<B>>Inner class implementing a builder pattern to construct a GObject with properties.static classstatic interfaceFunctional interface declaration of theParsingErrorCallbackcallback.Nested classes/interfaces inherited from class GObject
GObject.NotifyCallback, GObject.ObjectClassNested classes/interfaces inherited from interface StyleProvider
StyleProvider.GtkPrivateChangedCallback, StyleProvider.StyleProvider$Impl -
Constructor Summary
ConstructorsConstructorDescriptionCreate a new CssProvider.CssProvider(MemorySegment address) Create a CssProvider instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionprotected CssProviderasParent()Return this instance as if it were its parent type.static CssProvider.Builder<? extends CssProvider.Builder> builder()ACssProvider.Builderobject constructs aCssProviderwith the specified properties.voidemitParsingError(@Nullable CssSection section, @Nullable GError error) Emits the "parsing-error" signal.static MemoryLayoutThe memory layout of the native struct.static @Nullable TypegetType()Get the GType of the CssProvider class.voidloadFromBytes(byte[] data) LoadsdataintocssProvider.voidloadFromData(String data, long length) Deprecated.voidloadFromFile(File file) Loads the data contained infileintocssProvider.voidloadFromPath(String path) Loads the data contained inpathintocssProvider.voidloadFromResource(String resourcePath) Loads the data contained in the resource atresourcePathinto thecssProvider.voidloadFromString(String string) LoadsstringintocssProvider.voidDeprecated.Using any of the other theme loaders, combine with media queries.Signals that a parsing error occurred.toString()Converts the this CssProvider into a string representation in CSS format.Methods inherited from class GObject
addToggleRef, addWeakPointer, bindProperty, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, connect, constructed, disconnect, dispatchPropertiesChanged, dispose, dupData, dupQdata, emit, emitNotify, finalize_, forceFloating, freezeNotify, get, getData, getProperty, getProperty, getProperty, getQdata, getv, interfaceFindProperty, interfaceInstallProperty, interfaceListProperties, isFloating, newInstance, newInstance, newv, notify, notify, notifyByPspec, onNotify, ref, refSink, removeToggleRef, removeWeakPointer, replaceData, replaceQdata, runDispose, set, setData, setDataFull, setProperty, setProperty, setProperty, setQdata, setQdataFull, setv, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref, withPropertiesMethods inherited from class TypeInstance
callParent, callParent, cast, getPrivate, readGClass, writeGClassMethods inherited from class ProxyInstance
equals, handle, hashCodeMethods inherited from interface StyleProvider
emitGtkPrivateChanged, onGtkPrivateChanged
-
Constructor Details
-
CssProvider
Create a CssProvider instance for the provided memory address.- Parameters:
address- the memory address of the native object
-
CssProvider
public CssProvider()Create a new CssProvider.
-
-
Method Details
-
getType
-
getMemoryLayout
The memory layout of the native struct.- Returns:
- the memory layout
-
asParent
Return this instance as if it were its parent type. Comparable to the Javasuperkeyword, but ensures the parent typeclass is also used in native code. -
loadFromBytes
public void loadFromBytes(byte[] data) Loads
dataintocssProvider.This clears any previously loaded information.
- Parameters:
data-GBytescontaining the data to load- Since:
- 4.12
-
loadFromData
Deprecated.UseloadFromString(String)orloadFromBytes(byte[])insteadLoads
dataintocssProvider.This clears any previously loaded information.
- Parameters:
data- CSS data to be parsedlength- the length ofdatain bytes, or -1 for NUL terminated strings
-
loadFromFile
Loads the data contained in
fileintocssProvider.This clears any previously loaded information.
- Parameters:
file-GFilepointing to a file to load
-
loadFromPath
Loads the data contained in
pathintocssProvider.This clears any previously loaded information.
- Parameters:
path- the path of a filename to load, in the GLib filename encoding
-
loadFromResource
Loads the data contained in the resource at
resourcePathinto thecssProvider.This clears any previously loaded information.
- Parameters:
resourcePath- aGResourceresource path
-
loadFromString
Loads
stringintocssProvider.This clears any previously loaded information.
- Parameters:
string- the CSS to load- Since:
- 4.12
-
loadNamed
Deprecated.Using any of the other theme loaders, combine with media queries.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 namevariant- variant to load, for example, "dark", ornullfor the default
-
toString
Converts the this CssProvider into a string representation in CSS format.
Using
loadFromString(String)with the return value from this function on a new provider created withCssProvider()will basically create a duplicate of thisprovider. -
onParsingError
public SignalConnection<CssProvider.ParsingErrorCallback> onParsingError(CssProvider.ParsingErrorCallback handler) Signals that a parsing error occurred.
The expected error values are in the
Gtk.CssParserErrorandGtk.CssParserWarningenumerations.The
path,lineandpositiondescribe the actual location of the error as accurately as possible.Parsing errors are never fatal, so the parsing will resume after the error. Errors may however cause parts of the given data or even all of it to not be parsed at all. So it is a useful idea to check that the parsing succeeds by connecting to this signal.
Errors in the
Gtk.CssParserWarningenumeration should not be treated as fatal errors.Note that this signal may be emitted at any time as the css provider may opt to defer parsing parts or all of the input to a later time than when a loading function was called.
- Parameters:
handler- the signal handler- Returns:
- a signal handler ID to keep track of the signal connection
- See Also:
-
emitParsingError
Emits the "parsing-error" signal. SeeonParsingError(CssProvider.ParsingErrorCallback). -
builder
ACssProvider.Builderobject constructs aCssProviderwith the specified properties. Use the variousset...()methods to set properties, and finish construction withCssProvider.Builder.build().- Returns:
- the builder object
-
loadFromString(String)orloadFromBytes(byte[])instead