---
name: "Gtk2::main"
section: "3pm"
platform: "linux"
package: "libgtk2-perl-doc"
version: "2:1.24992-1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/Gtk2::main"
---

# Gtk2::main(3pm)

## NAME

Gtk2::main

## METHODS

### boolean = Gtk2-\>alternative\_dialog\_button\_order ($screen=undef)

- •

  `$screen` (Gtk2::Gdk::Screen or undef)

Since: gtk+ 2.6

### event or undef = Gtk2-\>get\_current\_event

### modifiertype = Gtk2-\>get\_current\_event\_state

### unsigned = Gtk2-\>get\_current\_event\_time

### language = Gtk2-\>get\_default\_language

### Gtk2-\>disable\_setlocale

### widget or undef = Gtk2-\>get\_event\_widget ($event)

- •

  `$event` (Gtk2::Gdk::Event or undef)

### integer = Gtk2-\>events\_pending

### Gtk2-\>grab\_add ($widget)

- •

  `$widget` (Gtk2::Widget)

### widget or undef = Gtk2-\>grab\_get\_current

### Gtk2-\>grab\_remove ($widget)

- •

  `$widget` (Gtk2::Widget)

### boolean = Gtk2-\>init

Initialize Gtk+.  This must be called before any other Gtk2 functions in a  GUI application; the Gtk2 module's import method allows you to pass `"-init"` in the `"use"` statement to do this automatically.  This function also scans *@ARGV* for any options it knows, and will remove them automagically.

Note: this function will terminate your program if it is unable to initialize the gui for any reason.  If you want your program to fall back to some other interface, you want to use `"Gtk2->init_check"` instead.

### Gtk2-\>init\_add ($function, $data=undef)

- •

  `$function` (scalar)

- •

  `$data` (scalar)

### boolean = Gtk2-\>init\_check

This is the non-fatal version of `"Gtk2->init"`; instead of calling `"exit"` if Gtk+ initialization fails, `"Gtk2->init_check"` returns false.  This allows your application to fall back on some other means of communication with the user - for example a curses or command-line interface.

### integer = Gtk2-\>key\_snooper\_install ($snooper, $func\_data=undef)

- •

  `$snooper` (subroutine) function to call on every event

- •

  `$func_data` (scalar)

Install a key "snooper" function which will get called on all key events before those events are delivered normally.  These snoopers can be used to implement custom key event handling.

`"key_snooper_install"` returns an id that may be used with `"key_snooper_remove"` (below).  *snooper* is called as

```
    stopbool = &snooper ($widget, $event, $func_data);
```

It should return true to stop event propagation, the same as `"Gtk2::Widget"` event signal handlers.  The `"Gtk2::EVENT_STOP"` and `"Gtk2::EVENT_PROPAGATE"` constants can be used for the return (see Gtk2::Widget).

### Gtk2-\>key\_snooper\_remove ($snooper\_handler\_id)

- •

  `$snooper_handler_id` (integer)

### string = Gtk2-\>set\_locale

### Gtk2-\>main

### Gtk2-\>main\_do\_event ($event)

- •

  `$event` (Gtk2::Gdk::Event)

This is the event handler that GTK+ registers with GDK.  GTK+ exposes it to allow filtering of events between GDK and GTK+; it is rare that you would need this, except if you are using `"Gtk2::Gdk::Event::handler_set"`.

### boolean = Gtk2-\>main\_iteration

### boolean = Gtk2-\>main\_iteration\_do ($blocking)

- •

  `$blocking` (boolean)

### integer = Gtk2-\>main\_level

### Gtk2-\>main\_quit

### optiongroup = Gtk2-\>get\_option\_group ($open\_default\_display)

- •

  `$open_default_display` (boolean)

Since: gtk+ 2.6

### boolean = Gtk2-\>parse\_args

Since: gtk+ 2.4

### integer = Gtk2-\>quit\_add ($main\_level, $function, $data=undef)

- •

  `$main_level` (integer)

- •

  `$function` (scalar)

- •

  `$data` (scalar)

### Gtk2-\>quit\_add\_destroy ($main\_level, $object)

- •

  `$main_level` (integer)

- •

  `$object` (Gtk2::Object)

### Gtk2-\>quit\_remove ($quit\_handler\_id)

- •

  `$quit_handler_id` (integer)

### Gtk2::show\_uri ($screen, $uri, $timestamp=GDK\_CURRENT\_TIME)

- •

  `$screen` (Gtk2::Gdk::Screen or undef)

- •

  `$uri` (string)

- •

  `$timestamp` (unsigned)

## ENUMS AND FLAGS

### 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'

## SEE ALSO

Gtk2

## COPYRIGHT

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

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