Using *Skin:: was the only way that I could get things to work when I
changed from the module being Skin to Win32::GUI::Skin.  I'll look some
more, but maybe it's an artifact of Win32::GUI.

I'll go ahead and use the standard method of documentation, and include the
POD in the module.

Thanks Glenn!

Brian Millham
This message traveled at least 44,000 miles to reach you!
Creator of the DW6000 Monitor
http://www.millham.net/dw6000
[EMAIL PROTECTED]

-----Original Message-----
From: Glenn Linderman [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, April 18, 2006 10:20 PM
To: Brian Millham
Cc: 'Robert May'; perl-win32-gui-users@lists.sourceforge.net
Subject: Re: [win32-gui] RE: [perl-win32-gui-users] The skin module

On approximately 4/18/2006 6:55 PM, came the following characters from 
the keyboard of Brian Millham:
> Thank you for the suggestions Rob!
> 
> I'm working on incorporating the suggestions that you made.
> 
> Once I'm to the point of creating the Makefile and PPM, I'll probably need
> some help.
> 
> I'll also have to do some reading up on testing...
> 
> BTW, when I made the change to allow the module to be true
Win32::GUI::Skin,
> I had to add:
> 
> *Skin:: = \%Win32::GUI::Skin::;
> 
> to make it work.  (I figured that out from looking through GUI.pm)  Why?

I'm not 100% sure of this, but I've not seen that sort of thing in very 
many modules.  I *think* it is a wart in Win32::GUI to allow references 
to both Win32::GUI::something and GUI::something to be the same 
something... in other words, GUI and Win32::GUI are aliases.  I wouldn't 
recommend shipping such a wart in a new module, it clutters the namespace.

> About documentation.  I've created separate POD documents.  I've noticed
> that GUI.pm doesn't contain the POD.  It this something that happens
during
> install (POD is extracted and removed from the original code), or just the
> way the GUI.pm was done?

Just the way GUI.pm was done.  Many modules contain POD internally. 
Many modules have separate POD files.  Compile time is somewhat faster 
if POD is not internal, but separating documentation and code generally 
encourages the documentation to rot faster than the code... which is why 
POD was designed to be internal to the module source.

> I realize that it's a basic question, but this is my first attempt at a
real
> module.
> 
> Brian Millham
> This message traveled at least 44,000 miles to reach you!
> Creator of the DW6000 Monitor
> http://www.millham.net/dw6000
> [EMAIL PROTECTED]
> 
> -----Original Message-----
> From: Robert May [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, April 18, 2006 4:24 PM
> To: Brian Millham
> Cc: perl-win32-gui-users@lists.sourceforge.net
> Subject: Re: [win32-gui] RE: [perl-win32-gui-users] The skin module
> 
> Brian Millham wrote:
>> Hi again,
>> I see the quite a few people checked out my page about creating a
skinfile
>> for use with my Skin module.  I realize that the documentation needs a
lot
>> of work...
>>
>> Has anyone tried to play with this yet?
> 
> I've just run it up.  Win98, AS Perl 5.8.7 (build 813).  Looks pretty!
> 
>> Have some of you who are more familiar with creating modules looked at
the
>> code in Skin.pm.  Am I on the right track here for creating a true
>> Win32::GUI::Skin module?
> 
> Looks good so far ...  some comments from a very quick skin of the code, 
> and in no particular order:
> 
> (1) Use the Carp module, rather than warn/die in your PM file, so that 
> warnings are reported from the user code perspective (if it's a user 
> problem, of course.  If it's a module problem then warn/die are fine)
> 
> (2) It looks like your SetEvent('Paint', ...) call in the constructor 
> cause a closure over $self, and does a GetDC that gets a DC that is not 
> released until the program finishes.  You may have intended this for 
> speed, but if so it would be better to create a new class with the calss 
> style CS_OWNDC, rather that hogging a shared resource.
> 
> (3) When storing your own instance data in the module I'd start the hash 
> variable names with something other than '-' (I tend to use '_') to 
> avoid any possible future clash with Win32::GUI instance data.  See also 
> my (to be written) response to Jeremy about instance data.
> 
> (4) You don't need to provide a Version function - you'll get one 
> automatically inherited from 'Universal' - you just need the 
> $Skin::VERSION variable set.. Change
>    my $VERSION = eval("0.1");
> to
>    our $VERSION = 0.10;
> 2 decimal paces on $VERSION is more CPAN friendly.  Additionally, you 
> don't need the eval, unless you want to use the CPAN 'alpha' notation 
> with versions like 0.10_01, in which case do:
>    our $VERSION = "0.10_01";  # for MakeMaker
>    $VERSION = eval $VERSION;  # for Perl
> (See perldoc perlmodstyle.  perlnewmod, perlmod, perlmodlib are also 
> good reading)
> 
> (5) You'll need a Makefile.PL eventually (I can help here if you need 
> it) so that the standard
>    perl Makefile.PL
>    make
>    make test
>    make install
> incantation works.  This also makes it easy to generate a PPM for easy 
> distribution to ActiveState perl users.
> 
> (6) Tests?  At least test that the module loads with no errors - I guess 
> that testing much else will be hard.
> 
> (7) Documentation - but I see you already chastised yourself on this one.
> 
> (8) name class private methods starting with an underscore - 
> Test::Pod::Coverage ignores such functions and doesn't insist you write 
> documentation for it.
> 
> Regards,
> Rob.
> ---
> avast! Antivirus: Inbound message clean.
> Virus Database (VPS): 0616-2, 04/18/2006
> Tested on: 4/18/2006 5:05:29 PM
> avast! is copyright (c) 2000-2003 ALWIL Software.
> http://www.avast.com
> 
> 
> 
> ---
> avast! Antivirus: Outbound message clean.
> Virus Database (VPS): 0616-2, 04/18/2006
> Tested on: 4/18/2006 9:55:59 PM
> avast! is copyright (c) 2000-2003 ALWIL Software.
> http://www.avast.com
> 
> 
> 
> 
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by xPML, a groundbreaking scripting
language
> that extends applications into web and mobile media. Attend the live
webcast
> and join the prime developer group breaking into this new coding
territory!
> http://sel.as-us.falkag.net/sel?cmd=k&kid0944&bid$1720&dat1642
> _______________________________________________
> Perl-Win32-GUI-Users mailing list
> Perl-Win32-GUI-Users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users
> http://perl-win32-gui.sourceforge.net/
> 
> 
> 
> 

-- 
Glenn -- http://nevcal.com/
===========================
A protocol is complete when there is nothing left to remove.
-- Stuart Cheshire, Apple Computer, regarding Zero Configuration Networking
---
avast! Antivirus: Outbound message clean.
Virus Database (VPS): 0616-2, 04/18/2006
Tested on: 4/18/2006 10:33:43 PM
avast! is copyright (c) 2000-2003 ALWIL Software.
http://www.avast.com





Reply via email to