Gtk-Perl
view release on metacpan or search on metacpan
Gtk/samples/gslide.pl view on Meta::CPAN
}
sub do_page {
$page = $i; # FIXME
if ( defined $opt_d ) {
print "Running convert ". $win->XWINDOW . " to $opt_d\n";
system("convert x:". $win->XWINDOW ." slide$page.$opt_d");
}
Gtk->main;
}
sub set_font {
my ($w, $n) = @_;
my ($fs) = new Gtk::FontSelectionDialog("Changing font: $n");
$fs->set_font_name($fonts{$n}->[1]);
$fs->cancel_button->signal_connect('clicked', sub {$fs->destroy});
$fs->ok_button->signal_connect('clicked', sub {
$fonts{$n} = [$fs->get_font, $fs->get_font_name];
$fs->destroy
});
$fs->show;
}
sub get_fonts {
my ($m, $mi, $i);
$m = new Gtk::Menu;
foreach $i (sort keys %fonts) {
$mi = new Gtk::MenuItem($i);
$mi->show;
$m->append($mi);
$mi->signal_connect('activate', \&set_font, $i);
}
return $m;
}
sub show_menu {
my ($x, $y, $button) = @_;
my ($m, $mi, $index);
$m = new Gtk::Menu;
$mi = new Gtk::MenuItem('Quit');
$mi->show;
$mi->signal_connect('activate', sub {Gtk->exit(0)});
$m->append($mi);
$mi = new Gtk::MenuItem('Fonts');
$mi->show;
$mi->set_submenu(get_fonts());
$m->append($mi);
$mi = new Gtk::MenuItem();
$mi->show;
$mi->set_sensitive(0);
$m->append($mi);
foreach $index ( sort {$a <=> $b} keys %slides) {
$mi = new Gtk::MenuItem($slides{$index});
$mi->show;
$mi->signal_connect('activate', sub {
$i = $index;
$started = 0;
Gtk->main_quit;
});
$m->append($mi);
}
$m->popup(undef, undef, 3, 0, undef);
}
__DATA__
################# load needed resources
eval $fsize = int ($height*.6)
eval $fssize = int ($height*.35)
eval $fixedsize = int ($height*.3)
eval $imsize = int ($height*.25)
# eval $title = "Gtk+ e Perl"
image tcl Xcamel.gif
image bullet bullet.png
image logo gtk-logo-rgb.gif
font std -freefont-baskerville-bold-r-normal-*-*-$fsize-*-*-p-*-iso8859-1
font small -freefont-baskerville-bold-r-normal-*-*-$fssize-*-*-p-*-iso8859-1
#font fixed -freefont-tekton-normal-r-normal-*-*-$fixedsize-*-*-p-*-iso8859-1
#font fixed -bitstream-terminal-medium-r-normal-*-*-$fixedsize-*-*-c-*-iso8859-1
#font std -bitstream-charter-*-*-*-*-*-$fsize-*-*-*-*-*-*
#font small -bitstream-charter-*-*-*-*-*-$fssize-*-*-*-*-*-*
font fixed -adobe-courier-*-*-*-*-*-$fixedsize-*-*-*-*-*-*
define slide
slide $title
fg white
rect f 0 0 $width $height
fg black
font std
put c $title
skip 0 $fontsize
font small
end
define comment
fg black
font small
end
define pcode
fg red
font fixed
end
define bullet
image bullet l $fontsize $fontsize
evalx "skip 0 -" . int($fontsize/2+.5)
evalx $arg?"put n $arg":""
end
define tab
eval $xoffset = int($width/20)*(defined $arg ? $arg : 1)
end
#########################################
cmd slide $title = "Gtk+ e Perl"
image logo c $imsize $imsize
#put l
put l Gtk+: una buona libreria grafica
put l Perl: un linguaggio di programmazione flessibile
fg steelblue
skip 0 $fontsize
put l Rapid prototyping
put l Sviluppo di piccole applicazioni
put l Applicazioni "verticali"
put l Scripting interattivo
skip 0 $fontsize
fg red
font fixed
( run in 1.344 second using v1.01-cache-2.11-cpan-364913b4093 )