package Implements_Gtk_Buildable is new Glib.Types.Implements (Gtk.Buildable.Gtk_Buildable, Gtk_Fixed_Record, Gtk_Fixed);
type Gtk_Fixed_Record is new Gtk_Container_Record with null record;
type Gtk_Fixed is access all Gtk_Fixed_Record'Class;
procedure Gtk_New
( | Fixed | : out Gtk_Fixed); |
procedure Initialize
( | Fixed | : not null access Gtk_Fixed_Record'Class); |
function Get_Type return Glib.GType;
procedure Move
( | Fixed | : not null access Gtk_Fixed_Record; |
Widget | : not null access Gtk.Widget.Gtk_Widget_Record'Class; | |
X | : Gint; | |
Y | : Gint); |
procedure Put
( | Fixed | : not null access Gtk_Fixed_Record; |
Widget | : not null access Gtk.Widget.Gtk_Widget_Record'Class; | |
X | : Gint; | |
Y | : Gint); |
function "+"
( | Widget | : access Gtk_Fixed_Record'Class) return Gtk.Buildable.Gtk_Buildable renames Implements_Gtk_Buildable.To_Interface; |
function "-"
( | Interf | : Gtk.Buildable.Gtk_Buildable) return Gtk_Fixed renames Implements_Gtk_Buildable.To_Object; |
The Gtk.Fixed.Gtk_Fixed widget is a container which can place child widgets at fixed positions and with fixed sizes, given in pixels.
Gtk.Fixed.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 Gtk.Fixed.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 Gtk.Fixed.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.Gtk_Fixed, by all means use the widget.
But you should be aware of the tradeoffs.