I reported this issue:

use strict;
use warnings;
use utf8;

use Tk;
my $mw = MainWindow->new();

my $mbar = $mw ->Menu();
$mw ->configure( -menu => $mbar );
my $file = $mbar ->cascade(-label => '????');   # Thai string (substitute
your own)

MainLoop;

1;

This results in the menu being displayed as \x{0e41}, ...
I have tested using ActiveState Perl Builds 820 and 816.

It turns out that the problem only affects the menubar and seems to be
restricted to MS Windows only.  I have tried to circumvent the problem by
building my own menubar as illustrated below:

use strict;
use warnings;
use utf8;

use Tk;
print "@INC\n";
my $mw = MainWindow->new( );

my $file_menuitems =
[
   [ Button => '~???', -command => sub { exit } ]
];
my $edit_menuitems =
[
   [ Button => '~??????', -command => sub
    { $mw->messageBox( -message => 'Do Save', -type => 'Ok' ) }  ],
   [ Button => '??????',  -command => sub
    { $mw->messageBox( -message => 'Do Cancel', -type => 'Ok' ) } ]
];
my $mbar = $mw -> Frame();
$mbar->Menubutton( -text => '????', -underline => 1,
   -tearoff => 0, -menuitems => $file_menuitems )
   -> pack ( -side => 'left' );
$mbar->Menubutton( -text => '?????', -underline => 1,
   -tearoff => 0, -menuitems => $edit_menuitems )
   -> pack ( -side => 'left' );
$mbar->pack( -side => 'top', -anchor => 'w' );

MainLoop;

1;

This mostly works.  However, some of the default bindings do not appear to
operate as documented.  Most important, the use of Alt-x (using the keyboard
to post the Menubuttons in my menubar) has no affect.

Do I need to add my own bindings, or am I making some kind of silly mistake?
_______________________________________________
ActivePerl mailing list
ActivePerl@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to