// THIS FILE HAS BEEN AUTO-GENERATED BY CREATE_VCW

%typemap(out) wxFloatProperty* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxFloatProperty, 0);

}

%typemap(in) wxFloatProperty* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxFloatProperty")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxFloatProperty");
        SWIG_fail;
    }

}

class PyFloatProperty : public wxFloatProperty
{
public:
    %pythonAppend PyFloatProperty "self._SetSelf(self); self._RegisterMethods()"
    PyFloatProperty( const wxString& label = (*wxPGProperty::sm_wxPG_LABEL),
                     const wxString& name = (*wxPGProperty::sm_wxPG_LABEL),
                     double value = 0.0 );
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyFloatProperty, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxPGEditorDialogAdapter* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxPGEditorDialogAdapter, 0);

}

%typemap(in) wxPGEditorDialogAdapter* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxPGEditorDialogAdapter")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxPGEditorDialogAdapter");
        SWIG_fail;
    }

}

class PyEditorDialogAdapter : public wxPGEditorDialogAdapter
{
public:
    %pythonAppend PyEditorDialogAdapter "self._SetSelf(self); self._RegisterMethods()"
    PyEditorDialogAdapter();
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyEditorDialogAdapter, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
    virtual bool DoShowDialog( wxPropertyGrid* propGrid,
                               wxPGProperty* property );
};

%typemap(out) wxEnumProperty* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxEnumProperty, 0);

}

%typemap(in) wxEnumProperty* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxEnumProperty")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxEnumProperty");
        SWIG_fail;
    }

}

class PyEnumProperty : public wxEnumProperty
{
public:
    %pythonAppend PyEnumProperty "self._SetSelf(self); self._RegisterMethods()"
    PyEnumProperty( const wxString& label = (*wxPGProperty::sm_wxPG_LABEL),
                    const wxString& name = (*wxPGProperty::sm_wxPG_LABEL),
                    const wxArrayString& labels = wxArrayString(),
                    const wxArrayInt& values = wxArrayInt(),
                    int value = 0 );
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyEnumProperty, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxArrayStringProperty* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxArrayStringProperty, 0);

}

%typemap(in) wxArrayStringProperty* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxArrayStringProperty")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxArrayStringProperty");
        SWIG_fail;
    }

}

class PyArrayStringProperty : public wxArrayStringProperty
{
public:
    %pythonAppend PyArrayStringProperty "self._SetSelf(self); self._RegisterMethods()"
    PyArrayStringProperty( const wxString& label = (*wxPGProperty::sm_wxPG_LABEL),
                           const wxString& name = (*wxPGProperty::sm_wxPG_LABEL),
                           const wxArrayString& value = wxArrayString() );
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyArrayStringProperty, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxPGComboBoxEditor* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxPGComboBoxEditor, 0);

}

%typemap(in) wxPGComboBoxEditor* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxPGComboBoxEditor")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxPGComboBoxEditor");
        SWIG_fail;
    }

}

class PyComboBoxEditor : public wxPGComboBoxEditor
{
public:
    %pythonAppend PyComboBoxEditor "self._SetSelf(self); self._RegisterMethods()"
    PyComboBoxEditor();
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyComboBoxEditor, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxPGFileDialogAdapter* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxPGFileDialogAdapter, 0);

}

%typemap(in) wxPGFileDialogAdapter* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxPGFileDialogAdapter")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxPGFileDialogAdapter");
        SWIG_fail;
    }

}

class PyFileDialogAdapter : public wxPGFileDialogAdapter
{
public:
    %pythonAppend PyFileDialogAdapter "self._SetSelf(self); self._RegisterMethods()"
    PyFileDialogAdapter();
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyFileDialogAdapter, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxStringProperty* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxStringProperty, 0);

}

%typemap(in) wxStringProperty* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxStringProperty")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxStringProperty");
        SWIG_fail;
    }

}

class PyStringProperty : public wxStringProperty
{
public:
    %pythonAppend PyStringProperty "self._SetSelf(self); self._RegisterMethods()"
    PyStringProperty( const wxString& label = (*wxPGProperty::sm_wxPG_LABEL),
                      const wxString& name = (*wxPGProperty::sm_wxPG_LABEL),
                      const wxString& value = wxEmptyString );
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyStringProperty, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxPGLongStringDialogAdapter* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxPGLongStringDialogAdapter, 0);

}

%typemap(in) wxPGLongStringDialogAdapter* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxPGLongStringDialogAdapter")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxPGLongStringDialogAdapter");
        SWIG_fail;
    }

}

class PyLongStringDialogAdapter : public wxPGLongStringDialogAdapter
{
public:
    %pythonAppend PyLongStringDialogAdapter "self._SetSelf(self); self._RegisterMethods()"
    PyLongStringDialogAdapter();
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyLongStringDialogAdapter, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxEditEnumProperty* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxEditEnumProperty, 0);

}

