1 | #! perl |
1 | #! perl |
|
|
2 | |
|
|
3 | sub on_start { |
|
|
4 | my ($self) = @_; |
|
|
5 | |
|
|
6 | $self->grab_button (3, urxvt::ControlMask); |
|
|
7 | } |
2 | |
8 | |
3 | sub on_button_press { |
9 | sub on_button_press { |
4 | my ($self, $event) = @_; |
10 | my ($self, $event) = @_; |
5 | |
11 | |
6 | if ($event->{button} == 3 && $event->{state} & urxvt::ControlMask) { |
12 | if ($event->{button} == 3 && $event->{state} & urxvt::ControlMask) { |
7 | my $popup = $self->popup ($event); |
13 | my $popup = $self->popup ($event); |
8 | |
14 | |
|
|
15 | $popup->add_title ("Options"); |
|
|
16 | $popup->add_separator; |
|
|
17 | |
9 | my %unsafe = map +($_ => 1), |
18 | my %unsafe = map +($_ => 1), |
10 | qw(borderLess console iconic loginShell reverseVideo |
19 | qw(borderLess console iconic loginShell reverseVideo |
11 | scrollBar scrollBar_floating scrollBar_right |
20 | scrollBar scrollBar_floating scrollBar_right |
12 | secondaryScreen transparent utmpInhibit); |
21 | secondaryScreen transparent utmpInhibit meta8); |
13 | |
22 | |
14 | for my $name (sort keys %urxvt::OPTION) { |
23 | for my $name (sort keys %urxvt::OPTION) { |
15 | next if $unsafe{$name}; |
24 | next if $unsafe{$name}; |
16 | |
25 | |
17 | my $optval = $urxvt::OPTION{$name}; |
26 | my $optval = $urxvt::OPTION{$name}; |
18 | |
27 | |
19 | $popup->add_toggle ($name => sub { $self->option ($optval, $_[0]); warn "toggle $optval, $_[0]" }, |
28 | $popup->add_toggle ($name => sub { $self->option ($optval, $_[0]) }, |
20 | $self->option ($optval)); |
29 | $self->option ($optval)); |
21 | } |
30 | } |
22 | |
31 | |
23 | $popup->show; |
32 | $popup->show; |
24 | |
33 | |