gtkmm: Gtk::GridLayout Class Reference

gtkmm 4.6.0

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

Layout manager for grid-like widgets. More...

`#include <gtkmm/gridlayout.h>`

Inheritance diagram for Gtk::GridLayout:
[legend]

## Public Member Functions
| GridLayout (GridLayout&& src) noexcept
GridLayout& | operator= (GridLayout&& src) noexcept
| ~GridLayout () noexcept override
GtkGridLayout* | gobj ()
| Provides access to the underlying C GObject. More...
const GtkGridLayout* | gobj () const
| Provides access to the underlying C GObject. More...
GtkGridLayout* | 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 | set_row_homogeneous (bool homogeneous=true)
| Sets whether all rows of grid should have the same height. More...
bool | get_row_homogeneous () const
| Checks whether all rows of grid should have the same height. More...
void | set_row_spacing (guint spacing)
| Sets the amount of space to insert between consecutive rows. More...
guint | get_row_spacing () const
| Retrieves the spacing set with set_row_spacing(). More...
void | set_column_homogeneous (bool homogeneous=true)
| Sets whether all columns of grid should have the same width. More...
bool | get_column_homogeneous () const
| Checks whether all columns of grid should have the same width. More...
void | set_column_spacing (guint spacing)
| Sets the amount of space to insert between consecutive columns. More...
guint | get_column_spacing () const
| Retrieves the spacing set with set_column_spacing(). More...
void | set_row_baseline_position (int row, BaselinePosition pos)
| Sets how the baseline should be positioned on row of the grid, in case that row is assigned more space than is requested. More...
BaselinePosition | get_row_baseline_position (int row) const
| Returns the baseline position of row. More...
void | set_baseline_row (int row)
| Sets which row defines the global baseline for the entire grid. More...
int | get_baseline_row () const
| Retrieves the row set with set_baseline_row(). More...
Glib::PropertyProxy< int > | property_row_spacing ()
| The amount of space between to consecutive rows. More...
Glib::PropertyProxy_ReadOnly< int > | property_row_spacing () const
| The amount of space between to consecutive rows. More...
Glib::PropertyProxy< int > | property_column_spacing ()
| The amount of space between to consecutive columns. More...
Glib::PropertyProxy_ReadOnly< int > | property_column_spacing () const
| The amount of space between to consecutive columns. More...
Glib::PropertyProxy< bool > | property_row_homogeneous ()
| Whether all the rows in the grid have the same height. More...
Glib::PropertyProxy_ReadOnly< bool > | property_row_homogeneous () const
| Whether all the rows in the grid have the same height. More...
Glib::PropertyProxy< bool > | property_column_homogeneous ()
| Whether all the columns in the grid have the same width. More...
Glib::PropertyProxy_ReadOnly< bool > | property_column_homogeneous () const
| Whether all the columns in the grid have the same width. More...
Glib::PropertyProxy< int > | property_baseline_row ()
| The row to align to the baseline, when `GtkWidget:valign` is set to Gtk::Align::BASELINE. More...
Glib::PropertyProxy_ReadOnly< int > | property_baseline_row () const
| The row to align to the baseline, when `GtkWidget:valign` is set to Gtk::Align::BASELINE. More...
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. 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

## Static Public Member Functions
static GType | get_type ()
| Get the GType for this class, for use with the underlying GObject type system. More...
static Glib::RefPtr< GridLayout > | 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. More...

## Protected Member Functions
| GridLayout ()
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. 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::GridLayout > | wrap (GtkGridLayout* object, bool take_copy=false)
| A Glib::wrap() method for this object. More...
Related Functions inherited from Gtk::LayoutManager
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)

## Detailed Description

Layout manager for grid-like widgets.

Gtk::GridLayout is a layout manager which arranges child widgets in rows and columns, with arbitrary positions and horizontal/vertical spans.

Children have an "attach point" defined by the horizontal and vertical index of the cell they occupy; children can span multiple rows or columns. The layout properties for setting the attach points and spans are set using the Gtk::GridLayoutChild associated to each child widget.

The behaviour of Gtk::Grid when several children occupy the same grid cell is undefined.

Gtk::GridLayout can be used like a Gtk::BoxLayout if all children are attached to the same row or column; however, if you only ever need a single row or column, you should consider using Gtk::BoxLayout.

Since gtkmm 3.96:

## Constructor & Destructor Documentation

## ◆ GridLayout() [1/2]

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

## ◆ ~GridLayout()

Gtk::GridLayout::~GridLayout | ( |  | ) |
| overridenoexcept

## ◆ GridLayout() [2/2]

Gtk::GridLayout::GridLayout | ( |  | ) |
| protected

## Member Function Documentation

## ◆ create()

static Glib::RefPtr< GridLayout > Gtk::GridLayout::create | ( |  | ) |
| static

## ◆ get_baseline_row()

int Gtk::GridLayout::get_baseline_row | ( |  | ) | const

Retrieves the row set with set_baseline_row().

Returns
  The global baseline row.

## ◆ get_column_homogeneous()

bool Gtk::GridLayout::get_column_homogeneous | ( |  | ) | const

Checks whether all columns of grid should have the same width.

Returns
  `true` if the columns are homogeneous, and `false` otherwise.

## ◆ get_column_spacing()

guint Gtk::GridLayout::get_column_spacing | ( |  | ) | const

Retrieves the spacing set with set_column_spacing().

Returns
  The spacing between consecutive columns.

## ◆ get_row_baseline_position()

BaselinePosition Gtk::GridLayout::get_row_baseline_position | ( | int | row | ) | const