%typemap(in) wxEditEnumProperty* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxEditEnumProperty")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxEditEnumProperty");
        SWIG_fail;
    }

}

class PyEditEnumProperty : public wxEditEnumProperty
{
public:
    %pythonAppend PyEditEnumProperty "self._SetSelf(self); self._RegisterMethods()"
    PyEditEnumProperty( const wxString& label,
                        const wxString& name,
                        const wxChar* const* labels,
                        const long* values,
                        const wxString& value );
    PyEditEnumProperty( const wxString& label = (*wxPGProperty::sm_wxPG_LABEL),
                        const wxString& name = (*wxPGProperty::sm_wxPG_LABEL),
                        const wxArrayString& labels = wxArrayString(),
                        const wxArrayInt& values = wxArrayInt(),
                        const wxString& value = wxEmptyString );
    PyEditEnumProperty( const wxString& label,
                        const wxString& name,
                        wxPGChoices& choices,
                        const wxString& value = wxEmptyString );
    PyEditEnumProperty( const wxString& label,
                        const wxString& name,
                        const wxChar* const* labels,
                        const long* values,
                        wxPGChoices* choicesCache,
                        const wxString& value );
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyEditEnumProperty, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxPGTextCtrlEditor* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxPGTextCtrlEditor, 0);

}

%typemap(in) wxPGTextCtrlEditor* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxPGTextCtrlEditor")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxPGTextCtrlEditor");
        SWIG_fail;
    }

}

class PyTextCtrlEditor : public wxPGTextCtrlEditor
{
public:
    %pythonAppend PyTextCtrlEditor "self._SetSelf(self); self._RegisterMethods()"
    PyTextCtrlEditor();
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyTextCtrlEditor, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxSystemColourProperty* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxSystemColourProperty, 0);

}

%typemap(in) wxSystemColourProperty* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxSystemColourProperty")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxSystemColourProperty");
        SWIG_fail;
    }

}

class PySystemColourProperty : public wxSystemColourProperty
{
public:
    %pythonAppend PySystemColourProperty "self._SetSelf(self); self._RegisterMethods()"
    PySystemColourProperty( const wxString& label = (*wxPGProperty::sm_wxPG_LABEL),
                            const wxString& name = (*wxPGProperty::sm_wxPG_LABEL),
                            const wxColourPropertyValue&
                                value = wxColourPropertyValue() );
    PySystemColourProperty( const wxString& label, const wxString& name,
        const wxChar* const* labels, const long* values, wxPGChoices* choicesCache,
        const wxColourPropertyValue& value );
    PySystemColourProperty( const wxString& label, const wxString& name,
        const wxChar* const* labels, const long* values, wxPGChoices* choicesCache,
        const wxColour& value );
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PySystemColourProperty, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxFlagsProperty* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxFlagsProperty, 0);

}

%typemap(in) wxFlagsProperty* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxFlagsProperty")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxFlagsProperty");
        SWIG_fail;
    }

}

class PyFlagsProperty : public wxFlagsProperty
{
public:
    %pythonAppend PyFlagsProperty "self._SetSelf(self); self._RegisterMethods()"
    PyFlagsProperty( const wxString& label = (*wxPGProperty::sm_wxPG_LABEL),
                     const wxString& name = (*wxPGProperty::sm_wxPG_LABEL),
                     const wxArrayString& labels = wxArrayString(),
                     const wxArrayInt& values = wxArrayInt(),
                     int value = 0 );
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyFlagsProperty, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxFontProperty* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxFontProperty, 0);

}

%typemap(in) wxFontProperty* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxFontProperty")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxFontProperty");
        SWIG_fail;
    }

}

class PyFontProperty : public wxFontProperty
{
public:
    %pythonAppend PyFontProperty "self._SetSelf(self); self._RegisterMethods()"
    PyFontProperty(const wxString& label = (*wxPGProperty::sm_wxPG_LABEL),
                   const wxString& name = (*wxPGProperty::sm_wxPG_LABEL),
                   const wxFont& value = wxFont());
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyFontProperty, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxColourProperty* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxColourProperty, 0);

}

%typemap(in) wxColourProperty* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxColourProperty")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxColourProperty");
        SWIG_fail;
    }

}

class PyColourProperty : public wxColourProperty
{
public:
    %pythonAppend PyColourProperty "self._SetSelf(self); self._RegisterMethods()"
    PyColourProperty( const wxString& label = (*wxPGProperty::sm_wxPG_LABEL),
                      const wxString& name = (*wxPGProperty::sm_wxPG_LABEL),
                      const wxColour& value = *wxWHITE );
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyColourProperty, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxFileProperty* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxFileProperty, 0);

}

%typemap(in) wxFileProperty* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxFileProperty")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxFileProperty");
        SWIG_fail;
    }

}

