Provided by: libgtk2-perl-doc_1.2498-1_all bug

NAME

       Gtk2::Window - wrapper for GtkWindow

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

   widget = Gtk2::Window->new ($type=GTK_WINDOW_TOPLEVEL)
       •   $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)

   string or undef = Gtk2::Window->get_default_icon_name
       Gets the value set by "Gtk2::Window->set_default_icon_name".

       Since: gtk+ 2.16

   Gtk2::Window->set_default_icon_name ($name)
       •   $name (string or undef)

       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)

   widget or undef = $window->get_default_widget
       Since: gtk+ 2.14

   $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)

   widget or undef = $window->get_focus
   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 "Gtk2::Gdk::Window::set_geometry_hints" 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_group
       Since: gtk+ 2.22

   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_mnemonics_visible
       Since: gtk+ 2.20

   $window->set_mnemonics_visible ($setting)
       •   $setting (boolean)

       Since: gtk+ 2.20

   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

   $window->set_skip_pager_hint ($setting)
       •   $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

   windowtype = $window->get_window_type
       Since: gtk+ 2.20

   $window->set_wmclass ($wmclass_name, $wmclass_class)
       •   $wmclass_name (string)

       •   $wmclass_class (string)

PROPERTIES

       'accept-focus' (boolean : default true : readable / writable / private)
           TRUE if the window should receive the input focus.

       'allow-grow' (boolean : default true : readable / writable / private)
           If TRUE, users can expand the window beyond its minimum size

       'allow-shrink' (boolean : default false : 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 : default true : readable / writable / private)
           Whether the window should be decorated by the window manager

       'default-height' (integer : default -1 : readable / writable / private)
           The default height of the window, used when initially showing the window

       'default-width' (integer : default -1 : readable / writable / private)
           The default width of the window, used when initially showing the window

       'deletable' (boolean : default true : readable / writable / private)
           Whether the window frame should have a close button

       'destroy-with-parent' (boolean : default false : readable / writable / private)
           If this window should be destroyed when the parent is destroyed

       'focus-on-map' (boolean : default true : readable / writable / private)
           TRUE if the window should receive the input focus when mapped.

       'gravity' (Gtk2::Gdk::Gravity : default "north-west" : readable / writable / private)
           The window gravity of the window

       'has-toplevel-focus' (boolean : default false : readable / private)
           Whether the input focus is within this GtkWindow

       'icon' (Gtk2::Gdk::Pixbuf : default undef : readable / writable / private)
           Icon for this window

       'icon-name' (string : default undef : readable / writable / private)
           Name of the themed icon for this window

       'is-active' (boolean : default false : readable / private)
           Whether the toplevel is the current active window

       'mnemonics-visible' (boolean : default true : readable / writable / private)
           Whether mnemonics are currently visible in this window

       'modal' (boolean : default false : readable / writable / private)
           If TRUE, the window is modal (other windows are not usable while this one is up)

       'opacity' (double : default 1 : readable / writable / private)
           The opacity of the window, from 0 to 1

       'resizable' (boolean : default true : readable / writable / private)
           If TRUE, users can resize the window

       'role' (string : default undef : readable / writable / private)
           Unique identifier for the window to be used when restoring a session

       'screen' (Gtk2::Gdk::Screen : default undef : readable / writable / private)
           The screen where this window will be displayed

       'skip-pager-hint' (boolean : default false : readable / writable / private)
           TRUE if the window should not be in the pager.

       'skip-taskbar-hint' (boolean : default false : readable / writable / private)
           TRUE if the window should not be in the task bar.

       'startup-id' (string : default undef : writable / private)
           Unique startup identifier for the window used by startup-notification

       'title' (string : default undef : readable / writable / private)
           The title of the window

       'transient-for' (Gtk2::Window : default undef : readable / writable / construct / private)
           The transient parent of the dialog

       'type' (Gtk2::WindowType : default "toplevel" : readable / writable / construct-only /
       private)
           The type of the window

       'type-hint' (Gtk2::Gdk::WindowTypeHint : default "normal" : readable / writable / private)
           Hint to help the desktop environment understand what kind of window this is and how to
           treat it.

       'urgency-hint' (boolean : default false : readable / writable / private)
           TRUE if the window should be brought to the user's attention.

       'window-position' (Gtk2::WindowPosition : default "none" : readable / writable / private)
           The initial position of the window

SIGNALS

       activate-default (Gtk2::Window)
       activate-focus (Gtk2::Window)
       boolean = frame-event (Gtk2::Window, Gtk2::Gdk::Event)
       keys-changed (Gtk2::Window)
       set-focus (Gtk2::Window, Gtk2::Widget)

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-2011 by the gtk2-perl team.

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