Viewing file: markup.pl (3.48 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
# XXX textoutbaseline=0 rotated # XXX document that block is expected to run text on textOutBaseline(1) # XXX document that block_wrap can workbreak only # XXX tb:: export # XXX backport tb's to TextView use strict; use warnings; use Prima qw(Application Buttons Edit Notebooks Label DetailedList Outlines Drawable::Markup MsgBox); use FindBin qw($Bin);
my $fp = [ { name => 'Times New Roman' }, { name => 'Courier New' }, { direction => 4 }, ]; my $img = [ Prima::Icon->load("$Bin/Hand.gif") ];
sub M($) { Prima::Drawable::Markup->new(markup => $_[0], fontPalette => $fp, picturePalette => $img ) }
my $Main = Prima::MainWindow->create( name => 'Main', text => 'Markup test', size => [500,500], designScale => [7, 16], );
my $tn = $Main->insert('TabbedNotebook', pack => { expand => 1, fill => 'both' }, tabs => [ M 'Q<White|Basic> Controls', M 'F<0|I<Detailed List>>', M 'U<Outline>', M 'F<2|Rotated> & Bidi>'], );
$tn->insert_to_page(0,'Label', text => M "\x{5e9} Some F<1|U<m>onospace text> in a label", autoHeight => 1, hotKey => 'm', backColor => cl::Yellow, wordWrap => 1, focusLink => 'List', pack => { side => 'top', fill => 'x', anchor => 'w' }, );
$tn->insert_to_page(0,'Button', text => M 'Some B<C<LightRed|U<r>ed text>> in a button', pack => { side => 'top', anchor => 'w' }, hotKey => 'r', onClick => sub { message(M "Hello! This is the B<msgbox> speaking!") }, hint => M "Hints can I<also> be markupified", );
$tn->insert_to_page(0,'Radio', text => M 'P<0>Some S<+2|U<b>ig text> in a radio button', pack => { side => 'top' , anchor => 'w'}, hotKey => 'b', );
$tn->insert_to_page(0,'CheckBox', text => M 'P<0>Some S<-2|U<s>mall text> in a checkbox', pack => { side => 'top' , anchor => 'w'}, hotKey => 's', );
$tn->insert_to_page(0,'GroupBox', text => M 'Some B<mixed> I<text> in a groupbox', pack => { side => 'top', fill => 'x' }, );
$tn->insert_to_page(0,'ListBox', name => 'List', focusedItem => 0, items => [ M 'Some B<bold text>', M 'Some I<italic text>', M 'Some U<underlined text>', M 'Some M<,0.4,m>S<-2|superscript>M<,-0.4,m> and S<-2|subscript>', ], pack => { side => 'top', fill => 'x' }, );
$tn->insert_to_page(0,'Label', wordWrap => 1, text => M "Wrappable text: B<bold W<non-wrappable bold C<Green|and green>>, but still bold> text ", pack => { side => 'top', fill => 'both', expand => 1 }, );
$tn->insert_to_page(1,'DetailedList', items => [ [ M 'Some B<bold text>', M 'Some I<italic text>', M 'Some U<underlined text>' ], [ M 'Some S<+2|big text>', M 'Some S<-2|small text>', M 'Some F<1|monospace text>' ], ], columns => 3, headers => [ M 'B<Works>', M 'in I<headers>', M 'U<too>'], pack => { expand => 1, fill => 'both' }, );
$tn->insert_to_page(2,'StringOutline', items => [ [M 'Some B<bold text>', [ [M 'Some I<italic text>'], [M 'Some U<underlined text>'], ]], [M 'Some S<+2|big text>', [ [M 'Some S<-2|small text>', [ [M 'Some F<1|monospace text>' ], ]], ]], ], pack => { expand => 1, fill => 'both' }, );
$tn->insert_to_page(3,'Widget', font => { size => 16, direction => 30, name => 'Arial' }, pack => { expand => 1, fill => 'both' }, text => M "Q<Yellow|B<I<\x{5E9}\x{5DC}\x{5D5}\x{5DD}> C<Green|world>>!>", onPaint => sub { my ($self, $canvas) = @_; $canvas->clear; my ( $ox, $oy) = (20, 20); $canvas->text_out( $self->text, $ox, $oy ); $canvas->color(cl::LightRed); $canvas->fill_ellipse( $ox, $oy, 5, 5 ); }, );
run Prima;
|