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.

Reply via email to