summaryrefslogtreecommitdiff
path: root/libs/gtkmm2/gtk/gtkmm/table.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/gtkmm2/gtk/gtkmm/table.h')
-rw-r--r--libs/gtkmm2/gtk/gtkmm/table.h379
1 files changed, 379 insertions, 0 deletions
diff --git a/libs/gtkmm2/gtk/gtkmm/table.h b/libs/gtkmm2/gtk/gtkmm/table.h
new file mode 100644
index 0000000000..5dd6a8987e
--- /dev/null
+++ b/libs/gtkmm2/gtk/gtkmm/table.h
@@ -0,0 +1,379 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_TABLE_H
+#define _GTKMM_TABLE_H
+
+#include <glibmm.h>
+
+/* $Id$ */
+
+/* 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 Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/helperlist.h>
+#include <gtkmm/container.h>
+#include <gtkmm/enums.h>
+#include <gtk/gtktable.h> /* for GtkTableChild */
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkTable GtkTable;
+typedef struct _GtkTableClass GtkTableClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class Table_Class; } // namespace Gtk
+namespace Gtk
+{
+
+class Table;
+
+namespace Table_Helpers
+{
+
+class Child : protected _GtkTableChild
+{
+private:
+ Child& operator=(const Child&); //Not implemented.
+ Child(const Child&); //Not implemented.
+
+public:
+ inline _GtkTableChild* gobj() {return (this);}
+ inline const _GtkTableChild* gobj() const {return (this);}
+
+ Widget* get_widget() const;
+
+ //TODO: Which of the GtkTableChild's fields are public API?
+ //Maybe we should remove some of these get()s or add some set()s.
+ //If get_widget() is the only accessor, then we should probably make
+ //the STL-style Table list contain Widgets instead of Childs.
+
+ guint16 get_left_attach() const;
+ guint16 get_right_attach() const;
+ guint16 get_top_attach() const;
+ guint16 get_bottom_attach() const;
+ guint16 get_xpadding() const;
+ guint16 get_ypadding() const;
+ bool get_xexpand() const;
+ bool get_yexpand() const;
+ bool get_xshrink() const;
+ bool get_yshrink() const;
+ bool get_xfill() const;
+ bool get_yfill() const;
+
+protected:
+ inline GtkTable* parent()
+ { return (GtkTable*) (gobj()->widget->parent); }
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+ friend class Dummy_; // silence the compiler (Child has only private ctors)
+#endif
+};
+
+
+class TableList : public Glib::HelperList< Child, Widget, Glib::List_Iterator< Child > >
+{
+public:
+ TableList();
+ explicit TableList(GtkTable* gparent);
+ TableList(const TableList& src);
+ virtual ~TableList() {}
+
+ TableList& operator=(const TableList& src);
+
+ typedef Glib::HelperList< Child, Widget, Glib::List_Iterator< Child > > type_base;
+
+ GtkTable* gparent();
+ const GtkTable* gparent() const;
+
+ virtual GList*& glist() const; // front of list
+
+ virtual void erase(iterator start, iterator stop);
+ virtual iterator erase(iterator); //Implented as custom or by LIST_CONTAINER_REMOVE
+ virtual void remove(const_reference); //Implented as custom or by LIST_CONTAINER_REMOVE
+
+ /// This is order n. (use at own risk)
+ reference operator[](size_type l) const;
+
+protected:
+ //Hide these because its read-only:
+ iterator insert(iterator position, element_type& e);
+
+ inline void pop_front();
+ inline void pop_back();
+
+
+ //The standard iterator, instead of List_Cpp_Iterator,
+ //only works because Child is derived from _GtkTableChild.
+
+
+virtual void remove(Widget& w); //Implented as custom or by LIST_CONTAINER_REMOVE
+
+ };
+
+
+} // namespace Table_Helpers
+
+
+/** 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 <em>rows</em>&nbsp;+&nbsp;1 lattice points vertically and
+ * <em>columns</em>&nbsp;+&nbsp;1 lattice points horizontally. Lattice points
+ * start counting from 0. Lattice points can either be specified to be
+ * <em>homogeneous</em>, meaning equally spaced, or not <em>homogeneous</em>,
+ * meaning each cell should be calculated based on the widgets contained in the
+ * row and column. The <em>homogeneous</em> 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 <tt>Gtk::EXPAND</tt>, the lattice is allowed to grow to fill
+ * space. With <tt>Gtk::SHRINK</tt>, 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 <tt>Gtk::FILL</tt> declares the
+ * widget should grow to fill lattice. If this is not set any extra space is
+ * used as padding. The default is <tt>(Gtk::FILL&nbsp;|&nbsp;Gtk::EXPAND)</tt>.
+ *
+ * @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.
+ *
+ * @see Gtk::HBox, Gtk::VBox
+ */
+
+class 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 */
+
+ virtual ~Table();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+private:
+ friend class Table_Class;
+ static CppClassType table_class_;
+
+ // noncopyable
+ Table(const Table&);
+ Table& operator=(const Table&);
+
+protected:
+ explicit Table(const Glib::ConstructParams& construct_params);
+ explicit Table(GtkTable* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+ static GType get_type() G_GNUC_CONST;
+ static GType get_base_type() G_GNUC_CONST;
+#endif
+
+ ///Provides access to the underlying C GtkObject.
+ GtkTable* gobj() { return reinterpret_cast<GtkTable*>(gobject_); }
+
+ ///Provides access to the underlying C GtkObject.
+ const GtkTable* gobj() const { return reinterpret_cast<GtkTable*>(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);
+
+
+ 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);
+
+
+ void resize(guint rows, guint columns);
+
+
+ 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().
+ * @param row A row in the table, 0 indicates the first row.
+ * @return The row spacing.
+ */
+ guint get_row_spacing(guint row) const;
+
+
+ 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().
+ * @param column A column in the table, 0 indicates the first column.
+ * @return The column spacing.
+ */
+ guint get_col_spacing(guint column) const;
+
+
+ void set_row_spacings(guint spacing);
+
+
+ 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())
+ * @return Value: 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())
+ * @return Value: the default column spacing.
+ */
+ guint get_default_col_spacing();
+
+
+ void set_homogeneous(bool homogeneous = true);
+
+ /** Returns whether the table cells are all constrained to the same
+ * width and height. (See gtk_table_set_homogenous())
+ * @return <tt>true</tt> if the cells are all constrained to the same size.
+ */
+ bool get_homogeneous() const;
+
+ typedef Table_Helpers::TableList TableList;
+
+
+ TableList& children();
+ const TableList& children() const;
+
+ /** The number of rows in the table.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy<guint> property_n_rows() ;
+
+/** The number of rows in the table.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, 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.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy<guint> property_n_columns() ;
+
+/** The number of columns in the table.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, 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.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy<guint> property_column_spacing() ;
+
+/** The amount of space between two consecutive columns.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, 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.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy<guint> property_row_spacing() ;
+
+/** The amount of space between two consecutive rows.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy_ReadOnly<guint> property_row_spacing() const;
+
+
+protected:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+ mutable TableList children_proxy_;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+};
+
+} // namespace Gtk
+
+
+namespace Glib
+{
+ /** @relates Gtk::Table
+ * @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.
+ */
+ Gtk::Table* wrap(GtkTable* object, bool take_copy = false);
+}
+#endif /* _GTKMM_TABLE_H */
+