summaryrefslogtreecommitdiffstats
path: root/perl-install/install_steps_gtk.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/install_steps_gtk.pm')
-rw-r--r--perl-install/install_steps_gtk.pm32
1 files changed, 31 insertions, 1 deletions
diff --git a/perl-install/install_steps_gtk.pm b/perl-install/install_steps_gtk.pm
index f3edb9923..1d4d7a58c 100644
--- a/perl-install/install_steps_gtk.pm
+++ b/perl-install/install_steps_gtk.pm
@@ -532,7 +532,37 @@ sub installPackages {
$change_time = time();
my $f = $install_any::advertising_images[$i++ % @install_any::advertising_images];
log::l("advertising $f");
- eval { gtkpack($box, $advertising = gtkpng($f)) };
+ eval { my $pl = $f; $pl =~ s/\.png$/\.pl/;
+ my ($width, $height, @data);
+ eval(cat_($pl));
+ my ($pix, undef) = gtkcreate_png($f);
+ my $dbl_area;
+ my $darea = new Gtk::DrawingArea
+ gtkpack($box, $advertising = gtksignal_connect(gtkset_usize($darea, $width, eight), expose_event => sub {
+ if (!defined($dbl_area)) {
+ $dbl_area = new Gtk::Gdk::Pixmap($darea->window, $width, $height);
+ $dbl_area->draw_pixmap($darea->style->bg_gc('normal'),
+ $pix, 0, 0, $width, $height);
+ my $font = $darea->style->font;
+ my $style= new Gtk::Style;
+ $style->font(Gtk::Gdk::Font->fontset_load($font));
+ my $gc_text = new Gtk::Gdk::GC($darea->window);
+ $gc_text->set_foreground(gtkcolor(255, 255, 255));
+ foreach (@data) {
+ my ($width, $height, $lines, $widths, $heights, $ascents, $descents) = get_text_coord (
+ $_->[0], $style, $_->[3], $_->[4], 0, 1, 0);
+ my $i = 0;
+ foreach (@{$lines}) {
+ $dbl_area->draw_string($style->font, $gc_text, ${$widths}[$i], ${$ascents}[$i] + ${$heights}[$i], $_);
+ $i++;
+ }
+ }
+ } else {
+ $darea->window->draw_pixmap($darea->style->bg_gc('normal'),
+ $dbl_area, 0, 0, 0, 0, $width, $height);
+ }
+ }));
+ }
} else {
$advertising = undef;
}