gtkmm 4.16.0
|
A layout manager using constraints. More...
#include <gtkmm/constraintlayout.h>
Public Types | |
using | VFLmap = std::map< Glib::ustring, Glib::RefPtr< ConstraintTarget > > |
A map type, used by add_constraints_from_description(). | |
Public Member Functions | |
ConstraintLayout (ConstraintLayout &&src) noexcept | |
ConstraintLayout & | operator= (ConstraintLayout &&src) noexcept |
~ConstraintLayout () noexcept override | |
GtkConstraintLayout * | gobj () |
Provides access to the underlying C GObject. | |
const GtkConstraintLayout * | gobj () const |
Provides access to the underlying C GObject. | |
GtkConstraintLayout * | gobj_copy () |
Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. | |
void | add_constraint (const Glib::RefPtr< Constraint > &constraint) |
Adds a constraint to the layout manager. | |
void | remove_constraint (const Glib::RefPtr< Constraint > &constraint) |
Removes constraint from the layout manager, so that it no longer influences the layout. | |
void | remove_all_constraints () |
Removes all constraints from the layout manager. | |
void | add_guide (const Glib::RefPtr< ConstraintGuide > &guide) |
Adds a guide to layout . | |
void | remove_guide (const Glib::RefPtr< ConstraintGuide > &guide) |
Removes guide from the layout manager, so that it no longer influences the layout. | |
std::vector< Glib::RefPtr< Constraint > > | add_constraints_from_description (const std::vector< Glib::ustring > &lines, int hspacing, int vspacing, const VFLmap &views) |
Creates a list of constraints from a formal description using a compact description syntax called VFL, or "Visual Format Language". | |
Glib::RefPtr< Gio::ListModel > | observe_constraints () |
Returns a Gio::ListModel to track the constraints that are part of the layout. | |
Glib::RefPtr< const Gio::ListModel > | observe_constraints () const |
Returns a Gio::ListModel to track the constraints that are part of the layout. | |
Glib::RefPtr< Gio::ListModel > | observe_guides () |
Returns a Gio::ListModel to track the guides that are part of the layout. | |
Glib::RefPtr< const Gio::ListModel > | observe_guides () const |
Returns a Gio::ListModel to track the guides that are part of the layout. | |
Public Member Functions inherited from Gtk::LayoutManager | |
LayoutManager (LayoutManager &&src) noexcept | |
LayoutManager & | operator= (LayoutManager &&src) noexcept |
~LayoutManager () noexcept override | |
GtkLayoutManager * | gobj () |
Provides access to the underlying C GObject. | |
const GtkLayoutManager * | gobj () const |
Provides access to the underlying C GObject. | |
GtkLayoutManager * | gobj_copy () |
Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. | |
void | measure (Widget &widget, Orientation orientation, int for_size, int & minimum, int & natural, int &minimum_baseline, int &natural_baseline) const |
Measures the size of the widget using manager, for the given orientation and size. | |
void | allocate (Widget &widget, int width, int height, int baseline) |
Assigns the given width, height, and baseline to a widget, and computes the position and sizes of the children of the widget using the layout management policy of manager. | |
SizeRequestMode | get_request_mode () const |
Retrieves the request mode of manager. | |
Widget * | get_widget () |
Retrieves the Gtk::Widget using the given Gtk::LayoutManager . | |
const Widget * | get_widget () const |
Retrieves the Gtk::Widget using the given Gtk::LayoutManager . | |
void | layout_changed () |
Queues a resize on the Gtk::Widget using manager, if any. | |
Glib::RefPtr< LayoutChild > | get_layout_child (Widget &child) |
Retrieves a Gtk::LayoutChild instance for the Gtk::LayoutManager , creating one if necessary. | |
Glib::RefPtr< const LayoutChild > | get_layout_child (Widget &child) const |
Retrieves a Gtk::LayoutChild instance for the Gtk::LayoutManager , creating one if necessary. | |
Public Member Functions inherited from Gtk::Buildable | |
Buildable (Buildable &&src) noexcept | |
Buildable & | operator= (Buildable &&src) noexcept |
~Buildable () noexcept override | |
GtkBuildable * | gobj () |
Provides access to the underlying C GObject. | |
const GtkBuildable * | gobj () const |
Provides access to the underlying C GObject. | |
Glib::ustring | get_buildable_id () const |
Gets the ID of the buildable object. | |
Static Public Member Functions | |
static GType | get_type () |
Get the GType for this class, for use with the underlying GObject type system. | |
static Glib::RefPtr< ConstraintLayout > | create () |
Static Public Member Functions inherited from Gtk::LayoutManager | |
static GType | get_type () |
Get the GType for this class, for use with the underlying GObject type system. | |
Static Public Member Functions inherited from Gtk::Buildable | |
static void | add_interface (GType gtype_implementer) |
static GType | get_type () |
Get the GType for this class, for use with the underlying GObject type system. | |
Protected Member Functions | |
ConstraintLayout () | |
Protected Member Functions inherited from Gtk::LayoutManager | |
LayoutManager () | |
There is no create() method that corresponds to this constructor, because only derived classes shall be created. | |
virtual SizeRequestMode | get_request_mode_vfunc (const Widget &widget) const |
virtual void | measure_vfunc (const Widget &widget, Orientation orientation, int for_size, int & minimum, int & natural, int &minimum_baseline, int &natural_baseline) const |
virtual void | allocate_vfunc (const Widget &widget, int width, int height, int baseline) |
virtual Glib::RefPtr< LayoutChild > | create_layout_child_vfunc (const Widget &widget, const Widget &for_child) |
virtual void | root_vfunc () |
virtual void | unroot_vfunc () |
Protected Member Functions inherited from Gtk::Buildable | |
Buildable () | |
You should derive from this class to use it. | |
Related Symbols | |
(Note that these are not member symbols.) | |
Glib::RefPtr< Gtk::ConstraintLayout > | wrap (GtkConstraintLayout *object, bool take_copy=false) |
A Glib::wrap() method for this object. | |
Related Symbols inherited from Gtk::LayoutManager | |
Glib::RefPtr< Gtk::LayoutManager > | wrap (GtkLayoutManager *object, bool take_copy=false) |
A Glib::wrap() method for this object. | |
Related Symbols inherited from Gtk::Buildable | |
Glib::RefPtr< Gtk::Buildable > | wrap (GtkBuildable *object, bool take_copy=false) |
A Glib::wrap() method for this object. | |
A layout manager using constraints.
ConstraintLayout is a layout manager that uses relations between widget attributes, expressed via Gtk::Constraint instances, to measure and allocate widgets.
See the description of GtkConstraintLayout in GTK for a detailed description of how constraints work.
using Gtk::ConstraintLayout::VFLmap = std::map<Glib::ustring, Glib::RefPtr<ConstraintTarget> > |
A map type, used by add_constraints_from_description().
|
noexcept |
|
overridenoexcept |
|
protected |
void Gtk::ConstraintLayout::add_constraint | ( | const Glib::RefPtr< Constraint > & | constraint | ) |
Adds a constraint to the layout manager.
The Gtk::Constraint::property_source() and Gtk::Constraint::property_target() properties of constraint
can be:
nullptr
to indicate that the constraint refers to the widget using layout
layout
layout
layout
The layout acquires the ownership of constraint after calling this function.
constraint | A Gtk::Constraint. |
std::vector< Glib::RefPtr< Constraint > > Gtk::ConstraintLayout::add_constraints_from_description | ( | const std::vector< Glib::ustring > & | lines, |
int | hspacing, | ||
int | vspacing, | ||
const VFLmap & | views | ||
) |
Creates a list of constraints from a formal description using a compact description syntax called VFL, or "Visual Format Language".
The Visual Format Language is based on Apple's AutoLayout VFL. See also the description of gtk_constraint_layout_add_constraints_from_descriptionv() in GTK.
The views dictionary is used to match Gtk::ConstraintTargets to the symbolic view name inside the VFL.
Note: The VFL grammar used by GTK is slightly different than the one defined by Apple, as it can use symbolic values for the constraint's strength instead of numeric values; additionally, GTK allows adding simple arithmetic operations inside predicates.
lines | A vector of Visual Format Language lines defining a set of constraints. |
hspacing | Default horizontal spacing value, or -1 for the fallback value. |
vspacing | Default vertical spacing value, or -1 for the fallback value. |
views | A dictionary of [ name, target ] pairs; the name keys map to the view names in the VFL lines, while the target values map to children of the widget using a Gtk::ConstraintLayout, or guides. |
Gtk::ConstraintVflParserError |
void Gtk::ConstraintLayout::add_guide | ( | const Glib::RefPtr< ConstraintGuide > & | guide | ) |
Adds a guide to layout
.
A guide can be used as the source or target of constraints, like a widget, but it is not visible.
The layout
acquires the ownership of guide
after calling this function.
guide | A Gtk::ConstraintGuide object. |
|
static |
|
static |
Get the GType for this class, for use with the underlying GObject type system.
|
inline |
Provides access to the underlying C GObject.
|
inline |
Provides access to the underlying C GObject.
GtkConstraintLayout * Gtk::ConstraintLayout::gobj_copy | ( | ) |
Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
Glib::RefPtr< Gio::ListModel > Gtk::ConstraintLayout::observe_constraints | ( | ) |
Returns a Gio::ListModel
to track the constraints that are part of the layout.
Calling this function will enable extra internal bookkeeping to track constraints and emit signals on the returned listmodel. It may slow down operations a lot.
Applications should try hard to avoid calling this function because of the slowdowns.
Gio::ListModel
tracking the layout's constraints. Glib::RefPtr< const Gio::ListModel > Gtk::ConstraintLayout::observe_constraints | ( | ) | const |
Returns a Gio::ListModel
to track the constraints that are part of the layout.
Calling this function will enable extra internal bookkeeping to track constraints and emit signals on the returned listmodel. It may slow down operations a lot.
Applications should try hard to avoid calling this function because of the slowdowns.
Gio::ListModel
tracking the layout's constraints. Glib::RefPtr< Gio::ListModel > Gtk::ConstraintLayout::observe_guides | ( | ) |
Returns a Gio::ListModel
to track the guides that are part of the layout.
Calling this function will enable extra internal bookkeeping to track guides and emit signals on the returned listmodel. It may slow down operations a lot.
Applications should try hard to avoid calling this function because of the slowdowns.
Gio::ListModel
tracking the layout's guides. Glib::RefPtr< const Gio::ListModel > Gtk::ConstraintLayout::observe_guides | ( | ) | const |
Returns a Gio::ListModel
to track the guides that are part of the layout.
Calling this function will enable extra internal bookkeeping to track guides and emit signals on the returned listmodel. It may slow down operations a lot.
Applications should try hard to avoid calling this function because of the slowdowns.
Gio::ListModel
tracking the layout's guides.
|
noexcept |
void Gtk::ConstraintLayout::remove_all_constraints | ( | ) |
Removes all constraints from the layout manager.
void Gtk::ConstraintLayout::remove_constraint | ( | const Glib::RefPtr< Constraint > & | constraint | ) |
Removes constraint
from the layout manager, so that it no longer influences the layout.
constraint | A Gtk::Constraint. |
void Gtk::ConstraintLayout::remove_guide | ( | const Glib::RefPtr< ConstraintGuide > & | guide | ) |
Removes guide
from the layout manager, so that it no longer influences the layout.
guide | A Gtk::ConstraintGuide object. |
|
related |
A Glib::wrap() method for this object.
object | The C instance. |
take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref. |