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.47 by root, Sat Jan 7 21:22:02 2006 UTC vs.
Revision 1.53 by root, Sun Jan 8 01:16:09 2006 UTC

397 397
398=cut 398=cut
399 399
400package urxvt; 400package urxvt;
401 401
402use utf8;
402use strict; 403use strict;
403use Scalar::Util (); 404use Scalar::Util ();
405use List::Util ();
404 406
405our $TERM; 407our $TERM;
406our @HOOKNAME; 408our @HOOKNAME;
409our %OPTION;
407our $LIBDIR; 410our $LIBDIR;
408 411
409BEGIN { 412BEGIN {
410 urxvt->bootstrap; 413 urxvt->bootstrap;
411 414
477 local $TERM = shift; 480 local $TERM = shift;
478 my $htype = shift; 481 my $htype = shift;
479 482
480 if ($htype == 0) { # INIT 483 if ($htype == 0) { # INIT
481 my @dirs = ((split /:/, $TERM->resource ("perl_lib")), "$LIBDIR/perl"); 484 my @dirs = ((split /:/, $TERM->resource ("perl_lib")), "$LIBDIR/perl");
485
486 my %want_ext;
482 487
483 for my $ext (map { split /,/, $TERM->resource ("perl_ext_$_") } 1, 2) { 488 for (map { split /,/, $TERM->resource ("perl_ext_$_") } 1, 2) {
489 if ($_ eq "default") {
490 $want_ext{$_}++ for qw(selection option-popup);
491 } elsif (/^-(.*)$/) {
492 delete $want_ext{$1};
493 } else {
494 $want_ext{$_}++;
495 }
496 }
497
498 for my $ext (keys %want_ext) {
484 my @files = grep -f $_, map "$_/$ext", @dirs; 499 my @files = grep -f $_, map "$_/$ext", @dirs;
485 500
486 if (@files) { 501 if (@files) {
487 register_package extension_package $files[0]; 502 register_package extension_package $files[0];
488 } else { 503 } else {
562 577
563=item $term->destroy 578=item $term->destroy
564 579
565Destroy the terminal object (close the window, free resources etc.). 580Destroy the terminal object (close the window, free resources etc.).
566 581
582=item $isset = $term->option ($optval[, $set])
583
584Returns true if the option specified by C<$optval> is enabled, and
585optionally change it. All option values are stored by name in the hash
586C<%urxvt::OPTION>. Options not enabled in this binary are not in the hash.
587
588Here is a a likely non-exhaustive list of option names, please see the
589source file F</src/optinc.h> to see the actual list:
590
591 borderLess console cursorBlink cursorUnderline hold iconic insecure
592 intensityStyles jumpScroll loginShell mapAlert meta8 mouseWheelScrollPage
593 pastableTabs pointerBlank reverseVideo scrollBar scrollBar_floating
594 scrollBar_right scrollTtyKeypress scrollTtyOutput scrollWithBuffer
595 secondaryScreen secondaryScroll skipBuiltinGlyphs transparent
596 tripleclickwords utmpInhibit visualBell
597
567=item $value = $term->resource ($name[, $newval]) 598=item $value = $term->resource ($name[, $newval])
568 599
569Returns the current resource value associated with a given name and 600Returns the current resource value associated with a given name and
570optionally sets a new value. Setting values is most useful in the C<init> 601optionally sets a new value. Setting values is most useful in the C<init>
571hook. Unset resources are returned and accepted as C<undef>. 602hook. Unset resources are returned and accepted as C<undef>.
580 611
581Please note that resource strings will currently only be freed when the 612Please note that resource strings will currently only be freed when the
582terminal is destroyed, so changing options frequently will eat memory. 613terminal is destroyed, so changing options frequently will eat memory.
583 614
584Here is a a likely non-exhaustive list of resource names, not all of which 615Here is a a likely non-exhaustive list of resource names, not all of which
585are supported in every build, please see the source to see the actual 616are supported in every build, please see the source file F</src/rsinc.h>
586list: 617to see the actual list:
587 618
588 answerbackstring backgroundPixmap backspace_key boldFont boldItalicFont 619 answerbackstring backgroundPixmap backspace_key boldFont boldItalicFont
589 borderLess color cursorBlink cursorUnderline cutchars delete_key 620 borderLess color cursorBlink cursorUnderline cutchars delete_key
590 display_name embed ext_bwidth fade font geometry hold iconName 621 display_name embed ext_bwidth fade font geometry hold iconName
591 imFont imLocale inputMethod insecure int_bwidth intensityStyles 622 imFont imLocale inputMethod insecure int_bwidth intensityStyles
994package urxvt::popup; 1025package urxvt::popup;
995 1026
996sub add_item { 1027sub add_item {
997 my ($self, $item) = @_; 1028 my ($self, $item) = @_;
998 1029
1030 $item->{rend}{normal} = "\x1b[0;30;47m" unless exists $item->{rend}{normal};
1031 $item->{rend}{hover} = "\x1b[0;30;46m" unless exists $item->{rend}{hover};
1032 $item->{rend}{active} = "\x1b[m" unless exists $item->{rend}{active};
1033
1034 $item->{render} ||= sub { $_[0]{text} };
1035
999 push @{ $self->{item} }, $item; 1036 push @{ $self->{item} }, $item;
1037}
1038
1039sub add_separator {
1040 my ($self, $sep) = @_;
1041
1042 $sep ||= "═";
1043
1044 $self->add_item ({
1045 rend => { normal => "\x1b[0;30;47m", hover => "\x1b[0;30;47m", active => "\x1b[0;30;47m" },
1046 text => "",
1047 render => sub { $sep x $urxvt::TERM->ncol },
1048 activate => sub { },
1049 });
1050}
1051
1052sub add_title {
1053 my ($self, $title) = @_;
1054
1055 $self->add_item ({
1056 rend => { normal => "\x1b[38;5;11;44m", hover => "\x1b[38;5;11;44m", active => "\x1b[38;5;11;44m" },
1057 text => $title,
1058 activate => sub { },
1059 });
1000} 1060}
1001 1061
1002sub add_button { 1062sub add_button {
1003 my ($self, $text, $cb) = @_; 1063 my ($self, $text, $cb) = @_;
1004 1064
1005 $self->add_item ({ type => "button", text => "[ $text ]", activate => $cb }); 1065 $self->add_item ({ type => "button", text => "[ $text ]", activate => $cb});
1066}
1067
1068sub add_toggle {
1069 my ($self, $text, $cb, $value) = @_;
1070
1071 my $item; $item = {
1072 type => "button",
1073 text => " $text",
1074 value => $value,
1075 render => sub { ($item->{value} ? "* " : " ") . $text },
1076 activate => sub { $cb->($item->{value} = !$item->{value}); },
1077 };
1078
1079 $self->add_item ($item);
1006} 1080}
1007 1081
1008sub show { 1082sub show {
1009 my ($self) = @_; 1083 my ($self) = @_;
1010 1084

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines