gi-gtk-declarative-0.7.0: Declarative GTK+ programming in Haskell
Safe HaskellNone
LanguageHaskell2010

GI.Gtk.Declarative.Attributes.Collected

Description

Internal helpers for applying attributes and signal handlers to GTK+ widgets.

Synopsis

Documentation

type CollectedProperties widget = HashMap Text (CollectedProperty widget) Source #

A collected map of key/value pairs, where the type-level property names are represented as Text values. This is used to calculate differences in old and new property sets when patching.

data Collected widget event Source #

All the collected properties and classes for a widget. These are based on the Attribute list in the declarative markup, but collected separately into more efficient data structures, optimized for patching.

Instances

Instances details
Semigroup (Collected widget event) Source # 
Instance details

Defined in GI.Gtk.Declarative.Attributes.Collected

Methods

(<>) :: Collected widget event -> Collected widget event -> Collected widget event #

sconcat :: NonEmpty (Collected widget event) -> Collected widget event #

stimes :: Integral b => b -> Collected widget event -> Collected widget event #

Monoid (Collected widget event) Source # 
Instance details

Defined in GI.Gtk.Declarative.Attributes.Collected

Methods

mempty :: Collected widget event #

mappend :: Collected widget event -> Collected widget event -> Collected widget event #

mconcat :: [Collected widget event] -> Collected widget event #

canBeModifiedTo :: CollectedProperties widget -> CollectedProperties widget -> Bool Source #

Checks if the old collected properties are a subset of the new ones, and thus if a widget thus be updated or if it has to be recreated.

collectAttributes :: Vector (Attribute widget event) -> Collected widget event Source #

Collect declarative markup attributes to the patching-optimized Collected data structure.

constructProperties :: Collected widget event -> [AttrOp widget 'AttrConstruct] Source #

Create a list of GTK construct operations based on collected properties, used when creating new widgets.

updateProperties :: widget -> CollectedProperties widget -> CollectedProperties widget -> IO () Source #

Update the changed properties of a widget, based on the old and new collected properties.

updateClasses :: StyleContext -> ClassSet -> ClassSet -> IO () Source #

Update the style context's classes to only include the new set of classes (last argument).