Window.parseGeometry

bool parseGeometry(string geometry)

Parses a standard X Window System geometry string - see the manual page for X (type “man X”) for details on this. [gtk.window.Window.parseGeometry] 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, [gtk.window.Window.parseGeometry] returns true and calls [gtk.window.Window.setDefaultSize] and/or [gtk.window.Window.move] to resize/move the window.

If [gtk.window.Window.parseGeometry] returns true, it will also set the #GDK_HINT_USER_POS and/or #GDK_HINT_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 [gtk.window.Window.parseGeometry] to work as expected, it has to be called when the window has its “final” size, i.e. after calling [gtk.widget.Widget.showAll] on the contents and [gtk.window.Window.setGeometryHints] 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

geometrygeometry string

Returns

true if string was parsed successfully

Deprecated

Geometry handling in GTK is deprecated.