… | |
… | |
38 | } |
38 | } |
39 | |
39 | |
40 | sub INIT_INSTANCE { |
40 | sub INIT_INSTANCE { |
41 | my $self = shift; |
41 | my $self = shift; |
42 | |
42 | |
|
|
43 | $self->signal_connect (destroy => sub { |
|
|
44 | remove Glib::Source delete $self->{idle} if $self->{idle}; |
|
|
45 | %{$_[0]} = (); |
|
|
46 | }); |
|
|
47 | |
43 | $self->{buffer} = new Gtk2::TextBuffer $tagtable; |
48 | $self->{buffer} = new Gtk2::TextBuffer $tagtable; |
44 | |
49 | |
45 | $self->{widget} = new Gtk2::ScrolledWindow; |
50 | $self->{widget} = new Gtk2::ScrolledWindow; |
46 | $self->{widget}->set_policy("never", "always"); |
51 | $self->{widget}->set_policy("never", "always"); |
47 | $self->pack_start ($self->{widget}, 1, 1, 0); |
52 | $self->pack_start ($self->{widget}, 1, 1, 0); |
… | |
… | |
50 | $self->{view}->set_wrap_mode ("word"); |
55 | $self->{view}->set_wrap_mode ("word"); |
51 | $self->{view}->set_cursor_visible (0); |
56 | $self->{view}->set_cursor_visible (0); |
52 | |
57 | |
53 | $self->{view}->set_editable (0); |
58 | $self->{view}->set_editable (0); |
54 | |
59 | |
55 | #use PApp::Util; warn PApp::Util::dumpval ($self->{view}->get_events); |
|
|
56 | $self->{view}->signal_connect (motion_notify_event => sub { |
60 | $self->{view}->signal_connect (motion_notify_event => sub { |
57 | my ($widget, $event) = @_; |
61 | my ($widget, $event) = @_; |
58 | |
62 | |
59 | my $window = $widget->get_window ("text"); |
63 | my $window = $widget->get_window ("text"); |
60 | if ($event->window == $window) { |
64 | if ($event->window == $window) { |
… | |
… | |
95 | $self->signal_emit (command => $cmd, $arg); |
99 | $self->signal_emit (command => $cmd, $arg); |
96 | }); |
100 | }); |
97 | |
101 | |
98 | |
102 | |
99 | $self->set_end; |
103 | $self->set_end; |
100 | |
|
|
101 | $self; |
|
|
102 | } |
104 | } |
103 | |
105 | |
104 | sub do_command { |
106 | sub do_command { |
105 | my ($self, $cmd, $arg, %arg) = @_; |
107 | my ($self, $cmd, $arg, %arg) = @_; |
106 | } |
108 | } |