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 )