hai mark

i thought about,
and what about hybrid API,
so you can do it positional and if there is only one param hasref i do it the
current way. would be that acceptable for an Wx::Perl::* module?

best
herbert

btw I'm registering the Namespace Bundle::Wx::Perl right now

Am 01.09.2012 13:42, schrieb Mark Dootson:
> Hi,
> 
> On 31/08/2012 20:49, herbert breunung wrote:
>> Allright,
>>
>> I alright wrote here that I do currently some helper modules and after im 
>> more
>> familiar with dzil and their API gets more stable i want to ship them to 
>> cpan.
>> However after we get more and more Wx::Perl modules (didnt knew even
>> Wx::Perl::ListCtrl) i would like du bundle them into the module Wx::Perl
>> or Wx::Perl::Bundle.
> 
> I think the Wx::Perl:: namespace has always indicated pure Perl modules so
> "Wx::Perl::Bundle" looks like a good name for a bundle of all of these.
> 
>>
>> However the more important question I like to ask you all is how consistent
>> has the API be bewtween all of these modules. Especially what is now
>> Kephra::App::Splitter has named parameters because IMO
>>
>> ....Splitter->new( parent =>  $win, $left=>  $w1, right=>  $w2, gravity=> 
>> 'left');
>>
>> is to me much clearer.
>>
>> im really interested i you view.
> 
> I think the modules on CPAN generally stick to the parameter conventions of
> the existing main Wx.
> 
> I think that probably many long time Wx users have their own versions of this
> in place. Having to pass all previous parameters when you just want a 'style'
> generally drives a person to implement a way of overcoming this.
> 
> The GUI parts of Citrus Perl rely on a set of modules prefixed CP::Wx:: that
> take care of this. The modules themselves are just a renamed port of internal
> modules in other  applications.
> 
> For example, a code snippet
> 
> ----------------------------
> 
> my $dname_label = CP::Wx::StaticText->new($self, label => t('Distribution'));
>     my $dname = CP::Wx::ValidatedText->new($self, vdata => $vdata, vdatafield
> => 'citrusname', style => wxTE_READONLY);
>     my $version_label = CP::Wx::StaticText->new($self, label => t('Version'));
>     my $version = CP::Wx::ValidatedText->new($self, vdata => $vdata,
> vdatafield => 'citrusversion', style => wxTE_READONLY);
>     my $perl_label = CP::Wx::StaticText->new($self, label => t('Perl'));
>     my $perl = CP::Wx::ValidatedText->new($self, vdata => $vdata, vdatafield
> => 'citrusperl', style => wxTE_READONLY);
>     my $widgets_label = CP::Wx::StaticText->new($self, label => 
> t('wxWidgets'));
>     my $widgets = CP::Wx::ValidatedText->new($self, vdata => $vdata,
> vdatafield => 'citruswidgets', style => wxTE_READONLY);
> 
> -----------------------------
> 
> Examples of simple wrappers are in CP::Wx::Control and the code that makes it
> work is in CP::Wx::Window. It is intended to make it v simple to implement new
> wrappers for new controls simply by looking at CP::Wx::Control.
> 
> It currently lurks only in Citrus Perl as probably CP::Wx:: is not a
> reasonable namespace - but I like it being short. Also, such things are fairly
> useless to a wider community without documentation.
> 
> So - in answer to your question - yes, named params make absolute sense to me
> - but my view is that it needs to be outside the main Wx dist. The main Wx
> dist replicates as far as is possible the C++ interface - which means that the
> C++ docs, more or less, work for wxPerl too.
> 
> 
> I hope the above relates to your questions.
> 
> Regards
> 
> Mark
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>>
>> best
>> herbert aka lk
> 
> 

Reply via email to