Provided by: libgtk2-ex-formfactory-perl_0.67-0ubuntu1_all bug


       Gtk2::Ex::FormFactory::Menu - A Menu in a FormFactory framework


         Gtk2::Ex::FormFactory::Menu->new (
           menu_tree        => Hierarchical definition of the Menu,
           default_callback => Default callback for menu items,
           user_data        => User data for the default callback,
           Gtk2::Ex::FormFactory::Widget attributes


       This class implements a Menu in a Gtk2::Ex::FormFactory framework and pretty much wraps
       Gtk2::Ex::Simple::Menu. No application object attributes are associated with a Menu as a

       But you may associate single Menu entries with an object. This way the correspondent
       entries will set insensitive automatically if the underlying object is undef and vice
       versa are activated once the object is defined.



         +--- Gtk2::Ex::FormFactory::Menu



       Attributes are handled through the common get_ATTR(), set_ATTR() style accessors, but they
       are mostly passed once to the object constructor and must not be altered after the
       associated FormFactory was built.

       menu_tree = ARRAYREF [mandatory]
           This is a slightly extended menu tree definition in terms of Gtk2::Ex::Simple::Menu.
           You may optionally associate each entry with an application object by specifying its
           name with the object key in the item definition hash. This way the item is active only
           if the correspondent object is defined.

           As well you can control widget activity more detailed using the active_cond and
           active_depends keys as described in the Gtk2::Ex::FormFactory::Widget manpage.

           A short example. This is a File menu where the 'Save' and 'Close' entries are
           sensitive only if a file was opened. We presume that opening a file sets the
           'worksheet' object, which is registered with this name to the Context of the
           associated FormFactory.  Additionally the 'Manage rows' entry is active only if more
           than three rows are selected:

             $menu_tree = [
               _File => {
                 item_type => <Branch>',
                 children  => [
                   _Open  => {
                     callback => \&open_worksheet,
                                 # sets the 'worksheet' object
                   _Save => {
                     callback => \&save_worksheet,
                     object   => 'worksheet',
                   _Close => {
                     callback => \&close_worksheet,
                     object   => 'worksheet',
                   "_Manage rows" => {
                     callback       => \&manage_rows,
                     object         => 'worksheet',
                     active_cond    => sub { $worksheet->get_selected_rows_cnt > 3 },
                     active_depends => "worksheet.rows",

       default_callback = CODEREF [optional]
           The default callback of this menu. Refer to Gtk2::Ex::Simple::Menu for details.

       user_data = SCALAR [optional]
           User data of the default callback of this menu. Refer to Gtk2::Ex::Simple::Menu for

       For more attributes refer to Gtk2::Ex::FormFactory::Widget.


        Joern Reder <joern at zyn dot de>


       Copyright 2004-2006 by Joern Reder.

       This library is free software; you can redistribute it and/or modify it under the terms of
       the GNU Library General Public License as published by the Free Software Foundation;
       either version 2.1 of the License, or (at your option) any later version.

       This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
       without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
       See the GNU Library General Public License for more details.

       You should have received a copy of the GNU Library General Public License along with this
       library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
       Boston, MA  02111-1307 USA.