Testfile template file without additional options

package Syntax::Kamelon::Wx::PluggableTextCtrl; use strict; use warnings; use Carp; use vars qw($VERSION); $VERSION="0.01"; use Wx qw( :textctrl :font :colour ); use Wx::DND; use Wx qw( wxTheClipboard ); use base qw( Wx::TextCtrl ); use Wx::Event qw( EVT_CHAR ); require Syntax::Kamelon::Wx::PluggableTextCtrl::KeyEchoes; require Syntax::Kamelon::Wx::PluggableTextCtrl::UndoRedo; require Syntax::Kamelon::Wx::PluggableTextCtrl::Highlighter; my $defaultfont = [10, wxFONTFAMILY_MODERN, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, 0]; my $debug = 0; if ($debug) { use Data::Dumper; } sub new { my $class = shift; my $self = $class->SUPER::new(@_); $self->{CALLBACK} = sub {}; $self->{COMMANDS} = { 'doremove' => \&DoRemove, 'doreplace' => \&DoReplace, 'dowrite' => \&DoWrite, }; $self->{LISTENING} = 0; $self->{OVRMODE} = 0; $self->{PLUGINS} = []; $self->SetFont( Wx::Font->new(@$defaultfont) ); EVT_CHAR($self, \&OnChar); return $self; } sub AppendText { my $self = shift; unless ($self->Broadcast('append', @_)) { $self->SUPER::Append(@_); } } sub Broadcast { my $self = shift; my $plugs = $self->{PLUGINS}; my $flag = 0; foreach (@$plugs) { if ($_->Receive(@_)) { $flag = 1; } } return $flag; } 1; __END__