Index
- NAME
- DESCRIPTION
- HIERARCHY
- INTERFACES
- METHODS
- widget = Gtk2::Window->new ($type=GTK_WINDOW_TOPLEVEL)
- boolean = $window->get_accept_focus
- $window->set_accept_focus ($setting)
- boolean = $window->activate_default
- boolean = $window->activate_focus
- boolean = $window->activate_key ($event)
- $window->add_accel_group ($accel_group)
- $window->add_embedded_xid ($xid)
- $window->add_mnemonic ($keyval, $target)
- Gtk2::Window->set_auto_startup_notification ($setting)
- $window->begin_move_drag ($button, $root_x, $root_y, $timestamp)
- $window->begin_resize_drag ($edge, $button, $root_x, $root_y, $timestamp)
- boolean = $window->get_decorated
- $window->set_decorated ($setting)
- Gtk2::Window->set_default_icon_from_file ($filename)
- $window->set_default_icon_from_file ($filename)
- list = Gtk2::Window->get_default_icon_list
- $window->set_default_icon_list ($pixbuf1, ...)
- Gtk2::Window->set_default_icon_name ($name)
- Gtk2::Window->set_default_icon ($icon)
- $window->set_default ($default_widget)
- (width, height) = $window->get_default_size
- $window->set_default_size ($width, $height)
- $window->deiconify
- boolean = $window->get_deletable
- $window->set_deletable ($setting)
- boolean = $window->get_destroy_with_parent
- $window->set_destroy_with_parent ($setting)
- widget or undef = $window->get_focus
- boolean = $window->get_focus_on_map
- $window->set_focus_on_map ($setting)
- $window->set_focus ($focus=undef)
- (left, top, right, bottom) = $window->get_frame_dimensions
- $window->set_frame_dimensions ($left, $top, $right, $bottom)
- $window->fullscreen
- $window->set_geometry_hints ($geometry_widget, $geometry)
- $window->set_geometry_hints ($geometry_widget, $geometry, $geom_mask)
- gravity = $window->get_gravity
- $window->set_gravity ($gravity)
- windowgroup or undef = $window->get_group
- boolean = $window->get_has_frame
- $window->set_has_frame ($setting)
- boolean = $window->has_toplevel_focus
- $window->set_icon_from_file ($filename)
- pixbuf or undef = $window->get_icon
- list = $window->get_icon_list
- $window->set_icon_list (...)
- string or undef = $window->get_icon_name
- $window->set_icon_name ($name)
- $window->set_icon ($icon)
- $window->iconify
- boolean = $window->is_active
- $window->set_keep_above ($setting)
- $window->set_keep_below ($setting)
- list = Gtk2::Window->list_toplevels
- $window->maximize
- boolean = $window->mnemonic_activate ($keyval, $modifier)
- modifiertype = $window->get_mnemonic_modifier
- $window->set_mnemonic_modifier ($modifier)
- boolean = $window->get_modal
- $window->set_modal ($modal)
- $window->move ($x, $y)
- double = $window->get_opacity
- $window->set_opacity ($opacity)
- boolean = $window->parse_geometry ($geometry)
- (root_x, root_y) = $window->get_position
- $window->set_position ($position)
- $window->present
- $window->present_with_time ($timestamp)
- boolean = $window->propagate_key_event ($event)
- $window->remove_accel_group ($accel_group)
- $window->remove_embedded_xid ($xid)
- $window->remove_mnemonic ($keyval, $target)
- $window->reshow_with_initial_size
- boolean = $window->get_resizable
- $window->set_resizable ($resizable)
- $window->resize ($width, $height)
- string = $window->get_role
- $window->set_role ($role)
- screen = $window->get_screen
- $window->set_screen ($screen)
- (width, height) = $window->get_size
- boolean = $window->get_skip_pager_hint
- $window->set_skip_pager_hint ($setting)
- boolean = $window->get_skip_taskbar_hint
- $window->set_skip_taskbar_hint ($setting)
- $window->set_startup_id ($startup_id)
- $window->stick
- string = $window->get_title
- $window->set_title ($title=undef)
- window or undef = $window->get_transient_for
- $window->set_transient_for ($parent)
- windowtypehint = $window->get_type_hint
- $window->set_type_hint ($hint)
- $window->unfullscreen
- $window->unmaximize
- $window->unstick
- boolean = $window->get_urgency_hint
- $window->set_urgency_hint ($setting)
- $window->set_wmclass ($wmclass_name, $wmclass_class)
- PROPERTIES
- SIGNALS
- ENUMS AND FLAGS
- SEE ALSO
- COPYRIGHT
NAME 
Gtk2::Window
DESCRIPTION 
A Gtk2::Window is a top-level window displayed on the root window and
interacting (or not) with the window manager. It can be an
application's main window, a dialog, or a temporary such as a popup
splash window.
Delete Event and Destroy
The default action for a delete-event
(normally from the window
manager close button) is to destroy the window with
$window->destroy
. In your main window you might want to exit
the main loop when that happens.
$toplevel->signal_connect (destroy => sub { Gtk2->main_quit });
If you install a handler for delete-event
and return true, meaning
"don't propagate", you can do something other than destroy the window.
For example
$toplevel->signal_connect (delete_event => sub {
if (any_unsaved_documents()) {
popup_ask_save_before_exit_dialog();
return Gtk2::EVENT_STOP; # don't go to default destroy
} else {
return Gtk2::EVENT_PROPAGATE;
}
});
In a dialog or secondary app window you might not want to destroy but
instead just hide ready for later re-use.
$dialog->signal_connect
(delete_event => \&Gtk2::Widget::hide_on_delete);
The choice between destroying or hiding is normally just a matter of
memory saved against the time to re-create, and how likely the dialog
might be needed again. (However if you build windows with Glade it's
not particularly easy to re-create them there, so you'll mostly want
to just hide in that case.)
A hidden toplevel window is still in
Gtk2::Window->list_toplevels
and that's a good place to search
for an existing window of a desired type to $window->present
again.
HIERARCHY 
Glib::Object
+----Glib::InitiallyUnowned
+----Gtk2::Object
+----Gtk2::Widget
+----Gtk2::Container
+----Gtk2::Bin
+----Gtk2::Window
INTERFACES 
Glib::Object::_Unregistered::AtkImplementorIface
Gtk2::Buildable
METHODS 
- * $type (Gtk2::WindowType)
boolean = $window->get_accept_focus
Since: gtk+ 2.4
$window->set_accept_focus ($setting)
- * $setting (boolean)
Since: gtk+ 2.4
boolean = $window->activate_default
boolean = $window->activate_focus
boolean = $window->activate_key ($event)
- * $event (Gtk2::Gdk::Event::Key)
Since: gtk+ 2.4
$window->add_accel_group ($accel_group)
- * $accel_group (Gtk2::AccelGroup)
$window->add_embedded_xid ($xid)
- * $xid (integer)
$window->add_mnemonic ($keyval, $target)
- * $keyval (integer)
- * $target (Gtk2::Widget)
Gtk2::Window->set_auto_startup_notification ($setting)
- * $setting (boolean)
Since: gtk+ 2.2
$window->begin_move_drag ($button, $root_x, $root_y, $timestamp)
- * $button (integer)
- * $root_x (integer)
- * $root_y (integer)
- * $timestamp (unsigned)
$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)
boolean = $window->get_decorated
$window->set_decorated ($setting)
- * $setting (boolean)
Gtk2::Window->set_default_icon_from_file ($filename)
$window->set_default_icon_from_file ($filename)
- * $filename (localized file name)
May croak with a Glib::Error in $@ on failure.
Since: gtk+ 2.2
list = Gtk2::Window->get_default_icon_list
Gets the value set by $window->set_default_icon_list.
$window->set_default_icon_list ($pixbuf1, ...)
- * ... (list)
- * $pixbuf1 (Gtk2::Gdk::Pixbuf)
Gtk2::Window->set_default_icon_name ($name)
- * $name (string)
Since: gtk+ 2.6
Gtk2::Window->set_default_icon ($icon)
- * $icon (Gtk2::Gdk::Pixbuf)
Since: gtk+ 2.4
$window->set_default ($default_widget)
- * $default_widget (Gtk2::Widget or undef)
(width, height) = $window->get_default_size
$window->set_default_size ($width, $height)
- * $width (integer)
- * $height (integer)
$window->deiconify
boolean = $window->get_deletable
Since: gtk+ 2.10
$window->set_deletable ($setting)
- * $setting (boolean)
Since: gtk+ 2.10
boolean = $window->get_destroy_with_parent
$window->set_destroy_with_parent ($setting)
- * $setting (boolean)
boolean = $window->get_focus_on_map
Since: gtk+ 2.6
$window->set_focus_on_map ($setting)
- * $setting (boolean)
Since: gtk+ 2.6
$window->set_focus ($focus=undef)
- * $focus (Gtk2::Widget or undef)
(left, top, right, bottom) = $window->get_frame_dimensions
$window->set_frame_dimensions ($left, $top, $right, $bottom)
- * $left (integer)
- * $top (integer)
- * $right (integer)
- * $bottom (integer)
$window->fullscreen
Since: gtk+ 2.2
$window->set_geometry_hints ($geometry_widget, $geometry)
$window->set_geometry_hints ($geometry_widget, $geometry, $geom_mask)
- * $geometry_widget (Gtk2::Widget)
- * $geom_mask (Gtk2::Gdk::WindowHints) optional, usually inferred from $geometry
- * $geometry (scalar) Gtk2::Gdk::Geometry or hashref
See <code>Gtk2::Gdk::Window::set_geometry_hints</code>
on the $geometry and $geom_mask arguments.
gravity = $window->get_gravity
$window->set_gravity ($gravity)
- * $gravity (Gtk2::Gdk::Gravity)
windowgroup or undef = $window->get_group
Since: gtk+ 2.10
boolean = $window->get_has_frame
$window->set_has_frame ($setting)
- * $setting (boolean)
boolean = $window->has_toplevel_focus
Since: gtk+ 2.4
$window->set_icon_from_file ($filename)
- * $filename (localized file name)
May croak with a Glib::Error in $@ on failure.
Since: gtk+ 2.2
pixbuf or undef = $window->get_icon
list = $window->get_icon_list
Retrieves the list of icons set by set_icon_list().
$window->set_icon_list (...)
- * ... (list) of Gtk2::Gdk::Pixbuf's
Sets up the icon representing a Gtk2::Window. The icon is used when the window
is minimized (also known as iconified). Some window managers or desktop
environments may also place it in the window frame, or display it in other
contexts.
set_icon_list () allows you to pass
in the same icon in several hand-drawn sizes. The list should contain the
natural sizes your icon is available in; that is, don't scale the image before
passing it to GTK+. Scaling is postponed until the last minute, when the
desired final size is known, to allow best quality.
By passing several sizes, you may improve the final image quality of the icon,
by reducing or eliminating automatic image scaling.
Recommended sizes to provide: 16x16, 32x32, 48x48 at minimum, and larger
images (64x64, 128x128) if you have them.
string or undef = $window->get_icon_name
Since: gtk+ 2.6
$window->set_icon_name ($name)
- * $name (string)
Since: gtk+ 2.6
$window->set_icon ($icon)
- * $icon (Gtk2::Gdk::Pixbuf or undef)
$window->iconify
boolean = $window->is_active
Since: gtk+ 2.4
$window->set_keep_above ($setting)
- * $setting (boolean)
Since: gtk+ 2.4
$window->set_keep_below ($setting)
- * $setting (boolean)
Since: gtk+ 2.4
list = Gtk2::Window->list_toplevels
Returns a list of all existing toplevel windows.
$window->maximize
boolean = $window->mnemonic_activate ($keyval, $modifier)
- * $keyval (integer)
- * $modifier (Gtk2::Gdk::ModifierType)
modifiertype = $window->get_mnemonic_modifier
$window->set_mnemonic_modifier ($modifier)
- * $modifier (Gtk2::Gdk::ModifierType)
boolean = $window->get_modal
$window->set_modal ($modal)
- * $modal (boolean)
$window->move ($x, $y)
- * $x (integer)
- * $y (integer)
double = $window->get_opacity
Since: gtk+ 2.12
$window->set_opacity ($opacity)
- * $opacity (double)
Since: gtk+ 2.12
boolean = $window->parse_geometry ($geometry)
- * $geometry (string)
(root_x, root_y) = $window->get_position
$window->set_position ($position)
- * $position (Gtk2::WindowPosition)
$window->present
$window->present_with_time ($timestamp)
- * $timestamp (unsigned)
Since: gtk+ 2.8
boolean = $window->propagate_key_event ($event)
- * $event (Gtk2::Gdk::Event::Key)
Since: gtk+ 2.4
$window->remove_accel_group ($accel_group)
- * $accel_group (Gtk2::AccelGroup)
$window->remove_embedded_xid ($xid)
- * $xid (integer)
$window->remove_mnemonic ($keyval, $target)
- * $keyval (integer)
- * $target (Gtk2::Widget)
$window->reshow_with_initial_size
boolean = $window->get_resizable
$window->set_resizable ($resizable)
- * $resizable (boolean)
$window->resize ($width, $height)
- * $width (integer)
- * $height (integer)
string = $window->get_role
$window->set_role ($role)
- * $role (string)
screen = $window->get_screen
Since: gtk+ 2.2
$window->set_screen ($screen)
- * $screen (Gtk2::Gdk::Screen)
Since: gtk+ 2.2
(width, height) = $window->get_size
boolean = $window->get_skip_pager_hint
Since: gtk+ 2.2
- * $setting (boolean)
Since: gtk+ 2.2
boolean = $window->get_skip_taskbar_hint
Since: gtk+ 2.2
$window->set_skip_taskbar_hint ($setting)
- * $setting (boolean)
Since: gtk+ 2.2
$window->set_startup_id ($startup_id)
- * $startup_id (string)
Since: gtk+ 2.12
$window->stick
string = $window->get_title
$window->set_title ($title=undef)
- * $title (string or undef)
window or undef = $window->get_transient_for
$window->set_transient_for ($parent)
- * $parent (Gtk2::Window or undef)
windowtypehint = $window->get_type_hint
$window->set_type_hint ($hint)
- * $hint (Gtk2::Gdk::WindowTypeHint)
$window->unfullscreen
Since: gtk+ 2.2
$window->unmaximize
$window->unstick
boolean = $window->get_urgency_hint
Since: gtk+ 2.8
$window->set_urgency_hint ($setting)
- * $setting (boolean)
Since: gtk+ 2.8
$window->set_wmclass ($wmclass_name, $wmclass_class)
- * $wmclass_name (string)
- * $wmclass_class (string)
PROPERTIES 
- 'accept-focus' (boolean : readable / writable / private)
TRUE if the window should receive the input focus.
- 'allow-grow' (boolean : readable / writable / private)
If TRUE, users can expand the window beyond its minimum size
- 'allow-shrink' (boolean : readable / writable / private)
If TRUE, the window has no mimimum size. Setting this to TRUE is 99% of the time a bad idea
- 'decorated' (boolean : readable / writable / private)
Whether the window should be decorated by the window manager
- 'default-height' (integer : readable / writable / private)
The default height of the window, used when initially showing the window
- 'default-width' (integer : readable / writable / private)
The default width of the window, used when initially showing the window
- 'deletable' (boolean : readable / writable / private)
Whether the window frame should have a close button
- 'destroy-with-parent' (boolean : readable / writable / private)
If this window should be destroyed when the parent is destroyed
- 'focus-on-map' (boolean : readable / writable / private)
TRUE if the window should receive the input focus when mapped.
- 'gravity' (Gtk2::Gdk::Gravity : readable / writable / private)
The window gravity of the window
- 'has-toplevel-focus' (boolean : readable / private)
Whether the input focus is within this GtkWindow
- 'icon' (Gtk2::Gdk::Pixbuf : readable / writable / private)
Icon for this window
- 'icon-name' (string : readable / writable / private)
Name of the themed icon for this window
- 'is-active' (boolean : readable / private)
Whether the toplevel is the current active window
- 'modal' (boolean : readable / writable / private)
If TRUE, the window is modal (other windows are not usable while this one is up)
- 'opacity' (double : readable / writable / private)
The opacity of the window, from 0 to 1
- 'resizable' (boolean : readable / writable / private)
If TRUE, users can resize the window
- 'role' (string : readable / writable / private)
Unique identifier for the window to be used when restoring a session
- 'screen' (Gtk2::Gdk::Screen : readable / writable / private)
The screen where this window will be displayed
- 'skip-pager-hint' (boolean : readable / writable / private)
TRUE if the window should not be in the pager.
- 'skip-taskbar-hint' (boolean : readable / writable / private)
TRUE if the window should not be in the task bar.
- 'startup-id' (string : writable / private)
Unique startup identifier for the window used by startup-notification
- 'title' (string : readable / writable / private)
The title of the window
- 'transient-for' (Gtk2::Window : readable / writable / construct / private)
The transient parent of the dialog
- 'type' (Gtk2::WindowType : readable / writable / construct-only / private)
The type of the window
- 'type-hint' (Gtk2::Gdk::WindowTypeHint : readable / writable / private)
Hint to help the desktop environment understand what kind of window this is and how to treat it.
- 'urgency-hint' (boolean : readable / writable / private)
TRUE if the window should be brought to the user's attention.
- 'window-position' (Gtk2::WindowPosition : readable / writable / private)
The initial position of the window
SIGNALS 
- set-focus (Gtk2::Window, Gtk2::Widget)
- boolean = frame-event (Gtk2::Window, Gtk2::Gdk::Event)
- activate-focus (Gtk2::Window)
- activate-default (Gtk2::Window)
- keys-changed (Gtk2::Window)
ENUMS AND FLAGS 
enum Gtk2::Gdk::Gravity
- * 'north-west' / 'GDK_GRAVITY_NORTH_WEST'
- * 'north' / 'GDK_GRAVITY_NORTH'
- * 'north-east' / 'GDK_GRAVITY_NORTH_EAST'
- * 'west' / 'GDK_GRAVITY_WEST'
- * 'center' / 'GDK_GRAVITY_CENTER'
- * 'east' / 'GDK_GRAVITY_EAST'
- * 'south-west' / 'GDK_GRAVITY_SOUTH_WEST'
- * 'south' / 'GDK_GRAVITY_SOUTH'
- * 'south-east' / 'GDK_GRAVITY_SOUTH_EAST'
- * 'static' / 'GDK_GRAVITY_STATIC'
flags Gtk2::Gdk::ModifierType
- * 'shift-mask' / 'GDK_SHIFT_MASK'
- * 'lock-mask' / 'GDK_LOCK_MASK'
- * 'control-mask' / 'GDK_CONTROL_MASK'
- * 'mod1-mask' / 'GDK_MOD1_MASK'
- * 'mod2-mask' / 'GDK_MOD2_MASK'
- * 'mod3-mask' / 'GDK_MOD3_MASK'
- * 'mod4-mask' / 'GDK_MOD4_MASK'
- * 'mod5-mask' / 'GDK_MOD5_MASK'
- * 'button1-mask' / 'GDK_BUTTON1_MASK'
- * 'button2-mask' / 'GDK_BUTTON2_MASK'
- * 'button3-mask' / 'GDK_BUTTON3_MASK'
- * 'button4-mask' / 'GDK_BUTTON4_MASK'
- * 'button5-mask' / 'GDK_BUTTON5_MASK'
- * 'super-mask' / 'GDK_SUPER_MASK'
- * 'hyper-mask' / 'GDK_HYPER_MASK'
- * 'meta-mask' / 'GDK_META_MASK'
- * 'release-mask' / 'GDK_RELEASE_MASK'
- * 'modifier-mask' / 'GDK_MODIFIER_MASK'
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'
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'
enum Gtk2::WindowPosition
- * 'none' / 'GTK_WIN_POS_NONE'
- * 'center' / 'GTK_WIN_POS_CENTER'
- * 'mouse' / 'GTK_WIN_POS_MOUSE'
- * 'center-always' / 'GTK_WIN_POS_CENTER_ALWAYS'
- * 'center-on-parent' / 'GTK_WIN_POS_CENTER_ON_PARENT'
enum Gtk2::WindowType
- * 'toplevel' / 'GTK_WINDOW_TOPLEVEL'
- * 'popup' / 'GTK_WINDOW_POPUP'
SEE ALSO 
Gtk2, Glib::Object, Glib::InitiallyUnowned, Gtk2::Object, Gtk2::Widget, Gtk2::Container, Gtk2::Bin
COPYRIGHT 
Copyright (C) 2003-2008 by the gtk2-perl team.
This software is licensed under the LGPL. See Gtk2 for a full notice.