#############################################################################
## Name: ext/propgrid/lib/Wx/PropertyGrid.pm
## Purpose: Wx::PropertyGrid and related classes
## Author: Mark Dootson
## Created: 01/03/2012
## SVN-ID: $Id: PropertyGrid.pm 3242 2012-03-23 22:29:59Z mdootson $
## 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
#############################################################################
BEGIN {
package Wx::PropertyGrid;
our $__wx_pgrid_present = Wx::_wx_optmod_propgrid();
}
package Wx::PropertyGrid;
use strict;
our $VERSION = '0.01';
our $__wx_pgrid_present;
if( $__wx_pgrid_present ) {
Wx::load_dll( 'adv' );
Wx::load_dll( 'propgrid' );
Wx::wx_boot( 'Wx::PropertyGrid', $VERSION );
}
# Setup constants
# (cached strings - not constant at all)
package Wx;
sub wxPG_ATTR_UNITS { return ( $Wx::PropertyGrid::__wx_pgrid_present ) ? Wx::PropertyGrid::_get_wxPG_ATTR_UNITS() : undef ; }
sub wxPG_ATTR_HINT { return ( $Wx::PropertyGrid::__wx_pgrid_present ) ? Wx::PropertyGrid::_get_wxPG_ATTR_HINT() : undef ; }
sub wxPG_ATTR_INLINE_HELP { return ( $Wx::PropertyGrid::__wx_pgrid_present ) ? Wx::PropertyGrid::_get_wxPG_ATTR_INLINE_HELP() : undef ; }
sub wxPG_ATTR_DEFAULT_VALUE { return ( $Wx::PropertyGrid::__wx_pgrid_present ) ? Wx::PropertyGrid::_get_wxPG_ATTR_DEFAULT_VALUE() : undef ; }
sub wxPG_ATTR_MIN { return ( $Wx::PropertyGrid::__wx_pgrid_present ) ? Wx::PropertyGrid::_get_wxPG_ATTR_MIN() : undef ; }
sub wxPG_ATTR_MAX { return ( $Wx::PropertyGrid::__wx_pgrid_present ) ? Wx::PropertyGrid::_get_wxPG_ATTR_MAX() : undef ; }
package Wx::PropertyGrid;
# these are all string 'constants', those above
# and those added in Constant.xs
our @_wxpg_extra_exported_constants = qw(
wxPG_ATTR_UNITS
wxPG_ATTR_HINT
wxPG_ATTR_INLINE_HELP
wxPG_ATTR_DEFAULT_VALUE
wxPG_ATTR_MIN
wxPG_ATTR_MAX
wxPG_ATTR_AUTOCOMPLETE
wxPG_BOOL_USE_CHECKBOX
wxPG_BOOL_USE_DOUBLE_CLICK_CYCLING
wxPG_FLOAT_PRECISION
wxPG_STRING_PASSWORD
wxPG_UINT_BASE
wxPG_UINT_PREFIX
wxPG_FILE_WILDCARD
wxPG_FILE_SHOW_FULL_PATH
wxPG_FILE_SHOW_RELATIVE_PATH
wxPG_FILE_INITIAL_PATH
wxPG_FILE_DIALOG_TITLE
wxPG_DIR_DIALOG_MESSAGE
wxPG_ARRAY_DELIMITER
wxPG_DATE_FORMAT
wxPG_DATE_PICKER_STYLE
wxPG_ATTR_SPINCTRL_STEP
wxPG_ATTR_SPINCTRL_WRAP
wxPG_ATTR_MULTICHOICE_USERSTRINGMODE
wxPG_COLOUR_ALLOW_CUSTOM
wxPG_COLOUR_HAS_ALPHA
);
if( $__wx_pgrid_present ) {
push @{ $Wx::EXPORT_TAGS{'propgrid'} }, @_wxpg_extra_exported_constants;
}
#
# properly setup inheritance tree
#
no strict;
package Wx::PropertyGridIteratorBase;
package Wx::PropertyGridIterator; @ISA = qw( Wx::PropertyGridIteratorBase );
package Wx::PropertyGridManager; @ISA = qw( Wx::Panel );
package Wx::PropertyGridPage; @ISA = qw( Wx::EvtHandler );
package Wx::PropertyGrid; @ISA = qw( Wx::Control);
package Wx::PGProperty; @ISA = qw( Wx::Object );
package Wx::PropertyCategory; @ISA = qw( Wx::PGProperty );
package Wx::PGCell; @ISA = qw( Wx::Object );
package Wx::ObjectRefData;
package Wx::PGCellRenderer; @ISA = qw( Wx::ObjectRefData );
package Wx::PGDefaultRenderer; @ISA = qw( Wx::PGCellRenderer );
package Wx::PGChoicesData; @ISA = qw( Wx::ObjectRefData );
package Wx::PGMultiButton; @ISA = qw( Wx::Window );
package Wx::PGEditor; @ISA = qw( Wx::Object );
package Wx::PGTextCtrlEditor; @ISA = qw( Wx::PGEditor );
package Wx::PGChoiceEditor; @ISA = qw( Wx::PGEditor );
package Wx::PGComboBoxEditor; @ISA = qw( Wx::PGChoiceEditor );
package Wx::PGChoiceAndButtonEditor; @ISA = qw( Wx::PGChoiceEditor );
package Wx::PGTextCtrlAndButtonEditor; @ISA = qw( Wx::PGTextCtrlEditor );
package Wx::PGCheckBoxEditor; @ISA = qw( Wx::PGEditor );
package Wx::PGDatePickerCtrlEditor; @ISA = qw( Wx::PGEditor );
package Wx::PGSpinCtrlEditor; @ISA = qw( Wx::PGTextCtrlEditor );
package Wx::PGInDialogValidator;
package Wx::StringProperty; @ISA = qw( Wx::PGProperty );
package Wx::IntProperty; @ISA = qw( Wx::PGProperty );
package Wx::UIntProperty; @ISA = qw( Wx::PGProperty );
package Wx::FloatProperty; @ISA = qw( Wx::PGProperty );
package Wx::BoolProperty; @ISA = qw( Wx::PGProperty );
package Wx::EnumProperty; @ISA = qw( Wx::PGProperty );
package Wx::EditEnumProperty; @ISA = qw( Wx::EnumProperty );
package Wx::FlagsProperty; @ISA = qw( Wx::PGProperty );
package Wx::FileProperty; @ISA = qw( Wx::PGProperty );
package Wx::LongStringProperty; @ISA = qw( Wx::PGProperty );
package Wx::DirProperty ; @ISA = qw( Wx::LongStringProperty );
package Wx::ArrayStringProperty; @ISA = qw( Wx::PGProperty );
package Wx::MultiChoiceProperty; @ISA = qw( Wx::PGProperty );
package Wx::FontProperty; @ISA = qw( Wx::PGProperty );
package Wx::SystemColourProperty; @ISA = qw( Wx::EnumProperty );
package Wx::ColourProperty; @ISA = qw( Wx::SystemColourProperty );
package Wx::CursorProperty; @ISA = qw( Wx::EnumProperty );
package Wx::ImageFileProperty; @ISA = qw( Wx::FileProperty );
package Wx::DateProperty; @ISA = qw( Wx::PGProperty );
package Wx::PGFileDialogAdapter; @ISA = qw( Wx::PGEditorDialogAdapter );
package Wx::PGLongStringDialogAdapter; @ISA = qw( Wx::PGEditorDialogAdapter );
package Wx::PGArrayEditorDialog; @ISA = qw( Wx::Dialog );
package Wx::PGArrayStringEditorDialog; @ISA = qw( Wx::PGArrayEditorDialog );
package Wx::ColourPropertyValue; @ISA = qw( Wx::Object );
package Wx::ArrayStringProperty;
#FIXME - until we fix XS method
sub GetPlValue {
my @return = ();
my $variant = $_[0]->GetValue;
@return = $variant->GetArrayString if !$variant->IsNull;
return @return;
}
package Wx::MultiChoiceProperty;
#FIXME - until we fix XS method
sub GetPlValue {
my @return = ();
my $variant = $_[0]->GetValue;
@return = $variant->GetArrayString if !$variant->IsNull;
return @return;
}
1;