home *** CD-ROM | disk | FTP | other *** search
/ Netrunner 2004 October / NETRUNNER0410.ISO / regular / ActivePerl-5.8.4.810-MSWin32-x86.msi / _c464f6e0243bbe4480283e4e5005b1c8 < prev    next >
Text File  |  2004-06-01  |  3KB  |  97 lines

  1.  
  2. =head1 NAME
  3.  
  4. Tk::Menu::Item - Base class for Menu items
  5.  
  6. =for pm Tk/Menu/Item.pm
  7.  
  8. =for category Implementation
  9.  
  10. =head1 SYNOPSIS
  11.  
  12.    require Tk::Menu::Item;
  13.  
  14.    my $but = $menu->Button(...);
  15.    $but->configure(...);
  16.    my $what = $but->cget();
  17.  
  18.    package Whatever;
  19.    require Tk::Menu::Item;
  20.    @ISA = qw(Tk::Menu::Item);
  21.  
  22.    sub PreInit
  23.    {
  24.     my ($class,$menu,$info) = @_;
  25.     $info->{'-xxxxx'} = ...
  26.     my $y = delete $info->{'-yyyy'};
  27.    }
  28.  
  29. =head1 DESCRIPTION
  30.  
  31. Tk::Menu::Item is the base class from which Tk::Menu::Button,
  32. Tk::Menu::Cascade, Tk::Menu::Radiobutton and Tk::Menu::Checkbutton are derived.
  33. There is also a Tk::Menu::Separator.
  34.  
  35. Constructors are declared so that $menu-E<gt>Button(...) etc. do what you would
  36. expect.
  37.  
  38. The C<-label> option is pre-processed allowing ~ to be prefixed to the character
  39. to derive a C<-underline> value. Thus
  40.  
  41.     $menu->Button(-label => 'Goto ~Home',...)
  42.  
  43.     is equivalent to
  44.  
  45.     $menu->Button(-label => 'Goto Home', -underline => 6, ...)
  46.  
  47. The C<Cascade> menu item creates a sub-menu and accepts
  48. these options:
  49.  
  50. =over 4
  51.  
  52. =item B<-menuitems>
  53.  
  54. A list of items for the sub-menu.
  55. Within this list (which is also accepted by Menu and Menubutton) the first
  56. two elements of each item should be the "constructor" name and the label:
  57.  
  58.     -menuitems => [
  59.                    [Button      => '~Quit', -command => [destroy => $mw]],
  60.                    [Checkbutton => '~Oil',  -variable => \$oil],
  61.                   ]
  62.  
  63. =item B<-postcommand>
  64.  
  65. A callback to be invoked before posting the menu.
  66.  
  67. =item B<-tearoff>
  68.  
  69. Specifies whether sub-menu can be torn-off or not.
  70.  
  71. =item B<-menuvar>
  72.  
  73. Scalar reference that will be set to the newly-created sub-menu.
  74.  
  75. =back
  76.  
  77. The returned object is currently a blessed reference to an array of two items:
  78. the containing Menu and the 'label'.
  79. Methods C<configure> and C<cget> are mapped onto underlying C<entryconfigure>
  80. and C<entrycget>.
  81.  
  82. The main purpose of the OO interface is to allow derived item classes to
  83. be defined which pre-set the options used to create a more basic item.
  84.  
  85. =head1 BUGS
  86.  
  87. This OO interface is very new. Using the label as the "key" is a problem
  88. for separaror items which don't have one. The alternative would be to
  89. use an index into the menu but that is a problem if items are deleted
  90. (or inserted other than at the end).
  91.  
  92. There should probably be a PostInit entry point too, or a more widget like
  93. defered 'configure'.
  94.  
  95. =cut
  96.  
  97.