13
0
livetrax/libs/gtkmm2/gtk/src/sizegroup.hg

79 lines
3.4 KiB
Plaintext
Raw Normal View History

/* $Id: sizegroup.hg,v 1.5 2006/12/11 18:57:50 murrayc Exp $ */
/* box.h
*
* Copyright 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/object.h>
#include <gtkmm/widget.h>
_DEFS(gtkmm,gtk)
_PINCLUDE(glibmm/private/object_p.h)
namespace Gtk
{
_CC_INCLUDE(gtk/gtktypebuiltins.h)
_WRAP_ENUM(SizeGroupMode, GtkSizeGroupMode)
/** Gtk::SizeGroup provides a mechanism for grouping a number of widgets together so they all request the same amount of space.
* This is typically useful when you want a column of widgets to have the same size, but you can't use a Gtk::Table widget.
*
* In detail, the size requested for each widget in a Gtk::SizeGroup is the maximum of the sizes that would have been
* requested for each widget in the size group if they were not in the size group. The mode of the size group (see
* set_mode()) determines whether this applies to the horizontal size, the vertical size, or both sizes.
*
* Note that size groups only affect the amount of space requested, not the size that the widgets finally receive. If
* you want the widgets in a GtkSizeGroup to actually be the same size, you need to pack them in such a way that they
* get the size they request and not more. For example, if you are packing your widgets into a table, you would not
* include the Gtk::FILL flag.
*
* Widgets can be part of multiple size groups; GTK+ will compute the horizontal size of a widget from the horizontal
* requisition of all widgets that can be reached from the widget by a chain of size groups of type
* Gtk::SIZE_GROUP_HORIZONTAL or Gtk::SIZE_GROUP_BOTH, and the vertical size from the vertical requisition of all widgets
* that can be reached from the widget by a chain of size groups of type Gtk::SIZE_GROUP_VERTICAL or Gtk::SIZE_GROUP_BOTH.
*/
class SizeGroup : public Glib::Object
{
_CLASS_GOBJECT(SizeGroup,GtkSizeGroup,GTK_SIZE_GROUP,Glib::Object,GObject)
protected:
explicit SizeGroup(SizeGroupMode mode);
public:
_WRAP_CREATE(SizeGroupMode mode)
_WRAP_METHOD(void set_mode(SizeGroupMode mode), gtk_size_group_set_mode)
_WRAP_METHOD(SizeGroupMode get_mode() const, gtk_size_group_get_mode)
_WRAP_METHOD(void set_ignore_hidden(bool ignore_hidden = true), gtk_size_group_set_ignore_hidden)
_WRAP_METHOD(bool get_ignore_hidden() const, gtk_size_group_get_ignore_hidden)
_WRAP_METHOD(void add_widget(Widget& widget), gtk_size_group_add_widget)
_WRAP_METHOD(void remove_widget(Widget& widget), gtk_size_group_remove_widget)
_WRAP_METHOD(Glib::SListHandle<Widget*> get_widgets(), gtk_size_group_get_widgets)
_WRAP_METHOD(Glib::SListHandle<const Widget*> get_widgets() const, gtk_size_group_get_widgets)
_WRAP_PROPERTY("mode", SizeGroupMode)
_WRAP_PROPERTY("ignore_hidden", bool)
};
} /* namespace Gtk */