// Generated by gmmproc 2.66.7 -- DO NOT MODIFY! #ifndef _GTKMM_TABLE_H #define _GTKMM_TABLE_H #ifndef GTKMM_DISABLE_DEPRECATED #include #include /* Copyright (C) 1998-2002 The gtkmm Development Team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #ifndef DOXYGEN_SHOULD_SKIP_THIS using GtkTable = struct _GtkTable; using GtkTableClass = struct _GtkTableClass; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ #ifndef DOXYGEN_SHOULD_SKIP_THIS namespace Gtk { class GTKMM_API Table_Class; } // namespace Gtk #endif //DOXYGEN_SHOULD_SKIP_THIS namespace Gtk { /** Pack widgets in regular patterns. * @ingroup Widgets * @ingroup Containers * Gtk::Table is one of the primary ways of grouping widgets together. It * consists of a set of lattice points to to which widgets can be attached. * There are rows + 1 lattice points vertically and * columns + 1 lattice points horizontally. Lattice points * start counting from 0. Lattice points can either be specified to be * homogeneous, meaning equally spaced, or not homogeneous, * meaning each cell should be calculated based on the widgets contained in the * row and column. The homogeneous property defaults to false. * * Widgets can be attached to the table by specifying the top, bottom, left and * right points corresponding to upper, lefthand lattice point and the lower, * righthand lattice point which the widget should span. Widgets can either be * contained in a cell or may span cells. A number of options control the * resizing behavior of widgets contained in the table. * * @par Packing options: * There are a number of packing options that can be specified when adding a * widget. With Gtk::EXPAND, the lattice is allowed to grow to fill * space. With Gtk::SHRINK, the lattice is allowed to shrink when * resized. It is also possible to specify the behaviour of the widgets * allocation within the table. The flag Gtk::FILL declares the * widget should grow to fill lattice. If this is not set any extra space is * used as padding. The default is (Gtk::FILL | Gtk::EXPAND). * * @par Table sizing: * The table size is calculated based on the size of the widgets contained * within and the restrictions imposed by specified options. Padding and * spacing can be used in the table. Padding is added on either side of a * widget, while spacing is placed between widgets. * * A Table widget looks like this: * @image html table1.png * * @deprecated Use Gtk::Grid instead. It provides the same * capabilities as Gtk::Table for arranging widgets in a rectangular grid, but * does support height-for-width geometry management. * * @see Gtk::HBox, Gtk::VBox */ class GTKMM_API Table : public Container { public: #ifndef DOXYGEN_SHOULD_SKIP_THIS typedef Table CppObjectType; typedef Table_Class CppClassType; typedef GtkTable BaseObjectType; typedef GtkTableClass BaseClassType; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ Table(Table&& src) noexcept; Table& operator=(Table&& src) noexcept; // noncopyable Table(const Table&) = delete; Table& operator=(const Table&) = delete; ~Table() noexcept override; #ifndef DOXYGEN_SHOULD_SKIP_THIS private: friend class GTKMM_API Table_Class; static CppClassType table_class_; protected: explicit Table(const Glib::ConstructParams& construct_params); explicit Table(GtkTable* castitem); #endif /* DOXYGEN_SHOULD_SKIP_THIS */ public: /** Get the GType for this class, for use with the underlying GObject type system. */ static GType get_type() G_GNUC_CONST; #ifndef DOXYGEN_SHOULD_SKIP_THIS static GType get_base_type() G_GNUC_CONST; #endif /// Provides access to the underlying C GObject. GtkTable* gobj() { return reinterpret_cast(gobject_); } /// Provides access to the underlying C GObject. const GtkTable* gobj() const { return reinterpret_cast(gobject_); } public: //C++ methods used to invoke GTK+ virtual functions: protected: //GTK+ Virtual Functions (override these to change behaviour): //Default Signal Handlers:: private: public: explicit Table(guint n_rows = 1, guint n_columns = 1, bool homogeneous = false); /** Adds a widget to a table. The number of “cells” that a widget will occupy is * specified by @a left_attach, @a right_attach, @a top_attach and @a bottom_attach. * These each represent the leftmost, rightmost, uppermost and lowest column * and row numbers of the table. (Columns and rows are indexed from zero). * * To make a button occupy the lower right cell of a 2x2 table, use * * [C example ellipted] * If you want to make the button span the entire bottom row, use @a left_attach == 0 and @a right_attach = 2 instead. * * Deprecated: 3.4: Use Gtk::Grid::attach() with Gtk::Grid. Note that the attach * arguments differ between those two functions. * * @param child The widget to add. * @param left_attach The column number to attach the left side of a child widget to. * @param right_attach The column number to attach the right side of a child widget to. * @param top_attach The row number to attach the top of a child widget to. * @param bottom_attach The row number to attach the bottom of a child widget to. * @param xoptions Used to specify the properties of the child widget when the table is resized. * @param yoptions The same as xoptions, except this field determines behaviour of vertical resizing. * @param xpadding An integer value specifying the padding on the left and right of the widget being added to the table. * @param ypadding The amount of padding above and below the child widget. */ void attach(Widget& child, guint left_attach, guint right_attach, guint top_attach, guint bottom_attach, AttachOptions xoptions = FILL | EXPAND, AttachOptions yoptions = FILL | EXPAND, guint xpadding = 0, guint ypadding = 0); /** If you need to change a table’s size after * it has been created, this function allows you to do so. * * Deprecated: 3.4: Gtk::Grid resizes automatically. * * @param rows The new number of rows. * @param columns The new number of columns. */ void resize(guint rows, guint columns); /** Changes the space between a given table row and the subsequent row. * * Deprecated: 3.4: Use Gtk::Widget::set_margin_top() and * Gtk::Widget::set_margin_bottom() on the widgets contained in the row if * you need this functionality. Gtk::Grid does not support per-row spacing. * * @param row Row number whose spacing will be changed. * @param spacing Number of pixels that the spacing should take up. */ void set_row_spacing(guint row, guint spacing); /** Gets the amount of space between row @a row, and * row @a row + 1. See set_row_spacing(). * * Deprecated: 3.4: Gtk::Grid does not offer a replacement for this * functionality. * * @param row A row in the table, 0 indicates the first row. * @return The row spacing. */ guint get_row_spacing(guint row) const; /** Alters the amount of space between a given table column and the following * column. * * Deprecated: 3.4: Use Gtk::Widget::set_margin_start() and * Gtk::Widget::set_margin_end() on the widgets contained in the row if * you need this functionality. Gtk::Grid does not support per-row spacing. * * @param column The column whose spacing should be changed. * @param spacing Number of pixels that the spacing should take up. */ void set_col_spacing(guint column, guint spacing); /** Gets the amount of space between column @a col, and * column @a col + 1. See set_col_spacing(). * * Deprecated: 3.4: Gtk::Grid does not offer a replacement for this * functionality. * * @param column A column in the table, 0 indicates the first column. * @return The column spacing. */ guint get_col_spacing(guint column) const; /** Sets the space between every row in @a table equal to @a spacing. * * Deprecated: 3.4: Use Gtk::Grid::set_row_spacing() with Gtk::Grid. * * @param spacing The number of pixels of space to place between every row in the table. */ void set_row_spacings(guint spacing); /** Sets the space between every column in @a table equal to @a spacing. * * Deprecated: 3.4: Use Gtk::Grid::set_column_spacing() with Gtk::Grid. * * @param spacing The number of pixels of space to place between every column * in the table. */ void set_col_spacings(guint spacing); void set_spacings(guint spacing); /** Gets the default row spacing for the table. This is * the spacing that will be used for newly added rows. * (See set_row_spacings()) * * Deprecated: 3.4: Use Gtk::Grid::get_row_spacing() with Gtk::Grid. * * @return The default row spacing. */ guint get_default_row_spacing(); /** Gets the default column spacing for the table. This is * the spacing that will be used for newly added columns. * (See set_col_spacings()) * * Deprecated: 3.4: Use Gtk::Grid::get_column_spacing() with Gtk::Grid. * * @return The default column spacing. */ guint get_default_col_spacing(); /** Changes the homogenous property of table cells, ie. whether all cells are * an equal size or not. * * Deprecated: 3.4: Use Gtk::Grid::set_row_homogeneous() and * Gtk::Grid::set_column_homogeneous() with Gtk::Grid. * * @param homogeneous Set to true to ensure all table cells are the same size. Set * to false if this is not your desired behaviour. */ void set_homogeneous(bool homogeneous = true); /** Returns whether the table cells are all constrained to the same * width and height. (See set_homogeneous()) * * Deprecated: 3.4: Use Gtk::Grid::get_row_homogeneous() and * Gtk::Grid::get_column_homogeneous() with Gtk::Grid. * * @return true if the cells are all constrained to the same size. */ bool get_homogeneous() const; /** Gets the number of rows and columns in the table. * * @newin{2,22} * * Deprecated: 3.4: Gtk::Grid does not expose the number of columns and * rows. * * @param rows Return location for the number of * rows, or nullptr. * @param columns Return location for the number * of columns, or nullptr. */ void get_size(guint& rows, guint& columns) const; /** The number of rows in the table. * * Default value: 1 * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< guint > property_n_rows() ; /** The number of rows in the table. * * Default value: 1 * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< guint > property_n_rows() const; /** The number of columns in the table. * * Default value: 1 * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< guint > property_n_columns() ; /** The number of columns in the table. * * Default value: 1 * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< guint > property_n_columns() const; /** The amount of space between two consecutive columns. * * Default value: 0 * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< guint > property_column_spacing() ; /** The amount of space between two consecutive columns. * * Default value: 0 * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< guint > property_column_spacing() const; /** The amount of space between two consecutive rows. * * Default value: 0 * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< guint > property_row_spacing() ; /** The amount of space between two consecutive rows. * * Default value: 0 * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< guint > property_row_spacing() const; /** If true, the table cells are all the same width/height. * * Default value: false * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< bool > property_homogeneous() ; /** If true, the table cells are all the same width/height. * * Default value: false * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< bool > property_homogeneous() const; }; } // namespace Gtk namespace Glib { /** A Glib::wrap() method for this object. * * @param object The C instance. * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. * @result A C++ instance that wraps this C instance. * * @relates Gtk::Table */ GTKMM_API Gtk::Table* wrap(GtkTable* object, bool take_copy = false); } //namespace Glib #endif // GTKMM_DISABLE_DEPRECATED #endif /* _GTKMM_TABLE_H */