/* $Id: fixed.hg,v 1.1 2003/01/21 13:38:49 murrayc Exp $ */

/* fixed.h
 * 
 * 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 <gtkmm/container.h>
_DEFS(gtkmm,gtk)
_PINCLUDE(gtkmm/private/container_p.h)

namespace Gtk
{

/** A container which allows you to position widgets at fixed coordinates.
 *
 * The Gtk::Fixed widget is a container which can place child widgets at fixed positions and with fixed sizes, given in pixels. It performs no automatic layout management.
 * For most applications, you should not use this container, because it will result in truncated text, overlapping widgets, and other display bugs:
 * - Themes may change widget sizes.
 * - Fonts other than the one you used to write the app will of course change the size of widgets containing text; keep in mind that users may use a larger font because of difficulty reading the default, or they may be using Windows or the framebuffer port of GTK+, where different fonts are available.
 * - Translation of text into other languages changes its size. Also, display of non-English text will use a different font in many cases.
 * In addition, the fixed widget can't properly be mirrored in right-to-left languages such as Hebrew and Arabic. i.e. normally GTK+ will flip the interface to put labels to the right of the thing they label, but it can't do that with Gtk::Fixed. So your application will not be usable in right-to-left languages.
 * Finally, fixed positioning makes it kind of annoying to add/remove GUI elements, since you have to reposition all the other elements. This is a long-term maintenance problem for your application.
 * If you know none of these things are an issue for your application, and prefer the simplicity of Gtk::Fixed, by all means use the widget. But you should be aware of the tradeoffs.
 *
 * @ingroup Widgets
 * @ingroup Containers
 */
class Fixed : public Container
{
  _CLASS_GTKOBJECT(Fixed,GtkFixed,GTK_FIXED,Gtk::Container,GtkContainer)
public:
  _CTOR_DEFAULT

  _WRAP_METHOD(void put(Widget& widget, int x, int y), gtk_fixed_put)
  _WRAP_METHOD(void move(Widget& widget, int x, int y), gtk_fixed_move)
  _WRAP_METHOD(void set_has_window(bool has_window = true), gtk_fixed_set_has_window)
  _WRAP_METHOD(bool get_has_window() const, gtk_fixed_get_has_window)
};

} /* namespace Gtk */