Returns the baseline position of row.

If no value has been set with set_row_baseline_position(), the default value of Gtk::BaselinePosition::CENTER is returned.

Parameters

  row | A row index.

Returns
  The baseline position of row.

## ◆ get_row_homogeneous()

bool Gtk::GridLayout::get_row_homogeneous | ( |  | ) | const

Checks whether all rows of grid should have the same height.

Returns
  `true` if the rows are homogeneous, and `false` otherwise.

## ◆ get_row_spacing()

guint Gtk::GridLayout::get_row_spacing | ( |  | ) | const

Retrieves the spacing set with set_row_spacing().

Returns
  The spacing between consecutive rows.

## ◆ get_type()

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

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

## ◆ gobj() [1/2]

GtkGridLayout * Gtk::GridLayout::gobj | ( |  | ) |
| inline

Provides access to the underlying C GObject.

## ◆ gobj() [2/2]

const GtkGridLayout * Gtk::GridLayout::gobj | ( |  | ) | const
| inline

Provides access to the underlying C GObject.

## ◆ gobj_copy()

GtkGridLayout * Gtk::GridLayout::gobj_copy | ( |  | ) |

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

## ◆ operator=()

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

## ◆ property_baseline_row() [1/2]

Glib::PropertyProxy< int > Gtk::GridLayout::property_baseline_row | ( |  | ) |

The row to align to the baseline, when `GtkWidget:valign` is set to Gtk::Align::BASELINE.

Default value: 0

Returns
  A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

## ◆ property_baseline_row() [2/2]

Glib::PropertyProxy_ReadOnly< int > Gtk::GridLayout::property_baseline_row | ( |  | ) | const

The row to align to the baseline, when `GtkWidget:valign` is set to Gtk::Align::BASELINE.

Default value: 0

Returns
  A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

## ◆ property_column_homogeneous() [1/2]

Glib::PropertyProxy< bool > Gtk::GridLayout::property_column_homogeneous | ( |  | ) |

Whether all the columns in the grid have the same width.

Default value: `false`

Returns
  A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

## ◆ property_column_homogeneous() [2/2]

Glib::PropertyProxy_ReadOnly< bool > Gtk::GridLayout::property_column_homogeneous | ( |  | ) | const

Whether all the columns in the grid have the same width.

Default value: `false`

Returns
  A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

## ◆ property_column_spacing() [1/2]

Glib::PropertyProxy< int > Gtk::GridLayout::property_column_spacing | ( |  | ) |

The amount of space between to consecutive columns.

Default value: 0

Returns
  A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

## ◆ property_column_spacing() [2/2]

Glib::PropertyProxy_ReadOnly< int > Gtk::GridLayout::property_column_spacing | ( |  | ) | const

The amount of space between to consecutive columns.

Default value: 0

Returns
  A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

## ◆ property_row_homogeneous() [1/2]

Glib::PropertyProxy< bool > Gtk::GridLayout::property_row_homogeneous | ( |  | ) |

Whether all the rows in the grid have the same height.

Default value: `false`

Returns
  A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

## ◆ property_row_homogeneous() [2/2]

Glib::PropertyProxy_ReadOnly< bool > Gtk::GridLayout::property_row_homogeneous | ( |  | ) | const

Whether all the rows in the grid have the same height.

Default value: `false`

Returns
  A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

## ◆ property_row_spacing() [1/2]

Glib::PropertyProxy< int > Gtk::GridLayout::property_row_spacing | ( |  | ) |

The amount of space between to consecutive rows.

Default value: 0

Returns
  A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

## ◆ property_row_spacing() [2/2]

Glib::PropertyProxy_ReadOnly< int > Gtk::GridLayout::property_row_spacing | ( |  | ) | const

The amount of space between to consecutive rows.

Default value: 0

Returns
  A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

## ◆ set_baseline_row()

void Gtk::GridLayout::set_baseline_row | ( | int | row | ) |

Sets which row defines the global baseline for the entire grid.

Each row in the grid can have its own local baseline, but only one of those is global, meaning it will be the baseline in the parent of the grid.

Parameters

  row | The row index.

## ◆ set_column_homogeneous()

void Gtk::GridLayout::set_column_homogeneous | ( | bool | homogeneous = `true` | ) |

Sets whether all columns of grid should have the same width.

Parameters

  homogeneous | `true` to make columns homogeneous.

## ◆ set_column_spacing()

void Gtk::GridLayout::set_column_spacing | ( | guint | spacing | ) |

Sets the amount of space to insert between consecutive columns.

Parameters

  spacing | The amount of space between columns, in pixels.

## ◆ set_row_baseline_position()

void Gtk::GridLayout::set_row_baseline_position | ( | int | row,
|  | BaselinePosition | pos
| ) |  |

Sets how the baseline should be positioned on row of the grid, in case that row is assigned more space than is requested.

Parameters

  row | A row index.
  pos | A `Gtk::BaselinePosition`.

## ◆ set_row_homogeneous()

void Gtk::GridLayout::set_row_homogeneous | ( | bool | homogeneous = `true` | ) |

Sets whether all rows of grid should have the same height.

Parameters

  homogeneous | `true` to make rows homogeneous.

## ◆ set_row_spacing()

void Gtk::GridLayout::set_row_spacing | ( | guint | spacing | ) |

Sets the amount of space to insert between consecutive rows.

Parameters

  spacing | The amount of space between rows, in pixels.

## Friends And Related Function Documentation

## ◆ wrap()

Glib::RefPtr< Gtk::GridLayout > wrap | ( | GtkGridLayout * | 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.