It'd be nice if the attributes to Gtk2::Gdk::Window->new were described
a bit, perhaps per below (formatted and a diff), unless I missed it
elsewhere. (I went to use it and had to have a dig in the source.)
It occurred to me maybe override_redirect could use sv_2bool or whatever
on its value instead of SvUV, to allow undef and empty string to mean
false too, in the usual way.
window = Gtk2::Gdk::Window->new ($parent, $attributes_ref)
* $parent (Gtk2::Gdk::Window or undef)
* $attributes_ref (scalar)
Create and return a new window. parent can be undef to mean the
root window of the default screen. attributes_ref is a hashref
containing some of the following keys,
title string
event_mask Gtk2::Gdk::EventMask flags
x integer
y integer
width integer
height integer
wclass Gtk2::Gdk::WindowClass enum
visual Gtk2::Gdk::Visual
colormap Gtk2::Gdk::Colormap
window_type Gtk2::Gdk::WindowType enum
cursor Gtk2::Gdk::Cursor
wmclass_name string
wmclass_class string
override_redirect boolean (integer 0 or 1)
window_type is mandatory because it defaults to "root" but of
course it's not possible to create a new root window. The other
fields get default values zero, empty, unset, etc.
my $win = Gtk2::Gdk::Window->new
(undef, { window_type => 'toplevel,
wclass => 'GDK_INPUT_OUTPUT',
x => 0,
y => 0,
width => 200,
height => 100 });
Incidentally, the nicknames for wclass Gtk2::Gdk::WindowClass
really are "output" for input-output and "only" for input-only.
Those names are a bit odd, but that's what Gtk has. You can, as
for any enum, give the full names like "GDK_INPUT_OUTPUT" if
desired, for some clarity.
Attachment:
GdkWindow.xs.doc-new.diff
Description: Text Data