This is an automated email from the git hooks/post-receive script.

gregoa pushed a commit to branch master
in repository libwx-perl.

commit a5beaf83cdb2c7bc41cf9ba49b6c85eafa7fb6d8
Author: gregor herrmann <gre...@debian.org>
Date:   Tue Apr 1 18:40:03 2014 +0200

    Imported Upstream version 0.9923
---
 Changes                                       |   6 +
 MANIFEST                                      |   4 +-
 META.json                                     |   2 +-
 META.yml                                      |   2 +-
 Window.xs                                     |   6 +-
 Wx.pm                                         |   4 +-
 XS/ComboBox.xs                                |  63 ++++--
 XS/ItemContainerImmutable.xsp                 |  10 +-
 build/Wx/XSP/Event.pm                         |  34 ++-
 cpp/app.h                                     |   4 +-
 cpp/helpers.h                                 |   2 +-
 ext/grid/XS/GridCellEditor.xs                 |  37 +++
 ext/grid/cpp/editor.h                         |  40 +++-
 ext/ribbon/XS/RibbonButtonBar.xsp             |  39 +++-
 ext/ribbon/t/03_threads.t                     |  31 ++-
 ext/ribbon/t/04_userdata.t                    |  44 ++--
 ext/stc/cpp/st_constants.cpp                  | 309 +++++++++++++++++++++++++-
 ext/webview/WebView.xs                        |  11 +-
 ext/webview/XS/{WebView.xsp => WebViewV2.xsp} |  73 ++++--
 ext/webview/XS/{WebView.xsp => WebViewV3.xsp} | 114 ++++++----
 ext/webview/cpp/webview_constants.cpp         |  69 ------
 ext/webview/t/03_threads.t                    |   3 +-
 ext/webview/typemap.xsp                       |   3 +-
 ext/xrc/cpp/xr_constants.cpp                  |   4 +-
 lib/Wx/Mini.pm                                |   2 +-
 typemap                                       |   2 +-
 26 files changed, 709 insertions(+), 209 deletions(-)

diff --git a/Changes b/Changes
index 136ae83..2a15003 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,11 @@
 Revision history for Perl extension Wx.
 
+0.9923 Mon Mar 31 2014
+    - added wxWindow::InitDialog
+    - updated wxComboBox::GetSelection
+    - build wxWidgets 3.0.0
+    - added wxComboBox::Popup() wxComboBox::Dismiss() ( Eric Colson )
+
 0.9922 Wed May 01 2013 
     - added wxCommandLinkButton
     - updates to ID creation methods
diff --git a/MANIFEST b/MANIFEST
index 68d61fa..a050ecb 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -365,7 +365,6 @@ ext/test/t/07_callback.t
 ext/test/typemap
 ext/test/typemap.xsp
 ext/test/XS/PerlTest.xsp
-ext/webview/cpp/webview_constants.cpp
 ext/webview/lib/Wx/WebView.pm
 ext/webview/Makefile.PL
 ext/webview/t/01_load.t
@@ -374,7 +373,8 @@ ext/webview/t/03_threads.t
 ext/webview/typemap
 ext/webview/typemap.xsp
 ext/webview/WebView.xs
-ext/webview/XS/WebView.xsp
+ext/webview/XS/WebViewV2.xsp
+ext/webview/XS/WebViewV3.xsp
 ext/xrc/cpp/xr_constants.cpp
 ext/xrc/lib/Wx/XRC.pm
 ext/xrc/Makefile.PL
diff --git a/META.json b/META.json
index 9e04e9d..fefc745 100644
--- a/META.json
+++ b/META.json
@@ -61,5 +61,5 @@
       },
       "x_MailingList" : "http://lists.perl.org/list/wxperl-users.html";
    },
-   "version" : "0.9922"
+   "version" : "0.9923"
 }
diff --git a/META.yml b/META.yml
index ad9ff5b..6b69d42 100644
--- a/META.yml
+++ b/META.yml
@@ -35,4 +35,4 @@ resources:
   license: http://dev.perl.org/licenses/
   repository: http://svn.code.sf.net/p/wxperl/code/wxPerl
   x_MailingList: http://lists.perl.org/list/wxperl-users.html
-version: 0.9922
+version: 0.9923
diff --git a/Window.xs b/Window.xs
index 4820eee..45c9f70 100644
--- a/Window.xs
+++ b/Window.xs
@@ -4,7 +4,7 @@
 // Author:      Mattia Barbon
 // Modified by:
 // Created:     29/10/2000
-// RCS-ID:      $Id: Window.xs 3481 2013-04-16 14:21:03Z mdootson $
+// RCS-ID:      $Id: Window.xs 3503 2013-06-19 06:39:27Z mdootson $
 // Copyright:   (c) 2000-2002, 2004-2010 Mattia Barbon
 // Licence:     This program is free software; you can redistribute it and/or
 //              modify it under the same terms as Perl itself
@@ -1229,6 +1229,10 @@ wxWindow::Validate()
 void
 wxWindow::Update()
 
+void
+wxWindow::InitDialog()
+
+
 #if WXPERL_W_VERSION_GE( 2, 6, 0 )
 
 void
diff --git a/Wx.pm b/Wx.pm
index 60278c7..2f2b574 100644
--- a/Wx.pm
+++ b/Wx.pm
@@ -4,7 +4,7 @@
 ## Author:      Mattia Barbon
 ## Modified by:
 ## Created:     01/10/2000
-## RCS-ID:      $Id: Wx.pm 3476 2013-04-15 00:00:55Z mdootson $
+## RCS-ID:      $Id: Wx.pm 3502 2013-05-02 01:50:51Z mdootson $
 ## Copyright:   (c) 2000-2013 Mattia Barbon
 ## Licence:     This program is free software; you can redistribute it and/or
 ##              modify it under the same terms as Perl itself
@@ -21,7 +21,7 @@ use vars qw(@ISA $VERSION $XS_VERSION $AUTOLOAD @EXPORT_OK 
%EXPORT_TAGS
 $_msw = 1; $_gtk = 2; $_motif = 3; $_mac = 4; $_x11 = 5;
 
 @ISA = qw(Exporter);
-$VERSION = '0.9922';
+$VERSION = '0.9923';
 $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
diff --git a/XS/ComboBox.xs b/XS/ComboBox.xs
index c8e313b..2766551 100644
--- a/XS/ComboBox.xs
+++ b/XS/ComboBox.xs
@@ -4,7 +4,7 @@
 ## Author:      Mattia Barbon
 ## Modified by:
 ## Created:     31/10/2000
-## RCS-ID:      $Id: ComboBox.xs 3142 2012-02-28 03:06:04Z mdootson $
+## RCS-ID:      $Id: ComboBox.xs 3504 2013-06-28 04:18:43Z mdootson $
 ## Copyright:   (c) 2000-2004, 2006-2008, 2010-2011 Mattia Barbon
 ## Licence:     This program is free software; you can redistribute it and/or
 ##              modify it under the same terms as Perl itself
@@ -82,8 +82,7 @@ wxComboBox::Create( parent, id = wxID_ANY, value = 
wxEmptyString, pos = wxDefaul
     delete[] chs;
   OUTPUT: RETVAL
 
-#if defined( __WXGTK__ ) || \
-    ( defined( __WXMAC__ ) && WXPERL_W_VERSION_GE( 2, 5, 1 ) )
+#if defined( __WXMAC__ ) || ( defined( __WXGTK__ ) && WXPERL_W_VERSION_LT( 2, 
9, 0 ) )
 
 #define WXPERL_IN_COMBOBOX
 
@@ -95,29 +94,22 @@ INCLUDE_COMMAND: $^X -pe 
"s/ItemContainer/ComboBox/g;s/->(?=[SG]etClientObject)/
 
 #undef WXPERL_IN_COMBOBOX
 
-#if WXPERL_W_VERSION_GE( 2, 9, 3 )
-
-bool 
-wxComboBox::IsListEmpty();
-
-bool 
-wxComboBox::IsTextEmpty();
+int
+wxComboBox::GetCurrentSelection()
 
 #endif
 
-#if WXPERL_W_VERSION_GE( 2, 7, 2 )
-
-int
-wxChoice::GetCurrentSelection()
+void
+wxComboBox::SetEditable( bool editable )
 
-#endif
 
-#if WXPERL_W_VERSION_GE( 2, 7, 0 )
+#if WXPERL_W_VERSION_GE( 2, 9, 3 )
 
-void
-wxComboBox::SetEditable( bool editable );
+bool 
+wxComboBox::IsListEmpty()
 
-#endif
+bool 
+wxComboBox::IsTextEmpty()
 
 #endif
 
@@ -127,8 +119,6 @@ wxComboBox::Copy()
 void
 wxComboBox::Cut()
 
-#if WXPERL_W_VERSION_GE( 2, 6, 0 ) && !defined(__WXMOTIF__)
-
 bool
 wxComboBox::CanCopy()
 
@@ -150,8 +140,6 @@ wxComboBox::CanUndo()
 bool
 wxComboBox::CanRedo()
 
-#endif
-
 long
 wxComboBox::GetInsertionPoint()
 
@@ -164,6 +152,16 @@ wxComboBox::GetValue()
 void
 wxComboBox::Paste()
 
+#if WXPERL_W_VERSION_GE( 2, 9, 1 )
+
+void
+wxComboBox::Popup()
+
+void
+wxComboBox::Dismiss()
+
+#endif
+
 void
 wxComboBox::Replace( from, to, text )
     long from
@@ -183,6 +181,25 @@ void
 wxComboBox::SetInsertionPointEnd()
 
 void
