Gtk2::Gdk::Window

NAME

Gtk2::Gdk::Window − wrapper for GdkWindow

DESCRIPTION

"Gtk2::Gdk::Window" is a low-level window-system window. One of these is created when a widget is "realized".

As of Gtk 2.22 a window can only be created by "Gtk2::Gdk::Window−>new()", "foreign_new()", etc. "Glib::Object::new()" doesn’t work (segfaults on using the resulting window object). It’s not possible to subclass "Gtk2::Gdk::Window" with Glib::Object::Subclass and the "Glib::Type" system, since only "gdk_window_new()" does the actual window creation, and that function always makes a "GdkWindow". (The Perl-Gtk "Gtk2::Gdk::Window−>new()" wrapper ignores the class name argument.)

It may work to create a Perl level subclass and re-bless a "Gtk2::Gdk::Window−>new()" into that. But like any such re-blessing it’s not preserved when the object is returned from a Gtk function etc (that just gives the base Gtk class).

HIERARCHY

Glib::Object
+−−−−Gtk2::Gdk::Drawable
+−−−−Gtk2::Gdk::Window

METHODS

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.

boolean = $window−>get_accept_focus
Since: gtk+ 2.22

$window−>set_accept_focus ($accept_focus)

$accept_focus (boolean)

Since: gtk+ 2.4

(window, win_x, win_y) = Gtk2::Gdk::Window−>at_pointer
Returns window, a Gtk2::Gdk::Window and win_x and win_y, integers.

$window−>set_back_pixmap ($pixmap, $parent_relative=0)

$pixmap (Gtk2::Gdk::Pixmap or undef)

$parent_relative (boolean)

pattern = $window−>get_background_pattern
Since: gtk+ 2.22

$window−>set_background ($color)

$color (Gtk2::Gdk::Color)

$window−>beep
Since: gtk+ 2.12

$window−>begin_move_drag ($button, $root_x, $root_y, $timestamp)

$button (integer)

$root_x (integer)

$root_y (integer)

$timestamp (unsigned)

$window−>begin_paint_rect ($rectangle)

$rectangle (Gtk2::Gdk::Rectangle)

$window−>begin_paint_region ($region)

$region (Gtk2::Gdk::Region)

$window−>begin_resize_drag ($edge, $button, $root_x, $root_y, $timestamp)

$edge (Gtk2::Gdk::WindowEdge)

$button (integer)

$root_x (integer)

$root_y (integer)

$timestamp (unsigned)

$window−>set_child_input_shapes
Since: gtk+ 2.10

$window−>set_child_shapes
list = $window−>get_children

Returns the list of children (Gtk2::Gdk::Window’s) known to gdk.

$window−>clear
$window−>clear_area ($x, $y, $width, $height)

$x (integer)

$y (integer)

$width (integer)

$height (integer)

$window−>clear_area_e ($x, $y, $width, $height)

$x (integer)

$y (integer)

$width (integer)

$height (integer)

boolean = $window−>get_composited
Since: gtk+ 2.22

$window−>set_composited ($composited)

$composited (boolean)

Since: gtk+ 2.12

$window−>configure_finished
Since: gtk+ 2.6

(x, y) = $window−>coords_from_parent ($parent_x, $parent_y)

$parent_x (double)

$parent_y (double)

Since: gtk+ 2.22

(parent_x, parent_y) = $window−>coords_to_parent ($x, $y)

$x (double)

$y (double)

Since: gtk+ 2.22

surface = $window−>create_similar_surface ($content, $width, $height)

$content (Cairo::Content)

$width (integer)

$height (integer)

Since: gtk+ 2.22

cursor or undef = $window−>get_cursor
Since: gtk+ 2.18

$window−>set_cursor ($cursor)

$cursor (Gtk2::Gdk::Cursor or undef)

Gtk2::Gdk::Window−>set_debug_updates ($enable)
$window−>set_debug_updates ($enable)

$enable (boolean)

list = $window−>get_decorations
$window−>set_decorations ($decorations)

$decorations (Gtk2::Gdk::WMDecoration)

$window−>deiconify
$window−>destroy
window = $window−>get_effective_parent

Since: gtk+ 2.22

window = $window−>get_effective_toplevel
Since: gtk+ 2.22

window or undef = $offscreen_window−>get_embedder
Only for offscreen "Gtk2::Gdk::Windows".

Since: gtk+ 2.18

$offscreen_window−>set_embedder ($embedder)

$embedder (Gtk2::Gdk::Window)

Only for offscreen "Gtk2::Gdk::Windows".

Since: gtk+ 2.18

