|
From: Robert M. <rm...@po...> - 2005-11-07 21:41:46
|
Glenn Linderman wrote:
>>
>> use Win32::GUI ();
>>
>> will not export anything, as you'd expect, and as happens today. I
>> think this is what Jez is already doing.
>
> I'm doing that. But I don't know about Jez. On the other hand, use
> Win32::GUI(); also turns off exporting of (non-constant) functions,
> which may not be desirable.
I am not aware that Win32::GUI exports any non-constant functions. Some
of the sub-classes appear to AUTOLOAD some functions (although I'm not
sure they actually do), but this should not be affected. Am I missing
something?
>>>>>> (4) What other groups of constants should we have?
>
> Hmm. With 350 names in :compatibility_win32_gui, more files might be
> needed. Maybe change Tags.pm
>
> sub tag {
> my $spec = shift;
>
> if(defined $TAG_SPECS{$spec}) {
> my @names = ();
> my @syms = keys(%$C);
> foreach my $patn (@{$TAG_SPECS{$spec}}) {
> push @names, grep(/$patn/, @syms);
> }
> return \@names;
> }
> + else {
> + $TAG_SPECS($spec) = <read-the-file-named-after-the-tag>;
> + my @syms = keys(%$C);
> + foreach my $patn (@{$TAG_SPECS{$spec}}) {
> + push @names, grep(/$patn/, @syms);
> + }
> + return \@names;
> + }
> return undef;
> }
>
> Sorry for the pseudo-code above, maybe it should be
>
> + require Win32::GUI::Constants::Tags::$spec;
> + $TAG_SPECS($spec) = $Win32::GUI::Constants::Tags::$spec::C;
>
Probably something like
eval "require Win32::GUI::Constants::Tags_$spec";
if($@) {
warnings::warnif qq(Failed to load definition for tag ':$spec': $@)
}
else {
$TAG_SPEC{$spec} = \@{"Win32::GUI::Constants::Tags_$spec::C"};
}
Although I'll not head down this route just yet - I'll add a comment to
the Tags.pm file.
Thanks for the feedback.
Regards,
Rob.
|