class PyFileProperty : public wxFileProperty
{
public:
    %pythonAppend PyFileProperty "self._SetSelf(self); self._RegisterMethods()"
    PyFileProperty( const wxString& label = (*wxPGProperty::sm_wxPG_LABEL),
                    const wxString& name = (*wxPGProperty::sm_wxPG_LABEL),
                    const wxString& value = wxEmptyString );
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyFileProperty, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxIntProperty* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxIntProperty, 0);

}

%typemap(in) wxIntProperty* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxIntProperty")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxIntProperty");
        SWIG_fail;
    }

}

class PyIntProperty : public wxIntProperty
{
public:
    %pythonAppend PyIntProperty "self._SetSelf(self); self._RegisterMethods()"
    PyIntProperty( const wxString& label = (*wxPGProperty::sm_wxPG_LABEL),
                   const wxString& name = (*wxPGProperty::sm_wxPG_LABEL),
                   long value = 0 );
    PyIntProperty( const wxString& label,
                   const wxString& name,
                   const wxLongLong& value );
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyIntProperty, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxPGEditor* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxPGEditor, 0);

}

%typemap(in) wxPGEditor* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxPGEditor")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxPGEditor");
        SWIG_fail;
    }

}

class PyEditor : public wxPGEditor
{
public:
    %pythonAppend PyEditor "self._SetSelf(self); self._RegisterMethods()"
    PyEditor();
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyEditor, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
    virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid,
                                          wxPGProperty* property,
                                          const wxPoint& pos,
                                          const wxSize& size) const;
    virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property,
        wxWindow* wnd_primary, wxEvent& event ) const;
    virtual void UpdateControl( wxPGProperty* property,
                                wxWindow* ctrl ) const;
};

%typemap(out) wxPGChoiceEditor* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxPGChoiceEditor, 0);

}

%typemap(in) wxPGChoiceEditor* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxPGChoiceEditor")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxPGChoiceEditor");
        SWIG_fail;
    }

}

class PyChoiceEditor : public wxPGChoiceEditor
{
public:
    %pythonAppend PyChoiceEditor "self._SetSelf(self); self._RegisterMethods()"
    PyChoiceEditor();
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyChoiceEditor, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxPGProperty* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxPGProperty, 0);

}

%typemap(in) wxPGProperty* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxPGProperty")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxPGProperty");
        SWIG_fail;
    }

}

class PyProperty : public wxPGProperty
{
public:
    %pythonAppend PyProperty "self._SetSelf(self); self._RegisterMethods()"
    PyProperty();
    PyProperty( const wxString& label, const wxString& name );
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyProperty, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxUIntProperty* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxUIntProperty, 0);

}

%typemap(in) wxUIntProperty* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxUIntProperty")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxUIntProperty");
        SWIG_fail;
    }

}

class PyUIntProperty : public wxUIntProperty
{
public:
    %pythonAppend PyUIntProperty "self._SetSelf(self); self._RegisterMethods()"
    PyUIntProperty( const wxString& label = (*wxPGProperty::sm_wxPG_LABEL),
                    const wxString& name = (*wxPGProperty::sm_wxPG_LABEL),
                     long value = 0 );
    PyUIntProperty( const wxString& label,
                    const wxString& name,
                    const wxULongLong& value );
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyUIntProperty, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};

%typemap(out) wxLongStringProperty* {
    $result = NULL;
    if ( $1->m_clientData ) $result = (PyObject*)$1->m_clientData;
    if ( $result ) Py_INCREF($result);
    else $result = SWIG_NewPointerObj((void*)$1, SWIGTYPE_p_wxLongStringProperty, 0);

}

%typemap(in) wxLongStringProperty* {
    if ( !wxPyConvertSwigPtr($input, (void**)&$1, wxT("wxLongStringProperty")) ) {
        PyErr_SetString(PyExc_TypeError,"expected wxLongStringProperty");
        SWIG_fail;
    }

}

class PyLongStringProperty : public wxLongStringProperty
{
public:
    %pythonAppend PyLongStringProperty "self._SetSelf(self); self._RegisterMethods()"
    PyLongStringProperty( const wxString& label = (*wxPGProperty::sm_wxPG_LABEL),
                          const wxString& name = (*wxPGProperty::sm_wxPG_LABEL),
                          const wxString& value = wxEmptyString );
%pythoncode {
    def CallSuperMethod(self, *args, **kwargs):
        funcname = args[0]
        args2 = list(args)
        args2[0] = self
        self._super_call = True
        try:
            res = getattr(PyLongStringProperty, funcname)(*args2, **kwargs)
        finally:
            del self._super_call
        return res

    def _RegisterMethods(self):
        cls = self.__class__
        if not hasattr(cls,'_pyswig_methods_registered'):
            cls._pyswig_methods_registered = True
            ls = [ab for ab in cls.__dict__.iteritems()]
            for a, b in ls:
                if not a.startswith('_'):
                    setattr(cls, '%s_t_'%a, b)
}
    void _SetSelf(PyObject *self);
};