ModelButtonProtocol
public protocol ModelButtonProtocol : ButtonProtocol
GtkModelButton is a button class that can use a GAction as its model.
In contrast to GtkToggleButton or GtkRadioButton, which can also
be backed by a GAction via the GtkActionable:action-name property,
GtkModelButton will adapt its appearance according to the kind of
action it is backed by, and appear either as a plain, check or
radio button.
Model buttons are used when popovers from a menu model with
gtk_popover_new_from_model(); they can also be used manually in
a GtkPopoverMenu.
When the action is specified via the GtkActionable:action-name
and GtkActionable:action-target properties, the role of the button
(i.e. whether it is a plain, check or radio button) is determined by
the type of the action and doesn’t have to be explicitly specified
with the GtkModelButton:role property.
The content of the button is specified by the GtkModelButton:text
and GtkModelButton:icon properties.
The appearance of model buttons can be influenced with the
GtkModelButton:centered and GtkModelButton:iconic properties.
Model buttons have built-in support for submenus in GtkPopoverMenu.
To make a GtkModelButton that opens a submenu when activated, set
the GtkModelButton:menu-name property. To make a button that goes
back to the parent menu, you should set the GtkModelButton:inverted
property to place the submenu indicator at the opposite side.
Example
<object class="GtkPopoverMenu">
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="margin">10</property>
<child>
<object class="GtkModelButton">
<property name="visible">True</property>
<property name="action-name">view.cut</property>
<property name="text" translatable="yes">Cut</property>
</object>
</child>
<child>
<object class="GtkModelButton">
<property name="visible">True</property>
<property name="action-name">view.copy</property>
<property name="text" translatable="yes">Copy</property>
</object>
</child>
<child>
<object class="GtkModelButton">
<property name="visible">True</property>
<property name="action-name">view.paste</property>
<property name="text" translatable="yes">Paste</property>
</object>
</child>
</object>
</child>
</object>
CSS nodes
(plain Language Example):
modelbutton
├── <child>
╰── check
(plain Language Example):
modelbutton
├── <child>
╰── radio
(plain Language Example):
modelbutton
├── <child>
╰── arrow
GtkModelButton has a main CSS node with name modelbutton, and a subnode, which will have the name check, radio or arrow, depending on the role of the button and whether it has a menu name set.
The subnode is positioned before or after the content nodes and gets the .left or .right style class, depending on where it is located.
(plain Language Example):
button.model
├── <child>
╰── check
Iconic model buttons (see GtkModelButton:iconic) change the name of
their main node to button and add a .model style class to it. The indicator
subnode is invisible in this case.
The ModelButtonProtocol protocol exposes the methods and properties of an underlying GtkModelButton instance.
The default implementation of these can be found in the protocol extension below.
For a concrete class that implements these methods and properties, see ModelButton.
Alternatively, use ModelButtonRef as a lighweight, unowned reference if you already have an instance you just want to use.
-
Untyped pointer to the underlying
GtkModelButtoninstance.Declaration
Swift
var ptr: UnsafeMutableRawPointer! { get } -
model_button_ptrDefault implementationTyped pointer to the underlying
GtkModelButtoninstance.Default Implementation
Return the stored, untyped pointer as a typed pointer to the
GtkModelButtoninstance.Declaration
Swift
var model_button_ptr: UnsafeMutablePointer<GtkModelButton>! { get } -
Required Initialiser for types conforming to
ModelButtonProtocolDeclaration
Swift
init(raw: UnsafeMutableRawPointer)
-
bind(property:Extension methodto: _: flags: transformFrom: transformTo: ) Bind a
ModelButtonPropertyNamesource property to a given target object.Declaration
Swift
@discardableResult @inlinable func bind<Q, T>(property source_property: ModelButtonPropertyName, to target: T, _ target_property: Q, flags f: BindingFlags = .default, transformFrom transform_from: @escaping GLibObject.ValueTransformer = { $0.transform(destValue: $1) }, transformTo transform_to: @escaping GLibObject.ValueTransformer = { $0.transform(destValue: $1) }) -> BindingRef! where Q : PropertyNameProtocol, T : ObjectProtocolParameters
source_propertythe source property to bind
targetthe target object to bind to
target_propertythe target property to bind to
flagsthe flags to pass to the
Bindingtransform_fromValueTransformerto use for forward transformationtransform_toValueTransformerto use for backwards transformationReturn Value
binding reference or
nilin case of an error -
get(property:Extension method) Get the value of a ModelButton property
Declaration
Swift
@inlinable func get(property: ModelButtonPropertyName) -> GLibObject.ValueParameters
propertythe property to get the value for
Return Value
the value of the named property
-
set(property:Extension methodvalue: ) Set the value of a ModelButton property. Note that this will only have an effect on properties that are writable and not construct-only!
Declaration
Swift
@inlinable func set(property: ModelButtonPropertyName, value v: GLibObject.Value)Parameters
propertythe property to get the value for
Return Value
the value of the named property
View on GitHub
Install in Dash
ModelButtonProtocol Protocol Reference