gtkmm: Gtk::LayoutManager Class Reference

Base class for layout manager. More...

#include <gtkmm/layoutmanager.h>

Inheritance diagram for Gtk::LayoutManager:

Public Member Functions

 LayoutManager (LayoutManager&& src) noexcept
 
LayoutManageroperator= (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)
 This function 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...

 
Widgetget_widget ()
 Retrieves the Gtk::Widget using the given Gtk::LayoutManager. More...

 
const Widgetget_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< LayoutChildget_layout_child (Widget& child)
 Retrieves a Gtk::LayoutChild instance for the Gtk::LayoutManager, creating one if necessary. More...

 
Glib::RefPtr< const LayoutChildget_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
 
Objectoperator= (const Object &)=delete
 
 Object (Object &&src) noexcept
 
Objectoperator= (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::Objectwrap (GObject *object, bool take_copy=false)
 
- Public Member Functions inherited from Glib::ObjectBase
 ObjectBase (const ObjectBase &)=delete
 
ObjectBaseoperator= (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 ()
 
trackableoperator= (const trackable &src)
 
trackableoperator= (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< LayoutChildcreate_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
 
ObjectBaseoperator= (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::LayoutManagerwrap (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

Gtk::LayoutManager::LayoutManager ( LayoutManager&&  src)
noexcept
Gtk::LayoutManager::~LayoutManager ( )
overridenoexcept
Gtk::LayoutManager::LayoutManager ( )
protected

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

Member Function Documentation

void Gtk::LayoutManager::allocate ( Widget widget,
int  width,
int  height,
int  baseline 
)

This function 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
widgetThe Gtk::Widget using manager.
widthThe new width of the widget.
heightThe new height of the widget.
baselineThe baseline position of the widget, or -1.
virtual void Gtk::LayoutManager::allocate_vfunc ( const Widget widget,
int  width,
int  height,
int  baseline 
)
protectedvirtual
virtual Glib::RefPtr<LayoutChild> Gtk::LayoutManager::create_layout_child_vfunc ( const Widget widget,
const Widget for_child 
)
protectedvirtual
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
childA Gtk::Widget.
Returns
A Gtk::LayoutChild.
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
childA Gtk::Widget.
Returns
A Gtk::LayoutChild.
SizeRequestMode Gtk::LayoutManager::get_request_mode ( ) const

Retrieves the request mode of manager.

Returns
A Gtk::SizeRequestMode.
virtual SizeRequestMode Gtk::LayoutManager::get_request_mode_vfunc ( const Widget widget) const
protectedvirtual
static GType Gtk::LayoutManager::get_type ( )
static

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

Widget* Gtk::LayoutManager::get_widget ( )

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

Returns
A Gtk::Widget.
const Widget* Gtk::LayoutManager::get_widget ( ) const

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

Returns
A Gtk::Widget.
GtkLayoutManager* Gtk::LayoutManager::gobj ( )
inline

Provides access to the underlying C GObject.

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

Provides access to the underlying C GObject.

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.

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.

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 [GtkWidget's geometry management section][geometry-management] for more details.

Parameters
widgetThe Gtk::Widget using manager.
orientationThe orientation to measure.
for_sizeSize 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.
minimumThe minimum size for the given size and orientation.
naturalThe natural, or preferred size for the given size and orientation.
minimum_baselineThe baseline position for the minimum size.
natural_baselineThe baseline position for the natural size.
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
protectedvirtual
LayoutManager& Gtk::LayoutManager::operator= ( LayoutManager&&  src)
noexcept
virtual void Gtk::LayoutManager::root_vfunc ( )
protectedvirtual
virtual void Gtk::LayoutManager::unroot_vfunc ( )
protectedvirtual

Friends And Related Function Documentation

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

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

Parameters
objectThe C instance.
take_copyFalse 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.