+// ----------------------------------------------------------------------------
+// Represents a type used as argument for some wxMethod
+// ----------------------------------------------------------------------------
+class wxArgumentType : public wxType
+{
+public:
+ wxArgumentType() {}
+ wxArgumentType(const wxString& type, const wxString& defVal,
+ const wxString& argName = wxEmptyString)
+ { SetTypeFromString(type); SetDefaultValue(defVal); m_strArgName = argName; }
+
+ void SetArgumentName(const wxString& name)
+ { m_strArgName=name.Strip(wxString::both); }
+ wxString GetArgumentName() const
+ { return m_strArgName; }
+
+ void SetDefaultValue(const wxString& defval,
+ const wxString& defvalForCmp = wxEmptyString);
+ wxString GetDefaultValue() const
+ { return m_strDefaultValue; }
+
+ // returns the default value used for comparisons
+ wxString GetDefaultCleanValue() const
+ { return m_strDefaultValueForCmp; }
+
+ bool HasDefaultValue() const
+ { return !m_strDefaultValue.IsEmpty(); }
+
+ bool operator==(const wxArgumentType& m) const;
+ bool operator!=(const wxArgumentType& m) const
+ { return !(*this == m); }
+
+protected:
+ wxString m_strDefaultValue;
+
+ // this string may differ from m_strDefaultValue if there were
+ // preprocessor substitutions or other "replacements" done to
+ // avoid false errors.
+ wxString m_strDefaultValueForCmp;
+
+ // the argument name
+ wxString m_strArgName;
+};
+
+extern wxArgumentType wxEmptyArgumentType;
+WX_DECLARE_OBJARRAY(wxArgumentType, wxArgumentTypeArray);
+
+
+enum wxMethodAccessSpecifier
+{
+ wxMAS_PUBLIC,
+ wxMAS_PROTECTED,
+ wxMAS_PRIVATE
+};