$window−>enable_synchronized_configure
Since: gtk+ 2.6

$window−>end_paint
boolean = $window−>ensure_native

Since: gtk+ 2.18

eventmask = $window−>get_events
$window−>set_events ($event_mask)

$event_mask (Gtk2::Gdk::EventMask)

$window−>flush
Since: gtk+ 2.18

$window−>focus ($timestamp)

$timestamp (unsigned)

boolean = $window−>get_focus_on_map
Since: gtk+ 2.22

$window−>set_focus_on_map ($focus_on_map)

$focus_on_map (boolean)

Since: gtk+ 2.6

window = Gtk2::Gdk::Window−>foreign_new ($anid)

$anid (Gtk2::Gdk::NativeWindow)

window = Gtk2::Gdk::Window−>foreign_new_for_display ($display, $anid)

$display (Gtk2::Gdk::Display)

$anid (Gtk2::Gdk::NativeWindow)

Since: gtk+ 2.2

rectangle = $window−>get_frame_extents
$window−>freeze_updates
$window−>fullscreen

Since: gtk+ 2.2

$window−>set_functions ($functions)

$functions (Gtk2::Gdk::WMFunction)

$sm_client_id−>gdk_set_sm_client_id
$window−>geometry_changed

Only useful for offscreen "Gtk2::Gdk::Windows".

Since: gtk+ 2.18

(x, y, width, height, depth) = $window−>get_geometry
$window−>set_geometry_hints ($geometry)
$window−>set_geometry_hints ($geometry, $geom_mask)

$geom_mask (Gtk2::Gdk::WindowHints) optional, usually inferred from $geometry

$geometry (scalar) Gtk2::Gdk::Geometry or hashref

$geometry is either a "Gtk2::Gdk::Geometry" object, or a hashref with the following keys and values,

min_width integer \ 'min−size' mask
min_height integer /
max_width integer \ 'max−size' mask
max_height integer /
base_width integer \ 'base−size' mask
base_height integer /
width_inc integer \ 'resize−inc' mask
height_inc integer /
min_aspect float \ 'aspect' mask
max_aspect float /
win_gravity Gtk2::Gdk::Gravity enum, 'win−gravity' mask

Optional $geom_mask is which fields of $geometry are used. If $geometry is a hashref then $geom_mask defaults to the keys supplied in the hash, so for example

$win−>set_geometry_hints ({ min_width => 20, min_height => 10});

If $geometry is a "Gtk2::Gdk::Geometry" object then you must give $geom_mask explicitly.

The ’pos’, ’user−pos’ and ’user−size’ flags in $geom_mask have no data fields, so cannot be inferred from a $geometry hashref. If you want those flags you must pass $geom_mask explicitly.

window = $window−>get_group
Since: gtk+ 2.4

$window−>set_group ($leader)

$leader (Gtk2::Gdk::Window or undef)

boolean = $window−>has_native
Since: gtk+ 2.22

$window−>hide
$window−>set_icon_list (...)

... (list) of GdkPixbuf’s

$window−>set_icon_name ($name)

$name (string or undef)

$window−>set_icon ($icon_window, $pixmap, $mask)

$icon_window (Gtk2::Gdk::Window or undef)

$pixmap (Gtk2::Gdk::Pixmap or undef)

$mask (Gtk2::Gdk::Bitmap or undef)

$window−>iconify
$window−>input_shape_combine_mask ($mask, $x, $y)

$mask (Gtk2::Gdk::Bitmap or undef)

$x (integer)

$y (integer)

Since: gtk+ 2.10

$window−>input_shape_combine_region ($shape, $offset_x, $offset_y)

$shape (Gtk2::Gdk::Region or undef)

$offset_x (integer)

$offset_y (integer)

Since: gtk+ 2.10

list = $window−>get_internal_paint_info
$window−>invalidate_maybe_recurse ($region, $func, $data=undef)

$region (Gtk2::Gdk::Region)

$func (scalar)

$data (scalar)

$window−>invalidate_rect ($rectangle, $invalidate_children)

$rectangle (Gtk2::Gdk::Rectangle or undef)

$invalidate_children (boolean)

$window−>invalidate_region ($region, $invalidate_children)

$region (Gtk2::Gdk::Region)

$invalidate_children (boolean)

boolean = $window−>is_destroyed
Since: gtk+ 2.18

boolean = $window−>is_input_only
Since: gtk+ 2.22

boolean = $window−>is_shaped
Since: gtk+ 2.22

boolean = $window−>is_viewable
boolean = $window−>is_visible
$window−>set_keep_above ($setting)

