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

Comparing rxvt-unicode/src/urxvt.pm (file contents):
Revision 1.33 by root, Thu Jan 5 01:04:10 2006 UTC vs.
Revision 1.38 by root, Fri Jan 6 03:43:12 2006 UTC

60 60
61=item digital-clock 61=item digital-clock
62 62
63Displays a digital clock using the built-in overlay. 63Displays a digital clock using the built-in overlay.
64 64
65=item mark-urls
66
67Uses per-line filtering (C<on_line_update>) to underline urls.
68
65=item example-refresh-hooks 69=item example-refresh-hooks
66 70
67Displays a very simple digital clock in the upper right corner of the 71Displays a very simple digital clock in the upper right corner of the
68window. Illustrates overwriting the refresh callbacks to create your own 72window. Illustrates overwriting the refresh callbacks to create your own
69overlays or changes. 73overlays or changes.
70 74
71=item mark-urls 75=item example-filter-input
72 76
73A not very useful example of filtering all text output to the terminal, by 77A not very useful example of filtering all text output to the terminal, by
74underlining all urls that matches a certain regex (i.e. some urls :). It 78underlining all urls that matches a certain regex (i.e. some urls :). It
75is not very useful because urls that are output in multiple steps (e.g. 79is not very useful because urls that are output in multiple steps (e.g.
76when typing them) do not get marked. 80when typing them) do not get marked.
133=over 4 137=over 4
134 138
135=item on_init $term 139=item on_init $term
136 140
137Called after a new terminal object has been initialized, but before 141Called after a new terminal object has been initialized, but before
138windows are created or the command gets run. 142windows are created or the command gets run. Most methods are unsafe to
143call or deliver senseless data, as terminal size and other characteristics
144have not yet been determined. You can safely query and change resources,
145though.
139 146
140=item on_reset $term 147=item on_reset $term
141 148
142Called after the screen is "reset" for any reason, such as resizing or 149Called after the screen is "reset" for any reason, such as resizing or
143control sequences. Here is where you can react on changes to size-related 150control sequences. Here is where you can react on changes to size-related
223can filter/change and output the text yourself by returning a true value 230can filter/change and output the text yourself by returning a true value
224and calling C<< $term->scr_add_lines >> yourself. Please note that this 231and calling C<< $term->scr_add_lines >> yourself. Please note that this
225might be very slow, however, as your hook is called for B<all> text being 232might be very slow, however, as your hook is called for B<all> text being
226output. 233output.
227 234
235=item on_line_update $term, $row
236
237Called whenever a line was updated or changed. Can be used to filter
238screen output (e.g. underline urls or other useless stuff). Only lines
239that are being shown will be filtered, and, due to performance reasons,
240not always immediately.
241
242The row number is always the topmost row of the line if the line spans
243multiple rows.
244
245Please note that, if you change the line, then the hook might get called
246later with the already-modified line (e.g. if unrelated parts change), so
247you cannot just toggle rendition bits, but only set them.
248
228=item on_refresh_begin $term 249=item on_refresh_begin $term
229 250
230Called just before the screen gets redrawn. Can be used for overlay 251Called just before the screen gets redrawn. Can be used for overlay
231or similar effects by modify terminal contents in refresh_begin, and 252or similar effects by modify terminal contents in refresh_begin, and
232restoring them in refresh_end. The built-in overlay and selection display 253restoring them in refresh_end. The built-in overlay and selection display
240 261
241Called whenever the user presses a key combination that has a 262Called whenever the user presses a key combination that has a
242C<perl:string> action bound to it (see description of the B<keysym> 263C<perl:string> action bound to it (see description of the B<keysym>
243resource in the @@RXVT_NAME@@(1) manpage). 264resource in the @@RXVT_NAME@@(1) manpage).
244 265
266=item on_key_press $term, $event, $octets
267
268=item on_key_release $term, $event
269
270=item on_button_press $term, $event
271
272=item on_button_release $term, $event
273
274=item on_motion_notify $term, $event
275
276Called whenever the corresponding X event is received for the terminal
277(see the XEvent manpage) If the hook returns true, then the even will be
278ignored by rxvt-unicode.
279
280C<on_key_press> additionally receives the string rxvt-unicode would
281output, if any, in locale-specific encoding.
282
283subwindow.
284
245=back 285=back
246 286
247=head2 Variables in the C<urxvt> Package 287=head2 Variables in the C<urxvt> Package
248 288
249=over 4 289=over 4
256=back 296=back
257 297
258=head2 Functions in the C<urxvt> Package 298=head2 Functions in the C<urxvt> Package
259 299
260=over 4 300=over 4
301
302=item $term = new urxvt [arg...]
303
304Creates a new terminal, very similar as if you had started it with
305C<system $binfile, arg...>. Croaks (and probably outputs an error message)
306if the new instance couldn't be created. Returns C<undef> if the new
307instance didn't initialise perl, and the terminal object otherwise. The
308C<init> and C<start> hooks will be called during the call.
261 309
262=item urxvt::fatal $errormessage 310=item urxvt::fatal $errormessage
263 311
264Fatally aborts execution with the given error message. Avoid at all 312Fatally aborts execution with the given error message. Avoid at all
265costs! The only time this is acceptable is when the terminal process 313costs! The only time this is acceptable is when the terminal process
482} 530}
483 531
484=head2 The C<urxvt::term> Class 532=head2 The C<urxvt::term> Class
485 533
486=over 4 534=over 4
535
536=item $term->destroy
537
538Destroy the terminal object (close the window, free resources etc.).
487 539
488=item $value = $term->resource ($name[, $newval]) 540=item $value = $term->resource ($name[, $newval])
489 541
490Returns the current resource value associated with a given name and 542Returns the current resource value associated with a given name and
491optionally sets a new value. Setting values is most useful in the C<init> 543optionally sets a new value. Setting values is most useful in the C<init>
632 684
633Normally its not a good idea to use this function, as programs might be 685Normally its not a good idea to use this function, as programs might be
634confused by changes in cursor position or scrolling. Its useful inside a 686confused by changes in cursor position or scrolling. Its useful inside a
635C<on_add_lines> hook, though. 687C<on_add_lines> hook, though.
636 688
689=item $term->cmd_parse ($octets)
690
691Similar to C<scr_add_lines>, but the argument must be in the
692locale-specific encoding of the terminal and can contain command sequences
693(escape codes) that will be interpreted.
694
637=item $term->tt_write ($octets) 695=item $term->tt_write ($octets)
638 696
639Write the octets given in C<$data> to the tty (i.e. as program input). To 697Write the octets given in C<$data> to the tty (i.e. as program input). To
640pass characters instead of octets, you should convert your strings first 698pass characters instead of octets, you should convert your strings first
641to the locale-specific encoding using C<< $term->locale_encode >>. 699to the locale-specific encoding using C<< $term->locale_encode >>.
735about the logical line that row C<$row_number> is part of. It supports the 793about the logical line that row C<$row_number> is part of. It supports the
736following methods: 794following methods:
737 795
738=over 4 796=over 4
739 797
740=item $text = $line->t 798=item $text = $line->t ([$new_text])
741 799
742Returns the full text of the line, similar to C<ROW_t> 800Returns or replaces the full text of the line, similar to C<ROW_t>
743 801
744=item $rend = $line->r 802=item $rend = $line->r ([$new_rend])
745 803
746Returns the full rendition array of the line, similar to C<ROW_r> 804Returns or replaces the full rendition array of the line, similar to C<ROW_r>
747 805
748=item $length = $line->l 806=item $length = $line->l
749 807
750Returns the length of the line in cells, similar to C<ROW_l>. 808Returns the length of the line in cells, similar to C<ROW_l>.
751 809
780 838
781 bless { 839 bless {
782 term => $self, 840 term => $self,
783 beg => $beg, 841 beg => $beg,
784 end => $end, 842 end => $end,
843 ncol => $self->ncol,
785 len => ($end - $beg) * $self->ncol + $self->ROW_l ($end), 844 len => ($end - $beg) * $self->ncol + $self->ROW_l ($end),
786 }, urxvt::line:: 845 }, urxvt::line::
787} 846}
788 847
789sub urxvt::line::t { 848sub urxvt::line::t {
790 my ($self) = @_; 849 my ($self) = @_;
791 850
851 if (@_ > 1)
852 {
853 $self->{term}->ROW_t ($_, $_[1], 0, ($_ - $self->{beg}) * $self->{ncol}, $self->{ncol})
854 for $self->{beg} .. $self->{end};
855 }
856
857 defined wantarray &&
792 substr +(join "", map $self->{term}->ROW_t ($_), $self->{beg} .. $self->{end}), 858 substr +(join "", map $self->{term}->ROW_t ($_), $self->{beg} .. $self->{end}),
793 0, $self->{len} 859 0, $self->{len}
794} 860}
795 861
796sub urxvt::line::r { 862sub urxvt::line::r {
797 my ($self) = @_; 863 my ($self) = @_;
798 864
865 if (@_ > 1)
866 {
867 $self->{term}->ROW_r ($_, $_[1], 0, ($_ - $self->{beg}) * $self->{ncol}, $self->{ncol})
868 for $self->{beg} .. $self->{end};
869 }
870
871 if (defined wantarray) {
799 my $rend = [ 872 my $rend = [
800 map @{ $self->{term}->ROW_r ($_) }, $self->{beg} .. $self->{end} 873 map @{ $self->{term}->ROW_r ($_) }, $self->{beg} .. $self->{end}
801 ]; 874 ];
802 $#$rend = $self->{len} - 1; 875 $#$rend = $self->{len} - 1;
803 $rend 876 return $rend;
877 }
878
879 ()
804} 880}
805 881
806sub urxvt::line::beg { $_[0]{beg} } 882sub urxvt::line::beg { $_[0]{beg} }
807sub urxvt::line::end { $_[0]{end} } 883sub urxvt::line::end { $_[0]{end} }
808sub urxvt::line::l { $_[0]{len} } 884sub urxvt::line::l { $_[0]{len} }
809 885
810sub urxvt::line::offset_of { 886sub urxvt::line::offset_of {
811 my ($self, $row, $col) = @_; 887 my ($self, $row, $col) = @_;
812 888
813 ($row - $self->{beg}) * $self->{term}->ncol + $col 889 ($row - $self->{beg}) * $self->{ncol} + $col
814} 890}
815 891
816sub urxvt::line::coord_of { 892sub urxvt::line::coord_of {
817 my ($self, $offset) = @_; 893 my ($self, $offset) = @_;
818 894
819 use integer; 895 use integer;
820 896
821 ( 897 (
822 $offset / $self->{term}->ncol + $self->{beg}, 898 $offset / $self->{ncol} + $self->{beg},
823 $offset % $self->{term}->ncol 899 $offset % $self->{ncol}
824 ) 900 )
825} 901}
826 902
827=item ($row, $col) = $line->coord_of ($offset) 903=item ($row, $col) = $line->coord_of ($offset)
828=item $text = $term->special_encode $string 904=item $text = $term->special_encode $string

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines