// This file has been generated by Py++.

#include "boost/python.hpp"
#include "python_CEGUI.h"
#include "XMLHandler.pypp.hpp"

namespace bp = boost::python;

struct XMLHandler_wrapper : CEGUI::XMLHandler, bp::wrapper< CEGUI::XMLHandler > {

    XMLHandler_wrapper(CEGUI::XMLHandler const & arg )
    : CEGUI::XMLHandler( arg )
      , bp::wrapper< CEGUI::XMLHandler >(){
        // copy constructor
        
    }

    XMLHandler_wrapper( )
    : CEGUI::XMLHandler( )
      , bp::wrapper< CEGUI::XMLHandler >(){
        // null constructor
    
    }

    virtual void elementEnd( ::CEGUI::String const & element ) {
        if( bp::override func_elementEnd = this->get_override( "elementEnd" ) )
            func_elementEnd( boost::ref(element) );
        else{
            this->CEGUI::XMLHandler::elementEnd( boost::ref(element) );
        }
    }
    
    void default_elementEnd( ::CEGUI::String const & element ) {
        CEGUI::XMLHandler::elementEnd( boost::ref(element) );
    }

    virtual void elementStart( ::CEGUI::String const & element, ::CEGUI::XMLAttributes const & attributes ) {
        if( bp::override func_elementStart = this->get_override( "elementStart" ) )
            func_elementStart( boost::ref(element), boost::ref(attributes) );
        else{
            this->CEGUI::XMLHandler::elementStart( boost::ref(element), boost::ref(attributes) );
        }
    }
    
    void default_elementStart( ::CEGUI::String const & element, ::CEGUI::XMLAttributes const & attributes ) {
        CEGUI::XMLHandler::elementStart( boost::ref(element), boost::ref(attributes) );
    }

    virtual void text( ::CEGUI::String const & text ) {
        if( bp::override func_text = this->get_override( "text" ) )
            func_text( boost::ref(text) );
        else{
            this->CEGUI::XMLHandler::text( boost::ref(text) );
        }
    }
    
    void default_text( ::CEGUI::String const & text ) {
        CEGUI::XMLHandler::text( boost::ref(text) );
    }

};

void register_XMLHandler_class(){

    { //::CEGUI::XMLHandler
        typedef bp::class_< XMLHandler_wrapper > XMLHandler_exposer_t;
        XMLHandler_exposer_t XMLHandler_exposer = XMLHandler_exposer_t( "XMLHandler", bp::init< >("*!\n\
        \n\
            XMLHandler base class constructor.\n\
         *\n") );
        bp::scope XMLHandler_scope( XMLHandler_exposer );
        { //::CEGUI::XMLHandler::elementEnd
        
            typedef void ( ::CEGUI::XMLHandler::*elementEnd_function_type )( ::CEGUI::String const & ) ;
            typedef void ( XMLHandler_wrapper::*default_elementEnd_function_type )( ::CEGUI::String const & ) ;
            
            XMLHandler_exposer.def( 
                "elementEnd"
                , elementEnd_function_type(&::CEGUI::XMLHandler::elementEnd)
                , default_elementEnd_function_type(&XMLHandler_wrapper::default_elementEnd)
                , ( bp::arg("element") ) );
        
        }
        { //::CEGUI::XMLHandler::elementStart
        
            typedef void ( ::CEGUI::XMLHandler::*elementStart_function_type )( ::CEGUI::String const &,::CEGUI::XMLAttributes const & ) ;
            typedef void ( XMLHandler_wrapper::*default_elementStart_function_type )( ::CEGUI::String const &,::CEGUI::XMLAttributes const & ) ;
            
            XMLHandler_exposer.def( 
                "elementStart"
                , elementStart_function_type(&::CEGUI::XMLHandler::elementStart)
                , default_elementStart_function_type(&XMLHandler_wrapper::default_elementStart)
                , ( bp::arg("element"), bp::arg("attributes") ) );
        
        }
        { //::CEGUI::XMLHandler::text
        
            typedef void ( ::CEGUI::XMLHandler::*text_function_type )( ::CEGUI::String const & ) ;
            typedef void ( XMLHandler_wrapper::*default_text_function_type )( ::CEGUI::String const & ) ;
            
            XMLHandler_exposer.def( 
                "text"
                , text_function_type(&::CEGUI::XMLHandler::text)
                , default_text_function_type(&XMLHandler_wrapper::default_text)
                , ( bp::arg("text") ) );
        
        }
    }

}
