make m_strDefaultValueForCmp always non-empty; this simplifies the code; fix wxMethod::GetAsString() not to use wxType::GetAsCleanString for return type
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55840 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -132,19 +132,24 @@ bool wxType::operator==(const wxType& m) const
|
|||||||
|
|
||||||
void wxArgumentType::SetDefaultValue(const wxString& defval, const wxString& defvalForCmp)
|
void wxArgumentType::SetDefaultValue(const wxString& defval, const wxString& defvalForCmp)
|
||||||
{
|
{
|
||||||
m_strDefaultValue=defval.Strip(wxString::both);
|
m_strDefaultValue = defval.Strip(wxString::both);
|
||||||
m_strDefaultValueForCmp=defvalForCmp.Strip(wxString::both);
|
m_strDefaultValueForCmp = defvalForCmp.IsEmpty() ? m_strDefaultValue : defvalForCmp.Strip(wxString::both);
|
||||||
|
|
||||||
|
// adjust aesthetic form of DefaultValue for the modify mode of ifacecheck:
|
||||||
|
// we may need to write it out in an interface header
|
||||||
|
if (m_strDefaultValue == "0u")
|
||||||
|
m_strDefaultValue = "0";
|
||||||
|
|
||||||
// in order to make valid&simple comparison on argument defaults,
|
// in order to make valid&simple comparison on argument defaults,
|
||||||
// we reduce some of the multiple forms in which the same things may appear
|
// we reduce some of the multiple forms in which the same things may appear
|
||||||
// to a single form:
|
// to a single form:
|
||||||
if (m_strDefaultValue == "0u")
|
if (m_strDefaultValueForCmp == "0u")
|
||||||
m_strDefaultValue = "0";
|
m_strDefaultValueForCmp = "0";
|
||||||
/*
|
/*
|
||||||
if (IsPointer())
|
if (IsPointer())
|
||||||
m_strDefaultValue.Replace("0", "NULL");
|
m_strDefaultValueForCmp.Replace("0", "NULL");
|
||||||
else
|
else
|
||||||
m_strDefaultValue.Replace("NULL", "0");
|
m_strDefaultValueForCmp.Replace("NULL", "0");
|
||||||
*/
|
*/
|
||||||
// ADHOC-FIX:
|
// ADHOC-FIX:
|
||||||
// doxygen likes to put wxDateTime:: in front of all wxDateTime enums;
|
// doxygen likes to put wxDateTime:: in front of all wxDateTime enums;
|
||||||
@@ -153,8 +158,8 @@ void wxArgumentType::SetDefaultValue(const wxString& defval, const wxString& def
|
|||||||
m_strDefaultValueForCmp.Replace("wxStockGDI::", ""); // same story for some other classes
|
m_strDefaultValueForCmp.Replace("wxStockGDI::", ""); // same story for some other classes
|
||||||
|
|
||||||
// ADHOC-FIX:
|
// ADHOC-FIX:
|
||||||
if (m_strDefaultValue.Contains("wxGetTranslation"))
|
if (m_strDefaultValueForCmp.Contains("wxGetTranslation"))
|
||||||
m_strDefaultValue = "_(TOFIX)"; // TODO: wxGetTranslation gives problems to gccxml
|
m_strDefaultValueForCmp = "_(TOFIX)"; // TODO: wxGetTranslation gives problems to gccxml
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxArgumentType::operator==(const wxArgumentType& m) const
|
bool wxArgumentType::operator==(const wxArgumentType& m) const
|
||||||
@@ -162,24 +167,21 @@ bool wxArgumentType::operator==(const wxArgumentType& m) const
|
|||||||
if ((const wxType&)(*this) != (const wxType&)m)
|
if ((const wxType&)(*this) != (const wxType&)m)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
const wxString& def1 = m_strDefaultValueForCmp.IsEmpty() ? m_strDefaultValue : m_strDefaultValueForCmp;
|
|
||||||
const wxString& def2 = m.m_strDefaultValueForCmp.IsEmpty() ? m.m_strDefaultValue : m.m_strDefaultValueForCmp;
|
|
||||||
|
|
||||||
// ADHOC-FIX:
|
// ADHOC-FIX:
|
||||||
// default values for style attributes of wxWindow-derived classes in gccxml appear as raw
|
// default values for style attributes of wxWindow-derived classes in gccxml appear as raw
|
||||||
// numbers; avoid false positives in this case!
|
// numbers; avoid false positives in this case!
|
||||||
if (m_strArgName == m.m_strArgName && m_strArgName == "style" &&
|
if (m_strArgName == m.m_strArgName && m_strArgName == "style" &&
|
||||||
(def1.IsNumber() || def2.IsNumber()))
|
(m_strDefaultValueForCmp.IsNumber() || m.m_strDefaultValueForCmp.IsNumber()))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (def1 != def2)
|
if (m_strDefaultValueForCmp != m.m_strDefaultValueForCmp)
|
||||||
{
|
{
|
||||||
// maybe the default values are numbers.
|
// maybe the default values are numbers.
|
||||||
// in this case gccXML gives as default values things like '-0x0000001' instead of just '-1'.
|
// in this case gccXML gives as default values things like '-0x0000001' instead of just '-1'.
|
||||||
// To handle these cases, we try to convert the default value strings to numbers:
|
// To handle these cases, we try to convert the default value strings to numbers:
|
||||||
long def1val, def2val;
|
long def1val, def2val;
|
||||||
if (def1.ToLong(&def1val, 0 /* auto-detect */) &&
|
if (m_strDefaultValueForCmp.ToLong(&def1val, 0 /* auto-detect */) &&
|
||||||
def2.ToLong(&def2val, 0 /* auto-detect */))
|
m.m_strDefaultValueForCmp.ToLong(&def2val, 0 /* auto-detect */))
|
||||||
{
|
{
|
||||||
if (def1val == def2val)
|
if (def1val == def2val)
|
||||||
return true; // the default values match
|
return true; // the default values match
|
||||||
@@ -187,7 +189,7 @@ bool wxArgumentType::operator==(const wxArgumentType& m) const
|
|||||||
|
|
||||||
if (g_verbose)
|
if (g_verbose)
|
||||||
LogMessage("Argument type '%s = %s' has different default value from '%s = %s'",
|
LogMessage("Argument type '%s = %s' has different default value from '%s = %s'",
|
||||||
m_strType, def1, m.m_strType, def2);
|
m_strType, m_strDefaultValueForCmp, m.m_strType, m.m_strDefaultValueForCmp);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -289,13 +291,11 @@ wxString wxMethod::GetAsString(bool bWithArgumentNames, bool bClean, bool bDepre
|
|||||||
{
|
{
|
||||||
wxString ret;
|
wxString ret;
|
||||||
|
|
||||||
|
// NOTE: for return and argument types, never use wxType::GetAsCleanString
|
||||||
|
// since in that way we'd miss important decorators like &,*,const etc
|
||||||
|
|
||||||
if (m_retType!=wxEmptyType)
|
if (m_retType!=wxEmptyType)
|
||||||
{
|
ret += m_retType.GetAsString() + " ";
|
||||||
if (bClean)
|
|
||||||
ret += m_retType.GetAsCleanString() + " ";
|
|
||||||
else
|
|
||||||
ret += m_retType.GetAsString() + " ";
|
|
||||||
}
|
|
||||||
//else; this is a ctor or dtor
|
//else; this is a ctor or dtor
|
||||||
|
|
||||||
ret += m_strName + "(";
|
ret += m_strName + "(";
|
||||||
|
@@ -64,6 +64,10 @@ public:
|
|||||||
void SetTypeFromString(const wxString& t);
|
void SetTypeFromString(const wxString& t);
|
||||||
wxString GetAsString() const
|
wxString GetAsString() const
|
||||||
{ return m_strType; }
|
{ return m_strType; }
|
||||||
|
|
||||||
|
// returns this type _without_ any decoration,
|
||||||
|
// including the & (which indicates this is a reference),
|
||||||
|
// the * (which indicates this is a pointer), etc.
|
||||||
wxString GetAsCleanString() const
|
wxString GetAsCleanString() const
|
||||||
{ return m_strTypeClean; }
|
{ return m_strTypeClean; }
|
||||||
|
|
||||||
@@ -108,11 +112,14 @@ public:
|
|||||||
wxString GetArgumentName() const
|
wxString GetArgumentName() const
|
||||||
{ return m_strArgName; }
|
{ return m_strArgName; }
|
||||||
|
|
||||||
void SetDefaultValue(const wxString& defval, const wxString& defvalForCmp = wxEmptyString);
|
void SetDefaultValue(const wxString& defval,
|
||||||
|
const wxString& defvalForCmp = wxEmptyString);
|
||||||
wxString GetDefaultValue() const
|
wxString GetDefaultValue() const
|
||||||
{ return m_strDefaultValue; }
|
{ return m_strDefaultValue; }
|
||||||
|
|
||||||
|
// returns the default value used for comparisons
|
||||||
wxString GetDefaultCleanValue() const
|
wxString GetDefaultCleanValue() const
|
||||||
{ return m_strDefaultValueForCmp.IsEmpty() ? m_strDefaultValue : m_strDefaultValueForCmp; }
|
{ return m_strDefaultValueForCmp; }
|
||||||
|
|
||||||
bool HasDefaultValue() const
|
bool HasDefaultValue() const
|
||||||
{ return !m_strDefaultValue.IsEmpty(); }
|
{ return !m_strDefaultValue.IsEmpty(); }
|
||||||
@@ -125,12 +132,12 @@ protected:
|
|||||||
wxString m_strDefaultValue;
|
wxString m_strDefaultValue;
|
||||||
|
|
||||||
// this string may differ from m_strDefaultValue if there were
|
// this string may differ from m_strDefaultValue if there were
|
||||||
// preprocessor substitutions; can be wxEmptyString.
|
// preprocessor substitutions or other "replacements" done to
|
||||||
|
// avoid false errors.
|
||||||
wxString m_strDefaultValueForCmp;
|
wxString m_strDefaultValueForCmp;
|
||||||
|
|
||||||
wxString m_strArgName; // this one only makes sense when this wxType is
|
// the argument name
|
||||||
// used as argument type (and not as return type)
|
wxString m_strArgName;
|
||||||
// and can be empty.
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extern wxArgumentType wxEmptyArgumentType;
|
extern wxArgumentType wxEmptyArgumentType;
|
||||||
|
Reference in New Issue
Block a user