<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000">
<p><small><font face="Comic Sans MS">I am having a problem in wrapping
a protected enum declared in a child class. For some reason, the sip
code below is converting Element::OptionalCRLF parameters to int, which
results in a compiler error. If anyone has an idea of what is wrong in
my wrapped code, please let me know.<br>
</font></small></p>
<tt>sippyptlibPHTMLFormField.cpp<br>
.\sippyptlibPHTMLFormField.cpp(53) : error C2664:
'PHTML::FormField::FormField(const char *,const char
*,PHTML::ElementInSet,<br>
PHTML::Element::OptionalCRLF,PHTML::DisableCodes,const char *)' :
cannot convert parameter 4 from 'int' to 'PHTML::Element::OptionalCRLF'<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Conversion to enumeration type requires an explicit cast
(static_cast, C-style cast or function-style cast)<br>
<br>
class PHTML<br>
{<br>
&nbsp; public:<br>
&nbsp;&nbsp;&nbsp; enum ElementInSet {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InHTML,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NumElementsInSet<br>
&nbsp;&nbsp;&nbsp; };<br>
<br>
&nbsp;&nbsp;&nbsp; enum DisableCodes {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Enabled,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Disabled<br>
&nbsp;&nbsp;&nbsp; };<br>
<br>
&nbsp;&nbsp;&nbsp; PHTML(<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char * cstr&nbsp;&nbsp;&nbsp;&nbsp; ///&lt; C string representation of the
title string.<br>
&nbsp;&nbsp;&nbsp; );<br>
<br>
&nbsp;&nbsp;&nbsp; class Element {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public: <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; virtual ~Element();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enum OptionalCRLF { NoCRLF, OpenCRLF, CloseCRLF, BothCRLF };<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element(<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char * nam,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char * att,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PHTML::ElementInSet elmt,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PHTML::ElementInSet req,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OptionalCRLF opt<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; virtual void Output(PHTML &amp; html) const;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; virtual void AddAttr(PHTML &amp; html) const;<br>
&nbsp;&nbsp;&nbsp; };<br>
<br>
&nbsp; class FieldElement : PHTML::Element {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FieldElement(<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char * nam,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char * attr,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PHTML::ElementInSet elmt,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OptionalCRLF opt,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PHTML::DisableCodes disabled<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; virtual ~FieldElement();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; virtual void AddAttr(PHTML &amp; html) const;<br>
&nbsp;&nbsp;&nbsp; };<br>
};</tt><br>
<br>
<tt>Offending C++ Code - as you can see 'int a3' should actually be
PHTML::Element::OptionalCRLF. I am not sure why sip is treating this as
an int.<br>
<br>
sipPHTML_FormField::sipPHTML_FormField(const char *a0,const char
*a1,PHTML::ElementInSet a2,<u><b>int a3</b></u>,PHTML::DisableCodes
a4,const char *a5): PHTML::FormField(a0,a1,a2,a3,a4,a5), sipPySelf(0)<br>
{<br>
&nbsp;&nbsp;&nbsp; memset(sipPyMethods, 0, sizeof (sipPyMethods));<br>
}</tt><br>
<br>
</body>
</html>