1Gtk2::Window(3)       User Contributed Perl Documentation      Gtk2::Window(3)
2
3
4

NAME

6       Gtk2::Window - wrapper for GtkWindow
7

DESCRIPTION

9       A Gtk2::Window is a top-level window displayed on the root window and
10       interacting (or not) with the window manager.  It can be an
11       application's main window, a dialog, or a temporary such as a popup
12       splash window.
13
14   Delete Event and Destroy
15       The default action for a "delete-event" (normally from the window
16       manager close button) is to destroy the window with "$window->destroy".
17       In your main window you might want to exit the main loop when that
18       happens.
19
20           $toplevel->signal_connect (destroy => sub { Gtk2->main_quit });
21
22       If you install a handler for "delete-event" and return true, meaning
23       "don't propagate", you can do something other than destroy the window.
24       For example
25
26           $toplevel->signal_connect (delete_event => sub {
27              if (any_unsaved_documents()) {
28                popup_ask_save_before_exit_dialog();
29                return Gtk2::EVENT_STOP;  # don't go to default destroy
30              } else {
31                return Gtk2::EVENT_PROPAGATE;
32              }
33           });
34
35       In a dialog or secondary app window you might not want to destroy but
36       instead just hide ready for later re-use.
37
38           $dialog->signal_connect
39             (delete_event => \&Gtk2::Widget::hide_on_delete);
40
41       The choice between destroying or hiding is normally just a matter of
42       memory saved against the time to re-create, and how likely the dialog
43       might be needed again.  (However if you build windows with Glade it's
44       not particularly easy to re-create them there, so you'll mostly want to
45       just hide in that case.)
46
47       A hidden toplevel window is still in "Gtk2::Window->list_toplevels" and
48       that's a good place to search for an existing window of a desired type
49       to "$window->present" again.
50

HIERARCHY

52         Glib::Object
53         +----Glib::InitiallyUnowned
54              +----Gtk2::Object
55                   +----Gtk2::Widget
56                        +----Gtk2::Container
57                             +----Gtk2::Bin
58                                  +----Gtk2::Window
59

INTERFACES

61         Glib::Object::_Unregistered::AtkImplementorIface
62         Gtk2::Buildable
63

METHODS

65   widget = Gtk2::Window->new ($type=GTK_WINDOW_TOPLEVEL)
66       •   $type (Gtk2::WindowType)
67
68   boolean = $window->get_accept_focus
69       Since: gtk+ 2.4
70
71   $window->set_accept_focus ($setting)
72       •   $setting (boolean)
73
74       Since: gtk+ 2.4
75
76   boolean = $window->activate_default
77   boolean = $window->activate_focus
78   boolean = $window->activate_key ($event)
79       •   $event (Gtk2::Gdk::Event::Key)
80
81       Since: gtk+ 2.4
82
83   $window->add_accel_group ($accel_group)
84       •   $accel_group (Gtk2::AccelGroup)
85
86   $window->add_embedded_xid ($xid)
87       •   $xid (integer)
88
89   $window->add_mnemonic ($keyval, $target)
90       •   $keyval (integer)
91
92       •   $target (Gtk2::Widget)
93
94   Gtk2::Window->set_auto_startup_notification ($setting)
95       •   $setting (boolean)
96
97       Since: gtk+ 2.2
98
99   $window->begin_move_drag ($button, $root_x, $root_y, $timestamp)
100       •   $button (integer)
101
102       •   $root_x (integer)
103
104       •   $root_y (integer)
105
106       •   $timestamp (unsigned)
107
108   $window->begin_resize_drag ($edge, $button, $root_x, $root_y, $timestamp)
109       •   $edge (Gtk2::Gdk::WindowEdge)
110
111       •   $button (integer)
112
113       •   $root_x (integer)
114
115       •   $root_y (integer)
116
117       •   $timestamp (unsigned)
118
119   boolean = $window->get_decorated
120   $window->set_decorated ($setting)
121       •   $setting (boolean)
122
123   Gtk2::Window->set_default_icon_from_file ($filename)
124   $window->set_default_icon_from_file ($filename)
125       •   $filename (localized file name)
126
127       May croak with a Glib::Error in $@ on failure.
128
129       Since: gtk+ 2.2
130
131   list = Gtk2::Window->get_default_icon_list
132       Gets the value set by $window->set_default_icon_list.
133
134   $window->set_default_icon_list ($pixbuf1, ...)
135       •   ... (list)
136
137       •   $pixbuf1 (Gtk2::Gdk::Pixbuf)
138
139   string or undef = Gtk2::Window->get_default_icon_name
140       Gets the value set by "Gtk2::Window->set_default_icon_name".
141
142       Since: gtk+ 2.16
143
144   Gtk2::Window->set_default_icon_name ($name)
145       •   $name (string or undef)
146
147       Since: gtk+ 2.6
148
149   Gtk2::Window->set_default_icon ($icon)
150       •   $icon (Gtk2::Gdk::Pixbuf)
151
152       Since: gtk+ 2.4
153
154   $window->set_default ($default_widget)
155       •   $default_widget (Gtk2::Widget or undef)
156
157   (width, height) = $window->get_default_size
158   $window->set_default_size ($width, $height)
159       •   $width (integer)
160
161       •   $height (integer)
162
163   widget or undef = $window->get_default_widget
164       Since: gtk+ 2.14
165
166   $window->deiconify
167   boolean = $window->get_deletable
168       Since: gtk+ 2.10
169
170   $window->set_deletable ($setting)
171       •   $setting (boolean)
172
173       Since: gtk+ 2.10
174
175   boolean = $window->get_destroy_with_parent
176   $window->set_destroy_with_parent ($setting)
177       •   $setting (boolean)
178
179   widget or undef = $window->get_focus
180   boolean = $window->get_focus_on_map
181       Since: gtk+ 2.6
182
183   $window->set_focus_on_map ($setting)
184       •   $setting (boolean)
185
186       Since: gtk+ 2.6
187
188   $window->set_focus ($focus=undef)
189       •   $focus (Gtk2::Widget or undef)
190
191   (left, top, right, bottom) = $window->get_frame_dimensions
192   $window->set_frame_dimensions ($left, $top, $right, $bottom)
193       •   $left (integer)
194
195       •   $top (integer)
196
197       •   $right (integer)
198
199       •   $bottom (integer)
200
201   $window->fullscreen
202       Since: gtk+ 2.2
203
204   $window->set_geometry_hints ($geometry_widget, $geometry)
205   $window->set_geometry_hints ($geometry_widget, $geometry, $geom_mask)
206       •   $geometry_widget (Gtk2::Widget)
207
208       •   $geom_mask (Gtk2::Gdk::WindowHints) optional, usually inferred from
209           $geometry
210
211       •   $geometry (scalar) Gtk2::Gdk::Geometry or hashref
212
213       See "Gtk2::Gdk::Window::set_geometry_hints" on the $geometry and
214       $geom_mask arguments.
215
216   gravity = $window->get_gravity
217   $window->set_gravity ($gravity)
218       •   $gravity (Gtk2::Gdk::Gravity)
219
220   windowgroup or undef = $window->get_group
221       Since: gtk+ 2.10
222
223   boolean = $window->get_has_frame
224   $window->set_has_frame ($setting)
225       •   $setting (boolean)
226
227   boolean = $window->has_group
228       Since: gtk+ 2.22
229
230   boolean = $window->has_toplevel_focus
231       Since: gtk+ 2.4
232
233   $window->set_icon_from_file ($filename)
234       •   $filename (localized file name)
235
236       May croak with a Glib::Error in $@ on failure.
237
238       Since: gtk+ 2.2
239
240   pixbuf or undef = $window->get_icon
241   list = $window->get_icon_list
242       Retrieves the list of icons set by set_icon_list().
243
244   $window->set_icon_list (...)
245       •   ... (list) of Gtk2::Gdk::Pixbuf's
246
247       Sets up the icon representing a Gtk2::Window. The icon is used when the
248       window is minimized (also known as iconified). Some window managers or
249       desktop environments may also place it in the window frame, or display
250       it in other contexts.
251
252       set_icon_list () allows you to pass in the same icon in several hand-
253       drawn sizes. The list should contain the natural sizes your icon is
254       available in; that is, don't scale the image before passing it to GTK+.
255       Scaling is postponed until the last minute, when the desired final size
256       is known, to allow best quality.
257
258       By passing several sizes, you may improve the final image quality of
259       the icon, by reducing or eliminating automatic image scaling.
260
261       Recommended sizes to provide: 16x16, 32x32, 48x48 at minimum, and
262       larger images (64x64, 128x128) if you have them.
263
264   string or undef = $window->get_icon_name
265       Since: gtk+ 2.6
266
267   $window->set_icon_name ($name)
268       •   $name (string)
269
270       Since: gtk+ 2.6
271
272   $window->set_icon ($icon)
273       •   $icon (Gtk2::Gdk::Pixbuf or undef)
274
275   $window->iconify
276   boolean = $window->is_active
277       Since: gtk+ 2.4
278
279   $window->set_keep_above ($setting)
280       •   $setting (boolean)
281
282       Since: gtk+ 2.4
283
284   $window->set_keep_below ($setting)
285       •   $setting (boolean)
286
287       Since: gtk+ 2.4
288
289   list = Gtk2::Window->list_toplevels
290       Returns a list of all existing toplevel windows.
291
292   $window->maximize
293   boolean = $window->mnemonic_activate ($keyval, $modifier)
294       •   $keyval (integer)
295
296       •   $modifier (Gtk2::Gdk::ModifierType)
297
298   modifiertype = $window->get_mnemonic_modifier
299   $window->set_mnemonic_modifier ($modifier)
300       •   $modifier (Gtk2::Gdk::ModifierType)
301
302   boolean = $window->get_mnemonics_visible
303       Since: gtk+ 2.20
304
305   $window->set_mnemonics_visible ($setting)
306       •   $setting (boolean)
307
308       Since: gtk+ 2.20
309
310   boolean = $window->get_modal
311   $window->set_modal ($modal)
312       •   $modal (boolean)
313
314   $window->move ($x, $y)
315       •   $x (integer)
316
317       •   $y (integer)
318
319   double = $window->get_opacity
320       Since: gtk+ 2.12
321
322   $window->set_opacity ($opacity)
323       •   $opacity (double)
324
325       Since: gtk+ 2.12
326
327   boolean = $window->parse_geometry ($geometry)
328       •   $geometry (string)
329
330   (root_x, root_y) = $window->get_position
331   $window->set_position ($position)
332       •   $position (Gtk2::WindowPosition)
333
334   $window->present
335   $window->present_with_time ($timestamp)
336       •   $timestamp (unsigned)
337
338       Since: gtk+ 2.8
339
340   boolean = $window->propagate_key_event ($event)
341       •   $event (Gtk2::Gdk::Event::Key)
342
343       Since: gtk+ 2.4
344
345   $window->remove_accel_group ($accel_group)
346       •   $accel_group (Gtk2::AccelGroup)
347
348   $window->remove_embedded_xid ($xid)
349       •   $xid (integer)
350
351   $window->remove_mnemonic ($keyval, $target)
352       •   $keyval (integer)
353
354       •   $target (Gtk2::Widget)
355
356   $window->reshow_with_initial_size
357   boolean = $window->get_resizable
358   $window->set_resizable ($resizable)
359       •   $resizable (boolean)
360
361   $window->resize ($width, $height)
362       •   $width (integer)
363
364       •   $height (integer)
365
366   string = $window->get_role
367   $window->set_role ($role)
368       •   $role (string)
369
370   screen = $window->get_screen
371       Since: gtk+ 2.2
372
373   $window->set_screen ($screen)
374       •   $screen (Gtk2::Gdk::Screen)
375
376       Since: gtk+ 2.2
377
378   (width, height) = $window->get_size
379   boolean = $window->get_skip_pager_hint
380       Since: gtk+ 2.2
381
382   $window->set_skip_pager_hint ($setting)
383       •   $setting (boolean)
384
385       Since: gtk+ 2.2
386
387   boolean = $window->get_skip_taskbar_hint
388       Since: gtk+ 2.2
389
390   $window->set_skip_taskbar_hint ($setting)
391       •   $setting (boolean)
392
393       Since: gtk+ 2.2
394
395   $window->set_startup_id ($startup_id)
396       •   $startup_id (string)
397
398       Since: gtk+ 2.12
399
400   $window->stick
401   string = $window->get_title
402   $window->set_title ($title=undef)
403       •   $title (string or undef)
404
405   window or undef = $window->get_transient_for
406   $window->set_transient_for ($parent)
407       •   $parent (Gtk2::Window or undef)
408
409   windowtypehint = $window->get_type_hint
410   $window->set_type_hint ($hint)
411       •   $hint (Gtk2::Gdk::WindowTypeHint)
412
413   $window->unfullscreen
414       Since: gtk+ 2.2
415
416   $window->unmaximize
417   $window->unstick
418   boolean = $window->get_urgency_hint
419       Since: gtk+ 2.8
420
421   $window->set_urgency_hint ($setting)
422       •   $setting (boolean)
423
424       Since: gtk+ 2.8
425
426   windowtype = $window->get_window_type
427       Since: gtk+ 2.20
428
429   $window->set_wmclass ($wmclass_name, $wmclass_class)
430       •   $wmclass_name (string)
431
432       •   $wmclass_class (string)
433

PROPERTIES

435       'accept-focus' (boolean : default true : readable / writable / private
436       / static-nick / static-blurb)
437           TRUE if the window should receive the input focus.
438
439       'allow-grow' (boolean : default true : readable / writable / private /
440       static-nick / static-blurb / deprecated)
441           If TRUE, users can expand the window beyond its minimum size
442
443       'allow-shrink' (boolean : default false : readable / writable / private
444       / static-nick / static-blurb / deprecated)
445           If TRUE, the window has no mimimum size. Setting this to TRUE is
446           99% of the time a bad idea
447
448       'decorated' (boolean : default true : readable / writable / private /
449       static-nick / static-blurb)
450           Whether the window should be decorated by the window manager
451
452       'default-height' (integer : default -1 : readable / writable / private
453       / static-nick / static-blurb)
454           The default height of the window, used when initially showing the
455           window
456
457       'default-width' (integer : default -1 : readable / writable / private /
458       static-nick / static-blurb)
459           The default width of the window, used when initially showing the
460           window
461
462       'deletable' (boolean : default true : readable / writable / private /
463       static-nick / static-blurb)
464           Whether the window frame should have a close button
465
466       'destroy-with-parent' (boolean : default false : readable / writable /
467       private / static-nick / static-blurb)
468           If this window should be destroyed when the parent is destroyed
469
470       'focus-on-map' (boolean : default true : readable / writable / private
471       / static-nick / static-blurb)
472           TRUE if the window should receive the input focus when mapped.
473
474       'gravity' (Gtk2::Gdk::Gravity : default "north-west" : readable /
475       writable / private / static-nick / static-blurb)
476           The window gravity of the window
477
478       'has-toplevel-focus' (boolean : default false : readable / private /
479       static-nick / static-blurb)
480           Whether the input focus is within this GtkWindow
481
482       'icon' (Gtk2::Gdk::Pixbuf : default undef : readable / writable /
483       private / static-nick / static-blurb)
484           Icon for this window
485
486       'icon-name' (string : default undef : readable / writable / private /
487       static-nick / static-blurb)
488           Name of the themed icon for this window
489
490       'is-active' (boolean : default false : readable / private / static-nick
491       / static-blurb)
492           Whether the toplevel is the current active window
493
494       'mnemonics-visible' (boolean : default true : readable / writable /
495       private / static-nick / static-blurb)
496           Whether mnemonics are currently visible in this window
497
498       'modal' (boolean : default false : readable / writable / private /
499       static-nick / static-blurb)
500           If TRUE, the window is modal (other windows are not usable while
501           this one is up)
502
503       'opacity' (double : default 1 : readable / writable / private / static-
504       nick / static-blurb)
505           The opacity of the window, from 0 to 1
506
507       'resizable' (boolean : default true : readable / writable / private /
508       static-nick / static-blurb)
509           If TRUE, users can resize the window
510
511       'role' (string : default undef : readable / writable / private /
512       static-nick / static-blurb)
513           Unique identifier for the window to be used when restoring a
514           session
515
516       'screen' (Gtk2::Gdk::Screen : default undef : readable / writable /
517       private / static-nick / static-blurb)
518           The screen where this window will be displayed
519
520       'skip-pager-hint' (boolean : default false : readable / writable /
521       private / static-nick / static-blurb)
522           TRUE if the window should not be in the pager.
523
524       'skip-taskbar-hint' (boolean : default false : readable / writable /
525       private / static-nick / static-blurb)
526           TRUE if the window should not be in the task bar.
527
528       'startup-id' (string : default undef : writable / private / static-nick
529       / static-blurb)
530           Unique startup identifier for the window used by startup-
531           notification
532
533       'title' (string : default undef : readable / writable / private /
534       static-nick / static-blurb)
535           The title of the window
536
537       'transient-for' (Gtk2::Window : default undef : readable / writable /
538       construct / private / static-nick / static-blurb)
539           The transient parent of the dialog
540
541       'type' (Gtk2::WindowType : default "toplevel" : readable / writable /
542       construct-only / private / static-nick / static-blurb)
543           The type of the window
544
545       'type-hint' (Gtk2::Gdk::WindowTypeHint : default "normal" : readable /
546       writable / private / static-nick / static-blurb)
547           Hint to help the desktop environment understand what kind of window
548           this is and how to treat it.
549
550       'urgency-hint' (boolean : default false : readable / writable / private
551       / static-nick / static-blurb)
552           TRUE if the window should be brought to the user's attention.
553
554       'window-position' (Gtk2::WindowPosition : default "none" : readable /
555       writable / private / static-nick / static-blurb)
556           The initial position of the window
557

