gi-gtk3-3.0.44: Gtk 3.x bindings

Copyright | Will Thompson and Iñaki García Etxebarria
License | LGPL-2.1
Maintainer | Iñaki García Etxebarria
Safe Haskell | None
Language | Haskell2010

GI.Gtk.Objects.CssProvider

Contents

- Exported types
- Methods
  - getDefault
  - getNamed
  - loadFromData
  - loadFromFile
  - loadFromPath
  - loadFromResource
  - new
  - toString
- Signals
  - parsingError

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 `styleContextAddProviderForScreen`.

In addition, certain files will be read when GTK+ is initialized. First, the file `$XDG_CONFIG_HOME/gtk-3.0/gtk.css` is loaded if it exists. Then, GTK+ loads the first existing file among `XDG_DATA_HOME/themes/THEME/gtk-VERSION/gtk.css`, `$HOME/.themes/THEME/gtk-VERSION/gtk.css`, `$XDG_DATA_DIRS/themes/THEME/gtk-VERSION/gtk.css` and `DATADIR/share/themes/THEME/gtk-VERSION/gtk.css`, where `THEME` is the name of the current theme (see the Settings:gtkThemeName 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 3.0.

In the same way, GTK+ tries to load a gtk-keys.css file for the current key theme, as defined by Settings:gtkKeyThemeName.

Synopsis

- newtype CssProvider = CssProvider (ManagedPtr CssProvider)
- class (GObject o, IsDescendantOf CssProvider o) => IsCssProvider o
- toCssProvider :: (MonadIO m, IsCssProvider o) => o -> m CssProvider
- cssProviderGetDefault :: (HasCallStack, MonadIO m) => m CssProvider
- cssProviderGetNamed :: (HasCallStack, MonadIO m) => Text -> Maybe Text -> m CssProvider
- cssProviderLoadFromData :: (HasCallStack, MonadIO m, IsCssProvider a) => a -> ByteString -> m ()
- cssProviderLoadFromFile :: (HasCallStack, MonadIO m, IsCssProvider a, IsFile b) => a -> b -> m ()
- cssProviderLoadFromPath :: (HasCallStack, MonadIO m, IsCssProvider a) => a -> Text -> m ()
- cssProviderLoadFromResource :: (HasCallStack, MonadIO m, IsCssProvider a) => a -> Text -> m ()
- cssProviderNew :: (HasCallStack, MonadIO m) => m CssProvider
- cssProviderToString :: (HasCallStack, MonadIO m, IsCssProvider a) => a -> m Text
- type CssProviderParsingErrorCallback = CssSection -> GError -> IO ()
- afterCssProviderParsingError :: (IsCssProvider a, MonadIO m) => a -> ((?self :: a) => CssProviderParsingErrorCallback) -> m SignalHandlerId
- onCssProviderParsingError :: (IsCssProvider a, MonadIO m) => a -> ((?self :: a) => CssProviderParsingErrorCallback) -> m SignalHandlerId

# 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 Methods (==) :: CssProvider -> CssProvider -> Bool Source # (/=) :: CssProvider -> CssProvider -> Bool Source #
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 Source #
TypedObject CssProvider Source # |
Instance details Defined in GI.Gtk.Objects.CssProvider Methods glibType :: IO GType Source #
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 Source # gvalueSet_ :: Ptr GValue -> Maybe CssProvider -> IO () Source # gvalueGet_ :: Ptr GValue -> IO (Maybe CssProvider) Source #
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

### Click to display all available methods, including inherited ones

Expand

#### Methods

bindProperty, bindPropertyFull, forceFloating, freezeNotify, getv, isFloating, loadFromData, loadFromFile, loadFromPath, loadFromResource, notify, notifyByPspec, ref, refSink, runDispose, stealData, stealQdata, thawNotify, toString, unref, watchClosure.

#### Getters

getData, getIconFactory, getProperty, getQdata, getStyle, getStyleProperty.

#### Setters

setData, setDataFull, setProperty.

## getDefault

cssProviderGetDefault Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> m CssProvider | Returns: The provider used for fallback styling. This memory is owned by GTK+, and you must not free it.

Deprecated: (Since version 3.24)Use `cssProviderNew` instead.

Returns the provider containing the style settings used as a fallback for all widgets.

## getNamed

cssProviderGetNamed Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Text | `name`: A theme name
-> Maybe Text | `variant`: variant to load, for example, "dark", or `Nothing` for the default
-> m CssProvider | Returns: a `CssProvider` with the theme loaded. This memory is owned by GTK+, and you must not free it.

Loads a theme from the usual theme paths

## loadFromData

cssProviderLoadFromData Source #

Arguments

:: (HasCallStack, MonadIO m, IsCssProvider a) |
=> a | `cssProvider`: a `CssProvider`
-> ByteString | `data`: CSS data loaded in memory
-> m () | (Can throw `GError`)

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 () | (Can throw `GError`)

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 () | (Can throw `GError`)

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 CssProvider::parsingError signal.

Since: 3.16

## 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`.

Since: 3.2

# Signals

## parsingError

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 -> ((?self :: 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

By default the object invoking the signal is not passed to the callback. If you need to access it, you can use the implit `?self` parameter. Note that this requires activating the `ImplicitParams` GHC extension.

onCssProviderParsingError :: (IsCssProvider a, MonadIO m) => a -> ((?self :: 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