gi-gtk-4.0.4: Gtk bindings
CopyrightWill Thompson Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellSafe-Inferred
LanguageHaskell2010

GI.Gtk.Objects.CssProvider

Description

GtkCssProvider is an object implementing the StyleProvider interface. It is able to parse [CSS-like][css-overview] input in order to style widgets.

An application can make GTK parse a specific CSS style sheet by calling cssProviderLoadFromFile or cssProviderLoadFromResource and adding the provider with styleContextAddProvider or styleContextAddProviderForDisplay.

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 Settings:gtk-theme-name setting), VARIANT is the variant to load (see the 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.

Synopsis

Exported types

newtype CssProvider Source #

Memory-managed wrapper type.

Constructors

CssProvider (ManagedPtr CssProvider) 

Instances

Instances details
Eq CssProvider Source # 
Instance details

Defined in GI.Gtk.Objects.CssProvider

GObject CssProvider Source # 
Instance details

Defined in GI.Gtk.Objects.CssProvider

ManagedPtrNewtype CssProvider Source # 
Instance details

Defined in GI.Gtk.Objects.CssProvider

Methods

toManagedPtr :: CssProvider -> ManagedPtr CssProvider

TypedObject CssProvider Source # 
Instance details

Defined in GI.Gtk.Objects.CssProvider

Methods

glibType :: IO GType

HasParentTypes CssProvider Source # 
Instance details

Defined in GI.Gtk.Objects.CssProvider

IsGValue (Maybe CssProvider) Source #

Convert CssProvider to and from GValue. See toGValue and fromGValue.

Instance details

Defined in GI.Gtk.Objects.CssProvider

Methods

gvalueGType_ :: IO GType

gvalueSet_ :: Ptr GValue -> Maybe CssProvider -> IO ()

gvalueGet_ :: Ptr GValue -> IO (Maybe CssProvider)

type ParentTypes CssProvider Source # 
Instance details

Defined in GI.Gtk.Objects.CssProvider

type ParentTypes CssProvider = '[Object, StyleProvider]

class (GObject o, IsDescendantOf CssProvider o) => IsCssProvider o Source #

Type class for types which can be safely cast to CssProvider, for instance with toCssProvider.

Instances

Instances details
(GObject o, IsDescendantOf CssProvider o) => IsCssProvider o Source # 
Instance details

Defined in GI.Gtk.Objects.CssProvider

toCssProvider :: (MonadIO m, IsCssProvider o) => o -> m CssProvider Source #

Cast to CssProvider, for types for which this is known to be safe. For general casts, use castTo.

Methods

loadFromData

cssProviderLoadFromData Source #

Arguments

:: (HasCallStack, MonadIO m, IsCssProvider a) 
=> a

cssProvider: a CssProvider

-> ByteString

data: CSS data loaded in memory

-> m () 

Loads data into cssProvider, and by doing so clears any previously loaded information.

loadFromFile

cssProviderLoadFromFile Source #

Arguments

:: (HasCallStack, MonadIO m, IsCssProvider a, IsFile b) 
=> a

cssProvider: a CssProvider

-> b

file: File pointing to a file to load

-> m () 

Loads the data contained in file into cssProvider, making it clear any previously loaded information.

loadFromPath

cssProviderLoadFromPath Source #

Arguments

:: (HasCallStack, MonadIO m, IsCssProvider a) 
=> a

cssProvider: a CssProvider

-> Text

path: the path of a filename to load, in the GLib filename encoding

-> m () 

Loads the data contained in path into cssProvider, making it clear any previously loaded information.

loadFromResource

cssProviderLoadFromResource Source #

Arguments

:: (HasCallStack, MonadIO m, IsCssProvider a) 
=> a

cssProvider: a CssProvider

-> Text

resourcePath: a Resource resource path

-> m () 

Loads the data contained in the resource at resourcePath into the CssProvider, clearing any previously loaded information.

To track errors while loading CSS, connect to the parsingError signal.

loadNamed

cssProviderLoadNamed Source #

Arguments

:: (HasCallStack, MonadIO m, IsCssProvider a) 
=> a

provider: a CssProvider

-> Text

name: A theme name

-> Maybe Text

variant: variant to load, for example, "dark", or Nothing for the default

-> m () 

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.

new

cssProviderNew Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> m CssProvider

Returns: A new CssProvider

Returns a newly created CssProvider.

toString

cssProviderToString Source #

Arguments

:: (HasCallStack, MonadIO m, IsCssProvider a) 
=> a

provider: the provider to write to a string

-> m Text

Returns: a new string representing the provider.

Converts the provider into a string representation in CSS format.

Using cssProviderLoadFromData with the return value from this function on a new provider created with cssProviderNew will basically create a duplicate of this provider.

Signals

parsingError

type C_CssProviderParsingErrorCallback = Ptr () -> Ptr CssSection -> Ptr GError -> Ptr () -> IO () Source #

Type for the callback on the (unwrapped) C side.

type CssProviderParsingErrorCallback Source #

Arguments

 = CssSection

section: section the error happened in

-> GError

error: The parsing error

-> IO () 

Signals that a parsing error occurred. the path, line and position describe 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.

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.

afterCssProviderParsingError :: (IsCssProvider a, MonadIO m) => a -> CssProviderParsingErrorCallback -> m SignalHandlerId Source #

Connect a signal handler for the parsingError signal, to be run after the default handler. When overloading is enabled, this is equivalent to

after cssProvider #parsingError callback

onCssProviderParsingError :: (IsCssProvider a, MonadIO m) => a -> CssProviderParsingErrorCallback -> m SignalHandlerId Source #

Connect a signal handler for the parsingError signal, to be run before the default handler. When overloading is enabled, this is equivalent to

on cssProvider #parsingError callback