Next: , Previous: GtkVButtonBox, Up: Top


96 GtkFixed

A container which allows you to position widgets at fixed coordinates

96.1 Overview

The <gtk-fixed> widget is a container which can place child widgets at fixed positions and with fixed sizes, given in pixels. <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>, 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>. 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.

96.2 Usage

— Class: <gtk-fixed>

Derives from <gtk-container>.

This class defines no direct slots.

— Function: gtk-fixed-new ⇒  (ret <gtk-widget>)

Creates a new <gtk-fixed>.

ret
a new <gtk-fixed>.
— Function: gtk-fixed-put (self <gtk-fixed>) (widget <gtk-widget>) (int) (int)
— Method: put

Adds a widget to a <gtk-fixed> container at the given position.

fixed
a <gtk-fixed>.
widget
the widget to add.
x
the horizontal position to place the widget at.
y
the vertical position to place the widget at.
— Function: gtk-fixed-move (self <gtk-fixed>) (widget <gtk-widget>) (int) (int)
— Method: move

Moves a child of a <gtk-fixed> container to the given position.

fixed
a <gtk-fixed>.
widget
the child widget.
x
the horizontal position to move the widget to.
y
the vertical position to move the widget to.
— Function: gtk-fixed-get-has-window (self <gtk-fixed>) ⇒  (ret bool)
— Method: get-has-window

Gets whether the <gtk-fixed> has its own <gdk-window>. See gdk-fixed-set-has-window.

fixed
a <gtk-widget>
ret
#t’ if fixed has its own window.
— Function: gtk-fixed-set-has-window (self <gtk-fixed>) (has_window bool)
— Method: set-has-window

Sets whether a <gtk-fixed> widget is created with a separate <gdk-window> for widget->window or not. (By default, it will be created with no separate <gdk-window>). This function must be called while the <gtk-fixed> is not realized, for instance, immediately after the window is created.

This function was added to provide an easy migration path for older applications which may expect <gtk-fixed> to have a separate window.

fixed
a <gtk-fixed>
has-window
#t’ if a separate window should be created