Tcl-pTk

 view release on metacpan or  search on metacpan

t/ptk-compat2.t  view on Meta::CPAN

# Script to check for popup menu creation using the menubutton  methods

use warnings;
use strict;
use Tcl::pTk;

use Test;
plan tests => 4;

$| = 1; # Pipes Hot
my $top = MainWindow->new;
#$top->option('add','*Text.background'=>'white');


my $m = $top->Menu(-type => 'menubar', -tearoff=> 0);
$top->configure(-menu => $m);

my $mb = $m->Menubutton(qw/-text File -underline 0 -tearoff 0 -menuitems/ =>
  [
    [Button => '~Open ...',     -accelerator => 'Control+o'],
    [Button => '~New',          -accelerator => 'Control+n'],
    [Button => '~Save',         -accelerator => 'Control+s'],
    ]
    );

# Check to see if Cascade usage works
my $mb2 = $m->Cascade(qw/-label File-Cascade -underline 0 -tearoff 0 -menuitems/ =>
  [
    [Button => '~Open ...',     -accelerator => 'Control+o'],
    [Button => '~New',          -accelerator => 'Control+n'],
    [Button => '~Save',         -accelerator => 'Control+s'],
    ]
    );


my $noEntries = $m->index('end');
my $type = $m->type(1);
#print "Childs = $noEntries, type = $type\n";
ok($noEntries, 1, "Number of entries in the popup");
ok($type, 'cascade', 'Type of menuitem is cascade');


my $mbmenu = $mb->menu();
#print "MB menu = $mbmenu\n";
$noEntries = $mbmenu->index('end');
my @types = map $mbmenu->type($_), (1..2);
#print "Childs = $noEntries, type = $type\n";
ok($noEntries, 2, "Number of entries in the cascade");
ok(join(", ", @types), 'command, command', 'Types of menuitem is cascade');

#print "types = ".join(", ", @types)."\n";

#$m->Post(100,100); # Posting can't be done for the automated test, because it requires clicking the menu
                    #  to get things to continue.

$top->after(1000,sub{
        $top->destroy});
MainLoop;



( run in 0.818 second using v1.01-cache-2.11-cpan-5735350b133 )