gtkmm 4.7.1

Public Member Functions | Static Public Member Functions | Protected Member Functions | Related Functions | List of all members
Gtk::LayoutManager Class Reference

Base class for layout manager. More...

`#include <gtkmm/layoutmanager.h>`

Inheritance diagram for Gtk::LayoutManager:
[legend]

## Public Member Functions
| LayoutManager (LayoutManager && src) noexcept
LayoutManager & | operator= (LayoutManager && src) noexcept
| ~LayoutManager () noexcept override
GtkLayoutManager * | gobj ()
| Provides access to the underlying C GObject. More...
const GtkLayoutManager * | gobj () const
| Provides access to the underlying C GObject. More...
GtkLayoutManager * | gobj_copy ()
| Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
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. More...
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. More...
SizeRequestMode | get_request_mode () const
| Retrieves the request mode of manager. More...
Widget * | get_widget ()
| Retrieves the `Gtk::Widget` using the given `Gtk::LayoutManager`. More...
const Widget * | get_widget () const
| Retrieves the `Gtk::Widget` using the given `Gtk::LayoutManager`. More...
void | layout_changed ()
| Queues a resize on the `Gtk::Widget` using manager, if any. More...
Glib::RefPtr< LayoutChild > | get_layout_child (Widget & child)
| Retrieves a `Gtk::LayoutChild` instance for the `Gtk::LayoutManager`, creating one if necessary. More...
Glib::RefPtr< const LayoutChild > | get_layout_child (Widget & child) const
| Retrieves a `Gtk::LayoutChild` instance for the `Gtk::LayoutManager`, creating one if necessary. More...
Public Member Functions inherited from Glib::Object
| Object (const Object &)=delete
Object & | operator= (const Object &)=delete
| Object (Object &&src) noexcept
Object & | operator= (Object &&src) noexcept
void * | get_data (const QueryQuark &key)
void | set_data (const Quark &key, void *data)
void | set_data (const Quark &key, void *data, DestroyNotify notify)
void | remove_data (const QueryQuark &quark)
void * | steal_data (const QueryQuark &quark)
Glib::RefPtr< Glib::Object > | wrap (GObject *object, bool take_copy=false)
Public Member Functions inherited from Glib::ObjectBase
| ObjectBase (const ObjectBase &)=delete
ObjectBase & | operator= (const ObjectBase &)=delete
void | set_property_value (const Glib::ustring &property_name, const Glib::ValueBase &value)
void | get_property_value (const Glib::ustring &property_name, Glib::ValueBase &value) const
void | set_property (const Glib::ustring &property_name, const PropertyType &value)
void | get_property (const Glib::ustring &property_name, PropertyType &value) const
PropertyType | get_property (const Glib::ustring &property_name) const
sigc::connection | connect_property_changed (const Glib::ustring &property_name, const sigc::slot< void()> &slot)
sigc::connection | connect_property_changed (const Glib::ustring &property_name, sigc::slot< void()> &&slot)
void | freeze_notify ()
void | thaw_notify ()
virtual void | reference () const
virtual void | unreference () const
GObject * | gobj ()
const GObject * | gobj () const
GObject * | gobj_copy () const
Public Member Functions inherited from sigc::trackable
| trackable () noexcept
| trackable (const trackable &src) noexcept
| trackable (trackable &&src) noexcept
| ~trackable ()
void | add_destroy_notify_callback (notifiable *data, func_destroy_notify func) const
void | notify_callbacks ()
trackable & | operator= (const trackable &src)
trackable & | operator= (trackable &&src) noexcept
void | remove_destroy_notify_callback (notifiable *data) const

## Static Public Member Functions
static GType | get_type ()
| Get the GType for this class, for use with the underlying GObject type system. More...

## Protected Member Functions
| LayoutManager ()
| There is no create() method that corresponds to this constructor, because only derived classes shall be created. More...
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 Glib::Object
| Object ()
| Object (const Glib::ConstructParams &construct_params)
| Object (GObject *castitem)
| ~Object () noexcept override
Protected Member Functions inherited from Glib::ObjectBase
| ObjectBase ()
| ObjectBase (const char *custom_type_name)
| ObjectBase (const std::type_info &custom_type_info)
| ObjectBase (ObjectBase &&src) noexcept
ObjectBase & | operator= (ObjectBase &&src) noexcept
virtual | ~ObjectBase () noexcept=0
void | initialize (GObject *castitem)
void | initialize_move (GObject *castitem, Glib::ObjectBase *previous_wrapper)