+wxComboBox::GetSelection()
+  PREINIT:
+    long from;
+    long to;
+    int  selindex;
+  PPCODE:
+    if( GIMME_V == G_ARRAY ) {
+        THIS->GetSelection( &from, &to );
+        EXTEND( SP, 2 );
+        PUSHs( sv_2mortal( newSViv( from ) ) );
+        PUSHs( sv_2mortal( newSViv( to ) ) );
+    } else {
+       selindex = THIS->GetSelection();
+       EXTEND( SP, 1 );
+        PUSHs( sv_2mortal( newSViv( selindex ) ) );
+    }
+
+
+void
 wxComboBox::SetSelection( ... )
   PPCODE:
     BEGIN_OVERLOAD()
diff --git a/XS/ItemContainerImmutable.xsp b/XS/ItemContainerImmutable.xsp
index 4d841b5..c50a8ba 100644
--- a/XS/ItemContainerImmutable.xsp
+++ b/XS/ItemContainerImmutable.xsp
@@ -4,7 +4,7 @@
 ## Author:      Mattia Barbon
 ## Modified by:
 ## Created:     14/08/2007
-## RCS-ID:      $Id: ItemContainerImmutable.xsp 3142 2012-02-28 03:06:04Z 
mdootson $
+## RCS-ID:      $Id: ItemContainerImmutable.xsp 3504 2013-06-28 04:18:43Z 
mdootson $
 ## Copyright:   (c) 2007 Mattia Barbon
 ## Licence:     This program is free software; you can redistribute it and/or
 ##              modify it under the same terms as Perl itself
@@ -49,13 +49,13 @@ wxItemContainerImmutable::FindString( ... )
     %name{FindStringCase} int FindString( const wxString& s, bool bCase = 
false ) const;
 #endif
 
-#if WXPERL_W_VERSION_GE( 2, 6, 0 ) && !defined(WXPERL_IN_COMBOBOX)
+#if !defined(WXPERL_IN_COMBOBOX)
     void SetSelection( int n );
-#endif
     int GetSelection() const;
-#if WXPERL_W_VERSION_GE( 2, 6, 0 ) || defined(WXPERL_IN_COMBOBOX)
-    bool SetStringSelection( const wxString& s );
 #endif
+
+    bool SetStringSelection( const wxString& s );
     wxString GetStringSelection() const;
+
     void Select( int n );
 };
diff --git a/build/Wx/XSP/Event.pm b/build/Wx/XSP/Event.pm
index ff66bb3..4c6b068 100644
--- a/build/Wx/XSP/Event.pm
+++ b/build/Wx/XSP/Event.pm
@@ -7,29 +7,43 @@ package build::Wx::XSP::Event;
 use strict;
 use warnings;
 
