--- rxvt-unicode/src/urxvt.pm 2006/01/20 10:27:08 1.113 +++ rxvt-unicode/src/urxvt.pm 2006/01/20 22:49:34 1.121 @@ -93,7 +93,7 @@ Binds a popup menu to Ctrl-Button3 that lets you convert the selection text into various other formats/action (such as uri unescaping, perl -evalution, web-browser starting etc.), depending on content. +evaluation, web-browser starting etc.), depending on content. Other extensions can extend this popup menu by pushing a code reference onto C<@{ $term->{selection_popup_hook} }>, that is called whenever the @@ -164,6 +164,31 @@ every error message as a selection pattern, and the second line transforms the message into vi commands to load the file. +=item readline + +A support package that tries to make editing with readline easier. At the +moment, it reacts to clicking with the left mouse button by trying to +move the text cursor to this position. It does so by generating as many +cursor-left or cursor-right keypresses as required (the this only works +for programs that correctly support wide characters). + +It only works when clicking into the same line (possibly extended over +multiple rows) as the text cursor and on the primary screen, to reduce the +risk of misinterpreting. The normal selection isn't disabled, so quick +successive clicks might interfere with selection creation in harmless +ways. + +=item tabbed + +This transforms the terminal into a tabbar with additional terminals, that +is, it implements what is commonly refered to as "tabbed terminal". The topmost line +displays a "[NEW]" button, which, when clicked, will add a new tab, followed by one +button per tab. + +Clicking a button will activate that tab. Pressing B and +B will switch to the tab left or right of the current one, +while B creates a new tab. + =item mark-urls Uses per-line display filtering (C) to underline urls and @@ -467,6 +492,8 @@ =item on_configure_notify $term, $event +=item on_property_notify $term, $event + =item on_key_press $term, $event, $keysym, $octets =item on_key_release $term, $event, $keysym @@ -485,14 +512,23 @@ the hook returns true, then the even will be ignored by rxvt-unicode. The event is a hash with most values as named by Xlib (see the XEvent -manpage), with the additional members C and C, which are the row -and column under the mouse cursor. +manpage), with the additional members C and C, which are the +(real, not screen-based) row and column under the mouse cursor. C additionally receives the string rxvt-unicode would output, if any, in locale-specific encoding. subwindow. +=item on_client_message $term, $event + +=item on_wm_protocols $term, $event + +=item on_wm_delete_window $term, $event + +Called when various types of ClientMessage events are received (all with +format=32, WM_PROTOCOLS or WM_PROTOCOLS:WM_DELETE_WINDOW). + =back =cut @@ -518,6 +554,8 @@ our $RESCLASS; our $RXVTNAME; +our $NOCHAR = chr 0xfffe; + =head2 Variables in the C Package =over 4 @@ -1240,6 +1278,10 @@ confused by changes in cursor position or scrolling. Its useful inside a C hook, though. +=item $term->scr_change_screen ($screen) + +Switch to given screen - 0 primary, 1 secondary. + =item $term->cmd_parse ($octets) Similar to C, but the argument must be in the @@ -1332,6 +1374,10 @@ Return the modifier masks corresponding to the "ISO Level 3 Shift" (often AltGr), the meta key (often Alt) and the num lock key, if applicable. +=item $screen = $term->current_screen + +Returns the currently displayed screen (0 primary, 1 secondary). + =item $view_start = $term->view_start ([$newvalue]) Returns the row number of the topmost displayed line. Maximum value is @@ -1359,11 +1405,11 @@ to replace only parts of a line. The font index in the rendition will automatically be updated. -C<$text> is in a special encoding: tabs and wide characters that use more -than one cell when displayed are padded with urxvt::NOCHAR characters -(C). Characters with combining characters and other characters -that do not fit into the normal tetx encoding will be replaced with -characters in the private use area. +C<$text> is in a special encoding: tabs and wide characters that use +more than one cell when displayed are padded with C<$urxvt::NOCHAR> +characters. Characters with combining characters and other characters that +do not fit into the normal tetx encoding will be replaced with characters +in the private use area. You have to obey this encoding when changing text. The advantage is that C and similar functions work on screen cells and not on @@ -1548,6 +1594,36 @@ evaluation errors, as it is better to lose the grab in the error case as the session. +=item $atom = $term->XInternAtom ($atom_name[, $only_if_exists]) + +=item $atom_name = $term->XGetAtomName ($atom) + +=item @atoms = $term->XListProperties ($window) + +=item ($type,$format,$octets) = $term->XGetWindowProperty ($window, $property) + +=item $term->XChangeWindowProperty ($window, $property, $type, $format, $octets) + +=item $term->XDeleteProperty ($window, $property) + +=item $window = $term->DefaultRootWindow + +=item $term->XReparentWindow ($window, $parent, [$x, $y]) + +=item $term->XMapWindow ($window) + +=item $term->XUnmapWindow ($window) + +=item $term->XMoveResizeWindow ($window, $x, $y, $width, $height) + +=item ($x, $y, $child_window) = $term->XTranslateCoordinates ($src, $dst, $x, $y) + +=item $term->XChangeInput ($window, $add_events[, $del_events]) + +Various X or X-related functions. The C<$term> object only serves as +the source of the display, otherwise those functions map more-or-less +directory onto the X functions of the same name. + =back =cut @@ -1792,6 +1868,67 @@ =back +=head2 The C Class + +This class implements idle watchers, that get called automatically when +the process is idle. They should return as fast as possible, after doing +some useful work. + +=over 4 + +=item $iw = new urxvt::iw + +Create a new idle watcher object in stopped state. + +=item $iw = $iw->cb (sub { my ($iw) = @_; ... }) + +Set the callback to be called when the watcher triggers. + +=item $timer = $timer->start + +Start the watcher. + +=item $timer = $timer->stop + +Stop the watcher. + +=back + +=head2 The C Class + +This class implements process watchers. They create an event whenever a +process exits, after which they stop automatically. + + my $pid = fork; + ... + $term->{pw} = urxvt::pw + ->new + ->start ($pid) + ->cb (sub { + my ($pw, $exit_status) = @_; + ... + }); + +=over 4 + +=item $pw = new urxvt::pw + +Create a new process watcher in stopped state. + +=item $pw = $pw->cb (sub { my ($pw, $exit_status) = @_; ... }) + +Set the callback to be called when the timer triggers. + +=item $pw = $timer->start ($pid) + +Tells the wqtcher to start watching for process C<$pid>. + +=item $pw = $pw->stop + +Stop the watcher. + +=back + =head1 ENVIRONMENT =head2 URXVT_PERL_VERBOSITY