Gtk2::Menu(3p)

NAME
Gtk2::Menu - wrapper for GtkMenu

HIERARCHY
  Glib::Object
  +----Glib::InitiallyUnowned
       +----Gtk2::Object
            +----Gtk2::Widget
                 +----Gtk2::Container
                      +----Gtk2::MenuShell
                           +----Gtk2::Menu

INTERFACES
  Glib::Object::_Unregistered::AtkImplementorIface
  Gtk2::Buildable

METHODS

  widget = Gtk2::Menu->new

  accelgroup = $menu->get_accel_group

  $menu->set_accel_group ($accel_group)

•   $accel_group (Gtk2::AccelGroup)

  string = $menu->get_accel_path
Since: gtk+ 2.14

  $menu->set_accel_path ($accel_path)

•   $accel_path (string)

  widget = $menu->get_active

  $menu->set_active ($index)

•   $index (integer)

  $menu->attach ($child, $left_attach, $right_attach, $top_attach, $bottom_attach)

•   $child (Gtk2::Widget)

•   $left_attach (integer)

•   $right_attach (integer)

•   $top_attach (integer)

•   $bottom_attach (integer)

Since: gtk+ 2.4

  $menu->attach_to_widget ($attach_widget, $detach_func)

•   $attach_widget (Gtk2::Widget)

•   $detach_func (scalar)

Attach $menu to $attach_widget. $menu must not be currently attached to any other widget, including not a submenu of a "Gtk2::MenuItem".

If $menu is later detached from the widget with "$menu->detach" then the $detach_func is called as

    &$detach_func ($attach_widget, $menu)

  widget = $menu->get_attach_widget

  $menu->detach

  list = Gtk2::Menu->get_for_attach_widget ($widget)

•   $widget (Gtk2::Widget)

Since: gtk+ 2.6

  integer = $menu->get_monitor
Since: gtk+ 2.14

  $menu->set_monitor ($monitor_num)

•   $monitor_num (integer)

Since: gtk+ 2.4

  $menu->popdown

  $menu->popup ($parent_menu_shell, $parent_menu_item, $menu_pos_func, $data, $button, $activate_time)

•   $parent_menu_shell (Gtk2::Widget or undef)

•   $parent_menu_item (Gtk2::Widget or undef)

•   $menu_pos_func (scalar)

•   $data (scalar)

•   $button (integer)

•   $activate_time (integer)

If $menu_pos_func is not "undef" it's called as

    ($x, $y, $push_in) = &$menu_pos_func ($menu, $x, $y, $data)

$x,$y inputs are a proposed position based on the mouse pointer (not actually documented in the Gtk manuals). The return should be a desired $x,$y, and an optional $push_in flag. If $push_in is true then Gtk will adjust $x,$y if necessary so the menu is fully visible in the screen width and height.

$menu_pos_func and $data are stored in $menu and may be called again later for a "$menu->reposition" or some obscure things like a changed "set_screen" while torn-off. A further "$menu->popup" call replaces $menu_pos_func and $data.

  $menu->reorder_child ($child, $position)

•   $child (Gtk2::Widget)

•   $position (integer)

  $menu->reposition

  boolean = $menu->get_reserve_toggle_size
Since: gtk+ 2.18

  $menu->set_reserve_toggle_size ($reserve_toggle_size)

•   $reserve_toggle_size (boolean)

Since: gtk+ 2.18

  $menu->set_screen ($screen)

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

Since: gtk+ 2.2

  boolean = $menu->get_tearoff_state

  $menu->set_tearoff_state ($torn_off)

•   $torn_off (boolean)

  string = $menu->get_title

  $menu->set_title ($title)

•   $title (string)

PROPERTIES

'accel-group' (Gtk2::AccelGroup : default undef : readable / writable / private / static-nick / static-blurb)
    The accel group holding accelerators for the menu

'accel-path' (string : default undef : readable / writable / private / static-nick / static-blurb)
    An accel path used to conveniently construct accel paths of child items

'active' (integer : default -1 : readable / writable / private / static-nick / static-blurb)
    The currently selected menu item

'attach-widget' (Gtk2::Widget : default undef : readable / writable / private / static-nick / static-blurb)
    The widget the menu is attached to

'monitor' (integer : default -1 : readable / writable / private / static-nick / static-blurb)
    The monitor the menu will be popped up on

'reserve-toggle-size' (boolean : default true : readable / writable / private / static-nick / static-blurb)
    A boolean that indicates whether the menu reserves space for toggles and icons

'tearoff-state' (boolean : default false : readable / writable / private / static-nick / static-blurb)
    A boolean that indicates whether the menu is torn-off

'tearoff-title' (string : default undef : readable / writable / private / static-nick / static-blurb)
    A title that may be displayed by the window manager when this menu is torn-off

CHILD PROPERTIES

'bottom-attach' (integer : default -1 : readable / writable / private / static-nick / static-blurb)
    The row number to attach the bottom of the child to

'left-attach' (integer : default -1 : readable / writable / private / static-nick / static-blurb)
    The column number to attach the left side of the child to

'right-attach' (integer : default -1 : readable / writable / private / static-nick / static-blurb)
    The column number to attach the right side of the child to

'top-attach' (integer : default -1 : readable / writable / private / static-nick / static-blurb)
    The row number to attach the top of the child to

STYLE PROPERTIES

'arrow-placement' (Gtk2::ArrowPlacement : default "both" : readable / private / static-nick / static-blurb)
    Indicates where scroll arrows should be placed

'arrow-scaling' (float : default 0.7 : readable / private / static-nick / static-blurb)
    Arbitrary constant to scale down the size of the scroll arrow

'double-arrows' (boolean : default true : readable / private / static-nick / static-blurb)
    When scrolling, always show both arrows.

'horizontal-offset' (integer : default -2 : readable / private / static-nick / static-blurb)
    When the menu is a submenu, position it this number of pixels offset horizontally

'horizontal-padding' (integer : default 0 : readable / private / static-nick / static-blurb)
    Extra space at the left and right edges of the menu

'vertical-offset' (integer : default 0 : readable / private / static-nick / static-blurb)
    When the menu is a submenu, position it this number of pixels offset vertically

'vertical-padding' (integer : default 1 : readable / private / static-nick / static-blurb)
    Extra space at the top and bottom of the menu

SIGNALS

move-scroll (Gtk2::Menu, Gtk2::ScrollType)

ENUMS AND FLAGS

  enum Gtk2::ScrollType

•   'none' / 'GTK_SCROLL_NONE'

•   'jump' / 'GTK_SCROLL_JUMP'

•   'step-backward' / 'GTK_SCROLL_STEP_BACKWARD'

•   'step-forward' / 'GTK_SCROLL_STEP_FORWARD'

•   'page-backward' / 'GTK_SCROLL_PAGE_BACKWARD'

•   'page-forward' / 'GTK_SCROLL_PAGE_FORWARD'

•   'step-up' / 'GTK_SCROLL_STEP_UP'

•   'step-down' / 'GTK_SCROLL_STEP_DOWN'

•   'page-up' / 'GTK_SCROLL_PAGE_UP'

•   'page-down' / 'GTK_SCROLL_PAGE_DOWN'

•   'step-left' / 'GTK_SCROLL_STEP_LEFT'

•   'step-right' / 'GTK_SCROLL_STEP_RIGHT'

•   'page-left' / 'GTK_SCROLL_PAGE_LEFT'

•   'page-right' / 'GTK_SCROLL_PAGE_RIGHT'

•   'start' / 'GTK_SCROLL_START'

•   'end' / 'GTK_SCROLL_END'

SEE ALSO
Gtk2, Glib::Object, Glib::InitiallyUnowned, Gtk2::Object, Gtk2::Widget, Gtk2::Container, Gtk2::MenuShell

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

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