SIGNALS

559       activate-default (Gtk2::Window)
560       activate-focus (Gtk2::Window)
561       boolean = frame-event (Gtk2::Window, Gtk2::Gdk::Event)
562       keys-changed (Gtk2::Window)
563       set-focus (Gtk2::Window, Gtk2::Widget)
564

ENUMS AND FLAGS

566   enum Gtk2::Gdk::Gravity
567       •   'north-west' / 'GDK_GRAVITY_NORTH_WEST'
568
569       •   'north' / 'GDK_GRAVITY_NORTH'
570
571       •   'north-east' / 'GDK_GRAVITY_NORTH_EAST'
572
573       •   'west' / 'GDK_GRAVITY_WEST'
574
575       •   'center' / 'GDK_GRAVITY_CENTER'
576
577       •   'east' / 'GDK_GRAVITY_EAST'
578
579       •   'south-west' / 'GDK_GRAVITY_SOUTH_WEST'
580
581       •   'south' / 'GDK_GRAVITY_SOUTH'
582
583       •   'south-east' / 'GDK_GRAVITY_SOUTH_EAST'
584
585       •   'static' / 'GDK_GRAVITY_STATIC'
586
587   flags Gtk2::Gdk::ModifierType
588       •   'shift-mask' / 'GDK_SHIFT_MASK'
589
590       •   'lock-mask' / 'GDK_LOCK_MASK'
591
592       •   'control-mask' / 'GDK_CONTROL_MASK'
593
594       •   'mod1-mask' / 'GDK_MOD1_MASK'
595
596       •   'mod2-mask' / 'GDK_MOD2_MASK'
597
598       •   'mod3-mask' / 'GDK_MOD3_MASK'
599
600       •   'mod4-mask' / 'GDK_MOD4_MASK'
601
602       •   'mod5-mask' / 'GDK_MOD5_MASK'
603
604       •   'button1-mask' / 'GDK_BUTTON1_MASK'
605
606       •   'button2-mask' / 'GDK_BUTTON2_MASK'
607
608       •   'button3-mask' / 'GDK_BUTTON3_MASK'
609
610       •   'button4-mask' / 'GDK_BUTTON4_MASK'
611
612       •   'button5-mask' / 'GDK_BUTTON5_MASK'
613
614       •   'super-mask' / 'GDK_SUPER_MASK'
615
616       •   'hyper-mask' / 'GDK_HYPER_MASK'
617
618       •   'meta-mask' / 'GDK_META_MASK'
619
620       •   'release-mask' / 'GDK_RELEASE_MASK'
621
622       •   'modifier-mask' / 'GDK_MODIFIER_MASK'
623
624   enum Gtk2::Gdk::WindowEdge
625       •   'north-west' / 'GDK_WINDOW_EDGE_NORTH_WEST'
626
627       •   'north' / 'GDK_WINDOW_EDGE_NORTH'
628
629       •   'north-east' / 'GDK_WINDOW_EDGE_NORTH_EAST'
630
631       •   'west' / 'GDK_WINDOW_EDGE_WEST'
632
633       •   'east' / 'GDK_WINDOW_EDGE_EAST'
634
635       •   'south-west' / 'GDK_WINDOW_EDGE_SOUTH_WEST'
636
637       •   'south' / 'GDK_WINDOW_EDGE_SOUTH'
638
639       •   'south-east' / 'GDK_WINDOW_EDGE_SOUTH_EAST'
640
641   flags Gtk2::Gdk::WindowHints
642       •   'pos' / 'GDK_HINT_POS'
643
644       •   'min-size' / 'GDK_HINT_MIN_SIZE'
645
646       •   'max-size' / 'GDK_HINT_MAX_SIZE'
647
648       •   'base-size' / 'GDK_HINT_BASE_SIZE'
649
650       •   'aspect' / 'GDK_HINT_ASPECT'
651
652       •   'resize-inc' / 'GDK_HINT_RESIZE_INC'
653
654       •   'win-gravity' / 'GDK_HINT_WIN_GRAVITY'
655
656       •   'user-pos' / 'GDK_HINT_USER_POS'
657
658       •   'user-size' / 'GDK_HINT_USER_SIZE'
659
660   enum Gtk2::Gdk::WindowTypeHint
661       •   'normal' / 'GDK_WINDOW_TYPE_HINT_NORMAL'
662
663       •   'dialog' / 'GDK_WINDOW_TYPE_HINT_DIALOG'
664
665       •   'menu' / 'GDK_WINDOW_TYPE_HINT_MENU'
666
667       •   'toolbar' / 'GDK_WINDOW_TYPE_HINT_TOOLBAR'
668
669       •   'splashscreen' / 'GDK_WINDOW_TYPE_HINT_SPLASHSCREEN'
670
671       •   'utility' / 'GDK_WINDOW_TYPE_HINT_UTILITY'
672
673       •   'dock' / 'GDK_WINDOW_TYPE_HINT_DOCK'
674
675       •   'desktop' / 'GDK_WINDOW_TYPE_HINT_DESKTOP'
676
677       •   'dropdown-menu' / 'GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU'
678
679       •   'popup-menu' / 'GDK_WINDOW_TYPE_HINT_POPUP_MENU'
680
681       •   'tooltip' / 'GDK_WINDOW_TYPE_HINT_TOOLTIP'
682
683       •   'notification' / 'GDK_WINDOW_TYPE_HINT_NOTIFICATION'
684
685       •   'combo' / 'GDK_WINDOW_TYPE_HINT_COMBO'
686
687       •   'dnd' / 'GDK_WINDOW_TYPE_HINT_DND'
688
689   enum Gtk2::WindowPosition
690       •   'none' / 'GTK_WIN_POS_NONE'
691
692       •   'center' / 'GTK_WIN_POS_CENTER'
693
694       •   'mouse' / 'GTK_WIN_POS_MOUSE'
695
696       •   'center-always' / 'GTK_WIN_POS_CENTER_ALWAYS'
697
698       •   'center-on-parent' / 'GTK_WIN_POS_CENTER_ON_PARENT'
699
700   enum Gtk2::WindowType
701       •   'toplevel' / 'GTK_WINDOW_TOPLEVEL'
702
703       •   'popup' / 'GTK_WINDOW_POPUP'
704

SEE ALSO

706       Gtk2, Glib::Object, Glib::InitiallyUnowned, Gtk2::Object, Gtk2::Widget,
707       Gtk2::Container, Gtk2::Bin
708
710       Copyright (C) 2003-2011 by the gtk2-perl team.
711
712       This software is licensed under the LGPL.  See Gtk2 for a full notice.
713
714
715
716perl v5.36.0                      2023-01-20                   Gtk2::Window(3)
Impressum