#!/usr/bin/perl -w # # $Header$ # # r.m. # use strict; use Gtk2 '-init'; use Gtk2::SimpleMenu; use Data::Dumper; sub callback { print Dumper(@_); } my $action = 0; my $menu_tree = [ _File => { item_type => '', items => [ _New => { callback => \&callback, callback_action => $action++, }, _Save => { callback => \&callback, callback_action => $action++, }, 'Save _As' => { callback => \&callback, callback_action => $action++, }, _Exit => { callback => \&callback, callback_action => $action++, }, ], }, _Edit => { item_type => '', items => [ _Copy => { callback => \&callback, callback_action => $action++, }, _Paste => { callback => \&callback, callback_action => $action++, }, ], }, _Tools => { item_type => '', items => [ _Tearoff => { item_type => '', }, _CheckItem => { callback => \&callback, callback_action => $action++, item_type => '', }, _ToggleItem => { callback => \&callback, callback_action => $action++, item_type => '', }, _StockItem => { callback => \&callback, callback_action => $action++, item_type => '', extra_data => 'gtk-execute', }, _Radios => { item_type => '', items => [ 'Radio _1' => { callback => \&callback, callback_action => $action++, item_type => '', group => 1, }, 'Radio _2' => { callback => \&callback, callback_action => $action++, item_type => '', group => 1, }, 'Radio _3' => { callback => \&callback, callback_action => $action++, item_type => '', group => 1, }, ], }, Separator => { item_type => '', }, # _Image => { # callback => \&callback, # callback_action => $action++, # item_type => '', # }, ], }, _Help => { item_type => '', items => [ _Introduction => { callback => \&callback, callback_action => $action++, }, _About => { callback => \&callback, callback_action => $action++, } ], }, ]; my $menu = Gtk2::SimpleMenu->new($menu_tree); $menu->get_widget('/Tools/Radios/Radio 2')->set_active(1); my $win = Gtk2::Window->new; $win->add($menu->{widget}); $win->show_all; Gtk2->main;