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.36 by root, Fri Jan 6 02:58:02 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
256=back 277=back
257 278
258=head2 Functions in the C<urxvt> Package 279=head2 Functions in the C<urxvt> Package
259 280
260=over 4 281=over 4
282
283=item $term = new urxvt [arg...]
284
285Creates a new terminal, very similar as if you had started it with
286C<system $binfile, arg...>. Croaks (and probably outputs an error message)
287if the new instance couldn't be created. Returns C<undef> if the new
288instance didn't initialise perl, and the terminal object otherwise. The
289C<init> and C<start> hooks will be called during the call.
261 290
262=item urxvt::fatal $errormessage 291=item urxvt::fatal $errormessage
263 292
264Fatally aborts execution with the given error message. Avoid at all 293Fatally aborts execution with the given error message. Avoid at all
265costs! The only time this is acceptable is when the terminal process 294costs! The only time this is acceptable is when the terminal process
482} 511}
483 512
484=head2 The C<urxvt::term> Class 513=head2 The C<urxvt::term> Class
485 514
486=over 4 515=over 4
516
517=item $term->destroy
518
519Destroy the terminal object (close the window, free resources etc.).
487 520
488=item $value = $term->resource ($name[, $newval]) 521=item $value = $term->resource ($name[, $newval])
489 522
490Returns the current resource value associated with a given name and 523Returns the current resource value associated with a given name and
491optionally sets a new value. Setting values is most useful in the C<init> 524optionally sets a new value. Setting values is most useful in the C<init>
632 665
633Normally its not a good idea to use this function, as programs might be 666Normally 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 667confused by changes in cursor position or scrolling. Its useful inside a
635C<on_add_lines> hook, though. 668C<on_add_lines> hook, though.
636 669
670=item $term->cmd_parse ($octets)
671
672Similar to C<scr_add_lines>, but the argument must be in the
673locale-specific encoding of the terminal and can contain command sequences
674(escape codes) that will be interpreted.
675
637=item $term->tt_write ($octets) 676=item $term->tt_write ($octets)
638 677
639Write the octets given in C<$data> to the tty (i.e. as program input). To 678Write 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 679pass characters instead of octets, you should convert your strings first
641to the locale-specific encoding using C<< $term->locale_encode >>. 680to the locale-specific encoding using C<< $term->locale_encode >>.
735about the logical line that row C<$row_number> is part of. It supports the 774about the logical line that row C<$row_number> is part of. It supports the
736following methods: 775following methods:
737 776
738=over 4 777=over 4
739 778
740=item $text = $line->t 779=item $text = $line->t ([$new_text])
741 780
742Returns the full text of the line, similar to C<ROW_t> 781Returns or replaces the full text of the line, similar to C<ROW_t>
743 782
744=item $rend = $line->r 783=item $rend = $line->r ([$new_rend])
745 784
746Returns the full rendition array of the line, similar to C<ROW_r> 785Returns or replaces the full rendition array of the line, similar to C<ROW_r>
747 786
748=item $length = $line->l 787=item $length = $line->l
749 788
750Returns the length of the line in cells, similar to C<ROW_l>. 789Returns the length of the line in cells, similar to C<ROW_l>.
751 790
780 819
781 bless { 820 bless {
782 term => $self, 821 term => $self,
783 beg => $beg, 822 beg => $beg,
784 end => $end, 823 end => $end,
824 ncol => $self->ncol,
785 len => ($end - $beg) * $self->ncol + $self->ROW_l ($end), 825 len => ($end - $beg) * $self->ncol + $self->ROW_l ($end),
786 }, urxvt::line:: 826 }, urxvt::line::
787} 827}
788 828
789sub urxvt::line::t { 829sub urxvt::line::t {
790 my ($self) = @_; 830 my ($self) = @_;
791 831
832 if (@_ > 1)
833 {
834 $self->{term}->ROW_t ($_, $_[1], 0, ($_ - $self->{beg}) * $self->{ncol}, $self->{ncol})
835 for $self->{beg} .. $self->{end};
836 }
837
838 defined wantarray &&
792 substr +(join "", map $self->{term}->ROW_t ($_), $self->{beg} .. $self->{end}), 839 substr +(join "", map $self->{term}->ROW_t ($_), $self->{beg} .. $self->{end}),
793 0, $self->{len} 840 0, $self->{len}
794} 841}
795 842
796sub urxvt::line::r { 843sub urxvt::line::r {
797 my ($self) = @_; 844 my ($self) = @_;
798 845
846 if (@_ > 1)
847 {
848 $self->{term}->ROW_r ($_, $_[1], 0, ($_ - $self->{beg}) * $self->{ncol}, $self->{ncol})
849 for $self->{beg} .. $self->{end};
850 }
851
852 if (defined wantarray) {
799 my $rend = [ 853 my $rend = [
800 map @{ $self->{term}->ROW_r ($_) }, $self->{beg} .. $self->{end} 854 map @{ $self->{term}->ROW_r ($_) }, $self->{beg} .. $self->{end}
801 ]; 855 ];
802 $#$rend = $self->{len} - 1; 856 $#$rend = $self->{len} - 1;
803 $rend 857 return $rend;
858 }
859
860 ()
804} 861}
805 862
806sub urxvt::line::beg { $_[0]{beg} } 863sub urxvt::line::beg { $_[0]{beg} }
807sub urxvt::line::end { $_[0]{end} } 864sub urxvt::line::end { $_[0]{end} }
808sub urxvt::line::l { $_[0]{len} } 865sub urxvt::line::l { $_[0]{len} }
809 866
810sub urxvt::line::offset_of { 867sub urxvt::line::offset_of {
811 my ($self, $row, $col) = @_; 868 my ($self, $row, $col) = @_;
812 869
813 ($row - $self->{beg}) * $self->{term}->ncol + $col 870 ($row - $self->{beg}) * $self->{ncol} + $col
814} 871}
815 872
816sub urxvt::line::coord_of { 873sub urxvt::line::coord_of {
817 my ($self, $offset) = @_; 874 my ($self, $offset) = @_;
818 875
819 use integer; 876 use integer;
820 877
821 ( 878 (
822 $offset / $self->{term}->ncol + $self->{beg}, 879 $offset / $self->{ncol} + $self->{beg},
823 $offset % $self->{term}->ncol 880 $offset % $self->{ncol}
824 ) 881 )
825} 882}
826 883
827=item ($row, $col) = $line->coord_of ($offset) 884=item ($row, $col) = $line->coord_of ($offset)
828=item $text = $term->special_encode $string 885=item $text = $term->special_encode $string

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines