Viewing file: bidi.pl (2.22 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
use strict; use warnings; use utf8; use Prima qw(Label InputLine Buttons Application PodView Edit Dialog::FontDialog);
my $w; my $pod; my $arabic; my $editor; my $pod_text; my $font_dialog;
$::application->textDirection(1);
$w = Prima::MainWindow-> create( size => [ 430, 200], designScale => [7, 16], text => "Bidirectional texts", menuItems => [ [ "~Options" => [ [ "~Toggle direction" => sub { my $td = !$w-> Hebrew-> textDirection; $w-> Hebrew-> textDirection($td); $arabic-> textDirection( $td); $editor-> textDirection( $td); $pod->textDirection($td); $pod->format(1); } ], [ "~Set font" => sub { $font_dialog //= Prima::Dialog::FontDialog-> create(logFont => $w->font); $w->font($font_dialog-> logFont) if $font_dialog-> execute == mb::OK; } ], ]], ], );
$w->insert( InputLine => name => 'Hebrew', origin => [ 10, 10], width => 200, text => "אפס123 - תרttttאה מה אני יכול!", growMode => gm::Floor, );
$w-> insert( Button => name => 'Farsi', text => 'ترک', origin => [ 320, 10 ], growMode => gm::GrowLoX, onClick => sub { $::application-> close }, );
my $panel = $w->insert( Widget => origin => [ 10, 50 ], size => [ 410, 140 ], growMode => gm::Client, );
my $arabic_text = "الفالح حلمه كبير. طول ساق النبتة وصارت شجرة في أرض الفالح وعلى الشجرة غصون و أوراق بفيتها إ حتمى الفالح الفالح حلمه كبير";
$editor = $panel-> insert( Edit => packInfo => { fill => 'both', expand => 1, pad => 10 , side => 'left'}, geometry => gt::Pack, name => 'Editor', text => $arabic_text, );
$arabic = $panel->insert( Label => packInfo => { fill => 'both', expand => 1, pad => 10, side => 'left' }, geometry => gt::Pack, name => 'Arabic', backColor => cl::Yellow, text => $arabic_text, wordWrap => 1, showPartial => 0, );
$pod = $panel-> insert( PodView => packInfo => { fill => 'both', expand => 1, pad => 10 , side => 'left'}, geometry => gt::Pack, name => 'Pod', );
$arabic_text =~ s/(.*?)\n//; $pod_text = "=head1 $1\n\n" . join("\n\n", split "\n", $arabic_text) . "\n\n"; $pod-> open_read( createIndex => 0 ); $pod-> read($pod_text); $pod-> close_read;
run Prima;
|