
@c %start of fragment

@node GtkFixed
@chapter GtkFixed
A container which allows you to position widgets at fixed coordinates

@section Overview
The @code{<gtk-fixed>} widget is a container which can place child widgets at
fixed positions and with fixed sizes, given in pixels. @code{<gtk-fixed>}
performs no automatic layout management.

For most applications, you should not use this container! It keeps you from
having to learn about the other GTK+ containers, but it results in broken
applications. With @code{<gtk-fixed>}, the following things will result in
truncated text, overlapping widgets, and other display bugs:

Themes, which 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
@code{<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 @code{<gtk-fixed>}, by all means use the widget. But you
should be aware of the tradeoffs.

@section Usage
@include defuns-gtkfixed.xml.texi

@c %end of fragment