## Related Functions
(Note that these are not member functions.)
Glib::RefPtr< Gtk::LayoutManager > | wrap (GtkLayoutManager * object, bool take_copy=false)
| A Glib::wrap() method for this object. More...

## Additional Inherited Members
Public Types inherited from Glib::Object
typedef void(*)(gpointer data | DestroyNotify)
Public Types inherited from sigc::trackable
typedef internal::func_destroy_notify | func_destroy_notify
Public Types inherited from sigc::notifiable
typedef internal::func_destroy_notify | func_destroy_notify

## Detailed Description

Base class for layout manager.

Layout managers are delegate classes that handle the preferred size and the allocation of a container widget.

You typically subclass Gtk::LayoutManager if you want to implement a layout policy for the children of a widget, or if you want to determine the size of a widget depending on its contents.

Each Gtk::Widget can only have one Gtk::LayoutManager instance associated to it at any given time; it is possible, though, to replace the layout manager instance using Gtk::Widget::set_layout_manager().

## Layout properties

A layout manager can expose properties for controlling the layout of each child, by creating an object type derived from Gtk::LayoutChild and installing the properties on it as normal GObject properties.

Each Gtk::LayoutChild instance storing the layout properties for a specific child is created through the get_layout_child() method; a Gtk::LayoutManager controls the creation of its Gtk::LayoutChild instances by overriding the create_layout_child_vfunc() virtual function.

Gtk::LayoutChild::property_layout_manager() and Gtk::LayoutChild::property_child_widget() on the newly created Gtk::LayoutChild instance are mandatory. The Gtk::LayoutManager will cache the newly created Gtk::LayoutChild instance until the widget is removed from its parent, or the parent removes the layout manager.

Each Gtk::LayoutManager instance creating a Gtk::LayoutChild should use get_layout_child() every time it needs to query the layout properties; each Gtk::LayoutChild instance should call layout_changed() every time a property is updated, in order to queue a new size measuring and allocation.

Since gtkmm 3.96:

## Constructor & Destructor Documentation

## ◆ LayoutManager() [1/2]

Gtk::LayoutManager::LayoutManager | ( | LayoutManager && | src | ) |
| noexcept

## ◆ ~LayoutManager()

Gtk::LayoutManager::~LayoutManager | ( |  | ) |
| override noexcept

## ◆ LayoutManager() [2/2]

Gtk::LayoutManager::LayoutManager | ( |  | ) |
| protected

There is no create() method that corresponds to this constructor, because only derived classes shall be created.

## Member Function Documentation

## ◆ allocate()

void Gtk::LayoutManager::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.

Parameters

  widget | The `Gtk::Widget` using manager.
  width | The new width of the widget.
  height | The new height of the widget.
  baseline | The baseline position of the widget, or -1.

## ◆ allocate_vfunc()

virtual void Gtk::LayoutManager::allocate_vfunc | ( | const Widget & | widget,
|  | int | width,
|  | int | height,
|  | int | baseline
| ) |  |
| protected virtual

## ◆ create_layout_child_vfunc()

virtual Glib::RefPtr<LayoutChild> Gtk::LayoutManager::create_layout_child_vfunc | ( | const Widget & | widget,
|  | const Widget & | for_child
| ) |  |
| protected virtual

## ◆ get_layout_child() [1/2]

Glib::RefPtr<LayoutChild> Gtk::LayoutManager::get_layout_child | ( | Widget & | child | ) |

Retrieves a `Gtk::LayoutChild` instance for the `Gtk::LayoutManager`, creating one if necessary.

The child widget must be a child of the widget using manager.

The `Gtk::LayoutChild` instance is owned by the `Gtk::LayoutManager`, and is guaranteed to exist as long as child is a child of the `Gtk::Widget` using the given `Gtk::LayoutManager`.

Parameters

  child | A `Gtk::Widget`.

Returns
  A `Gtk::LayoutChild`.

## ◆ get_layout_child() [2/2]

