Commit e1e273a0 authored by Alessandro Ghedini's avatar Alessandro Ghedini

Imported Upstream version 0.9905

parent 6efdecdc
Revision history for Perl extension Wx.
0.9905 Fri Mar 16 2012
- wrapped wxPropertyGrid ( wxWidgets ge 2.9.3 )
- wrapped native wxTreeListCtrl ( wxWidgets ge 2.9.3 )
- wrapped wxRibbonControl ( wxWidgets ge 2.9.3 )
- ShowModal implementation for wxPrintDialog and wxPageSetupDialog
( thanks to Tomohiro Hosaka )
- recent EUMM breaks EU_MY_Metafile
0.9904 Tue Feb 28 2012
- Implemented TextCtrlIface for RichTextCtrl in >= 2.9.2
- Implemented TextCtrlIface for SearchCtrl in >= 2.9.2
......
......@@ -4,7 +4,7 @@
// Author: Mattia Barbon
// Modified by:
// Created: 29/10/2000
// RCS-ID: $Id: Constant.xs 3119 2011-11-18 17:38:16Z mdootson $
// RCS-ID: $Id: Constant.xs 3185 2012-03-10 06:40:00Z 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
......@@ -118,7 +118,11 @@
#include <wx/filectrl.h>
#include <wx/wrapsizer.h>
#endif
#if WXPERL_W_VERSION_GE( 2, 9, 3 )
#include <wx/propgrid/propgrid.h>
#include <wx/propgrid/property.h>
#include <wx/propgrid/propgriddefs.h>
#endif
#if WXPERL_W_VERSION_GE( 2, 7, 0 ) && !WXWIN_COMPATIBILITY_2_6
#define wxCHB_DEFAULT wxBK_DEFAULT
#define wxCHB_TOP wxBK_TOP
......@@ -708,6 +712,7 @@ static wxPlINH inherit[] =
I( NotifyEvent, CommandEvent )
I( FileCtrlEvent, CommandEvent )
I( PaintEvent, Event )
I( NcPaintEvent, Event )
I( ProcessEvent, Event )
I( QueryLayoutInfoEvent, Event )
I( SashEvent, CommandEvent )
......@@ -739,7 +744,6 @@ static wxPlINH inherit[] =
I( FontPickerEvent, CommandEvent )
I( SetCursorEvent, Event )
I( CollapsiblePaneEvent, CommandEvent )
{ 0, 0 }
};
......@@ -3076,6 +3080,39 @@ void SetConstantsOnce()
wxPli_make_const_string( wxMEDIABACKEND_WMP10 ); // media
#endif
// PropertyGrid string constants
#if WXPERL_W_VERSION_GE( 2, 9, 3 ) && wxUSE_PROPGRID
/* cached values - not constants
wxPli_make_const_string( wxPG_ATTR_UNITS );
wxPli_make_const_string( wxPG_ATTR_HINT );
wxPli_make_const_string( wxPG_ATTR_INLINE_HELP );
wxPli_make_const_string( wxPG_ATTR_DEFAULT_VALUE );
wxPli_make_const_string( wxPG_ATTR_MIN );
wxPli_make_const_string( wxPG_ATTR_MAX );
*/
wxPli_make_const_string( wxPG_ATTR_AUTOCOMPLETE );
wxPli_make_const_string( wxPG_BOOL_USE_CHECKBOX );
wxPli_make_const_string( wxPG_BOOL_USE_DOUBLE_CLICK_CYCLING );
wxPli_make_const_string( wxPG_FLOAT_PRECISION );
wxPli_make_const_string( wxPG_STRING_PASSWORD );
wxPli_make_const_string( wxPG_UINT_BASE );
wxPli_make_const_string( wxPG_UINT_PREFIX );
wxPli_make_const_string( wxPG_FILE_WILDCARD );
wxPli_make_const_string( wxPG_FILE_SHOW_FULL_PATH );
wxPli_make_const_string( wxPG_FILE_SHOW_RELATIVE_PATH );
wxPli_make_const_string( wxPG_FILE_INITIAL_PATH );
wxPli_make_const_string( wxPG_FILE_DIALOG_TITLE );
wxPli_make_const_string( wxPG_DIR_DIALOG_MESSAGE );
wxPli_make_const_string( wxPG_ARRAY_DELIMITER );
wxPli_make_const_string( wxPG_DATE_FORMAT );
wxPli_make_const_string( wxPG_DATE_PICKER_STYLE );
wxPli_make_const_string( wxPG_ATTR_SPINCTRL_STEP );
wxPli_make_const_string( wxPG_ATTR_SPINCTRL_WRAP );
wxPli_make_const_string( wxPG_ATTR_MULTICHOICE_USERSTRINGMODE );
wxPli_make_const_string( wxPG_COLOUR_ALLOW_CUSTOM );
wxPli_make_const_string( wxPG_COLOUR_HAS_ALPHA );
#endif
wxPli_make_const( "wxTheClipboard" ); // clipboard
wxPli_make_const( "wxDefaultValidator" ); // misc
wxPli_make_const( "wxFormatInvalid" ); // dnd
......@@ -3420,6 +3457,12 @@ _get_packages()
#if wxPERL_USE_MEDIA && wxUSE_MEDIACTRL && WXPERL_W_VERSION_GE( 2, 6, 0 )
"use Wx::Media;"
#endif
#if wxPERL_USE_PROPGRID && wxUSE_PROPGRID && WXPERL_W_VERSION_GE( 2, 9, 3 )
"use Wx::PropertyGrid;"
#endif
#if wxPERL_USE_RIBBON && wxUSE_RIBBON && WXPERL_W_VERSION_GE( 2, 9, 3 )
"use Wx::Ribbon;"
#endif
#if wxPERL_USE_RICHTEXT && WXPERL_W_VERSION_GE( 2, 7, 0 )
"use Wx::RichText;"
#endif
......
......@@ -4,7 +4,7 @@
// Author: Mattia Barbon
// Modified by:
// Created: 29/10/2000
// RCS-ID: $Id: Controls.xs 3032 2011-03-13 21:48:58Z mbarbon $
// RCS-ID: $Id: Controls.xs 3159 2012-02-29 23:43:26Z mdootson $
// Copyright: (c) 2000-2010 Mattia Barbon
// Licence: This program is free software; you can redistribute it and/or
// modify it under the same terms as Perl itself
......@@ -104,6 +104,8 @@ INCLUDE_COMMAND: $^X -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp interface/w
INCLUDE_COMMAND: $^X -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp interface/wx/headercol.h
INCLUDE_COMMAND: $^X -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp interface/wx/button.h
INCLUDE_COMMAND: $^X -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp interface/wx/treelist.h
INCLUDE: XS/CheckBox.xs
INCLUDE: XS/CheckListBox.xs
INCLUDE: XS/Choice.xs
......
......@@ -545,6 +545,47 @@ ext/docview/t/02_inheritance.t
ext/docview/t/03_threads.t
ext/docview/t/04_cmdproc.t
ext/propgrid/Makefile.PL
ext/propgrid/PropertyGrid.xs
ext/propgrid/typemap
ext/propgrid/typemap.xsp
ext/propgrid/XS/PGCell.xsp
ext/propgrid/XS/PGCellRenderer.xsp
ext/propgrid/XS/PGEditor.xsp
ext/propgrid/XS/PGProperty.xsp
ext/propgrid/XS/PropertyGrid.xsp
ext/propgrid/XS/PropertyGridEvent.xsp
ext/propgrid/XS/PropertyGridInterface.xsp
ext/propgrid/XS/PropertyGridManager.xsp
ext/propgrid/XS/PropertyGridPage.xsp
ext/propgrid/XS/PropertyGridPageState.xsp
ext/propgrid/cpp/propgrid_constants.cpp
ext/propgrid/cpp/propgrid_declares.h
ext/propgrid/lib/Wx/PropertyGrid.pm
ext/propgrid/t/01_load.t
ext/propgrid/t/02_inheritance.t
ext/propgrid/t/03_threads.t
ext/ribbon/Makefile.PL
ext/ribbon/Ribbon.xs
ext/ribbon/typemap
ext/ribbon/typemap.xsp
ext/ribbon/XS/RibbonArtProvider.xsp
ext/ribbon/XS/RibbonBar.xsp
ext/ribbon/XS/RibbonButtonBar.xsp
ext/ribbon/XS/RibbonControl.xsp
ext/ribbon/XS/RibbonGallery.xsp
ext/ribbon/XS/RibbonPage.xsp
ext/ribbon/XS/RibbonPanel.xsp
ext/ribbon/XS/RibbonToolBar.xsp
ext/ribbon/cpp/ribbongalleryitem.h
ext/ribbon/cpp/ribbon_constants.cpp
ext/ribbon/lib/Wx/Ribbon.pm
ext/ribbon/t/01_load.t
ext/ribbon/t/02_inheritance.t
ext/ribbon/t/03_threads.t
ext/ribbon/t/04_userdata.t
interface/wx/bmpbuttn.h
interface/wx/button.h
interface/wx/dataview/dataviewlistctrl.h
......@@ -555,5 +596,6 @@ interface/wx/grid/gridtablebase.h
interface/wx/headercol.h
interface/wx/headerctrl.h
interface/wx/infobar.h
interface/wx/treelist.h
META.yml Module meta-data (added by MakeMaker)
META.yml Module meta-data (added by MakeMaker)
# http://module-build.sourceforge.net/META-spec.html
name: Wx
version: 0.9904
version_from: Wx.pm
installdirs: site
author: Mattia Barbon <mbarbon@cpan.org>
abstract: interface to the wxWidgets cross-platform GUI toolkit
license: perl
#requires:
build_requires:
Alien::wxWidgets: 0.25
Data::Dumper: 0
ExtUtils::MakeMaker: 6.17
ExtUtils::ParseXS: 2.2203
ExtUtils::XSpp: 0.1602
File::Spec::Functions: 0.82
if: 0.03
Test::Harness: 2.26
Test::More: 0.45
no_index:
directory:
- samples
- script
package:
- MY
- Parse::Yapp::Driver
# extras.
configure_requires:
Alien::wxWidgets: 0.25
dynamic_config: 1
resources:
MailingList: http://lists.perl.org/list/wxperl-users.html
bugtracker: http://rt.cpan.org/NoAuth/Bugs.html?Dist=Wx
homepage: http://wxperl.eu/
license: http://dev.perl.org/licenses/
repository: https://wxperl.svn.sourceforge.net/svnroot/wxperl/wxPerl
distribution_type: module
generated_by: ExtUtils::MY_Metafile version 0.09, EUMM-6.56.
meta-spec:
version: 1.3
url: http://module-build.sourceforge.net/META-spec-v1.3.html
# http://module-build.sourceforge.net/META-spec.html
name: Wx
version: 0.9905
version_from: Wx.pm
installdirs: site
author:
- Mattia Barbon <mbarbon@cpan.org>
abstract: interface to the wxWidgets cross-platform GUI toolkit
license: perl
requires:
Alien::wxWidgets: 0.25
ExtUtils::ParseXS: 3.15
ExtUtils::XSpp: 0.1602
File::Spec::Functions: 0.82
if: 0.03
Test::Harness: 2.26
Test::More: 0.45
build_requires:
ExtUtils::MakeMaker: 6.17
no_index:
directory:
- samples
- script
package:
- MY
- Parse::Yapp::Driver
# extras.
configure_requires:
Alien::wxWidgets: 0.25
dynamic_config: 1
resources:
MailingList: http://lists.perl.org/list/wxperl-users.html
bugtracker: http://rt.cpan.org/NoAuth/Bugs.html?Dist=Wx
homepage: http://wxperl.eu/
license: http://dev.perl.org/licenses/
repository: https://wxperl.svn.sourceforge.net/svnroot/wxperl/wxPerl
distribution_type: module
generated_by: ExtUtils::MY_Metafile version 0.09, EUMM-6.57_05.
meta-spec:
version: 1.3
url: http://module-build.sourceforge.net/META-spec-v1.3.html
......@@ -5,8 +5,8 @@
## Author: Mattia Barbon
## Modified by:
## Created: 01/10/2000
## RCS-ID: $Id: Makefile.PL 3133 2011-11-28 02:29:04Z mdootson $
## Copyright: (c) 2000-2011 Mattia Barbon
## RCS-ID: $Id: Makefile.PL 3187 2012-03-11 23:22:34Z mdootson $
## Copyright: (c) 2000-2012 Mattia Barbon
## Licence: This program is free software; you can redistribute it and/or
## modify it under the same terms as Perl itself
#############################################################################
......@@ -34,16 +34,18 @@ my $moduleauthor = ( $mmv >= 6.5702 ) ? [ 'Mattia Barbon <mbarbon@cpan.org>' ] :
# $ExtUtils::MakeMaker::Verbose = 2;
# $wxConfig::Verbose = 10;
my $build_requires =
{ 'File::Spec::Functions' => 0.82,
'Test::More' => 0.45,
'Test::Harness' => 2.26,
'Data::Dumper' => 0,
my $build_requires = {
'ExtUtils::MakeMaker' => 6.17,
};
my $requires = {
'Alien::wxWidgets' => 0.25,
'if' => 0.03,
'ExtUtils::XSpp' => 0.1602,
'ExtUtils::ParseXS' => 2.2203,
'ExtUtils::ParseXS' => 3.15,
'File::Spec::Functions' => 0.82,
'Test::More' => 0.45,
'Test::Harness' => 2.26,
'if' => 0.03,
};
eval {
......@@ -54,7 +56,7 @@ eval {
( { license => 'perl',
author => $moduleauthor,
dynamic_config => 1,
requires => {},
requires => $requires,
build_requires => $build_requires,
no_index => { directory => [ qw(samples script) ],
package => [ qw(MY Parse::Yapp::Driver) ],
......@@ -74,7 +76,7 @@ wxWriteMakefile( NAME => 'Wx',
ABSTRACT_FROM => 'Wx.pm',
AUTHOR => $moduleauthor,
VERSION_FROM => 'Wx.pm',
PREREQ_PM => { %$build_requires },
PREREQ_PM => { %$requires, %$build_requires },
PMLIBDIRS => [ 'lib', 'build' ],
EXE_FILES => [ qw(script/wxperl_overload) ],
WX_CORE_LIB_MAYBE => $^O eq 'darwin' ? 'media html' : '',
......
......@@ -4,7 +4,7 @@
## Author: Mattia Barbon
## Modified by:
## Created: 01/10/2000
## RCS-ID: $Id: Wx.pm 3111 2011-11-13 14:24:13Z mdootson $
## RCS-ID: $Id: Wx.pm 3157 2012-02-28 14:55:59Z 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
......@@ -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.9904';
$VERSION = '0.9905';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
......
......@@ -4,7 +4,7 @@
// Author: Mattia Barbon
// Modified by:
// Created: 01/10/2000
// RCS-ID: $Id: Wx.xs 2986 2010-10-18 12:27:33Z mdootson $
// RCS-ID: $Id: Wx.xs 3168 2012-03-08 01:49:46Z 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
......@@ -264,7 +264,7 @@ Load( bool croak_on_error = false )
sv_setnv( tmp, ver );
tmp = get_sv( "Wx::wxVERSION", 1 );
sv_setnv( tmp, ver );
int platform;
// change App.pm whenever these change
#if defined(__WXMSW__)
......@@ -423,6 +423,39 @@ _xsmatch( avref, proto, required = -1, allowmore = false )
POPMARK; // wxPli_match_* does a PUSHMARK
OUTPUT: RETVAL
## // Optional Modules Included
bool
_wx_optmod_ribbon()
CODE:
#if wxPERL_USE_RIBBON && wxUSE_RIBBON && WXPERL_W_VERSION_GE( 2, 9, 3 )
RETVAL = TRUE;
#else
RETVAL = FALSE;
#endif
OUTPUT: RETVAL
bool
_wx_optmod_propgrid()
CODE:
#if wxPERL_USE_PROPGRID && wxUSE_PROPGRID && WXPERL_W_VERSION_GE( 2, 9, 3 )
RETVAL = TRUE;
#else
RETVAL = FALSE;
#endif
OUTPUT: RETVAL
bool
_wx_optmod_media()
CODE:
#if wxPERL_USE_MEDIA && wxUSE_MEDIACTRL
RETVAL = TRUE;
#else
RETVAL = FALSE;
#endif
OUTPUT: RETVAL
I32
looks_like_number( sval )
SV* sval
......
......@@ -4,7 +4,7 @@
## Author: Mattia Barbon
## Modified by:
## Created: 31/10/2000
## RCS-ID: $Id: Sizer.xsp 2961 2010-08-22 17:29:51Z mbarbon $
## RCS-ID: $Id: Sizer.xsp 3173 2012-03-08 02:50:45Z mdootson $
## Copyright: (c) 2000-2003, 2005-2008, 2010 Mattia Barbon
## Licence: This program is free software; you can redistribute it and/or
## modify it under the same terms as Perl itself
......@@ -357,6 +357,19 @@ wxBoxSizer::new( orientation )
int
wxBoxSizer::GetOrientation()
#if WXPERL_W_VERSION_GE( 2, 8, 0 )
void
wxBoxSizer::SetOrientation( orientation )
int orientation
#endif
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
bool
wxBoxSizer::IsVertical()
#endif
MODULE=Wx PACKAGE=Wx::StaticBoxSizer
wxStaticBoxSizer*
......
......@@ -92,6 +92,7 @@ sub is_number {
'unsigned long', 'float', 'double',
'wxAlignment', 'wxBrushStyle',
'size_t', 'ssize_t', 'wxCoord',
'wxUint32'
);
}
......@@ -107,6 +108,7 @@ sub is_any {
# TODO wxPerl-specific type
return 1 if $type->base_type eq 'Wx_UserDataO';
return 1 if $type->base_type eq 'wxVariantArg';
}
sub _compare_function {
......@@ -218,7 +220,12 @@ EOT
# TODO name mapping is wxPerl-specific
die 'Unable to dispatch ', $arg->type->base_type
unless $arg->type->base_type =~ /^[Ww]x/;
push @indices, '"Wx::' . ( substr $arg->type->base_type, 2 ) . '"';
{
# convert typemap parsed types
my $subtype = substr $arg->type->base_type, 2;
$subtype =~ s/__parsed.*$//;
push @indices, '"Wx::' . $subtype . '"';
}
}
my $proto_name = sprintf '%s_proto', $method->perl_name;
......
......@@ -3,6 +3,8 @@ package build::Wx::XSP::Virtual;
use strict;
use warnings;
my %type_map;
sub new {
return bless { virtual_methods => {},
virtual_classes => {},
......@@ -13,13 +15,36 @@ sub new {
sub register_plugin {
my( $class, $parser ) = @_;
my $instance = $class->new;
$parser->add_toplevel_tag_plugin ( plugin => $instance, tag => 'VirtualTypeMap' );
$parser->add_class_tag_plugin( plugin => $instance, tag => 'NoVirtualBase' );
$parser->add_class_tag_plugin( plugin => $instance, tag => 'VirtualImplementation' );
$parser->add_method_tag_plugin( plugin => $instance, tag => 'Virtual' );
$parser->add_post_process_plugin( plugin => $instance );
}
sub handle_toplevel_tag {
my( $self, $empty, $tag, %args ) = @_;
if( $tag eq 'VirtualTypeMap' ) {
my %map = @{$args{any_named_arguments}};
my $typename = $map{Name}[0][0] || undef;
die 'No Name in VirtualTypeMap' if !$typename;
my $vtmap = {
'convert_return' => $map{ConvertReturn}[0][0] || undef,
'default_value' => $map{DefaultValue}[0][0] || undef,
'type_char' => $map{TypeChar}[0][0] || undef,
'arguments' => $map{Arguments}[0][0] || undef,
};
foreach my $key (sort keys( %$vtmap ) ) {
delete($vtmap->{$key}) unless defined($vtmap->{$key});
}
$type_map{$typename} = $vtmap;
}
1;
}
sub handle_class_tag {
my( $self, $class, $tag, %args ) = @_;
......@@ -32,7 +57,7 @@ sub handle_class_tag {
{ name => $map{Name}[0][0] || '',
declaration => join( "\n", @{$map{Declaration}[0] || []} ),
implementation => join( "\n", @{$map{Implementation}[0] || []} ),
};
};
}
1;
......@@ -51,7 +76,7 @@ sub handle_method_tag {
1;
}
my %type_map =
%type_map =
( 'bool' => { convert_return => 'SvTRUE( ret )',
default_value => 'false',
type_char => 'b',
......@@ -68,12 +93,10 @@ my %type_map =
default_value => '0.0',
type_char => 'd',
},
# TODO merge
'wxAlignment' => { convert_return => '(wxAlignment)SvIV( ret )',
default_value => '(wxAlignment)0',
type_char => 'i',
},
# TODOD merge
'wxGridCellAttr::wxAttrKind' =>
=> { convert_return => '(wxGridCellAttr::wxAttrKind)SvIV( ret )',
default_value => '(wxGridCellAttr::wxAttrKind)0',
......@@ -83,6 +106,10 @@ my %type_map =
default_value => '0',
type_char => 'I',
},
'wxUint32' => { convert_return => 'SvIV( ret )',
default_value => '0',
type_char => 'i',
},
# TODO merge
'size_t' => { convert_return => 'SvUV( ret )',
default_value => '0',
......@@ -93,19 +120,34 @@ my %type_map =
type_char => 'P',
arguments => '&%s',
},
'wxString&' => { convert_return => 'wxPli_sv_2_wxString( aTHX_ ret )',
default_value => 'wxEmptyString',
type_char => 'P',
arguments => '&%s',
},
'wxString*' => { convert_return => '(wxString*)wxPli_sv_2_wxString( aTHX_ ret )',
default_value => 'wxEmptyString',
type_char => 'P',
arguments => '&%s',
},
# TODO merge
'const wxString&' => { convert_return => 'wxPli_sv_2_wxString( aTHX_ ret )',
default_value => 'wxEmptyString',
type_char => 'P',
arguments => '&%s',
},
'wxVariant&' => { convert_return => 'wxPli_sv_2_variant( aTHX_ ret )',
'wxVariant&' => { convert_return => 'wxPli_sv_2_wxvariant( aTHX_ ret )',
default_value => 'wxVariant()',
type_char => 'q',
arguments => '&%s, "Wx::Variant"',
},
'wxVariant' => { convert_return => 'wxPli_sv_2_wxvariant( aTHX_ ret )',
default_value => 'wxVariant()',
type_char => 'q',
arguments => '&%s, "Wx::Variant"',
},
# TODO merge
'const wxVariant&' => { convert_return => 'wxPli_sv_2_variant( aTHX_ ret )',
'const wxVariant&' => { convert_return => 'wxPli_sv_2_wxvariant( aTHX_ ret )',
default_value => 'wxVariant()',
type_char => 'q',
arguments => '&%s, "Wx::Variant"',
......@@ -121,6 +163,27 @@ my %type_map =
type_char => 'O',
arguments => '&%s',
},
'const wxPoint&' => { convert_return => 'wxPli_sv_2_wxpoint( aTHX_ ret )',
default_value => 'wxPoint()',
type_char => 'o',
arguments => '&%s, "Wx::Point"',
},
'wxSize' => { convert_return => 'wxPli_sv_2_wxsize( aTHX_ ret )',
default_value => 'wxSize()',
type_char => 'o',
arguments => '&%s, "Wx::Size"',
},
'const wxSize&' => { convert_return => 'wxPli_sv_2_wxsize( aTHX_ ret )',
default_value => 'wxSize()',
type_char => 'o',
arguments => '&%s, "Wx::Size"',
},
'const wxRect&' => { convert_return => '*(wxRect*)wxPli_sv_2_object( aTHX_ ret, "Wx::Bitmap" )',
default_value => 'wxRect()',
type_char => 'O',
arguments => '&%s',
},
'const wxHeaderColumn&' =>
{ convert_return => '*(wxHeaderColumn*)wxPli_sv_2_object( aTHX_ ret, "Wx::HeaderColumn" )',
type_char => 'O',
......@@ -166,7 +229,7 @@ sub post_process {
next unless $node->isa( 'ExtUtils::XSpp::Node::Class' );
next if $self->{virtual_classes}{$node};
my( @virtual, $abstract_class, @classes, %redefined );
@classes = $node;
# find virtual method in this class and in all base classes
while( @classes ) {
......
......@@ -19,7 +19,7 @@ use vars qw(@EXPORT @subdirs);
my @top_level_xs = qw(Wx.xs Constant.xs Controls.xs Event.xs
Frames.xs GDI.xs Window.xs);
@subdirs = qw(socket dnd filesys grid help html mdi print xrc stc docview
calendar datetime media richtext aui dataview);
calendar datetime media richtext aui dataview propgrid ribbon );
my %subdirs;
Wx::build::MakeMaker::_set_is_wxPerl_tree( 1 );
......@@ -34,11 +34,30 @@ if( $has_alien ) {
@subdirs{keys %opt} = values %opt;
@subdirs = grep { $subdirs{$_} } keys %subdirs;
# installed versions of Alien may not contain
# propgrid, ribbon webview in config so we
# cannot build non-monolithic
my $alienconfig = Alien::wxWidgets->config;
if( exists($alienconfig->{build}) && $alienconfig->{build} eq 'multi' ) {
my @alienkeys = grep { /^(propgrid|ribbon|webview)/ } ( Alien::wxWidgets->library_keys );
for my $d ( qw( propgrid ribbon webview ) ) {
if(exists($subdirs{$d})) {
# check if alien has keys
if( grep { /^$d/ } @alienkeys ) {
$subdirs{$d} = 1;
} else {
$subdirs{$d} = 0;
}
}
}
}
}
#
# make symlinks to the source tree
#
if( $options{mksymlinks} ) {
require FindBin;
require ExtUtils::Manifest;
......
......@@ -4,7 +4,7 @@
// Author: Mattia Barbon
// Modified by:
// Created: 29/10/2000
// RCS-ID: $Id: helpers.cpp 3038 2011-03-19 14:38:34Z mdootson $
// RCS-ID: $Id: helpers.cpp 3190 2012-03-16 05:04:03Z 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
......@@ -1227,8 +1227,18 @@ wxVariant wxPli_sv_2_wxvariant( pTHX_ SV* sv )
if( !SvOK( sv ) ) {
return wxVariant();
} else if( SvROK( sv ) ) {
// TODO
return wxVariant();
if( SvTYPE( SvRV( sv ) ) == SVt_PVAV ) {
// array type.
// assume a string array as it is the only one we
// can usefully handle.
// TODO - something better
wxArrayString items;
wxPli_av_2_arraystring( aTHX_ sv, &items );
return wxVariant( items );
} else {
// TODO
return wxVariant();
}
} else if( SvNOK( sv ) ) {
return wxVariant( (double)SvNV( sv ) );
} else if( SvIOK( sv ) ) {
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755