-sub new { return bless { parser => $_[1], events => [] }, $_[0] }
+sub new { return bless { parser => $_[1], events => [], exporttag => ''  }, 
$_[0] }
 
 sub register_plugin {
     my( $class, $parser ) = @_;
     my $plugin = $class->new( $parser );
-
-    $parser->add_toplevel_tag_plugin( plugin => $plugin );
+    $parser->add_toplevel_tag_plugin( plugin => $plugin);
+    $parser->add_toplevel_tag_plugin( plugin => $plugin, tag => 
'EventExportTag' );
     $parser->add_post_process_plugin( plugin => $plugin );
 }
 
 sub handle_toplevel_tag {
     my( $self, undef, $tag, %args ) = @_;
-    my( $evt, $const ) = ( $args{any_positional_arguments}[0][0],
+    
+    if ( $tag eq 'EventExportTag') {
+        my $checktag = $args{any_positional_arguments}[0];
+        die qq(Invalid Export Tag $checktag) if $checktag !~ /^[a-z]+$/;
+        $self->{exporttag} = $checktag;
+        return 1; # we handled the tag
+    }
+    
+    if ( $tag eq 'Event') {
+         my( $evt, $const ) = ( $args{any_positional_arguments}[0][0],
                            $args{any_positional_arguments}[1][0] );
-    my( $name, $args ) = $evt =~ /^(\w+)\((.*)\)$/ or die $evt;
-    my @args = split /\s*,\s*/, $args;
-
-    push @{$self->{events}}, [ $name, 1 + @args, $const, $args{condition} ];
+        my( $name, $args ) = $evt =~ /^(\w+)\((.*)\)$/ or die $evt;
+        my @args = split /\s*,\s*/, $args;
+    
+        push @{$self->{events}}, [ $name, 1 + @args, $const, $args{condition} 
];
+        return 1;
+    }
+    
+    return 0;
 }
 
 sub post_process {
     my( $self, $nodes ) = @_;
     my $parser = $self->{parser};
+    my $exporttag = $self->{exporttag};
     my( @events, %conditions );
 
     foreach my $e ( @{$self->{events}} ) {
@@ -49,11 +63,11 @@ sub post_process {
     my $all_conditions = join ' && ', 1,
                          map "defined( $_ )",
                              keys %conditions;
-    my @lines = sprintf <<'EOT', $all_conditions, $name, $evts;
+    my @lines = sprintf <<'EOT', $all_conditions, $exporttag, $name, $evts;
 #if %s
 
 // !package: Wx::Event
-// !tag:
+// !tag: %s
 // !parser: sub { $_[0] =~ m<^\s*wxPli_(?:Std)?Event\(\s*(\w+)\s*\,> }
 
 #include "cpp/helpers.h"
diff --git a/cpp/app.h b/cpp/app.h
index 331795a..eb9648d 100644
--- a/cpp/app.h
+++ b/cpp/app.h
@@ -14,7 +14,7 @@
 #undef Yield
 #endif
 
-#if WXPERL_W_VERSION_GE( 2, 9, 0 )
+#if WXPERL_W_VERSION_GE( 2, 9, 0 ) && WXPERL_W_VERSION_LT( 3, 0, 0 ) 
 #include <wx/apptrait.h>
 
 class wxPerlAppTraits : public wxGUIAppTraits
@@ -32,7 +32,7 @@ class wxPliApp:public wxApp
 public:
     wxPliApp( const char* package = "Wx::App" );
     ~wxPliApp();
-#if WXPERL_W_VERSION_GE( 2, 9, 0 )
+#if WXPERL_W_VERSION_GE( 2, 9, 0 ) && WXPERL_W_VERSION_LT( 3, 0, 0 ) 
 
     wxAppTraits* CreateTraits()
     {
diff --git a/cpp/helpers.h b/cpp/helpers.h
index f05791f..2fc7b9e 100644
--- a/cpp/helpers.h
+++ b/cpp/helpers.h
@@ -4,7 +4,7 @@
 // Author:      Mattia Barbon
 // Modified by:
 // Created:     29/10/2000
-// RCS-ID:      $Id: helpers.h 3397 2012-09-30 02:26:07Z mdootson $
+// RCS-ID:      $Id: helpers.h 3499 2013-05-02 01:46:04Z mdootson $
 // Copyright:   (c) 2000-2011 Mattia Barbon
 // Licence:     This program is free software; you can redistribute it and/or
 //              modify it under the same terms as Perl itself
diff --git a/ext/grid/XS/GridCellEditor.xs b/ext/grid/XS/GridCellEditor.xs
index 633a209..cc47d2a 100644
--- a/ext/grid/XS/GridCellEditor.xs
+++ b/ext/grid/XS/GridCellEditor.xs
@@ -47,6 +47,8 @@ wxGridCellEditor::Show( show, attr )
     bool show
     wxGridCellAttr* attr
 
+#if WXPERL_W_VERSION_LT( 2, 9, 5 )
+
 void
 wxGridCellEditor::PaintBackground( rectCell, attr )
     wxRect* rectCell
@@ -54,6 +56,18 @@ wxGridCellEditor::PaintBackground( rectCell, attr )
   CODE:
     THIS->PaintBackground( *rectCell, attr );
 
+#else
+
+void
+wxGridCellEditor::PaintBackground( dc, rectCell, attr )
+    wxDC* dc
+    wxRect* rectCell
+    wxGridCellAttr* attr
+  CODE:
+    THIS->PaintBackground( *dc, *rectCell, *attr );
+
+#endif
+
 void
 wxGridCellEditor::BeginEdit( row, col, grid )
     int row
@@ -213,3 +227,26 @@ wxPlGridCellEditor::new()
     RETVAL = r->m_callback.GetSelf();
     SvREFCNT_inc( RETVAL );
   OUTPUT: RETVAL
+
+#if WXPERL_W_VERSION_LT( 2, 9, 5 )
+
+void
+wxPlGridCellEditor::PaintBackground( rectCell, attr )
+    wxRect* rectCell
+    wxGridCellAttr* attr
+  CODE:
+    THIS->wxGridCellEditor::PaintBackground( *rectCell, attr );
+
+#else
+
+void
+wxPlGridCellEditor::PaintBackground( dc, rectCell, attr )
+    wxDC* dc
+    wxRect* rectCell
+    wxGridCellAttr* attr
+  CODE:
+    THIS->wxGridCellEditor::PaintBackground( *dc, *rectCell, *attr );
+
+#endif
+
+  
diff --git a/ext/grid/cpp/editor.h b/ext/grid/cpp/editor.h
index 7de6cc2..47b30ac 100644
--- a/ext/grid/cpp/editor.h
+++ b/ext/grid/cpp/editor.h
@@ -11,6 +11,9 @@
 /////////////////////////////////////////////////////////////////////////////
 
 #include "cpp/v_cback.h"
+#if WXPERL_W_VERSION_GE( 2, 9, 5 )
+#include <wx/dc.h>
+#endif
 #include <wx/clntdata.h>
 #include "cpp/helpers.h"
 
@@ -169,6 +172,8 @@ public:
             wxGridCellEditor::Show( show, attr );
     }
 
+#if WXPERL_W_VERSION_LT( 2, 9, 5 )
+
     void PaintBackground( const wxRect& rect, wxGridCellAttr* attr )
     {
         dTHX;
@@ -177,7 +182,7 @@ public:
         {
             ENTER;
             SAVETMPS;
-
+            
             SV* attr_sv = wxPli_non_object_2_sv( aTHX_ sv_newmortal(),
                                                  &attr, "Wx::GridCellAttr" );
 
@@ -194,6 +199,39 @@ public:
             wxGridCellEditor::PaintBackground( rect, attr );
     }
 
+#else
+    
+    virtual void PaintBackground( wxDC& dc, const wxRect& rect, const 
wxGridCellAttr& attr )
+    {
+        dTHX;
+
+        if( wxPliVirtualCallback_FindCallback( aTHX_ &m_callback, 
"PaintBackground" ) )
+        {
+            ENTER;
+            SAVETMPS;
+            
+            SV* attr_sv  = wxPli_non_object_2_sv( aTHX_ sv_newmortal(),
+                                                 &attr, "Wx::GridCellAttr" );
+            SV* dc_sv    = wxPli_object_2_sv( aTHX_ sv_newmortal(), &dc );
+            SV* rect_sv  = wxPli_non_object_2_sv( aTHX_ sv_newmortal(),
+                                                 (void*)&rect, "Wx::Rect" );
+
+            wxPliVirtualCallback_CallCallback
+                ( aTHX_ &m_callback, G_DISCARD|G_SCALAR,
+                  "sss", dc_sv, rect_sv, attr_sv );
+
+            wxPli_detach_object( aTHX_ attr_sv );
+            wxPli_detach_object( aTHX_ dc_sv );
+            wxPli_detach_object( aTHX_ rect_sv );
+            
+            FREETMPS;
+            LEAVE;
+        } else
+            wxGridCellEditor::PaintBackground( dc, rect, attr );
+    }
+    
+#endif
+
     virtual wxGridCellEditor* Clone() const
     {
         dTHX;
diff --git a/ext/ribbon/XS/RibbonButtonBar.xsp 
b/ext/ribbon/XS/RibbonButtonBar.xsp
index bc9b08b..70b0f32 100644
--- a/ext/ribbon/XS/RibbonButtonBar.xsp
+++ b/ext/ribbon/XS/RibbonButtonBar.xsp
@@ -141,7 +141,9 @@ public:
             %code{% int useid = ( button_id == wxID_ANY ) ? 
wxWindow::NewControlId() : button_id;
                 RETVAL = THIS->AddButton(useid, label, *bitmap, help_string, 
(wxRibbonButtonKind)kind);
                 %};              
-    
+
+#if WXPERL_W_VERSION_LE( 2, 9, 5 )
+
     %name{AddButtonLongParams} wxRibbonButtonBarButtonBase* AddButton(
                 int button_id,
                 const wxString& label,
@@ -156,6 +158,21 @@ public:
                 RETVAL = THIS->AddButton(useid, label, *bitmap, *bitmap_small, 
*bitmap_disabled, *bitmap_small_disabled, (wxRibbonButtonKind)kind, 
help_string, client_data);
                 %};                
 
+#else
+    %name{AddButtonLongParams} wxRibbonButtonBarButtonBase* AddButton(
+                int button_id,
+                const wxString& label,
+                const wxBitmap& bitmap,
+                const wxBitmap& bitmap_small = wxNullBitmapPtr,
+                const wxBitmap& bitmap_disabled = wxNullBitmapPtr,
+                const wxBitmap& bitmap_small_disabled = wxNullBitmapPtr,
+                unsigned int kind = wxRIBBON_BUTTON_NORMAL,
+                const wxString& help_string = wxEmptyString) %Overload
+            %code{% int useid = ( button_id == wxID_ANY ) ? 
wxWindow::NewControlId() : button_id;
+                RETVAL = THIS->AddButton(useid, label, *bitmap, *bitmap_small, 
*bitmap_disabled, *bitmap_small_disabled, (wxRibbonButtonKind)kind, 
help_string);
+                %};       
+#endif
+
     virtual bool Realize();
     
     virtual void ClearButtons();
@@ -210,6 +227,8 @@ public:
                     RETVAL = THIS->InsertButton( pos, useid, label, *bitmap, 
help_string, (wxRibbonButtonKind)kind);
                 %};  
 
+#if WXPERL_W_VERSION_LE( 2, 9, 5 )
+
     %name{InsertButtonLongParams} wxRibbonButtonBarButtonBase* InsertButton(
                 size_t pos,
                 int button_id,
@@ -225,6 +244,24 @@ public:
                     RETVAL = THIS->InsertButton( pos, useid, label, *bitmap, 
*bitmap_small, *bitmap_disabled, *bitmap_small_disabled, 
(wxRibbonButtonKind)kind, help_string, client_data);
                 %};
 
+#else
+
+    %name{InsertButtonLongParams} wxRibbonButtonBarButtonBase* InsertButton(
+                size_t pos,
+                int button_id,
+                const wxString& label,
+                const wxBitmap& bitmap,
+                const wxBitmap& bitmap_small = wxNullBitmapPtr,
+                const wxBitmap& bitmap_disabled = wxNullBitmapPtr,
+                const wxBitmap& bitmap_small_disabled = wxNullBitmapPtr,
+                unsigned int kind = wxRIBBON_BUTTON_NORMAL,
+                const wxString& help_string = wxEmptyString) %Overload
+                %code{% int useid = ( button_id == wxID_ANY ) ? 
wxWindow::NewControlId() : button_id;
+                    RETVAL = THIS->InsertButton( pos, useid, label, *bitmap, 
*bitmap_small, *bitmap_disabled, *bitmap_small_disabled, 
(wxRibbonButtonKind)kind, help_string);
+                %};
+
+#endif
+
     virtual size_t GetButtonCount() const;
     virtual wxSize GetMinSize() const;
 #endif
diff --git a/ext/ribbon/t/03_threads.t b/ext/ribbon/t/03_threads.t
index f9aa535..789b4d7 100755
--- a/ext/ribbon/t/03_threads.t
+++ b/ext/ribbon/t/03_threads.t
@@ -44,23 +44,42 @@ my $rgitem2 = $rgallery->Append( Wx::Bitmap->new( 100, 100, 
-1 ), -1, MyDataCont
 my $cdata1 = $rgallery->GetItemClientData( $rgitem1 );
 my $cdata2 = $rgitem2->GetClientData();
 
-my $buttonbar = Wx::RibbonButtonBar->new($rpanel, -1 );
-my $button = $buttonbar->AddButton(-1, "Hello World",
+my ( $buttonbar, $button,  $buttonbar2, $button2, $buttonbar3, $button3 );
+
+if ( Wx::wxVERSION < 3.000000 ) {
+    $buttonbar = Wx::RibbonButtonBar->new($rpanel, -1 );
+    $button = $buttonbar->AddButton(-1, "Hello World",
         Wx::Bitmap->new( 100, 100, -1 ), wxNullBitmap, wxNullBitmap, 
wxNullBitmap,
         Wx::wxRIBBON_BUTTON_NORMAL(), "HW Help",
         { data => 'Stashed Data' } );
 
-my $buttonbar2 = Wx::RibbonButtonBar->new($rpanel, -1 );
-my $button2 = $buttonbar2->AddButton(-1, "Hello World",
+    $buttonbar2 = Wx::RibbonButtonBar->new($rpanel, -1 );
+    $button2 = $buttonbar2->AddButton(-1, "Hello World",
         Wx::Bitmap->new( 100, 100, -1 ), wxNullBitmap, wxNullBitmap, 
wxNullBitmap,
         Wx::wxRIBBON_BUTTON_NORMAL(), "HW Help",
         { data => 'Stashed Data' } );
 
-my $buttonbar3 = Wx::RibbonButtonBar->new($rpanel, -1 );
-my $button3 = $buttonbar3->AddButton(-1, "Hello World",
+    $buttonbar3 = Wx::RibbonButtonBar->new($rpanel, -1 );
+    $button3 = $buttonbar3->AddButton(-1, "Hello World",
         Wx::Bitmap->new( 100, 100, -1 ), wxNullBitmap, wxNullBitmap, 
wxNullBitmap,
         Wx::wxRIBBON_BUTTON_NORMAL(), "HW Help",
         { data => 'Stashed Data' } );
+} else {
+    $buttonbar = Wx::RibbonButtonBar->new($rpanel, -1 );
+    $button = $buttonbar->AddButton(-1, "Hello World",
+        Wx::Bitmap->new( 100, 100, -1 ), wxNullBitmap, wxNullBitmap, 
wxNullBitmap,
+        Wx::wxRIBBON_BUTTON_NORMAL(), "HW Help");
+
+    $buttonbar2 = Wx::RibbonButtonBar->new($rpanel, -1 );
+    $button2 = $buttonbar2->AddButton(-1, "Hello World",
+        Wx::Bitmap->new( 100, 100, -1 ), wxNullBitmap, wxNullBitmap, 
wxNullBitmap,
+        Wx::wxRIBBON_BUTTON_NORMAL(), "HW Help");
+
+    $buttonbar3 = Wx::RibbonButtonBar->new($rpanel, -1 );
+    $button3 = $buttonbar3->AddButton(-1, "Hello World",
+        Wx::Bitmap->new( 100, 100, -1 ), wxNullBitmap, wxNullBitmap, 
wxNullBitmap,
+        Wx::wxRIBBON_BUTTON_NORMAL(), "HW Help");
+}
 
 my $toolbar = Wx::RibbonToolBar->new($rpanel, 1 );
 my $tool = $toolbar->AddTool(-1, Wx::Bitmap->new( 100, 100, -1 ), wxNullBitmap,
diff --git a/ext/ribbon/t/04_userdata.t b/ext/ribbon/t/04_userdata.t
index 7d8e97b..62e62b2 100755
--- a/ext/ribbon/t/04_userdata.t
+++ b/ext/ribbon/t/04_userdata.t
@@ -80,33 +80,37 @@ sub tests {
   # wxRibbonButtonBar
   ############################################################################
   
-  # client data in wxRibbonButtonBar seems not useful
-  # unless we hang on to the button references ?
-  
   my $bitmap = Wx::Bitmap->new('../../wxpl.xpm', Wx::wxBITMAP_TYPE_XPM() );
   my $ribbonpanel = Wx::RibbonPanel->new($this, -1);
-  my $buttonbar = Wx::RibbonButtonBar->new($ribbonpanel, 1 );
   
-  my $button = $buttonbar->AddButton(-1, "Hello World",
-        $bitmap, wxNullBitmap, wxNullBitmap, wxNullBitmap,
-        Wx::wxRIBBON_BUTTON_NORMAL(), "HW Help",
-        MyDataContainer->new('Stashed Data 4') );
+  # client data in wxRibbonButtonBar seems not useful
+  # unless we hang on to the button references ?
+  SKIP: {
+    skip 'No ClientData in wxRibbonButtonBar 3.x.x', 3 if Wx::wxVERSION >= 
3.000000;
   
-  $ctrldelete =  0;
-  my $delbutton = $buttonbar->AddButton(-1, "Hello World",
-            $bitmap, wxNullBitmap, wxNullBitmap, wxNullBitmap,
-            Wx::wxRIBBON_BUTTON_NORMAL(), "HW Help",
-            cdata(sub { $ctrldelete = 1 } ) );
+    my $buttonbar = Wx::RibbonButtonBar->new($ribbonpanel, 1 );
     
-  is( $button->GetClientData()->get_data, 'Stashed Data 4', 
"Wx::RibbonButtonBarButtonBase::GetClientData" );
+    my $button = $buttonbar->AddButton(-1, "Hello World",
+          $bitmap, wxNullBitmap, wxNullBitmap, wxNullBitmap,
+          Wx::wxRIBBON_BUTTON_NORMAL(), "HW Help",
+          MyDataContainer->new('Stashed Data 4') );
     
-  ok( $ctrldelete == 0, 'Wx::RibbonButtonBar: Data not changed before delete' 
);
-  
-  $delbutton->SetClientData(undef);
+    $ctrldelete =  0;
+    my $delbutton = $buttonbar->AddButton(-1, "Hello World",
+              $bitmap, wxNullBitmap, wxNullBitmap, wxNullBitmap,
+              Wx::wxRIBBON_BUTTON_NORMAL(), "HW Help",
+              cdata(sub { $ctrldelete = 1 } ) );
+      
+    is( $button->GetClientData()->get_data, 'Stashed Data 4', 
"Wx::RibbonButtonBarButtonBase::GetClientData" );
+      
+    ok( $ctrldelete == 0, 'Wx::RibbonButtonBar: Data not changed before 
delete' );
     
-  $buttonbar->Destroy;
-  
-  ok( $ctrldelete, 'Wx::RibbonButtonBar: deleting the ribbonbuttonbar deletes 
the data' );
+    $delbutton->SetClientData(undef);
+      
+    $buttonbar->Destroy;
+    
+    ok( $ctrldelete, 'Wx::RibbonButtonBar: deleting the ribbonbuttonbar 
deletes the data' );
+  };
   
   ############################################################################
   # wxRibbonToolBar
diff --git a/ext/stc/cpp/st_constants.cpp b/ext/stc/cpp/st_constants.cpp
index d3cecd6..4a25ca0 100644
--- a/ext/stc/cpp/st_constants.cpp
+++ b/ext/stc/cpp/st_constants.cpp
@@ -65,6 +65,43 @@ double stc_constant( const char* name, int arg )
 #endif
         break;
     case 'A':
+#if WXPERL_W_VERSION_GE( 2, 9, 5 )
+        r( wxSTC_A68K_DEFAULT );
+        r( wxSTC_A68K_COMMENT );
+        r( wxSTC_A68K_NUMBER_DEC );
+        r( wxSTC_A68K_NUMBER_BIN );
+        r( wxSTC_A68K_NUMBER_HEX );
+        r( wxSTC_A68K_STRING1 );
+        r( wxSTC_A68K_OPERATOR );
+        r( wxSTC_A68K_CPUINSTRUCTION );
+        r( wxSTC_A68K_EXTINSTRUCTION );
+        r( wxSTC_A68K_REGISTER );
+        r( wxSTC_A68K_DIRECTIVE );
+        r( wxSTC_A68K_MACRO_ARG );
+        r( wxSTC_A68K_LABEL );
+        r( wxSTC_A68K_STRING2 );
+        r( wxSTC_A68K_IDENTIFIER );
+        r( wxSTC_A68K_MACRO_DECLARATION );
+        r( wxSTC_A68K_COMMENT_WORD );
+        r( wxSTC_A68K_COMMENT_SPECIAL );
+        r( wxSTC_A68K_COMMENT_DOXYGEN );
+        r( wxSTC_ASM_COMMENTDIRECTIVE );
+        r( wxSTC_AVS_DEFAULT );
+        r( wxSTC_AVS_COMMENTBLOCK );
+        r( wxSTC_AVS_COMMENTBLOCKN );
+        r( wxSTC_AVS_COMMENTLINE );
+        r( wxSTC_AVS_NUMBER );
+        r( wxSTC_AVS_OPERATOR );
+        r( wxSTC_AVS_IDENTIFIER );
+        r( wxSTC_AVS_STRING );
+        r( wxSTC_AVS_TRIPLESTRING );
+        r( wxSTC_AVS_KEYWORD );
+        r( wxSTC_AVS_FILTER );
+        r( wxSTC_AVS_PLUGIN );
+        r( wxSTC_AVS_FUNCTION );
+        r( wxSTC_AVS_CLIPPROP );
+        r( wxSTC_AVS_USERDFN );
+#endif        
         r( wxSTC_AVE_DEFAULT );
         r( wxSTC_AVE_COMMENT );
         r( wxSTC_AVE_NUMBER );
@@ -240,6 +277,47 @@ double stc_constant( const char* name, int arg )
 #endif
         break;
     case 'C':
+#if WXPERL_W_VERSION_GE( 2, 9, 5 )
+        r( wxSTC_C_STRINGRAW );
+        r( wxSTC_C_TRIPLEVERBATIM );
+        r( wxSTC_C_HASHQUOTEDSTRING );
+        r( wxSTC_C_PREPROCESSORCOMMENT );
+        r( wxSTC_CASEINSENSITIVEBEHAVIOUR_RESPECTCASE );
+        r( wxSTC_CASEINSENSITIVEBEHAVIOUR_IGNORECASE );
+        r( wxSTC_CARETSTICKY_OFF );
+        r( wxSTC_CARETSTICKY_ON );
+        r( wxSTC_CARETSTICKY_WHITESPACE );
+        r( wxSTC_COFFEESCRIPT_DEFAULT );
+        r( wxSTC_COFFEESCRIPT_COMMENT );
+        r( wxSTC_COFFEESCRIPT_COMMENTLINE );
+        r( wxSTC_COFFEESCRIPT_COMMENTDOC );
+        r( wxSTC_COFFEESCRIPT_NUMBER );
+        r( wxSTC_COFFEESCRIPT_WORD );
+        r( wxSTC_COFFEESCRIPT_STRING );
+        r( wxSTC_COFFEESCRIPT_CHARACTER );
+        r( wxSTC_COFFEESCRIPT_UUID );
+        r( wxSTC_COFFEESCRIPT_PREPROCESSOR );
+        r( wxSTC_COFFEESCRIPT_OPERATOR );
+        r( wxSTC_COFFEESCRIPT_IDENTIFIER );
+        r( wxSTC_COFFEESCRIPT_STRINGEOL );
+        r( wxSTC_COFFEESCRIPT_VERBATIM );
+        r( wxSTC_COFFEESCRIPT_REGEX );
+        r( wxSTC_COFFEESCRIPT_COMMENTLINEDOC );
+        r( wxSTC_COFFEESCRIPT_WORD2 );
+        r( wxSTC_COFFEESCRIPT_COMMENTDOCKEYWORD );
+        r( wxSTC_COFFEESCRIPT_COMMENTDOCKEYWORDERROR );
+        r( wxSTC_COFFEESCRIPT_GLOBALCLASS );
+        r( wxSTC_COFFEESCRIPT_STRINGRAW );
+        r( wxSTC_COFFEESCRIPT_TRIPLEVERBATIM );
+        r( wxSTC_COFFEESCRIPT_HASHQUOTEDSTRING );
+        r( wxSTC_COFFEESCRIPT_COMMENTBLOCK );
+        r( wxSTC_COFFEESCRIPT_VERBOSE_REGEX );
+        r( wxSTC_COFFEESCRIPT_VERBOSE_REGEX_COMMENT );
+        r( wxSTC_CSS_MEDIA );
+        r( wxSTC_CSS_VARIABLE );
+        r( wxSTC_CURSORARROW );
+        r( wxSTC_CURSORREVERSEARROW );
+#endif        
         r( wxSTC_CHARSET_ANSI );
         r( wxSTC_CHARSET_DEFAULT );
         r( wxSTC_CHARSET_BALTIC );
@@ -491,7 +569,9 @@ double stc_constant( const char* name, int arg )
         r( wxSTC_CMD_WORDLEFTENDEXTEND );
         r( wxSTC_CMD_WORDRIGHTEND );
         r( wxSTC_CMD_WORDRIGHTENDEXTEND );
+#if WXPERL_W_VERSION_LT( 2, 9, 5 )
         r( wxSTC_CP_DBCS );
+#endif        
         r( wxSTC_CP_UTF8 );
 #if WXPERL_W_VERSION_GE( 2, 7, 2 )
         r( wxSTC_CSOUND_ARATE_VAR );
@@ -551,6 +631,36 @@ double stc_constant( const char* name, int arg )
 #endif
         break;
     case 'E':
+#if WXPERL_W_VERSION_GE( 2, 9, 5 )
+        r( wxSTC_ECL_DEFAULT );
+        r( wxSTC_ECL_COMMENT );
+        r( wxSTC_ECL_COMMENTLINE );
+        r( wxSTC_ECL_NUMBER );
+        r( wxSTC_ECL_STRING );
+        r( wxSTC_ECL_WORD0 );
+        r( wxSTC_ECL_OPERATOR );
+        r( wxSTC_ECL_CHARACTER );
+        r( wxSTC_ECL_UUID );
+        r( wxSTC_ECL_PREPROCESSOR );
+        r( wxSTC_ECL_UNKNOWN );
+        r( wxSTC_ECL_IDENTIFIER );
+        r( wxSTC_ECL_STRINGEOL );
+        r( wxSTC_ECL_VERBATIM );
+        r( wxSTC_ECL_REGEX );
+        r( wxSTC_ECL_COMMENTLINEDOC );
+        r( wxSTC_ECL_WORD1 );
+        r( wxSTC_ECL_COMMENTDOCKEYWORD );
+        r( wxSTC_ECL_COMMENTDOCKEYWORDERROR );
+        r( wxSTC_ECL_WORD2 );
+        r( wxSTC_ECL_WORD3 );
+        r( wxSTC_ECL_WORD4 );
+        r( wxSTC_ECL_WORD5 );
+        r( wxSTC_ECL_COMMENTDOC );
+        r( wxSTC_ECL_ADDED );
+        r( wxSTC_ECL_DELETED );
+        r( wxSTC_ECL_CHANGED );
+        r( wxSTC_ECL_MOVED );
+#endif        
         r( wxSTC_EOL_CR );
         r( wxSTC_EOL_LF );
         r( wxSTC_EOL_CRLF );
@@ -644,6 +754,9 @@ double stc_constant( const char* name, int arg )
 #endif
         break;
     case 'F':
+#if WXPERL_W_VERSION_GE( 2, 9, 5 )
+        r( wxSTC_FONT_SIZE_MULTIPLIER );
+#endif        
         r( wxSTC_FIND_WHOLEWORD );
         r( wxSTC_FIND_MATCHCASE );
         r( wxSTC_FIND_WORDSTART );
@@ -697,8 +810,27 @@ double stc_constant( const char* name, int arg )
         r( wxSTC_FOLDLEVELUNINDENT );
 #endif
 #if WXPERL_W_VERSION_GE( 2, 7, 2 )
+#if WXPERL_W_VERSION_LT( 2, 9, 5 )
         r( wxSTC_FS_ASM );
         r( wxSTC_FS_BINNUMBER );
+        r( wxSTC_FS_ERROR );
+        r( wxSTC_FS_HEXNUMBER );
+        r( wxSTC_FS_LABEL );
+#else
+        r( wxSTC_FS_WORDOPERATOR );
+        r( wxSTC_FS_DISABLEDCODE );
+        r( wxSTC_FS_DEFAULT_C );
+        r( wxSTC_FS_COMMENTDOC_C );
+        r( wxSTC_FS_COMMENTLINEDOC_C );
+        r( wxSTC_FS_KEYWORD_C );
+        r( wxSTC_FS_KEYWORD2_C );
+        r( wxSTC_FS_NUMBER_C );
+        r( wxSTC_FS_STRING_C );
+        r( wxSTC_FS_PREPROCESSOR_C );
+        r( wxSTC_FS_OPERATOR_C );
+        r( wxSTC_FS_IDENTIFIER_C );
+        r( wxSTC_FS_STRINGEOL_C );
+#endif
         r( wxSTC_FS_COMMENT );
         r( wxSTC_FS_COMMENTDOC );
         r( wxSTC_FS_COMMENTDOCKEYWORD );
@@ -708,14 +840,11 @@ double stc_constant( const char* name, int arg )
         r( wxSTC_FS_CONSTANT );
         r( wxSTC_FS_DATE );
         r( wxSTC_FS_DEFAULT );
-        r( wxSTC_FS_ERROR );
-        r( wxSTC_FS_HEXNUMBER );
         r( wxSTC_FS_IDENTIFIER );
         r( wxSTC_FS_KEYWORD );
         r( wxSTC_FS_KEYWORD2 );
         r( wxSTC_FS_KEYWORD3 );
         r( wxSTC_FS_KEYWORD4 );
-        r( wxSTC_FS_LABEL );
         r( wxSTC_FS_NUMBER );
         r( wxSTC_FS_OPERATOR );
         r( wxSTC_FS_PREPROCESSOR );
@@ -900,6 +1029,13 @@ double stc_constant( const char* name, int arg )
 #if WXPERL_W_VERSION_GE( 2, 7, 2 )
         r( wxSTC_INDIC_ROUNDBOX );
 #endif
+#if WXPERL_W_VERSION_GE( 2, 9, 5 )
+        r( wxSTC_INDIC_STRAIGHTBOX );
+        r( wxSTC_INDIC_DASH );
+        r( wxSTC_INDIC_DOTS );
+        r( wxSTC_INDIC_SQUIGGLELOW );
+        r( wxSTC_INDIC_DOTBOX );
+#endif
 #if WXPERL_W_VERSION_GE( 2, 7, 2 )
         r( wxSTC_INNO_COMMENT );
         r( wxSTC_INNO_COMMENT_PASCAL );
@@ -965,6 +1101,26 @@ double stc_constant( const char* name, int arg )
         r( wxSTC_KIX_VAR );
         break;
     case 'L':
+#if WXPERL_W_VERSION_GE( 2, 9, 5 )
+    r( wxSTC_L_TAG2 );
+        r( wxSTC_L_MATH2 );
+        r( wxSTC_L_COMMENT2 );
+        r( wxSTC_L_VERBATIM );
+        r( wxSTC_L_SHORTCMD );
+        r( wxSTC_L_SPECIAL );
+        r( wxSTC_L_CMDOPT );
+        r( wxSTC_L_ERROR );
+        r( wxSTC_LUA_LABEL );
+        r( wxSTC_LEX_TXT2TAGS );
+        r( wxSTC_LEX_A68K );
+        r( wxSTC_LEX_MODULA );
+        r( wxSTC_LEX_COFFEESCRIPT );
+        r( wxSTC_LEX_TCMD );
+        r( wxSTC_LEX_AVS );
+        r( wxSTC_LEX_ECL );
+        r( wxSTC_LEX_OSCRIPT );
+        r( wxSTC_LEX_VISUALPROLOG );
+#endif        
         r( wxSTC_LEX_ADA );
         r( wxSTC_LEX_ASM );
 #ifdef wxSTC_LEX_ASP
@@ -1174,6 +1330,33 @@ double stc_constant( const char* name, int arg )
         r( wxSTC_LUA_WORD8 );
         break;
     case 'M':
+#if WXPERL_W_VERSION_GE( 2, 9, 5 )
+        r( wxSTC_MARGINOPTION_NONE );
+        r( wxSTC_MARGINOPTION_SUBLINESELECT );
+        r( wxSTC_MARK_RGBAIMAGE );
+        r( wxSTC_MOD_LEXERSTATE );
+        r( wxSTC_MODEVENTMASKALL );
+        r( wxSTC_MODULA_DEFAULT );
+        r( wxSTC_MODULA_COMMENT );
+        r( wxSTC_MODULA_DOXYCOMM );
+        r( wxSTC_MODULA_DOXYKEY );
+        r( wxSTC_MODULA_KEYWORD );
+        r( wxSTC_MODULA_RESERVED );
+        r( wxSTC_MODULA_NUMBER );
+        r( wxSTC_MODULA_BASENUM );
+        r( wxSTC_MODULA_FLOAT );
+        r( wxSTC_MODULA_STRING );
+        r( wxSTC_MODULA_STRSPEC );
+        r( wxSTC_MODULA_CHAR );
+        r( wxSTC_MODULA_CHARSPEC );
+        r( wxSTC_MODULA_PROC );
+        r( wxSTC_MODULA_PRAGMA );
+        r( wxSTC_MODULA_PRGKEY );
+        r( wxSTC_MODULA_OPERATOR );
+        r( wxSTC_MODULA_BADSTR );
+        r( wxSTC_MULTIPASTE_ONCE );
+        r( wxSTC_MULTIPASTE_EACH );
+#endif        
         r( wxSTC_MARKER_MAX );
         r( wxSTC_MARK_CIRCLE );
         r( wxSTC_MARK_ROUNDRECT );
@@ -1401,6 +1584,27 @@ double stc_constant( const char* name, int arg )
 #endif
         break;
     case 'O':
+#if WXPERL_W_VERSION_GE( 2, 9, 5 )        
+        r( wxSTC_OSCRIPT_DEFAULT );
+        r( wxSTC_OSCRIPT_LINE_COMMENT );
+        r( wxSTC_OSCRIPT_BLOCK_COMMENT );
+        r( wxSTC_OSCRIPT_DOC_COMMENT );
+        r( wxSTC_OSCRIPT_PREPROCESSOR );
+        r( wxSTC_OSCRIPT_NUMBER );
+        r( wxSTC_OSCRIPT_SINGLEQUOTE_STRING );
+        r( wxSTC_OSCRIPT_DOUBLEQUOTE_STRING );
+        r( wxSTC_OSCRIPT_CONSTANT );
+        r( wxSTC_OSCRIPT_IDENTIFIER );
+        r( wxSTC_OSCRIPT_GLOBAL );
+        r( wxSTC_OSCRIPT_KEYWORD );
+        r( wxSTC_OSCRIPT_OPERATOR );
+        r( wxSTC_OSCRIPT_LABEL );
+        r( wxSTC_OSCRIPT_TYPE );
+        r( wxSTC_OSCRIPT_FUNCTION );
+        r( wxSTC_OSCRIPT_OBJECT );
+        r( wxSTC_OSCRIPT_PROPERTY );
+        r( wxSTC_OSCRIPT_METHOD );
+#endif        
 #if WXPERL_W_VERSION_GE( 2, 7, 2 )
         r( wxSTC_OPAL_BOOL_CONST );
         r( wxSTC_OPAL_COMMENT_BLOCK );
@@ -1477,6 +1681,21 @@ double stc_constant( const char* name, int arg )
         r( wxSTC_PL_FORMAT_IDENT );
         r( wxSTC_PL_SUB_PROTOTYPE );
 #endif
+#if WXPERL_W_VERSION_GE( 2, 9, 5 )
+        r( wxSTC_PL_STRING_VAR );
+        r( wxSTC_PL_XLAT );
+        r( wxSTC_PL_REGEX_VAR );
+        r( wxSTC_PL_REGSUBST_VAR );
+        r( wxSTC_PL_BACKTICKS_VAR );
+        r( wxSTC_PL_HERE_QQ_VAR );
+        r( wxSTC_PL_HERE_QX_VAR );
+        r( wxSTC_PL_STRING_QQ_VAR );
+        r( wxSTC_PL_STRING_QX_VAR );
+        r( wxSTC_PL_STRING_QR_VAR );
+        r( wxSTC_POWERSHELL_FUNCTION );
+        r( wxSTC_POWERSHELL_USER1 );
+        r( wxSTC_POWERSHELL_COMMENTSTREAM );
+#endif
 #if WXPERL_W_VERSION_GE( 2, 7, 2 )
         r( wxSTC_PL_POD_VERB );
         r( wxSTC_PL_VARIABLE_INDEXER );
@@ -1670,6 +1889,9 @@ double stc_constant( const char* name, int arg )
 #endif
         break;
     case 'S':
+#if WXPERL_W_VERSION_GE( 2, 9, 5 )
+        r( wxSTC_SCMOD_META );
+#endif        
 #if WXPERL_W_VERSION_GE( 2, 9, 4 )
         r( wxSTC_STATUS_OK );
         r( wxSTC_STATUS_FAILURE );
@@ -1865,6 +2087,50 @@ double stc_constant( const char* name, int arg )
 #endif
         break;
     case 'T':
+#if WXPERL_W_VERSION_GE( 2, 9, 5 )
+        r( wxSTC_TCMD_DEFAULT );
+        r( wxSTC_TCMD_COMMENT );
+        r( wxSTC_TCMD_WORD );
+        r( wxSTC_TCMD_LABEL );
+        r( wxSTC_TCMD_HIDE );
+        r( wxSTC_TCMD_COMMAND );
+        r( wxSTC_TCMD_IDENTIFIER );
+        r( wxSTC_TCMD_OPERATOR );
+        r( wxSTC_TCMD_ENVIRONMENT );
+        r( wxSTC_TCMD_EXPANSION );
+        r( wxSTC_TCMD_CLABEL );
+        r( wxSTC_TECHNOLOGY_DEFAULT );
+        r( wxSTC_TECHNOLOGY_DIRECTWRITE );
+        r( wxSTC_TXT2TAGS_DEFAULT );
+        r( wxSTC_TXT2TAGS_LINE_BEGIN );
+        r( wxSTC_TXT2TAGS_STRONG1 );
+        r( wxSTC_TXT2TAGS_STRONG2 );
+        r( wxSTC_TXT2TAGS_EM1 );
+        r( wxSTC_TXT2TAGS_EM2 );
+        r( wxSTC_TXT2TAGS_HEADER1 );
+        r( wxSTC_TXT2TAGS_HEADER2 );
+        r( wxSTC_TXT2TAGS_HEADER3 );
+        r( wxSTC_TXT2TAGS_HEADER4 );
+        r( wxSTC_TXT2TAGS_HEADER5 );
+        r( wxSTC_TXT2TAGS_HEADER6 );
+        r( wxSTC_TXT2TAGS_PRECHAR );
+        r( wxSTC_TXT2TAGS_ULIST_ITEM );
+        r( wxSTC_TXT2TAGS_OLIST_ITEM );
+        r( wxSTC_TXT2TAGS_BLOCKQUOTE );
+        r( wxSTC_TXT2TAGS_STRIKEOUT );
+        r( wxSTC_TXT2TAGS_HRULE );
+        r( wxSTC_TXT2TAGS_LINK );
+        r( wxSTC_TXT2TAGS_CODE );
+        r( wxSTC_TXT2TAGS_CODE2 );
+        r( wxSTC_TXT2TAGS_CODEBK );
+        r( wxSTC_TXT2TAGS_COMMENT );
+        r( wxSTC_TXT2TAGS_OPTION );
+        r( wxSTC_TXT2TAGS_PREPROC );
+        r( wxSTC_TXT2TAGS_POSTPROC );
+        r( wxSTC_TYPE_BOOLEAN );
+        r( wxSTC_TYPE_INTEGER );
+        r( wxSTC_TYPE_STRING );
+#endif        
         r( wxSTC_TIME_FOREVER );
 #if WXPERL_W_VERSION_GE( 2, 5, 2 )
         r( wxSTC_TEX_DEFAULT );
@@ -1926,8 +2192,39 @@ double stc_constant( const char* name, int arg )
 #if WXPERL_W_VERSION_GE( 2, 9, 4 )
         r( wxSTC_UNDO_MAY_COALESCE );
 #endif
+#if WXPERL_W_VERSION_GE( 2, 9, 5 )
+        r( wxSTC_UPDATE_CONTENT );
+        r( wxSTC_UPDATE_SELECTION );
+        r( wxSTC_UPDATE_V_SCROLL );
+        r( wxSTC_UPDATE_H_SCROLL );
+#endif
         break;
     case 'V':
+#if WXPERL_W_VERSION_GE( 2, 9, 5 )
+        r( wxSTC_VISUALPROLOG_DEFAULT );
+        r( wxSTC_VISUALPROLOG_KEY_MAJOR );
+        r( wxSTC_VISUALPROLOG_KEY_MINOR );
+        r( wxSTC_VISUALPROLOG_KEY_DIRECTIVE );
+        r( wxSTC_VISUALPROLOG_COMMENT_BLOCK );
+        r( wxSTC_VISUALPROLOG_COMMENT_LINE );
+        r( wxSTC_VISUALPROLOG_COMMENT_KEY );
+        r( wxSTC_VISUALPROLOG_COMMENT_KEY_ERROR );
+        r( wxSTC_VISUALPROLOG_IDENTIFIER );
+        r( wxSTC_VISUALPROLOG_VARIABLE );
+        r( wxSTC_VISUALPROLOG_ANONYMOUS );
+        r( wxSTC_VISUALPROLOG_NUMBER );
+        r( wxSTC_VISUALPROLOG_OPERATOR );
+        r( wxSTC_VISUALPROLOG_CHARACTER );
+        r( wxSTC_VISUALPROLOG_CHARACTER_TOO_MANY );
+        r( wxSTC_VISUALPROLOG_CHARACTER_ESCAPE_ERROR );
+        r( wxSTC_VISUALPROLOG_STRING );
+        r( wxSTC_VISUALPROLOG_STRING_ESCAPE );
+        r( wxSTC_VISUALPROLOG_STRING_ESCAPE_ERROR );
+        r( wxSTC_VISUALPROLOG_STRING_EOL_OPEN );
+        r( wxSTC_VISUALPROLOG_STRING_VERBATIM );
+        r( wxSTC_VISUALPROLOG_STRING_VERBATIM_SPECIAL );
+        r( wxSTC_VISUALPROLOG_STRING_VERBATIM_EOL );
+#endif            
         r( wxSTC_VISIBLE_SLOP );
         r( wxSTC_VISIBLE_STRICT );
 #if WXPERL_W_VERSION_GE( 2, 6, 0 )
@@ -1963,6 +2260,12 @@ double stc_constant( const char* name, int arg )
         r( wxSTC_V_WORD3 );
         break;
     case 'W':
+#if WXPERL_W_VERSION_GE( 2, 9, 5 )
+        r( wxSTC_WEIGHT_NORMAL );
+        r( wxSTC_WEIGHT_SEMIBOLD );
+        r( wxSTC_WEIGHT_BOLD );
+        r( wxSTC_WRAPVISUALFLAG_MARGIN );
+#endif
         r( wxSTC_WRAP_NONE );
         r( wxSTC_WRAP_WORD );
 #if WXPERL_W_VERSION_GE( 2, 7, 2 )
diff --git a/ext/webview/WebView.xs b/ext/webview/WebView.xs
index 6f88920..d829098 100644
--- a/ext/webview/WebView.xs
+++ b/ext/webview/WebView.xs
@@ -35,12 +35,19 @@ BOOT:
 
 #if WXPERL_W_VERSION_GE( 2, 9, 3 ) && wxUSE_WEBVIEW
 
-INCLUDE_COMMAND: $^X -I../.. -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp 
-t ../../typemap.xsp XS/WebView.xsp
+#if WXPERL_W_VERSION_GE( 3, 0, 0)
+
+INCLUDE_COMMAND: $^X -I../.. -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp 
-t ../../typemap.xsp XS/WebViewV3.xsp
+
+#else
+
+INCLUDE_COMMAND: $^X -I../.. -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp 
-t ../../typemap.xsp XS/WebViewV2.xsp
+
+#endif
 
 MODULE=Wx__WebView PACKAGE=Wx::WebView
 
 #include "cpp/ovl_const.cpp"
-#include <cpp/webview_constants.cpp>
 
 #endif
 
diff --git a/ext/webview/XS/WebView.xsp b/ext/webview/XS/WebViewV2.xsp
similarity index 88%
copy from ext/webview/XS/WebView.xsp
copy to ext/webview/XS/WebViewV2.xsp
index 1b6c792..793af63 100644
--- a/ext/webview/XS/WebView.xsp
+++ b/ext/webview/XS/WebViewV2.xsp
@@ -14,6 +14,9 @@
 %loadplugin{build::Wx::XSP::Enum};
 %loadplugin{build::Wx::XSP::Event};
 
+%EventExportTag{webview};
+%EnumExportTag{webview};
+
 %Event{%EVT_WEB_VIEW_NAVIGATING(id, func)%}
       {wxEVT_COMMAND_WEB_VIEW_NAVIGATING};
 %Event{%EVT_WEB_VIEW_NAVIGATED(id, func)%}
@@ -27,6 +30,47 @@
 %Event{%EVT_WEB_VIEW_TITLE_CHANGED(id, func)%}
       {wxEVT_COMMAND_WEB_VIEW_TITLE_CHANGED};      
 
+
+enum wxWebViewZoom
+{
+    wxWEB_VIEW_ZOOM_TINY,
+    wxWEB_VIEW_ZOOM_SMALL,
+    wxWEB_VIEW_ZOOM_MEDIUM,
+    wxWEB_VIEW_ZOOM_LARGE,
+    wxWEB_VIEW_ZOOM_LARGEST
+};
+
+enum wxWebViewZoomType
+{
+    wxWEB_VIEW_ZOOM_TYPE_LAYOUT,
+    wxWEB_VIEW_ZOOM_TYPE_TEXT
+};
+
+enum wxWebViewNavigationError
+{
+    wxWEB_NAV_ERR_CONNECTION,
+    wxWEB_NAV_ERR_CERTIFICATE,
+    wxWEB_NAV_ERR_AUTH,
+    wxWEB_NAV_ERR_SECURITY,
+    wxWEB_NAV_ERR_NOT_FOUND,
+    wxWEB_NAV_ERR_REQUEST,
+    wxWEB_NAV_ERR_USER_CANCELLED,
+    wxWEB_NAV_ERR_OTHER
+};
+
+enum wxWebViewReloadFlags
+{
+    wxWEB_VIEW_RELOAD_DEFAULT,
+    wxWEB_VIEW_RELOAD_NO_CACHE
+};
+
+enum wxWebViewBackend
+{
+    wxWEB_VIEW_BACKEND_DEFAULT,
+    wxWEB_VIEW_BACKEND_WEBKIT,
+    wxWEB_VIEW_BACKEND_IE
+};
+
 %name{Wx::WebViewHistoryItem} class wxWebViewHistoryItem
 {
     
@@ -78,6 +122,20 @@ public:
            const wxString& name = wxWebViewNameStr)
         %postcall{% wxPli_create_evthandler( aTHX_ RETVAL, "Wx::WebView" ); %};
 
+    virtual void Reload(wxWebViewReloadFlags flags = 
wxWEB_VIEW_RELOAD_DEFAULT);
+    
+    virtual void EnableContextMenu(bool enable = true);
+    
+    virtual bool IsContextMenuEnabled() const;
+    
+    // virtual void* GetNativeBackend() const;
+    
+#if WXPERL_W_VERSION_GE( 2, 9, 5 )
+
+    virtual long Find(const wxString& text, int flags = 
wxWEB_VIEW_FIND_DEFAULT);
+
+#endif
+
     virtual bool Create(wxWindow* parent,
                         wxWindowID id,
                         const wxString& url = wxWebViewDefaultURLStr,
@@ -104,8 +162,6 @@ public:
  
     /* TODO : IMP  virtual void RegisterHandler(wxSharedPtr<wxWebViewHandler> 
handler) = 0; */
     
-    virtual void Reload(wxWebViewReloadFlags flags = 
wxWEB_VIEW_RELOAD_DEFAULT);
-    
     virtual void RunScript(const wxString& javascript);
     
     virtual void SetEditable(bool enable = true);
@@ -140,11 +196,6 @@ public:
     
     virtual void EnableHistory(bool enable = true);
 
-#if WXPERL_W_VERSION_GE( 2, 9, 5 )
-
-    virtual long Find(const wxString& text, int flags = 
wxWEB_VIEW_FIND_DEFAULT);
-
-#endif
     
 %{
 
@@ -237,14 +288,6 @@ public:
     const wxString& GetURL() const;
 };
 
-/*
-wxEventType wxEVT_COMMAND_WEB_VIEW_NAVIGATING;
-wxEventType wxEVT_COMMAND_WEB_VIEW_NAVIGATED;
-wxEventType wxEVT_COMMAND_WEB_VIEW_LOADED;
-wxEventType wxEVT_COMMAND_WEB_VIEW_ERROR;
-wxEventType wxEVT_COMMAND_WEB_VIEW_NEWWINDOW;
-wxEventType wxEVT_COMMAND_WEB_VIEW_TITLE_CHANGED;
-*/
 
 %name{Wx::WebViewArchiveHandler} class wxWebViewArchiveHandler : public 
%name{Wx::WebViewHandler} wxWebViewHandler
 {
diff --git a/ext/webview/XS/WebView.xsp b/ext/webview/XS/WebViewV3.xsp
similarity index 73%
rename from ext/webview/XS/WebView.xsp
rename to ext/webview/XS/WebViewV3.xsp
index 1b6c792..aac116f 100644
--- a/ext/webview/XS/WebView.xsp
+++ b/ext/webview/XS/WebViewV3.xsp
@@ -14,18 +14,65 @@
 %loadplugin{build::Wx::XSP::Enum};
 %loadplugin{build::Wx::XSP::Event};
 
-%Event{%EVT_WEB_VIEW_NAVIGATING(id, func)%}
-      {wxEVT_COMMAND_WEB_VIEW_NAVIGATING};
-%Event{%EVT_WEB_VIEW_NAVIGATED(id, func)%}
-      {wxEVT_COMMAND_WEB_VIEW_NAVIGATED};
-%Event{%EVT_WEB_VIEW_LOADED(id, func)%}
-      {wxEVT_COMMAND_WEB_VIEW_LOADED};
-%Event{%EVT_WEB_VIEW_ERROR(id, func)%}
-      {wxEVT_COMMAND_WEB_VIEW_ERROR};
-%Event{%EVT_WEB_VIEW_NEWWINDOW(id, func)%}
-      {wxEVT_COMMAND_WEB_VIEW_NEWWINDOW};
-%Event{%EVT_WEB_VIEW_TITLE_CHANGED(id, func)%}
-      {wxEVT_COMMAND_WEB_VIEW_TITLE_CHANGED};      
+%EventExportTag{webview};
+%EnumExportTag{webview};
+
+%Event{%EVT_WEBVIEW_NAVIGATING(id, func)%}
+      {wxEVT_COMMAND_WEBVIEW_NAVIGATING};
+%Event{%EVT_WEBVIEW_NAVIGATED(id, func)%}
+      {wxEVT_COMMAND_WEBVIEW_NAVIGATED};
+%Event{%EVT_WEBVIEW_LOADED(id, func)%}
+      {wxEVT_COMMAND_WEBVIEW_LOADED};
+%Event{%EVT_WEBVIEW_ERROR(id, func)%}
+      {wxEVT_COMMAND_WEBVIEW_ERROR};
+%Event{%EVT_WEBVIEW_NEWWINDOW(id, func)%}
+      {wxEVT_COMMAND_WEBVIEW_NEWWINDOW};
+%Event{%EVT_WEBVIEW_TITLE_CHANGED(id, func)%}
+      {wxEVT_COMMAND_WEBVIEW_TITLE_CHANGED};      
+
+
+enum wxWebViewZoom
+{
+    wxWEBVIEW_ZOOM_TINY,
+    wxWEBVIEW_ZOOM_SMALL,
+    wxWEBVIEW_ZOOM_MEDIUM,
+    wxWEBVIEW_ZOOM_LARGE,
+    wxWEBVIEW_ZOOM_LARGEST
+};
+
+enum wxWebViewZoomType
+{
+    wxWEBVIEW_ZOOM_TYPE_LAYOUT,
+    wxWEBVIEW_ZOOM_TYPE_TEXT
+};
+
+enum wxWebViewNavigationError
+{
+    wxWEBVIEW_NAV_ERR_CONNECTION,
+    wxWEBVIEW_NAV_ERR_CERTIFICATE,
+    wxWEBVIEW_NAV_ERR_AUTH,
+    wxWEBVIEW_NAV_ERR_SECURITY,
+    wxWEBVIEW_NAV_ERR_NOT_FOUND,
+    wxWEBVIEW_NAV_ERR_REQUEST,
+    wxWEBVIEW_NAV_ERR_USER_CANCELLED,
+    wxWEBVIEW_NAV_ERR_OTHER
+};
+
+enum wxWebViewReloadFlags
+{
+    wxWEBVIEW_RELOAD_DEFAULT,
+    wxWEBVIEW_RELOAD_NO_CACHE
+};
+
+enum wxWebViewFindFlags
+{
+    wxWEBVIEW_FIND_WRAP,
+    wxWEBVIEW_FIND_ENTIRE_WORD,
+    wxWEBVIEW_FIND_MATCH_CASE,
+    wxWEBVIEW_FIND_HIGHLIGHT_RESULT,
+    wxWEBVIEW_FIND_BACKWARDS,
+    wxWEBVIEW_FIND_DEFAULT
+};
 
 %name{Wx::WebViewHistoryItem} class wxWebViewHistoryItem
 {
@@ -64,20 +111,20 @@ public:
 {
 public:
 
-    static wxWebView* NewDefault(wxWebViewBackend backend = 
wxWEB_VIEW_BACKEND_DEFAULT)
+    static wxWebView* NewDefault(const wxString& backend = 
wxWebViewBackendDefault)
         %code{% RETVAL = wxWebView::New( backend ); %}
         %postcall{% wxPli_create_evthandler( aTHX_ RETVAL, "Wx::WebView" ); %};
-
+    
     static wxWebView* New(wxWindow* parent,
-           wxWindowID id,
-           const wxString& url = wxWebViewDefaultURLStr,
-           const wxPoint& pos = wxDefaultPosition,
-           const wxSize& size = wxDefaultSize,
-           wxWebViewBackend backend = wxWEB_VIEW_BACKEND_DEFAULT,
-           long style = 0,
-           const wxString& name = wxWebViewNameStr)
-        %postcall{% wxPli_create_evthandler( aTHX_ RETVAL, "Wx::WebView" ); %};
-
+            wxWindowID id,
+            const wxString& url = wxWebViewDefaultURLStr,
+            const wxPoint& pos = wxDefaultPosition,
+            const wxSize& size = wxDefaultSize,
+            const wxString& backend = wxWebViewBackendDefault,
+            long style = 0,
+            const wxString& name = wxWebViewNameStr)
+            %postcall{% wxPli_create_evthandler( aTHX_ RETVAL, "Wx::WebView" 
); %};
+   
     virtual bool Create(wxWindow* parent,
                         wxWindowID id,
                         const wxString& url = wxWebViewDefaultURLStr,
@@ -85,6 +132,12 @@ public:
                         const wxSize& size = wxDefaultSize,
                         long style = 0,
                         const wxString& name = wxWebViewNameStr);
+    
+    virtual long Find(const wxString& text, int flags = 
wxWEBVIEW_FIND_DEFAULT);
+    
+    virtual void Reload(wxWebViewReloadFlags flags = wxWEBVIEW_RELOAD_DEFAULT);
+    
+    virtual void* GetNativeBackend() const;
 
     virtual wxString GetCurrentTitle() const;
     
@@ -104,8 +157,6 @@ public:
  
     /* TODO : IMP  virtual void RegisterHandler(wxSharedPtr<wxWebViewHandler> 
handler) = 0; */
     
-    virtual void Reload(wxWebViewReloadFlags flags = 
wxWEB_VIEW_RELOAD_DEFAULT);
-    
     virtual void RunScript(const wxString& javascript);
     
     virtual void SetEditable(bool enable = true);
@@ -140,11 +191,6 @@ public:
     
     virtual void EnableHistory(bool enable = true);
 
-#if WXPERL_W_VERSION_GE( 2, 9, 5 )
-
-    virtual long Find(const wxString& text, int flags = 
wxWEB_VIEW_FIND_DEFAULT);
-
-#endif
     
 %{
 
@@ -237,14 +283,6 @@ public:
     const wxString& GetURL() const;
 };
 
-/*
-wxEventType wxEVT_COMMAND_WEB_VIEW_NAVIGATING;
-wxEventType wxEVT_COMMAND_WEB_VIEW_NAVIGATED;
-wxEventType wxEVT_COMMAND_WEB_VIEW_LOADED;
-wxEventType wxEVT_COMMAND_WEB_VIEW_ERROR;
-wxEventType wxEVT_COMMAND_WEB_VIEW_NEWWINDOW;
-wxEventType wxEVT_COMMAND_WEB_VIEW_TITLE_CHANGED;
-*/
 
 %name{Wx::WebViewArchiveHandler} class wxWebViewArchiveHandler : public 
%name{Wx::WebViewHandler} wxWebViewHandler
 {
diff --git a/ext/webview/cpp/webview_constants.cpp 
b/ext/webview/cpp/webview_constants.cpp
deleted file mode 100644
index af4d769..0000000
--- a/ext/webview/cpp/webview_constants.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// Name:        webview_constants.cpp
-// Purpose:     wxWebView constants
-// Author:      Mark Dootson
-// SVN ID:      $Id:  $
-// Copyright:   (c) 2012 Mattia barbon
-// Licence:     This program is free software; you can redistribute it and/or
-//              modify it under the same terms as Perl itself
-/////////////////////////////////////////////////////////////////////////////
-
-#include <cpp/constants.h>
-#include <wx/webview.h>
-#include <wx/webviewarchivehandler.h>
-
-double webview_constant( const char* name, int arg )
-{
-    // !package: Wx
-    // !parser: sub { $_[0] =~ m<^\s*r\w*\(\s*(\w+)\s*\);\s*(?://(.*))?$> }
-    // !tag: webview
-#define r( n ) \
-    if( strEQ( name, #n ) ) \
-        return n;
-
-    WX_PL_CONSTANT_INIT();
-
-    switch( fl )
-    {
-    case 'W':
-        r( wxWEB_VIEW_ZOOM_TINY );
-        r( wxWEB_VIEW_ZOOM_SMALL );
-        r( wxWEB_VIEW_ZOOM_MEDIUM );
-        r( wxWEB_VIEW_ZOOM_LARGE );
-        r( wxWEB_VIEW_ZOOM_LARGEST );
-        r( wxWEB_VIEW_ZOOM_TYPE_LAYOUT );
-        r( wxWEB_VIEW_ZOOM_TYPE_TEXT );
-        r( wxWEB_NAV_ERR_CONNECTION );
-        r( wxWEB_NAV_ERR_CERTIFICATE );
-        r( wxWEB_NAV_ERR_AUTH );
-        r( wxWEB_NAV_ERR_SECURITY );
-        r( wxWEB_NAV_ERR_NOT_FOUND );
-        r( wxWEB_NAV_ERR_REQUEST );
-        r( wxWEB_NAV_ERR_USER_CANCELLED );
-        r( wxWEB_NAV_ERR_OTHER );
-        r( wxWEB_VIEW_RELOAD_DEFAULT );
-        r( wxWEB_VIEW_RELOAD_NO_CACHE );
-        r( wxWEB_VIEW_BACKEND_DEFAULT );
-        r( wxWEB_VIEW_BACKEND_WEBKIT );
-        r( wxWEB_VIEW_BACKEND_IE );
-#if WXPERL_W_VERSION_GE( 2, 9, 5 )
-        r( wxWEB_VIEW_FIND_WRAP );
-        r( wxWEB_VIEW_FIND_ENTIRE_WORD );
-        r( wxWEB_VIEW_FIND_MATCH_CASE );
-        r( wxWEB_VIEW_FIND_HIGHLIGHT_RESULT );
-        r( wxWEB_VIEW_FIND_BACKWARDS );
-        r( wxWEB_VIEW_FIND_DEFAULT );
-#endif
-        break;
-    default:
-        break;
-    }
-
-    
-#undef r
-
-  WX_PL_CONSTANT_CLEANUP();
-}
-
-wxPlConstants webview_module( &webview_constant );
-
diff --git a/ext/webview/t/03_threads.t b/ext/webview/t/03_threads.t
index 9e45d53..2450f92 100755
--- a/ext/webview/t/03_threads.t
+++ b/ext/webview/t/03_threads.t
@@ -15,7 +15,8 @@ use Wx::WebView;
 my $app = Wx::App->new( sub { 1 } );
 
 my $frame = Wx::Frame->new(undef, -1, 'Test Frame');
-my $wcontrol = Wx::WebView::NewDefault();
+
+my $wcontrol  = Wx::WebView::NewDefault();
 my $wcontrol2 = Wx::WebView::New($frame, -1);
 
 my $march1 = Wx::WebViewArchiveHandler->new('zip');
diff --git a/ext/webview/typemap.xsp b/ext/webview/typemap.xsp
index 07ff3c9..9f74cf2 100644
--- a/ext/webview/typemap.xsp
+++ b/ext/webview/typemap.xsp
@@ -21,5 +21,4 @@
 %typemap{wxWebViewZoom}{simple};
 %typemap{wxFSFile*}{simple};
 %typemap{wxInputStream&}{reference};
-
-
+%typemap{void*}{simple};
diff --git a/ext/xrc/cpp/xr_constants.cpp b/ext/xrc/cpp/xr_constants.cpp
index b4f6239..73ae3d0 100644
--- a/ext/xrc/cpp/xr_constants.cpp
+++ b/ext/xrc/cpp/xr_constants.cpp
@@ -11,8 +11,10 @@
 /////////////////////////////////////////////////////////////////////////////
 
 #include "cpp/constants.h"
-
 #include "wx/xrc/xmlres.h"
+#if WXPERL_W_VERSION_GE( 2, 9, 5 )
+#include "wx/xml/xml.h"
+#endif
 
 double xrc_constant( const char* name, int arg )
 {
diff --git a/lib/Wx/Mini.pm b/lib/Wx/Mini.pm
index 65e3314..f5b8d01 100644
--- a/lib/Wx/Mini.pm
+++ b/lib/Wx/Mini.pm
@@ -12,7 +12,7 @@ our $alien_key = 'XXXALIENXXX';
     $Wx::dlls = XXXDLLSXXX;
 }
 
-$VERSION = '0.9922'; # bootstrap will catch wrong versions
+$VERSION = '0.9923'; # bootstrap will catch wrong versions
 $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
diff --git a/typemap b/typemap
index 9a91214..e7a7987 100644
--- a/typemap
+++ b/typemap
@@ -4,7 +4,7 @@
 ## Author:      Mattia Barbon
 ## Modified by:
 ## Created:     29/10/2000
-## RCS-ID:      $Id: typemap 3485 2013-04-16 15:28:22Z mdootson $
+## RCS-ID:      $Id: typemap.tmpl 3485 2013-04-16 15:28:22Z mdootson $
 ## Copyright:   (c) 2000-2013 Mattia Barbon
 ## Licence:     This program is free software; you can redistribute it and/or
 ##              modify it under the same terms as Perl itself

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-perl/packages/libwx-perl.git

_______________________________________________
Pkg-perl-cvs-commits mailing list
Pkg-perl-cvs-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits

Reply via email to