Glib::RefPtr<const LayoutChild> Gtk::LayoutManager::get_layout_child | ( | Widget & | child | ) | const

Retrieves a `Gtk::LayoutChild` instance for the `Gtk::LayoutManager`, creating one if necessary.

The child widget must be a child of the widget using manager.

The `Gtk::LayoutChild` instance is owned by the `Gtk::LayoutManager`, and is guaranteed to exist as long as child is a child of the `Gtk::Widget` using the given `Gtk::LayoutManager`.

Parameters

  child | A `Gtk::Widget`.

Returns
  A `Gtk::LayoutChild`.

## ◆ get_request_mode()

SizeRequestMode Gtk::LayoutManager::get_request_mode | ( |  | ) | const

Retrieves the request mode of manager.

Returns
  A `Gtk::SizeRequestMode`.

## ◆ get_request_mode_vfunc()

virtual SizeRequestMode Gtk::LayoutManager::get_request_mode_vfunc | ( | const Widget & | widget | ) | const
| protected virtual

## ◆ get_type()

static GType Gtk::LayoutManager::get_type | ( |  | ) |
| static

Get the GType for this class, for use with the underlying GObject type system.

## ◆ get_widget() [1/2]

Widget* Gtk::LayoutManager::get_widget | ( |  | ) |

Retrieves the `Gtk::Widget` using the given `Gtk::LayoutManager`.

Returns
  A `Gtk::Widget`.

## ◆ get_widget() [2/2]

const Widget* Gtk::LayoutManager::get_widget | ( |  | ) | const

Retrieves the `Gtk::Widget` using the given `Gtk::LayoutManager`.

Returns
  A `Gtk::Widget`.

## ◆ gobj() [1/2]

GtkLayoutManager* Gtk::LayoutManager::gobj | ( |  | ) |
| inline

Provides access to the underlying C GObject.

## ◆ gobj() [2/2]

const GtkLayoutManager* Gtk::LayoutManager::gobj | ( |  | ) | const
| inline

Provides access to the underlying C GObject.

## ◆ gobj_copy()

GtkLayoutManager* Gtk::LayoutManager::gobj_copy | ( |  | ) |

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

## ◆ layout_changed()

void Gtk::LayoutManager::layout_changed | ( |  | ) |

Queues a resize on the `Gtk::Widget` using manager, if any.

This function should be called by subclasses of `Gtk::LayoutManager` in response to changes to their layout management policies.

## ◆ measure()

void Gtk::LayoutManager::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.

See the Gtk::Widget documentation on layout management for more details.

Parameters

  widget | The `Gtk::Widget` using manager.
  orientation | The orientation to measure.
  for_size | Size for the opposite of orientation; for instance, if the orientation is Gtk::Orientation::HORIZONTAL, this is the height of the widget; if the orientation is Gtk::Orientation::VERTICAL, this is the width of the widget. This allows to measure the height for the given width, and the width for the given height. Use -1 if the size is not known.
  minimum | The minimum size for the given size and orientation.
  natural | The natural, or preferred size for the given size and orientation.
  minimum_baseline | The baseline position for the minimum size.
  natural_baseline | The baseline position for the natural size.

## ◆ measure_vfunc()

virtual void Gtk::LayoutManager::measure_vfunc | ( | const Widget & | widget,
|  | Orientation | orientation,
|  | int | for_size,
|  | int & | minimum,
|  | int & | natural,
|  | int & | minimum_baseline,
|  | int & | natural_baseline
| ) |  | const
| protected virtual

## ◆ operator=()

LayoutManager& Gtk::LayoutManager::operator= | ( | LayoutManager && | src | ) |
| noexcept

## ◆ root_vfunc()

virtual void Gtk::LayoutManager::root_vfunc | ( |  | ) |
| protected virtual

## ◆ unroot_vfunc()

virtual void Gtk::LayoutManager::unroot_vfunc | ( |  | ) |
| protected virtual

## Friends And Related Function Documentation

## ◆ wrap()

Glib::RefPtr< Gtk::LayoutManager > wrap | ( | GtkLayoutManager * | object,
|  | bool | take_copy = `false`
| ) |  |
| related

A Glib::wrap() method for this object.

Parameters

  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.

Returns
  A C++ instance that wraps this C instance.