$setting (boolean)

Since: gtk+ 2.4

$window−>set_keep_below ($setting)

$setting (boolean)

Since: gtk+ 2.4

window = Gtk2::Gdk::Window−>lookup ($anid)

$anid (Gtk2::Gdk::NativeWindow)

window = Gtk2::Gdk::Window−>lookup_for_display ($display, $anid)

$display (Gtk2::Gdk::Display)

$anid (Gtk2::Gdk::NativeWindow)

Since: gtk+ 2.2

$window−>lower
$window−>maximize
$window−>merge_child_input_shapes

Since: gtk+ 2.10

$window−>merge_child_shapes
boolean = $window−>get_modal_hint

Since: gtk+ 2.22

$window−>set_modal_hint ($modal)

$modal (boolean)

$window−>move ($x, $y)

$x (integer)

$y (integer)

$window−>move_region ($region, $dx, $dy)

$region (Gtk2::Gdk::Region)

$dx (integer)

$dy (integer)

Since: gtk+ 2.8

$window−>move_resize ($x, $y, $width, $height)

$x (integer)

$y (integer)

$width (integer)

$height (integer)

$window−>move_to_current_desktop
Since: gtk+ 2.8

$window−>set_opacity ($opacity)

$opacity (double)

Since: gtk+ 2.12

(x, y) = $window−>get_origin
$window−>set_override_redirect ($override_redirect)

$override_redirect (boolean)

window = $window−>get_parent
list = $window−>peek_children

An alias for get_children

pixmap or undef = $offscreen_window−>get_pixmap
Only for offscreen "Gtk2::Gdk::Windows".

Since: gtk+ 2.18

(window_at_pointer, x, y, mask) = $window−>get_pointer
Returns window_at_pointer, a Gtk2::Gdk::Window or undef, x and y, integers, and mask, a Gtk2::Gdk::ModifierType.

(x, y) = $window−>get_position
Gtk2::Gdk::Window−>process_all_updates
$window−>process_all_updates
$window−>process_updates ($update_children)

$update_children (boolean)

$window−>property_change ($property, $type, $format, $mode, ...)

$property (Gtk2::Gdk::Atom)

$type (Gtk2::Gdk::Atom)

$format (integer)

$mode (Gtk2::Gdk::PropMode)

... (list) property value(s)

Depending on the value of format, the property value(s) can be:

+−−−−−−−−−−−−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
| format | value |
+−−−−−−−−−−−−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
| Gtk2::Gdk::CHARS | a string |
| Gtk2::Gdk::USHORTS | one or more unsigned short numbers |
| Gtk2::Gdk::ULONGS | one or more unsigned long numbers |
+−−−−−−−−−−−−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+

$window−>property_delete ($property)

$property (Gtk2::Gdk::Atom)

(property_type, format, data) = $window−>property_get ($property, $type, $offset, $length, $pdelete)

$property (Gtk2::Gdk::Atom)

$type (Gtk2::Gdk::Atom)

$offset (unsigned)

$length (unsigned)

$pdelete (integer)

See property_change for an explanation of the meaning of format.

$window−>raise
$window−>redirect_to_drawable ($drawable, $src_x, $src_y, $dest_x, $dest_y, $width, $height)

$drawable (Gtk2::Gdk::Drawable)

$src_x (integer)

$src_y (integer)

$dest_x (integer)

$dest_y (integer)

$width (integer)

$height (integer)

Since: gtk+ 2.14

$window−>register_dnd
$window−>remove_redirection

Since: gtk+ 2.14

$window−>reparent ($new_parent, $x, $y)

$new_parent (Gtk2::Gdk::Window)

$x (integer)

$y (integer)

$window−>resize ($width, $height)

$width (integer)

$height (integer)

$window−>restack ($sibling, $above)

$sibling (Gtk2::Gdk::Window or undef)

$above (boolean)

Since: gtk+ 2.18

$window−>set_role ($role)

$role (string)

(root_x, root_y) = $window−>get_root_coords ($x, $y)

$x (integer)

$y (integer)

Since: gtk+ 2.18

(x, y) = $window−>get_root_origin
$window−>scroll ($dx, $dy)

$dx (integer)

$dy (integer)

$window−>shape_combine_mask ($mask, $x, $y)

$mask (Gtk2::Gdk::Bitmap or undef)

$x (integer)

$y (integer)

$window−>shape_combine_region ($shape_region, $offset_x, $offset_y)

$shape_region (Gtk2::Gdk::Region or undef)

$offset_x (integer)

$offset_y (integer)

$window−>show
$window−>show_unraised
$window−>set_skip_pager_hint ($skips_pager)

$skips_pager (boolean)

Since: gtk+ 2.2

$window−>set_skip_taskbar_hint ($skips_taskbar)

$skips_taskbar (boolean)

Since: gtk+ 2.2

$window−>set_startup_id ($startup_id)

$startup_id (string)

Since: gtk+ 2.12

windowstate = $window−>get_state
boolean = $window−>set_static_gravities ($use_static)

$use_static (boolean)

$window−>stick
$window−>thaw_updates
$window−>set_title ($title)

$title (string)

window = $window−>get_toplevel
list = Gtk2::Gdk::Window−>get_toplevels

Returns a list of top level windows (Gtk2::Gdk::Window’s) known to gdk, on the default screen. A toplevel window is a child of the root window.

$window−>set_transient_for ($parent)

$parent (Gtk2::Gdk::Window)

windowtypehint = $window−>get_type_hint
Since: gtk+ 2.10

$window−>set_type_hint ($hint)

$hint (Gtk2::Gdk::WindowTypeHint)

$window−>unfullscreen
Since: gtk+ 2.2

$window−>unmaximize
$window−>unstick
region or undef = $window−>get_update_area
$window−>set_urgency_hint ($urgent)

$urgent (boolean)

Since: gtk+ 2.8

unsigned = $window−>get_user_data
$window−>set_user_data ($user_data)

$user_data (unsigned)

$window−>set_user_time ($timestamp)

$timestamp (unsigned)

Since: gtk+ 2.6

windowtype = $window−>get_window_type
$window−>withdraw

PROPERTIES

’cursor’ (Gtk2::Gdk::Cursor : default undef : readable / writable)

Cursor

SIGNALS

from-embedder (Gtk2::Gdk::Window, double, double, gpointer, gpointer)
Gtk2::Gdk::Window = pick-embedded-child (Gtk2::Gdk::Window, double,
double)
to-embedder
(Gtk2::Gdk::Window, double, double, gpointer, gpointer)

from-embedder, to-embedder and pick-embedded-child signals are for offscreen windows only.

from-embedder and to-embedder receive the x and y coordinates to translate, and must return the translated x and y coordinate.

ENUMS AND FLAGS

flags Gtk2::Gdk::EventMask

’exposure−mask’ / ’ GDK_EXPOSURE_MASK

’pointer−motion−mask’ / ’ GDK_POINTER_MOTION_MASK

’pointer−motion−hint−mask’ / ’ GDK_POINTER_MOTION_HINT_MASK

’button−motion−mask’ / ’ GDK_BUTTON_MOTION_MASK

’button1−motion−mask’ / ’ GDK_BUTTON1_MOTION_MASK

’button2−motion−mask’ / ’ GDK_BUTTON2_MOTION_MASK

’button3−motion−mask’ / ’ GDK_BUTTON3_MOTION_MASK

’button−press−mask’ / ’ GDK_BUTTON_PRESS_MASK

’button−release−mask’ / ’ GDK_BUTTON_RELEASE_MASK

’key−press−mask’ / ’ GDK_KEY_PRESS_MASK

’key−release−mask’ / ’ GDK_KEY_RELEASE_MASK

’enter−notify−mask’ / ’ GDK_ENTER_NOTIFY_MASK

’leave−notify−mask’ / ’ GDK_LEAVE_NOTIFY_MASK

’focus−change−mask’ / ’ GDK_FOCUS_CHANGE_MASK

’structure−mask’ / ’ GDK_STRUCTURE_MASK

’property−change−mask’ / ’ GDK_PROPERTY_CHANGE_MASK

’visibility−notify−mask’ / ’ GDK_VISIBILITY_NOTIFY_MASK

’proximity−in−mask’ / ’ GDK_PROXIMITY_IN_MASK

’proximity−out−mask’ / ’ GDK_PROXIMITY_OUT_MASK

’substructure−mask’ / ’ GDK_SUBSTRUCTURE_MASK

’scroll−mask’ / ’ GDK_SCROLL_MASK

’all−events−mask’ / ’ GDK_ALL_EVENTS_MASK

enum Gtk2::Gdk::PropMode

’replace’ / ’ GDK_PROP_MODE_REPLACE

’prepend’ / ’ GDK_PROP_MODE_PREPEND

’append’ / ’ GDK_PROP_MODE_APPEND

flags Gtk2::Gdk::WMDecoration

’all’ / ’ GDK_DECOR_ALL

’border’ / ’ GDK_DECOR_BORDER

’resizeh’ / ’ GDK_DECOR_RESIZEH

