summaryrefslogtreecommitdiffstats
path: root/perl-install
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install')
-rw-r--r--perl-install/bootsplash.pm55
-rw-r--r--perl-install/standalone/draksplash246
2 files changed, 56 insertions, 45 deletions
diff --git a/perl-install/bootsplash.pm b/perl-install/bootsplash.pm
index 86d78e4fc..3b46b4a66 100644
--- a/perl-install/bootsplash.pm
+++ b/perl-install/bootsplash.pm
@@ -2,6 +2,11 @@ package bootsplash;
use common;
use Xconfig::resolution_and_depth;
+use vars qw(@ISA %EXPORT_TAGS);
+
+@ISA = qw(Exporter);
+%EXPORT_TAGS = (drawing => [qw(rectangle2xywh xywh2rectangle distance farthest nearest)]);
+@EXPORT_OK = map { @$_ } values %EXPORT_TAGS;
my $themes_dir = "$::prefix/usr/share/bootsplash/themes";
my $themes_config_dir = "$::prefix/etc/bootsplash/themes";
@@ -148,4 +153,54 @@ LOGO_CONSOLE=$conf->{LOGO_CONSOLE}
));
}
+sub rectangle2xywh {
+ my ($rect) = @_;
+
+ my $x = min($rect->[0]{X} , $rect->[1]{X});
+ my $y = min($rect->[0]{Y} , $rect->[1]{Y});
+ my $w = abs($rect->[0]{X} - $rect->[1]{X});
+ my $h = abs($rect->[0]{Y} - $rect->[1]{Y});
+ ($x, $y, $w, $h);
+}
+
+sub xywh2rectangle {
+ my ($x, $y, $w, $h) = @_;
+ [ { X => $x, Y => $y }, { X => $x+$w, Y => $y+$w } ];
+}
+
+sub distance {
+ my ($p1, $p2) = @_;
+ sqr($p1->{X} - $p2->{X}) + sqr($p1->{Y} - $p2->{Y});
+}
+
+sub farthest {
+ my ($point, @others) = @_;
+ my $i = 0;
+ my $dist = 0;
+ my $farthest;
+ foreach (@others) {
+ my $d = distance($point, $_);
+ if ($d >= $dist) {
+ $dist = $d;
+ $farthest = $_;
+ }
+ }
+ $farthest;
+}
+
+sub nearest {
+ my ($point, @others) = @_;
+ my $i = 0;
+ my $dist;
+ my $nearest;
+ foreach (@others) {
+ my $d = distance($point, $_);
+ if (! defined $dist || $d < $dist) {
+ $dist = $d;
+ $nearest = $_;
+ }
+ }
+ $nearest;
+}
+
1;
diff --git a/perl-install/standalone/draksplash2 b/perl-install/standalone/draksplash2
index 38bb464d3..b7358e7ba 100644
--- a/perl-install/standalone/draksplash2
+++ b/perl-install/standalone/draksplash2
@@ -10,6 +10,7 @@ use ugtk2 qw(:all);
use Gtk2::Gdk::Keysyms;
use MDK::Common;
use Image::Magick;
+use bootsplash qw(:drawing);
my $kernel_size = 1500; #- in KiB
@@ -160,51 +161,6 @@ sub color_index2gc {
$gc;
}
-sub rectangle2xywh {
- my ($rect) = @_;
-
- my $x = min($rect->[0]{X} , $rect->[1]{X});
- my $y = min($rect->[0]{Y} , $rect->[1]{Y});
- my $w = abs($rect->[0]{X} - $rect->[1]{X});
- my $h = abs($rect->[0]{Y} - $rect->[1]{Y});
- ($x, $y, $w, $h);
-}
-
-sub distance {
- my ($p1, $p2) = @_;
- sqr($p1->{X} - $p2->{X}) + sqr($p1->{Y} - $p2->{Y});
-}
-
-sub farthest {
- my ($point, @others) = @_;
- my $i = 0;
- my $dist = 0;
- my $farthest;
- foreach (@others) {
- my $d = distance($point, $_);
- if ($d >= $dist) {
- $dist = $d;
- $farthest = $_;
- }
- }
- $farthest;
-}
-
-sub nearest {
- my ($point, @others) = @_;
- my $i = 0;
- my $dist;
- my $nearest;
- foreach (@others) {
- my $d = distance($point, $_);
- if (! defined $dist || $d < $dist) {
- $dist = $d;
- $nearest = $_;
- }
- }
- $nearest;
-}
-
sub create_popup() {
my %l = my @l = (
'Progress bar position' => sub { $current_rect = $progress_rect },