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 [EMAIL PROTECTED];
}
+ 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 [EMAIL PROTECTED];
+ }
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} = [EMAIL PROTECTED]"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.