---
name: "Gtk2::Widget"
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::Widget"
---

# Gtk2::Widget(3pm)

wrapper for GtkWidget

## NAME

Gtk2::Widget - wrapper for GtkWidget

## HIERARCHY

```
  Glib::Object
  +----Glib::InitiallyUnowned
       +----Gtk2::Object
            +----Gtk2::Widget
```

## INTERFACES

```
  Glib::Object::_Unregistered::AtkImplementorIface
  Gtk2::Buildable
```

## CONSTANTS

`"EVENT_STOP"` and `"EVENT_PROPAGATE"` are designed for the return from widget event signal handlers and similar, being true to stop or false to propagate.  The names can help you avoid confusion over which way is true and which is false.  (You can also remember the return as meaning "handled", which is the jargon in a few other signal handler types.)

```
    Gtk2::EVENT_STOP         # true
    Gtk2::EVENT_PROPAGATE    # false
```

## METHODS

### $widget-\>set\_accel\_path ($accel\_path, $accel\_group)

- •

  `$accel_path` (string or undef)

- •

  `$accel_group` (Gtk2::AccelGroup or undef)

### object = $widget-\>get\_accessible

### action or undef = $widget-\>get\_action

Since: gtk+ 2.10

### boolean = $widget-\>activate

This function works by emitting an action signal nominated by the various widget subclasses.  The signal is normally called `"activate"`, but it doesn't have to be.

Currently if you make a widget subclass in Perl there's no way to nominate a signal to be emitted by `"$widget->activate"`.  A signal merely named `"activate"` is not automatically hooked up.

### $widget-\>add\_accelerator ($accel\_signal, $accel\_group, $accel\_key, $accel\_mods, $flags)

- •

  `$accel_signal` (string)

- •

  `$accel_group` (Gtk2::AccelGroup)

- •

  `$accel_key` (integer)

- •

  `$accel_mods` (Gtk2::Gdk::ModifierType)

- •

  `$flags` (Gtk2::AccelFlags)

### $widget-\>add\_events ($events)

- •

  `$events` (Gtk2::Gdk::EventMask)

### $widget-\>add\_mnemonic\_label ($label)

- •

  `$label` (Gtk2::Widget)

Since: gtk+ 2.4

### rectangle = $widget-\>allocation

Return the current allocated size and position of `$widget` within its parent widget.  The allocated size is not necessarily the same as the requested size.

The returned rect object points into `$widget` and can only be used as long as `$widget` exists.

### rectangle = $widget-\>get\_allocation

Since: gtk+ 2.18

### $widget-\>set\_allocation ($allocation)

- •

  `$allocation` (Gtk2::Gdk::Rectangle)

Since: gtk+ 2.18

### widget or undef = $widget-\>get\_ancestor ($ancestor\_package)

- •

  `$ancestor_package` (string)

### $widget-\>app\_paintable ($boolean)

### boolean = $widget-\>app\_paintable

### boolean = $widget-\>get\_app\_paintable

Since: gtk+ 2.18

### $widget-\>set\_app\_paintable ($app\_paintable)

- •

  `$app_paintable` (boolean)

### boolean = $widget-\>can\_activate\_accel ($signal\_id)

- •

  `$signal_id` (integer)

Since: gtk+ 2.4

### $widget-\>can\_default ($boolean)

### boolean = $widget-\>can\_default

### boolean = $widget-\>get\_can\_default

Since: gtk+ 2.18

### $widget-\>set\_can\_default ($can\_default)

- •

  `$can_default` (boolean)

Since: gtk+ 2.18

### $widget-\>can\_focus ($boolean)

### boolean = $widget-\>can\_focus

### boolean = $widget-\>get\_can\_focus

Since: gtk+ 2.18

### $widget-\>set\_can\_focus ($can\_focus)

- •

  `$can_focus` (boolean)

Since: gtk+ 2.18

### boolean = $widget-\>child\_focus ($direction)

- •

  `$direction` (Gtk2::DirectionType)

### $widget-\>child\_notify ($child\_property)

- •

  `$child_property` (string)

### requisition = $widget-\>get\_child\_requisition

This function is only for use in widget implementations.  Obtains `"$widget->requisition"`, unless someone has forced a particular geometry on the widget (e.g., with `"set_usize()"`, in which case it returns that geometry instead of the widget's requisition.

This function differs from *size\_request()* in that it retrieves the last size request value from `"$widget->requisition"`, while `"size_request()"` actually calls the `"size_request"` virtual method (that is, emits the "size-request" signal) on the *$widget* to compute the size request and fill in `"$widget->requisition"`, and only then returns `"$widget->requisition"`.

Because this function does not call the `"size_request"` method, it can only be used when you know that `"$widget->requisition"` is up-to-date.  In general, only container implementations have this information; applications should use `"size_request ()"`.

### boolean = $widget-\>get\_child\_visible

### $widget-\>set\_child\_visible ($is\_visible)

- •

  `$is_visible` (boolean)

### (path, path\_reversed) = $widget-\>class\_path

### clipboard = $widget-\>get\_clipboard ($selection=GDK\_SELECTION\_CLIPBOARD)

- •

  `$selection` (Gtk2::Gdk::Atom)

Since: gtk+ 2.2

### colormap = $widget-\>get\_colormap

### $widget-\>set\_colormap ($colormap)

- •

  `$colormap` (Gtk2::Gdk::Colormap)

### $widget-\>composite\_child ($boolean)

### boolean = $widget-\>composite\_child

### string or undef = $widget-\>get\_composite\_name

### $widget-\>set\_composite\_name ($name)

- •

  `$name` (string)

### context = $widget-\>create\_pango\_context

### layout = $widget-\>create\_pango\_layout ($text=undef)

- •

  `$text` (string or undef)

### colormap = Gtk2::Widget-\>get\_default\_colormap

### colormap = $widget-\>get\_default\_colormap

### Gtk2::Widget-\>set\_default\_colormap ($colormap)

### $widget-\>set\_default\_colormap ($colormap)

- •

  `$colormap` (Gtk2::Gdk::Colormap)

### textdirection = Gtk2::Widget-\>get\_default\_direction

### Gtk2::Widget-\>set\_default\_direction ($dir)

- •

  `$dir` (Gtk2::TextDirection)

### style = Gtk2::Widget-\>get\_default\_style

### style = $widget-\>get\_default\_style

### visual = Gtk2::Widget-\>get\_default\_visual

### visual = $widget-\>get\_default\_visual

### $widget-\>destroy

### textdirection = $widget-\>get\_direction

### $widget-\>set\_direction ($dir)

- •

  `$dir` (Gtk2::TextDirection)

### display = $widget-\>get\_display

Since: gtk+ 2.2

### $widget-\>double\_buffered ($boolean)

### boolean = $widget-\>double\_buffered

### boolean = $widget-\>get\_double\_buffered

Since: gtk+ 2.18

### $widget-\>set\_double\_buffered ($double\_buffered)

- •

  `$double_buffered` (boolean)

### dragcontext = $widget-\>drag\_begin ($targets, $actions, $button, $event)

- •

  `$targets` (Gtk2::TargetList)

- •

  `$actions` (Gtk2::Gdk::DragAction)

- •

  `$button` (integer)

- •

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

### boolean = $widget-\>drag\_check\_threshold ($start\_x, $start\_y, $current\_x, $current\_y)

- •

  `$start_x` (integer)

- •

  `$start_y` (integer)

- •

  `$current_x` (integer)

- •

  `$current_y` (integer)

### $widget-\>drag\_dest\_add\_image\_targets

Since: gtk+ 2.6

### $widget-\>drag\_dest\_add\_text\_targets

Since: gtk+ 2.6

### $widget-\>drag\_dest\_add\_uri\_targets

Since: gtk+ 2.6

### atom = $widget-\>drag\_dest\_find\_target ($context, $target\_list)

- •

  `$context` (Gtk2::Gdk::DragContext)

- •

  `$target_list` (Gtk2::TargetList or undef)

### targetlist or undef = $widget-\>drag\_dest\_get\_target\_list

### boolean = $widget-\>drag\_dest\_get\_track\_motion

Since: gtk+ 2.10

### $widget-\>drag\_dest\_set ($flags, $actions, ...)

- •

  `$flags` (Gtk2::DestDefaults)

- •

  `$actions` (Gtk2::Gdk::DragAction)

- •

  ... (list) of Gtk2::TargetEntry's

### $widget-\>drag\_dest\_set\_proxy ($proxy\_window, $protocol, $use\_coordinates)

- •

  `$proxy_window` (Gtk2::Gdk::Window)

- •

  `$protocol` (Gtk2::Gdk::DragProtocol)

- •

  `$use_coordinates` (boolean)

### $widget-\>drag\_dest\_set\_target\_list ($target\_list)

- •

  `$target_list` (Gtk2::TargetList or undef)

### $widget-\>drag\_dest\_set\_track\_motion ($track\_motion)

- •

  `$track_motion` (boolean)

Since: gtk+ 2.10

### $widget-\>drag\_dest\_unset

### $widget-\>drag\_get\_data ($context, $target, $time\_)

- •

  `$context` (Gtk2::Gdk::DragContext)

- •

  `$target` (Gtk2::Gdk::Atom)

- •

  `$time_` (unsigned)

### $widget-\>drag\_highlight

### $widget-\>drag\_source\_add\_image\_targets

Since: gtk+ 2.6

### $widget-\>drag\_source\_add\_text\_targets

Since: gtk+ 2.6

### $widget-\>drag\_source\_add\_uri\_targets

Since: gtk+ 2.6

### targetlist or undef = $widget-\>drag\_source\_get\_target\_list

Since: gtk+ 2.4

### $widget-\>drag\_source\_set ($start\_button\_mask, $actions, ...)

- •

  `$start_button_mask` (Gtk2::Gdk::ModifierType)

- •

  `$actions` (Gtk2::Gdk::DragAction)

- •

  ... (list) of Gtk2::TargetEntry's

### $widget-\>drag\_source\_set\_icon ($colormap, $pixmap, $mask)

- •

  `$colormap` (Gtk2::Gdk::Colormap or undef)

- •

  `$pixmap` (Gtk2::Gdk::Pixmap or undef)

- •

  `$mask` (Gtk2::Gdk::Bitmap or undef)

### $widget-\>drag\_source\_set\_icon\_name ($icon\_name)

- •

  `$icon_name` (string)

Since: gtk+ 2.8

### $widget-\>drag\_source\_set\_icon\_pixbuf ($pixbuf)

- •

  `$pixbuf` (Gtk2::Gdk::Pixbuf or undef)

### $widget-\>drag\_source\_set\_icon\_stock ($stock\_id)

- •

  `$stock_id` (string)

### $widget-\>drag\_source\_set\_target\_list ($target\_list)

- •

  `$target_list` (Gtk2::TargetList or undef)

Since: gtk+ 2.4

### $widget-\>drag\_source\_unset

### $widget-\>drag\_unhighlight

### $widget-\>drawable ($boolean)

### boolean = $widget-\>drawable

### $widget-\>ensure\_style

### $widget-\>error\_bell

Since: gtk+ 2.12

### boolean = $widget-\>event ($event)

- •

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

This rarely-used function emits an event signal on *$widget*.  Don't use this to synthesize events; use `"Gtk2->main_do_event"` instead.  Don't synthesize expose events; use `"$gdkwindow->invalidate_rect"` instead. Basically, the main use for this in gtk2-perl will be to pass motion notify events to rulers from other widgets.

### eventmask = $widget-\>get\_events

### $widget-\>set\_events ($events)

- •

  `$events` (Gtk2::Gdk::EventMask)

### extensionmode = $widget-\>get\_extension\_events

### $widget-\>set\_extension\_events ($mode)

- •

  `$mode` (Gtk2::Gdk::ExtensionMode)

### pspec or undef = $widget\_or\_class\_name-\>find\_style\_property ($name)

- •

  `$name` (string)

Return a `"Glib::ParamSpec"` for style property `$name` on widget `$widget_or_class_name`.  If there's no property `$name` then return `"undef"`.  See Glib::Object `"list_properties"` for the fields in a ParamSpec.

Since: gtk+ 2.2

### widgetflags = $widget-\>flags

### widgetflags = $widget-\>get\_flags

### $widget-\>set\_flags ($flags)

- •

  `$flags` (Gtk2::WidgetFlags)

### $widget-\>freeze\_child\_notify

### $widget-\>grab\_default

### $widget-\>grab\_focus

### $widget-\>has\_default ($boolean)

### boolean = $widget-\>has\_default

### $widget-\>has\_focus ($boolean)

### boolean = $widget-\>has\_focus

### $widget-\>has\_grab ($boolean)

### boolean = $widget-\>has\_grab

### boolean = $widget-\>has\_rc\_style

Since: gtk+ 2.20

### boolean = $widget-\>has\_screen

Since: gtk+ 2.2

### boolean = $widget-\>get\_has\_tooltip

Since: gtk+ 2.12

### $widget-\>set\_has\_tooltip ($has\_tooltip)

- •

  `$has_tooltip` (boolean)

Since: gtk+ 2.12

### boolean = $widget-\>get\_has\_window

Since: gtk+ 2.18

### $widget-\>set\_has\_window ($has\_window)

- •

  `$has_window` (boolean)

Since: gtk+ 2.18

### $widget-\>hide

### $widget-\>hide\_all

### boolean = Gtk2::Widget::hide\_on\_delete ($widget, ...)

- •

  `$widget` (Gtk2::Widget)

- •

  ... (list) other arguments ignored (event etc)

This is a helper function intended to be used as the callback for the `"delete-event"` signal:

```
  $wiget->signal_connect (
    delete_event => \&Gtk2::Widget::hide_on_delete);
```

### $widget-\>input\_shape\_combine\_mask ($shape\_mask, $offset\_x, $offset\_y)

- •

  `$shape_mask` (Gtk2::Gdk::Bitmap or undef)

- •

  `$offset_x` (integer)

- •

  `$offset_y` (integer)

Since: gtk+ 2.10

### rectangle = $widget-\>intersect ($area)

- •

  `$area` (Gtk2::Gdk::Rectangle)

Returns undef if *$widget* and *$area* do not intersect.

### boolean = $widget-\>is\_ancestor ($ancestor)

- •

  `$ancestor` (Gtk2::Widget)

### boolean = $widget-\>is\_composited

Since: gtk+ 2.10

### boolean = $widget-\>is\_drawable

Since: gtk+ 2.18

### boolean = $widget-\>is\_focus

### $widget-\>is\_sensitive ($boolean)

### boolean = $widget-\>is\_sensitive

### boolean = $widget-\>is\_toplevel

Since: gtk+ 2.18

### boolean = $widget-\>keynav\_failed ($direction)

- •

  `$direction` (Gtk2::DirectionType)

Since: gtk+ 2.12

### list = $widget-\>list\_mnemonic\_labels

Since: gtk+ 2.4

### list = $widget\_or\_class\_name-\>list\_style\_properties

Return a list of `"Glib::ParamSpec"` objects which are the style properties available on `$widget_or_class_name`.  See Glib::Object `"list_properties"` for the fields in a ParamSpec.

Since: gtk+ 2.2

### $widget-\>map

### $widget-\>mapped ($boolean)

### boolean = $widget-\>mapped

### boolean = $widget-\>get\_mapped

Since: gtk+ 2.20

### $widget-\>set\_mapped ($mapped)

- •

  `$mapped` (boolean)

Since: gtk+ 2.20

### boolean = $widget-\>mnemonic\_activate ($group\_cycling)

- •

  `$group_cycling` (boolean)

### rcstyle = $widget-\>get\_modifier\_style

### $widget-\>modify\_base ($state, $color)

- •

  `$state` (Gtk2::StateType)

- •

  `$color` (Gtk2::Gdk::Color or undef)

### $widget-\>modify\_bg ($state, $color)

- •

  `$state` (Gtk2::StateType)

- •

  `$color` (Gtk2::Gdk::Color or undef)

### $widget-\>modify\_cursor ($primary, $secondary)

- •

  `$primary` (Gtk2::Gdk::Color or undef)

- •

  `$secondary` (Gtk2::Gdk::Color or undef)

Since: gtk+ 2.12

### $widget-\>modify\_fg ($state, $color)

- •

  `$state` (Gtk2::StateType)

- •

  `$color` (Gtk2::Gdk::Color or undef)

### $widget-\>modify\_font ($font\_desc)

- •

  `$font_desc` (Pango::FontDescription or undef)

### $widget-\>modify\_style ($style)

- •

  `$style` (Gtk2::RcStyle)

### $widget-\>modify\_text ($state, $color)

- •

  `$state` (Gtk2::StateType)

- •

  `$color` (Gtk2::Gdk::Color or undef)

### string = $widget-\>get\_name

### $widget-\>set\_name ($name)

- •

  `$name` (string)

### boolean = $widget-\>get\_no\_show\_all

Since: gtk+ 2.4

### $widget-\>set\_no\_show\_all ($no\_show\_all)

- •

  `$no_show_all` (boolean)

Since: gtk+ 2.4

### $widget-\>no\_window ($boolean)

### boolean = $widget-\>no\_window

### context = $widget-\>get\_pango\_context

### widget or undef = $widget-\>parent

### widget or undef = $widget-\>get\_parent

### $widget-\>parent\_sensitive ($boolean)

### boolean = $widget-\>parent\_sensitive

### $widget-\>set\_parent ($parent)

- •

  `$parent` (Gtk2::Widget)

### window = $widget-\>get\_parent\_window

### $widget-\>set\_parent\_window ($parent\_window)

- •

  `$parent_window` (Gtk2::Gdk::Window)

### (path, path\_reversed) = $widget-\>path

### (x, y) = $widget-\>get\_pointer

### Gtk2::Widget-\>pop\_colormap (cmap)

### $widget-\>pop\_colormap (cmap)

### Gtk2::Widget-\>pop\_composite\_child

### $widget-\>pop\_composite\_child

### $widget-\>propagate\_event ($event)

- •

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

From gtk+'s API documentation:

You most likely don't want to use any of these functions; synthesizing events is rarely needed. Consider asking on the mailing list for better ways to achieve your goals. For example, use Gtk2::Gdk::invalidate\_rect or Gtk2::Widget::queue\_draw instead of making up expose events.

### Gtk2::Widget-\>push\_colormap (cmap)

### $widget-\>push\_colormap (cmap)

- •

  `$cmap` (Gtk2::Gdk::Colormap)

### Gtk2::Widget-\>push\_composite\_child

### $widget-\>push\_composite\_child

### $widget-\>queue\_draw

### $widget-\>queue\_draw\_area ($x, $y, $width, $height)

- •

  `$x` (integer)

- •

  `$y` (integer)

- •

  `$width` (integer)

- •

  `$height` (integer)

### $widget-\>queue\_resize

### $widget-\>queue\_resize\_no\_redraw

Since: gtk+ 2.4

### $widget-\>rc\_style ($boolean)

### boolean = $widget-\>rc\_style

### $widget-\>realize

### $widget-\>realized ($boolean)

### boolean = $widget-\>realized

### boolean = $widget-\>get\_realized

Since: gtk+ 2.20

### $widget-\>set\_realized ($realized)

- •

  `$realized` (boolean)

Since: gtk+ 2.20

### $widget-\>receives\_default ($boolean)

### boolean = $widget-\>receives\_default

### boolean = $widget-\>get\_receives\_default

Since: gtk+ 2.18

### $widget-\>set\_receives\_default ($receives\_default)

- •

  `$receives_default` (boolean)

Since: gtk+ 2.18

### $widget-\>set\_redraw\_on\_allocate ($redraw\_on\_allocate)

- •

  `$redraw_on_allocate` (boolean)

### region = $widget-\>region\_intersect ($region)

- •

  `$region` (Gtk2::Gdk::Region)

### boolean = $widget-\>remove\_accelerator ($accel\_group, $accel\_key, $accel\_mods)

- •

  `$accel_group` (Gtk2::AccelGroup)

- •

  `$accel_key` (integer)

- •

  `$accel_mods` (Gtk2::Gdk::ModifierType)

### $widget-\>remove\_mnemonic\_label ($label)

- •

  `$label` (Gtk2::Widget)

Since: gtk+ 2.4

### pixbuf = $widget-\>render\_icon ($stock\_id, $size, $detail=undef)

- •

  `$stock_id` (string)

- •

  `$size` (Gtk2::IconSize)

- •

  `$detail` (string)

### $widget-\>reparent ($new\_parent)

- •

  `$new_parent` (Gtk2::Widget)

### requisition = $widget-\>requisition

Return the currently desired width and height of `$widget`.  Basically this is the result from the last `"size_request"` call on `$widget`, and therefore may not be up-to-date if `$widget` has asked for a resize but its container parent has not yet called `"size_request"`.

The returned requisition object points into `$widget` and can only be used as long as `$widget` exists.

### requisition = $widget-\>get\_requisition

Since: gtk+ 2.20

### $widget-\>reset\_rc\_styles

### $widget-\>reset\_shapes

### window = $widget-\>get\_root\_window

Since: gtk+ 2.2

### statetype = $widget-\>saved\_state

### screen = $widget-\>get\_screen

Since: gtk+ 2.2

### boolean = $widget-\>set\_scroll\_adjustments ($hadjustment, $vadjustment)

- •

  `$hadjustment` (Gtk2::Adjustment or undef)

- •

  `$vadjustment` (Gtk2::Adjustment or undef)

This function works by emitting a setter signal nominated by the various widget types which have "native" scrolling.  The signal is normally called `"set-scroll-adjustments"`, but it doesn't have to be.

If you make a widget subclass in Perl and create a signal in it called `"set-scroll-adjustments"` taking two Gtk2::Adjustment parameters then the subclassing automatically hooks that up to be emitted by `"$widget->set_scroll_adjustments"`.  (Your "class closure" default handler code should then store the adjustment objects somewhere.)

### $widget-\>selection\_add\_target ($selection, $target, $info)

- •

  `$selection` (Gtk2::Gdk::Atom)

- •

  `$target` (Gtk2::Gdk::Atom)

- •

  `$info` (integer)

### $widget-\>selection\_add\_targets ($selection, ...)

- •

  `$selection` (Gtk2::Gdk::Atom)

- •

  ... (list) of Gtk2::TargetEntry's

### $widget-\>selection\_clear\_targets ($selection)

- •

  `$selection` (Gtk2::Gdk::Atom)

### boolean = $widget-\>selection\_convert ($selection, $target, $time\_)

- •

  `$selection` (Gtk2::Gdk::Atom)

- •

  `$target` (Gtk2::Gdk::Atom)

- •

  `$time_` (unsigned)

### $widget-\>selection\_remove\_all

### boolean = $widget-\>send\_focus\_change ($event)

- •

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

Since: gtk+ 2.22

### $widget-\>sensitive ($boolean)

### boolean = $widget-\>sensitive

### boolean = $widget-\>get\_sensitive

Since: gtk+ 2.18

### $widget-\>set\_sensitive ($sensitive)

- •

  `$sensitive` (boolean)

### settings = $widget-\>get\_settings

### $widget-\>shape\_combine\_mask ($shape\_mask, $offset\_x, $offset\_y)

- •

  `$shape_mask` (Gtk2::Gdk::Bitmap or undef)

- •

  `$offset_x` (integer)

- •

  `$offset_y` (integer)

### $widget-\>show

### $widget-\>show\_all

### $widget-\>show\_now

### $widget-\>size\_allocate ($allocation)

- •

  `$allocation` (Gtk2::Gdk::Rectangle)

### requisition = $widget-\>size\_request

This function is typically used when implementing a GtkContainer subclass. Obtains the preferred size of a widget. The container uses this information to arrange its child widgets and decide what size allocations to give them with size\_allocate ().

You can also call this function from an application, with some caveats. Most notably, getting a size request requires the widget to be associated with a screen, because font information may be needed. Multihead-aware applications should keep this in mind.

Also remember that the size request is not necessarily the size a widget will actually be allocated.

See also get\_child\_requisition ()

### (width, height) = $widget-\>get\_size\_request

Gets the size request that was explicitly set for the widget using `"set_size_request()"`.  A value of -1 for *width* or *height* indicates that the dimension has not been explicitly set and the natural requisition of the widget will be used instead. See *set\_size\_request()*. To get the size a widget will actually use, call *size\_request()* instead of this function.

### $widget-\>set\_size\_request ($width=-1, $height=-1)

- •

  `$width` (integer)

- •

  `$height` (integer)

### pixmap or undef = $widget-\>get\_snapshot ($clip\_rect=undef)

- •

  `$clip_rect` (Gtk2::Gdk::Rectangle or undef)

Since: gtk+ 2.14

### statetype = $widget-\>state

### statetype = $widget-\>get\_state

Since: gtk+ 2.18

### $widget-\>set\_state ($state)

- •

  `$state` (Gtk2::StateType)

### style = $widget-\>style

### $style-\>style\_attach

Since: gtk+ 2.20

### style = $widget-\>get\_style

### list = $widget-\>style\_get ($first\_property\_name, ...)

- •

  `$first_property_name` (string)

- •

  ... (list) 0 or more additional property names

Returns the values of the requested style properties.

Since: gtk+ 2.2

### list = $widget-\>style\_get\_property ($first\_property\_name, ...)

- •

  `$first_property_name` (string)

- •

  ... (list) 0 or more additional property names

An alias for style\_get.

Since: gtk+ 2.2

### $widget-\>set\_style ($style)

- •

  `$style` (Gtk2::Style or undef)

### $widget-\>thaw\_child\_notify

### string = $widget-\>get\_tooltip\_markup

Since: gtk+ 2.12

### $widget-\>set\_tooltip\_markup ($markup)

- •

  `$markup` (string or undef)

Since: gtk+ 2.12

### string = $widget-\>get\_tooltip\_text

Since: gtk+ 2.12

### $widget-\>set\_tooltip\_text ($text)

- •

  `$text` (string or undef)

Since: gtk+ 2.12

### window or undef = $widget-\>get\_tooltip\_window

Since: gtk+ 2.12

### $widget-\>set\_tooltip\_window ($custom\_window)

- •

  `$custom_window` (Gtk2::Window or undef)

Since: gtk+ 2.12

### $widget-\>toplevel ($value)

### boolean = $widget-\>toplevel

### widget = $widget-\>get\_toplevel

### (dst\_x, dst\_y) = $src\_widget-\>translate\_coordinates ($dest\_widget, $src\_x, $src\_y)

- •

  `$dest_widget` (Gtk2::Widget)

- •

  `$src_x` (integer)

- •

  `$src_y` (integer)

Returns an empty list if either widget is not realized or if they do not share a common ancestor.

### $widget-\>trigger\_tooltip\_query

Since: gtk+ 2.12

### $widget-\>unmap

### $widget-\>unparent

### $widget-\>unrealize

### $widget-\>unset\_flags ($flags)

- •

  `$flags` (Gtk2::WidgetFlags)

### $widget-\>visible ($boolean)

### boolean = $widget-\>visible

### boolean = $widget-\>get\_visible

Since: gtk+ 2.18

### $widget-\>set\_visible ($visible)

- •

  `$visible` (boolean)

Since: gtk+ 2.18

### visual = $widget-\>get\_visual

### window or undef = $widget-\>window ($new=undef)

- •

  `$new` (Gtk2::Gdk::Window or undef)

### window or undef = $widget-\>get\_window

Since: gtk+ 2.14

### $widget-\>set\_window ($window)

- •

  `$window` (Gtk2::Gdk::Window)

Since: gtk+ 2.18

## PROPERTIES

- 'app-paintable' (boolean : default false : readable / writable / private)

  Whether the application will paint directly on the widget

- 'can-default' (boolean : default false : readable / writable / private)

  Whether the widget can be the default widget

- 'can-focus' (boolean : default false : readable / writable / private)

  Whether the widget can accept the input focus

- 'composite-child' (boolean : default false : readable / private)

  Whether the widget is part of a composite widget

- 'double-buffered' (boolean : default true : readable / writable / private)

  Whether or not the widget is double buffered

- 'events' (Gtk2::Gdk::EventMask : default structure-mask : readable / writable / private)

  The event mask that decides what kind of GdkEvents this widget gets

- 'extension-events' (Gtk2::Gdk::ExtensionMode : default "none" : readable / writable / private)

  The mask that decides what kind of extension events this widget gets

- 'has-default' (boolean : default false : readable / writable / private)

  Whether the widget is the default widget

- 'has-focus' (boolean : default false : readable / writable / private)

  Whether the widget has the input focus

- 'has-tooltip' (boolean : default false : readable / writable / private)

  Whether this widget has a tooltip

- 'height-request' (integer : default -1 : readable / writable / private)

  Override for height request of the widget, or -1 if natural request should be used

- 'is-focus' (boolean : default false : readable / writable / private)

  Whether the widget is the focus widget within the toplevel

- 'name' (string : default undef : readable / writable / private)

  The name of the widget

- 'no-show-all' (boolean : default false : readable / writable / private)

  Whether *gtk\_widget\_show\_all()* should not affect this widget

- 'parent' (Gtk2::Container : default undef : readable / writable / private)

  The parent widget of this widget. Must be a Container widget

- 'receives-default' (boolean : default false : readable / writable / private)

  If TRUE, the widget will receive the default action when it is focused

- 'sensitive' (boolean : default true : readable / writable / private)

  Whether the widget responds to input

- 'style' (Gtk2::Style : default undef : readable / writable / private)

  The style of the widget, which contains information about how it will look (colors etc)

- 'tooltip-markup' (string : default undef : readable / writable / private)

  The contents of the tooltip for this widget

- 'tooltip-text' (string : default undef : readable / writable / private)

  The contents of the tooltip for this widget

- 'visible' (boolean : default false : readable / writable / private)

  Whether the widget is visible

- 'width-request' (integer : default -1 : readable / writable / private)

  Override for width request of the widget, or -1 if natural request should be used

- 'window' (Gtk2::Gdk::Window : default undef : readable / private)

  The widget's window if it is realized

## STYLE PROPERTIES

- 'cursor-aspect-ratio' (float : default 0.04 : readable / private)

  Aspect ratio with which to draw insertion cursor

- 'cursor-color' (Gtk2::Gdk::Color : default undef : readable / private)

  Color with which to draw insertion cursor

- 'draw-border' (Gtk2::Border : default undef : readable / private)

  Size of areas outside the widget's allocation to draw

- 'focus-line-pattern' (string : default "\\1\\1" : readable / private)

  Dash pattern used to draw the focus indicator

- 'focus-line-width' (integer : default 1 : readable / private)

  Width, in pixels, of the focus indicator line

- 'focus-padding' (integer : default 1 : readable / private)

  Width, in pixels, between focus indicator and the widget 'box'

- 'interior-focus' (boolean : default true : readable / private)

  Whether to draw the focus indicator inside widgets

- 'link-color' (Gtk2::Gdk::Color : default undef : readable / private)

  Color of unvisited links

- 'scroll-arrow-hlength' (integer : default 16 : readable / private)

  The length of horizontal scroll arrows

- 'scroll-arrow-vlength' (integer : default 16 : readable / private)

  The length of vertical scroll arrows

- 'secondary-cursor-color' (Gtk2::Gdk::Color : default undef : readable / private)

  Color with which to draw the secondary insertion cursor when editing mixed right-to-left and left-to-right text

- 'separator-height' (integer : default 0 : readable / private)

  The height of separators if "wide-separators" is TRUE

- 'separator-width' (integer : default 0 : readable / private)

  The width of separators if wide-separators is TRUE

- 'tooltip-alpha' (Glib::UChar : default 255 : readable / private)

  The opacity to be used when drawing tooltips

- 'tooltip-radius' (Glib::UInt : default 0 : readable / private)

  The radius to be used when drawing tooltips

- 'visited-link-color' (Gtk2::Gdk::Color : default undef : readable / private)

  Color of visited links

- 'wide-separators' (boolean : default false : readable / private)

  Whether separators have configurable width and should be drawn using a box instead of a line

## SIGNALS

- **accel-closures-changed** (Gtk2::Widget)

  - boolean = **button-press-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **button-release-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **can-activate-accel** (Gtk2::Widget, Glib::UInt)

  - **child-notify** (Gtk2::Widget, Glib::ParamSpec)

  - boolean = **client-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - **composited-changed** (Gtk2::Widget)

  - boolean = **configure-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **damage-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **delete-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **destroy-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - **direction-changed** (Gtk2::Widget, Gtk2::TextDirection)

  - **drag-begin** (Gtk2::Widget, Gtk2::Gdk::DragContext)

  - **drag-data-delete** (Gtk2::Widget, Gtk2::Gdk::DragContext)

  - **drag-data-get** (Gtk2::Widget, Gtk2::Gdk::DragContext, Gtk2::SelectionData, Glib::UInt, Glib::UInt)

  - **drag-data-received** (Gtk2::Widget, Gtk2::Gdk::DragContext, integer, integer, Gtk2::SelectionData, Glib::UInt, Glib::UInt)

  - boolean = **drag-drop** (Gtk2::Widget, Gtk2::Gdk::DragContext, integer, integer, Glib::UInt)

  - **drag-end** (Gtk2::Widget, Gtk2::Gdk::DragContext)

  - boolean = **drag-failed** (Gtk2::Widget, Gtk2::Gdk::DragContext, Gtk2::DragResult)

  - **drag-leave** (Gtk2::Widget, Gtk2::Gdk::DragContext, Glib::UInt)

  - boolean = **drag-motion** (Gtk2::Widget, Gtk2::Gdk::DragContext, integer, integer, Glib::UInt)

  - boolean = **enter-notify-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - **event-after** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **expose-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **focus** (Gtk2::Widget, Gtk2::DirectionType)

  - boolean = **focus-in-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **focus-out-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **grab-broken-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - **grab-focus** (Gtk2::Widget)

  - **grab-notify** (Gtk2::Widget, boolean)

  - **hide** (Gtk2::Widget)

  - **hierarchy-changed** (Gtk2::Widget, Gtk2::Widget)

  - boolean = **key-press-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **key-release-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **keynav-failed** (Gtk2::Widget, Gtk2::DirectionType)

  - boolean = **leave-notify-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - **map** (Gtk2::Widget)

  - boolean = **map-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **mnemonic-activate** (Gtk2::Widget, boolean)

  - boolean = **motion-notify-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - **move-focus** (Gtk2::Widget, Gtk2::DirectionType)

  - boolean = **no-expose-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - **parent-set** (Gtk2::Widget, Gtk2::Widget)

  - boolean = **popup-menu** (Gtk2::Widget)

  - boolean = **property-notify-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **proximity-in-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **proximity-out-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **query-tooltip** (Gtk2::Widget, integer, integer, boolean, Gtk2::Tooltip)

  - **realize** (Gtk2::Widget)

  - **screen-changed** (Gtk2::Widget, Gtk2::Gdk::Screen)

  - boolean = **scroll-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **selection-clear-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - **selection-get** (Gtk2::Widget, Gtk2::SelectionData, Glib::UInt, Glib::UInt)

  - boolean = **selection-notify-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - **selection-received** (Gtk2::Widget, Gtk2::SelectionData, Glib::UInt)

  - boolean = **selection-request-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - **show** (Gtk2::Widget)

  - boolean = **show-help** (Gtk2::Widget, Gtk2::WidgetHelpType)

  - **size-allocate** (Gtk2::Widget, Gtk2::Gdk::Rectangle)

  - **size-request** (Gtk2::Widget, Gtk2::Requisition)

  - **state-changed** (Gtk2::Widget, Gtk2::StateType)

  - **style-set** (Gtk2::Widget, Gtk2::Style)

  - **unmap** (Gtk2::Widget)

  - boolean = **unmap-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - **unrealize** (Gtk2::Widget)

  - boolean = **visibility-notify-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  - boolean = **window-state-event** (Gtk2::Widget, Gtk2::Gdk::Event)

  ## ENUMS AND FLAGS

### flags Gtk2::AccelFlags

- •

  'visible' / 'GTK\_ACCEL\_VISIBLE'

- •

  'locked' / 'GTK\_ACCEL\_LOCKED'

- •

  'mask' / 'GTK\_ACCEL\_MASK'

### flags Gtk2::DestDefaults

- •

  'motion' / 'GTK\_DEST\_DEFAULT\_MOTION'

- •

  'highlight' / 'GTK\_DEST\_DEFAULT\_HIGHLIGHT'

- •

  'drop' / 'GTK\_DEST\_DEFAULT\_DROP'

- •

  'all' / 'GTK\_DEST\_DEFAULT\_ALL'

### enum Gtk2::DirectionType

- •

  'tab-forward' / 'GTK\_DIR\_TAB\_FORWARD'

- •

  'tab-backward' / 'GTK\_DIR\_TAB\_BACKWARD'

- •

  'up' / 'GTK\_DIR\_UP'

- •

  'down' / 'GTK\_DIR\_DOWN'

- •

  'left' / 'GTK\_DIR\_LEFT'

- •

  'right' / 'GTK\_DIR\_RIGHT'

### enum Gtk2::DragResult

- •

  'success' / 'GTK\_DRAG\_RESULT\_SUCCESS'

- •

  'no-target' / 'GTK\_DRAG\_RESULT\_NO\_TARGET'

- •

  'user-cancelled' / 'GTK\_DRAG\_RESULT\_USER\_CANCELLED'

- •

  'timeout-expired' / 'GTK\_DRAG\_RESULT\_TIMEOUT\_EXPIRED'

- •

  'grab-broken' / 'GTK\_DRAG\_RESULT\_GRAB\_BROKEN'

- •

  'error' / 'GTK\_DRAG\_RESULT\_ERROR'

### flags Gtk2::Gdk::DragAction

- •

  'default' / 'GDK\_ACTION\_DEFAULT'

- •

  'copy' / 'GDK\_ACTION\_COPY'

- •

  'move' / 'GDK\_ACTION\_MOVE'

- •

  'link' / 'GDK\_ACTION\_LINK'

- •

  'private' / 'GDK\_ACTION\_PRIVATE'

- •

  'ask' / 'GDK\_ACTION\_ASK'

### enum Gtk2::Gdk::DragProtocol

- •

  'motif' / 'GDK\_DRAG\_PROTO\_MOTIF'

- •

  'xdnd' / 'GDK\_DRAG\_PROTO\_XDND'

- •

  'rootwin' / 'GDK\_DRAG\_PROTO\_ROOTWIN'

- •

  'none' / 'GDK\_DRAG\_PROTO\_NONE'

- •

  'win32-dropfiles' / 'GDK\_DRAG\_PROTO\_WIN32\_DROPFILES'

- •

  'ole2' / 'GDK\_DRAG\_PROTO\_OLE2'

- •

  'local' / 'GDK\_DRAG\_PROTO\_LOCAL'

### 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::ExtensionMode

- •

  'none' / 'GDK\_EXTENSION\_EVENTS\_NONE'

- •

  'all' / 'GDK\_EXTENSION\_EVENTS\_ALL'

- •

  'cursor' / 'GDK\_EXTENSION\_EVENTS\_CURSOR'

### 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::IconSize

- •

  'invalid' / 'GTK\_ICON\_SIZE\_INVALID'

- •

  'menu' / 'GTK\_ICON\_SIZE\_MENU'

- •

  'small-toolbar' / 'GTK\_ICON\_SIZE\_SMALL\_TOOLBAR'

- •

  'large-toolbar' / 'GTK\_ICON\_SIZE\_LARGE\_TOOLBAR'

- •

  'button' / 'GTK\_ICON\_SIZE\_BUTTON'

- •

  'dnd' / 'GTK\_ICON\_SIZE\_DND'

- •

  'dialog' / 'GTK\_ICON\_SIZE\_DIALOG'

### enum Gtk2::StateType

- •

  'normal' / 'GTK\_STATE\_NORMAL'

- •

  'active' / 'GTK\_STATE\_ACTIVE'

- •

  'prelight' / 'GTK\_STATE\_PRELIGHT'

- •

  'selected' / 'GTK\_STATE\_SELECTED'

- •

  'insensitive' / 'GTK\_STATE\_INSENSITIVE'

### enum Gtk2::TextDirection

- •

  'none' / 'GTK\_TEXT\_DIR\_NONE'

- •

  'ltr' / 'GTK\_TEXT\_DIR\_LTR'

- •

  'rtl' / 'GTK\_TEXT\_DIR\_RTL'

### flags Gtk2::WidgetFlags

- •

  'toplevel' / 'GTK\_TOPLEVEL'

- •

  'no-window' / 'GTK\_NO\_WINDOW'

- •

  'realized' / 'GTK\_REALIZED'

- •

  'mapped' / 'GTK\_MAPPED'

- •

  'visible' / 'GTK\_VISIBLE'

- •

  'sensitive' / 'GTK\_SENSITIVE'

- •

  'parent-sensitive' / 'GTK\_PARENT\_SENSITIVE'

- •

  'can-focus' / 'GTK\_CAN\_FOCUS'

- •

  'has-focus' / 'GTK\_HAS\_FOCUS'

- •

  'can-default' / 'GTK\_CAN\_DEFAULT'

- •

  'has-default' / 'GTK\_HAS\_DEFAULT'

- •

  'has-grab' / 'GTK\_HAS\_GRAB'

- •

  'rc-style' / 'GTK\_RC\_STYLE'

- •

  'composite-child' / 'GTK\_COMPOSITE\_CHILD'

- •

  'no-reparent' / 'GTK\_NO\_REPARENT'

- •

  'app-paintable' / 'GTK\_APP\_PAINTABLE'

- •

  'receives-default' / 'GTK\_RECEIVES\_DEFAULT'

- •

  'double-buffered' / 'GTK\_DOUBLE\_BUFFERED'

- •

  'no-show-all' / 'GTK\_NO\_SHOW\_ALL'

### enum Gtk2::WidgetHelpType

- •

  'tooltip' / 'GTK\_WIDGET\_HELP\_TOOLTIP'

- •

  'whats-this' / 'GTK\_WIDGET\_HELP\_WHATS\_THIS'

## SEE ALSO

Gtk2, Glib::Object, Glib::InitiallyUnowned, Gtk2::Object, Gtk2::TargetEntry

## COPYRIGHT

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

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