ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/perl/urxvt-popup
(Generate patch)

Comparing rxvt-unicode/src/perl/urxvt-popup (file contents):
Revision 1.5 by root, Sat Jan 7 21:43:17 2006 UTC vs.
Revision 1.8 by root, Sun Jan 8 00:34:57 2006 UTC

1#! perl 1#! perl
2 2
3# this extension implements popup-menu functionality for urxvt. it works 3# this extension implements popup-menu functionality for urxvt. it works
4# together with the urxvt::popup class. 4# together with the urxvt::popup class.
5
6use List::Util;
7 5
8sub refresh { 6sub refresh {
9 my ($self) = @_; 7 my ($self) = @_;
10 8
11 my $cmd = "\x1b[H"; 9 my $cmd = "\x1b[H";
30 28
31sub on_motion_notify { 29sub on_motion_notify {
32 my ($self, $event) = @_; 30 my ($self, $event) = @_;
33 31
34 $self->{hover} = $event->{row} + 1; 32 $self->{hover} = $event->{row} + 1;
35 refresh $self; 33 $self->refresh;
36 34
37 1 35 1
38} 36}
39 37
40sub on_button_press { 38sub on_button_press {
41 my ($self, $event) = @_; 39 my ($self, $event) = @_;
42 40
43 $self->{press}[$event->{button}] = 1; 41 $self->{press}[$event->{button}] = 1;
44 refresh $self; 42 $self->refresh;
45 43
46 1 44 1
47} 45}
48 46
49sub on_button_release { 47sub on_button_release {
57 $self->destroy; 55 $self->destroy;
58 } 56 }
59 57
60 $self->{press}[$event->{button}] = 0; 58 $self->{press}[$event->{button}] = 0;
61 59
62 if ($event->{button} == 1) { 60 if ($col >= 0 && $col < $self->ncol
63 refresh $self; 61 && $row >= 0 && $row < @{ $self->{data}{item} }) {
62 $self->{data}{item}[$row]{activate}->($event);
63 }
64 64
65 warn "$event->{row} $event->{col}\n";#d# 65 $self->refresh;
66
67 if ($col >= 0 && $col < $self->ncol
68 && $row >= 0 && $row < @{ $self->{data}{item} }) {
69 $self->{data}{item}[$row]{activate}->($event);
70 print "ok\n";
71 }
72 }
73 66
74 1 67 1
75} 68}
76 69
77sub on_focus_out { 70sub on_focus_out {
78 my ($self) = @_; 71 my ($self) = @_;
79 72
80 delete $self->{hover}; 73 delete $self->{hover};
81 refresh $self; 74 $self->refresh;
82 75
83 () 76 ()
84} 77}
85 78
86sub on_init { 79sub on_init {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines