/[Frey]/trunk/lib/Frey/Web/Button.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/Frey/Web/Button.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 129 by dpavlin, Mon Jul 14 23:44:18 2008 UTC revision 145 by dpavlin, Wed Jul 16 21:19:53 2008 UTC
# Line 20  use Data::Dump qw/dump/; Line 20  use Data::Dump qw/dump/;
20  use Moose::Role;  use Moose::Role;
21    
22  # List of callbacks, buttons for now  # List of callbacks, buttons for now
23  has callback => ( is => 'rw', isa => 'HashRef', default => sub {{}} );  has callback => ( is => 'rw', isa => 'HashRef[CodeRef]', default => sub {{}} );
24  has callback_order => ( is => 'rw', isa => 'ArrayRef', default => sub { [] });  has callback_order => ( is => 'rw', isa => 'ArrayRef', default => sub { [] });
25    
26  sub add_button {  sub add_button {
27          my ($self, $name, $callback) = @_;          my ($self, $name, $callback) = @_;
28          $self->callback->{$name} = $callback;          $self->callback->{$name} = $callback;
29          push @{ $self->callback_order }, $name;          push @{ $self->callback_order }, $name;
30          warn "## callback_order = ",dump( $self->callback_order );          warn "## callback_order = ",dump( $self->callback_order ) if $self->debug;
31  }  }
32    
33  sub remove_button {  sub remove_button {
34          my ( $self, $name ) = @_;          my ( $self, $name ) = @_;
35          delete( $self->callback->{$name} );          delete( $self->callback->{$name} );
36          my @order = grep { !/^\Q$name\E$/ } @{ $self->callback_order };          my @order = grep { !/^\Q$name\E$/ } @{ $self->callback_order };
37          warn "# remove_button $name order = ",dump( @order );          warn "# remove_button $name order = ",dump( @order ) if $self->debug;
38          $self->callback_order( \@order );          $self->callback_order( \@order );
39  }  }
40    
# Line 42  sub rename_button { Line 42  sub rename_button {
42          my ( $self, $from, $to ) = @_;          my ( $self, $from, $to ) = @_;
43          $self->callback->{$to} = delete( $self->callback->{$from} );          $self->callback->{$to} = delete( $self->callback->{$from} );
44          my @order = ( map { s/^\Q$from\E$/$to/; $_ } @{ $self->callback_order } );          my @order = ( map { s/^\Q$from\E$/$to/; $_ } @{ $self->callback_order } );
45          warn "# rename_button $from => $to order = ",dump( @order );          warn "# rename_button $from => $to order = ",dump( @order ) if $self->debug;
46          $self->callback_order( \@order );          $self->callback_order( \@order );
47  }  }
48    

Legend:
Removed from v.129  
changed lines
  Added in v.145

  ViewVC Help
Powered by ViewVC 1.1.26