*** empty log message ***
authorroot <root>
Sat, 7 Jan 2006 21:43:17 +0000 (21:43 +0000)
committerroot <root>
Sat, 7 Jan 2006 21:43:17 +0000 (21:43 +0000)
src/perl/urxvt-popup
src/urxvt.pm

index cd902fd..8a385bf 100644 (file)
@@ -18,7 +18,9 @@ sub refresh {
          $rend = $self->{press} ? "\x1b[m" : "\x1b[30;46m";
       }
 
-      $cmd .= "$rend\x1b[K" . $self->locale_encode ($item->{text}) . "\015\012";
+      $cmd .= "$rend\x1b[K";
+      $cmd .= $self->locale_encode ($item->{render}->($item));
+      $cmd .= "\015\012";
 
       $row++;
    }
index 36ed839..bf22500 100644 (file)
@@ -399,8 +399,10 @@ Change the custom value.
 
 package urxvt;
 
+use utf8;
 use strict;
 use Scalar::Util ();
+use List::Util ();
 
 our $TERM;
 our @HOOKNAME;
@@ -1002,7 +1004,18 @@ sub add_item {
 sub add_button {
    my ($self, $text, $cb) = @_;
 
-   $self->add_item ({ type => "button", text => "[ $text ]", activate => $cb });
+   $self->add_item ({ type => "button", text => "[ $text ]", activate => $cb,
+      render => sub { $_[0]{text} },
+   });
+}
+
+sub add_toggle {
+   my ($self, $text, $cb, $value) = @_;
+
+   $self->add_item ({ type => "button", text => "  $text", value => $value,
+      render => sub { ($_[0]{value} ? "✔" : " ") . substr $_[0]{text}, 1 },
+      activate => sub { $cb->($_[0]{value} = !$_[0]{value}); },
+   });
 }
 
 sub show {