# # This file is part of Curses-Toolkit # # This software is copyright (c) 2011 by Damien "dams" Krotkine. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # use warnings; use strict; package Curses::Toolkit::Theme::Default::Test; { $Curses::Toolkit::Theme::Default::Test::VERSION = '0.210'; } # ABSTRACT: widget test theme use parent qw(Curses::Toolkit::Theme::Default::Color); use Params::Validate qw(SCALAR ARRAYREF HASHREF CODEREF GLOB GLOBREF SCALARREF HANDLE BOOLEAN UNDEF validate validate_pos); #use Curses; my $output_writer; sub set_writer { my ($class, $writer) = @_; $output_writer = $writer; } sub new { my $class = shift; my $widget = shift; my $self = $class->SUPER::new($widget); $self->{output_writer} = $output_writer || sub { print STDERR "@_\n"; }; $self->{curses_mockup} = Curses::Toolkit::Theme::Default::Test::CursesMockup->new( { output_writer => $output_writer } ); return $self; } # override curses handler method sub _get_curses_handler { my ($self) = @_; return $self->{curses_mockup}; } sub default_fgcolor { 'white' } sub default_bgcolor { 'black' } sub ULCORNER { '+'; } sub LLCORNER { '+'; } sub URCORNER { '+'; } sub LRCORNER { '+'; } sub HLINE { '-'; } sub VLINE { '|'; } # the values of this theme sub HLINE_NORMAL { } sub HLINE_FOCUSED { } sub HLINE_CLICKED { } sub VLINE_NORMAL { } sub VLINE_FOCUSED { } sub VLINE_CLICKED { } sub CORNER_NORMAL { } sub CORNER_FOCUSED { } sub CORNER_CLICKED { } sub STRING_NORMAL { } sub STRING_FOCUSED { } sub STRING_CLICKED { } sub VSTRING_NORMAL { } sub VSTRING_FOCUSED { } sub VSTRING_CLICKED { } sub TITLE_NORMAL { } sub TITLE_FOCUSED { } sub TITLE_CLICKED { } sub RESIZE_NORMAL { } sub RESIZE_FOCUSED { } sub RESIZE_CLICKED { } sub BLANK_NORMAL { } sub BLANK_FOCUSED { } sub BLANK_CLICKED { } package Curses::Toolkit::Theme::Default::Test::CursesMockup; { $Curses::Toolkit::Theme::Default::Test::CursesMockup::VERSION = '0.210'; } sub new { bless { %{$_[1]} }, $_[0] } sub attrset { } sub attron { } sub attroff { } sub hline { $_[0]->{output_writer}->($_[2], $_[1], $_[3] x $_[4]) } sub vline { $_[0]->{output_writer}->($_[2], $_, $_[3]) foreach ( $_[1] .. $_[1]+$_[4]-1) } sub addch { $_[0]->{output_writer}->($_[2], $_[1], $_[3]) } sub addstr { $_[0]->{output_writer}->($_[2], $_[1], $_[3]) } 1; __END__ =pod =head1 NAME Curses::Toolkit::Theme::Default::Test - widget test theme =head1 VERSION version 0.210 =head1 DESCRIPTION This theme is used for testing : it doesn't mess too much with the terminal, and it provides the output as string, that can be used for checking test results. =head1 CLASS METHOD =head2 set_writer =head1 CONSTRUCTOR =head2 new the coderef will be called with 3 arguments : $x, $y, and the data to be outputed. input : a Curses::Toolkit::Widget output : a Curses::Toolkit::Theme::Default::Test object =head1 AUTHOR Damien "dams" Krotkine =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2011 by Damien "dams" Krotkine. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut