parse_geometry


Description:

[ Version ( deprecated = true , deprecated_since = "3.20" ) ]
public bool parse_geometry (string geometry)

Warning: parse_geometry is deprecated since "3.20".

Parses a standard X Window System geometry string - see the manual page for X (type “man X”) for details on this.

Note:

Geometry handling in GTK is deprecated.

parse_geometry does work on all GTK+ ports including Win32 but is primarily intended for an X environment.

If either a size or a position can be extracted from the geometry string, parse_geometry returns true and calls set_default_size and/or move to resize/move the window.

If parse_geometry returns true, it will also set the USER_POS and/or USER_SIZE hints indicating to the window manager that the size/position of the window was user-specified. This causes most window managers to honor the geometry.

Note that for parse_geometry to work as expected, it has to be called when the window has its “final” size, i.e. after calling show_all on the contents and set_geometry_hints on the window.

#include <gtk/gtk.h>

static void
fill_with_content (GtkWidget *vbox)
{
// fill with content...
}

int
main (int argc, char *argv[])
{
GtkWidget *window, *vbox;
GdkGeometry size_hints = {
100, 50, 0, 0, 100, 50, 10,
10, 0.0, 0.0, GDK_GRAVITY_NORTH_WEST
};

gtk_init (&argc, &argv);

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);

gtk_container_add (GTK_CONTAINER (window), vbox);
fill_with_content (vbox);
gtk_widget_show_all (vbox);

gtk_window_set_geometry_hints (GTK_WINDOW (window),
NULL,
&size_hints,
GDK_HINT_MIN_SIZE |
GDK_HINT_BASE_SIZE |
GDK_HINT_RESIZE_INC);

if (argc > 1)
{
gboolean res;
res = gtk_window_parse_geometry (GTK_WINDOW (window),
argv[1]);
if (! res)
fprintf (stderr,
"Failed to parse “%s\n",
argv[1]);
}

gtk_widget_show_all (window);
gtk_main ();

return 0;
}

Parameters:

this

a Window

geometry

geometry string

Returns:

true if string was parsed successfully