summaryrefslogtreecommitdiffstats
path: root/perl-install
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install')
-rw-r--r--perl-install/mygtk2.pm34
1 files changed, 19 insertions, 15 deletions
diff --git a/perl-install/mygtk2.pm b/perl-install/mygtk2.pm
index 0bc5a37e1..d2b1340aa 100644
--- a/perl-install/mygtk2.pm
+++ b/perl-install/mygtk2.pm
@@ -34,7 +34,8 @@ sub gtknew {
if (my $r = find { ref $_->[0] } group_by2(@_)) {
internal_error("gtknew $class: $r should be a string in @_");
}
- _gtk(undef, $class, 'gtknew', @_);
+ my %opts = @_;
+ _gtk(undef, $class, 'gtknew', \%opts);
}
sub gtkset {
@@ -46,9 +47,11 @@ sub gtkset {
if (my $r = find { ref $_->[0] } group_by2(@_)) {
internal_error("gtkset $class: $r should be a string in @_");
}
+ my %opts = @_;
+
$class =~ s/^Gtk2::(Gdk::)?// or internal_error("gtkset unknown class $class");
- _gtk($w, $class, 'gtkset', @_);
+ _gtk($w, $class, 'gtkset', \%opts);
}
sub gtkadd {
@@ -60,9 +63,10 @@ sub gtkadd {
if (my $r = find { ref $_->[0] } group_by2(@_)) {
internal_error("gtkadd $class: $r should be a string in @_");
}
+ my %opts = @_;
$class =~ s/^Gtk2::(Gdk::)?// or internal_error("gtkadd unknown class $class");
- _gtk('gtkadd', $w, $class, @_);
+ _gtk('gtkadd', $w, $class, \%opts);
}
@@ -89,30 +93,30 @@ sub gtkval_modify {
my $global_tooltips;
sub _gtk {
- my ($w, $class, $action, %opts) = @_;
+ my ($w, $class, $action, $opts) = @_;
if (my $f = $mygtk2::{"_gtk__$class"}) {
- $w = $f->($w, \%opts, $class, $action);
+ $w = $f->($w, $opts, $class, $action);
} else {
internal_error("$action $class: unknown class");
}
- $w->set_size_request(delete $opts{width} || -1, delete $opts{height} || -1) if exists $opts{width} || exists $opts{height};
- if (my $position = delete $opts{position}) {
+ $w->set_size_request(delete $opts->{width} || -1, delete $opts->{height} || -1) if exists $opts->{width} || exists $opts->{height};
+ if (my $position = delete $opts->{position}) {
$w->set_uposition($position->[0], $position->[1]);
}
- $w->set_name(delete $opts{widget_name}) if exists $opts{widget_name};
- $w->can_focus(delete $opts{can_focus}) if exists $opts{can_focus};
- $w->can_default(delete $opts{can_default}) if exists $opts{can_default};
- $w->grab_focus if delete $opts{grab_focus};
- (delete $opts{size_group})->add_widget($w) if $opts{size_group};
- if (my $tip = delete $opts{tip}) {
+ $w->set_name(delete $opts->{widget_name}) if exists $opts->{widget_name};
+ $w->can_focus(delete $opts->{can_focus}) if exists $opts->{can_focus};
+ $w->can_default(delete $opts->{can_default}) if exists $opts->{can_default};
+ $w->grab_focus if delete $opts->{grab_focus};
+ (delete $opts->{size_group})->add_widget($w) if $opts->{size_group};
+ if (my $tip = delete $opts->{tip}) {
$global_tooltips ||= Gtk2::Tooltips->new;
$global_tooltips->set_tip($w, $tip);
}
- if (%opts && !$opts{allow_unknown_options}) {
- internal_error("$action $class: unknown option(s) " . join(', ', keys %opts));
+ if (%$opts && !$opts->{allow_unknown_options}) {
+ internal_error("$action $class: unknown option(s) " . join(', ', keys %$opts));
}
$w;
}