package Syntax::Kamelon::Wx::PluggableTextCtrl; 
use Wx qw( :textctrl :font :colour ); 
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 $self = $class->SUPER::new(@_); 
   $self->{CALLBACK} = sub {}; 
      'doremove' => \&DoRemove, 
      'doreplace' => \&DoReplace, 
   $self->SetFont( Wx::Font->new(@$defaultfont) ); 
   EVT_CHAR($self, \&OnChar);-
+
	   unless ($self->Broadcast('append', @_)) { 
      $self->SUPER::Append(@_); 
   my $plugs = $self->{PLUGINS};-
+
	      if ($_->Receive(@_)) {