table of contents
Gtk2::Gdk::Window(3pm) | User Contributed Perl Documentation | Gtk2::Gdk::Window(3pm) |
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.
2019-09-16 | perl v5.28.1 |