’title’ / ’ GDK_DECOR_TITLE

’menu’ / ’ GDK_DECOR_MENU

’minimize’ / ’ GDK_DECOR_MINIMIZE

’maximize’ / ’ GDK_DECOR_MAXIMIZE

flags Gtk2::Gdk::WMFunction

’all’ / ’ GDK_FUNC_ALL

’resize’ / ’ GDK_FUNC_RESIZE

’move’ / ’ GDK_FUNC_MOVE

’minimize’ / ’ GDK_FUNC_MINIMIZE

’maximize’ / ’ GDK_FUNC_MAXIMIZE

’close’ / ’ GDK_FUNC_CLOSE

enum Gtk2::Gdk::WindowEdge

’north−west’ / ’ GDK_WINDOW_EDGE_NORTH_WEST

’north’ / ’ GDK_WINDOW_EDGE_NORTH

’north−east’ / ’ GDK_WINDOW_EDGE_NORTH_EAST

’west’ / ’ GDK_WINDOW_EDGE_WEST

’east’ / ’ GDK_WINDOW_EDGE_EAST

’south−west’ / ’ GDK_WINDOW_EDGE_SOUTH_WEST

’south’ / ’ GDK_WINDOW_EDGE_SOUTH

’south−east’ / ’ GDK_WINDOW_EDGE_SOUTH_EAST

flags Gtk2::Gdk::WindowHints

’pos’ / ’ GDK_HINT_POS

’min−size’ / ’ GDK_HINT_MIN_SIZE

’max−size’ / ’ GDK_HINT_MAX_SIZE

’base−size’ / ’ GDK_HINT_BASE_SIZE

’aspect’ / ’ GDK_HINT_ASPECT

’resize−inc’ / ’ GDK_HINT_RESIZE_INC

’win−gravity’ / ’ GDK_HINT_WIN_GRAVITY

’user−pos’ / ’ GDK_HINT_USER_POS

’user−size’ / ’ GDK_HINT_USER_SIZE

flags Gtk2::Gdk::WindowState

’withdrawn’ / ’ GDK_WINDOW_STATE_WITHDRAWN

’iconified’ / ’ GDK_WINDOW_STATE_ICONIFIED

’maximized’ / ’ GDK_WINDOW_STATE_MAXIMIZED

’sticky’ / ’ GDK_WINDOW_STATE_STICKY

’fullscreen’ / ’ GDK_WINDOW_STATE_FULLSCREEN

’above’ / ’ GDK_WINDOW_STATE_ABOVE

’below’ / ’ GDK_WINDOW_STATE_BELOW

enum Gtk2::Gdk::WindowType

’root’ / ’ GDK_WINDOW_ROOT

’toplevel’ / ’ GDK_WINDOW_TOPLEVEL

’child’ / ’ GDK_WINDOW_CHILD

’dialog’ / ’ GDK_WINDOW_DIALOG

’temp’ / ’ GDK_WINDOW_TEMP

’foreign’ / ’ GDK_WINDOW_FOREIGN

’offscreen’ / ’ GDK_WINDOW_OFFSCREEN

enum Gtk2::Gdk::WindowTypeHint

’normal’ / ’ GDK_WINDOW_TYPE_HINT_NORMAL

’dialog’ / ’ GDK_WINDOW_TYPE_HINT_DIALOG

’menu’ / ’ GDK_WINDOW_TYPE_HINT_MENU

’toolbar’ / ’ GDK_WINDOW_TYPE_HINT_TOOLBAR

’splashscreen’ / ’ GDK_WINDOW_TYPE_HINT_SPLASHSCREEN

’utility’ / ’ GDK_WINDOW_TYPE_HINT_UTILITY

’dock’ / ’ GDK_WINDOW_TYPE_HINT_DOCK

’desktop’ / ’ GDK_WINDOW_TYPE_HINT_DESKTOP

’dropdown−menu’ / ’ GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU

’popup−menu’ / ’ GDK_WINDOW_TYPE_HINT_POPUP_MENU

’tooltip’ / ’ GDK_WINDOW_TYPE_HINT_TOOLTIP

’notification’ / ’ GDK_WINDOW_TYPE_HINT_NOTIFICATION

’combo’ / ’ GDK_WINDOW_TYPE_HINT_COMBO

’dnd’ / ’ GDK_WINDOW_TYPE_HINT_DND

SEE ALSO

Gtk2, Glib::Object, Gtk2::Gdk::Drawable

COPYRIGHT

Copyright (C) 2003−2011 by the gtk2−perl team.

This software is licensed under the LGPL. See Gtk2 for a full notice.