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

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

namespace bp = boost::python;

struct WindowRenderer_wrapper : CEGUI::WindowRenderer, bp::wrapper< CEGUI::WindowRenderer > {

    WindowRenderer_wrapper(::CEGUI::String const & name, ::CEGUI::String const & class_name="Window" )
    : CEGUI::WindowRenderer( boost::ref(name), boost::ref(class_name) )
      , bp::wrapper< CEGUI::WindowRenderer >(){
        // constructor
    
    }

    virtual void getRenderingContext( ::CEGUI::RenderingContext & ctx ) const  {
        if( bp::override func_getRenderingContext = this->get_override( "getRenderingContext" ) )
            func_getRenderingContext( boost::ref(ctx) );
        else{
            this->CEGUI::WindowRenderer::getRenderingContext( boost::ref(ctx) );
        }
    }
    
    void default_getRenderingContext( ::CEGUI::RenderingContext & ctx ) const  {
        CEGUI::WindowRenderer::getRenderingContext( boost::ref(ctx) );
    }

    virtual ::CEGUI::Rect getUnclippedInnerRect(  ) const  {
        if( bp::override func_getUnclippedInnerRect = this->get_override( "getUnclippedInnerRect" ) )
            return func_getUnclippedInnerRect(  );
        else{
            return this->CEGUI::WindowRenderer::getUnclippedInnerRect(  );
        }
    }
    
    ::CEGUI::Rect default_getUnclippedInnerRect(  ) const  {
        return CEGUI::WindowRenderer::getUnclippedInnerRect( );
    }

    virtual void performChildWindowLayout(  ) {
        if( bp::override func_performChildWindowLayout = this->get_override( "performChildWindowLayout" ) )
            func_performChildWindowLayout(  );
        else{
            this->CEGUI::WindowRenderer::performChildWindowLayout(  );
        }
    }
    
    void default_performChildWindowLayout(  ) {
        CEGUI::WindowRenderer::performChildWindowLayout( );
    }

    virtual void render(  ){
        bp::override func_render = this->get_override( "render" );
        func_render(  );
    }

    virtual void update( float arg0 ) {
        if( bp::override func_update = this->get_override( "update" ) )
            func_update( arg0 );
        else{
            this->CEGUI::WindowRenderer::update( arg0 );
        }
    }
    
    void default_update( float arg0 ) {
        CEGUI::WindowRenderer::update( arg0 );
    }

};

void register_WindowRenderer_class(){

    { //::CEGUI::WindowRenderer
        typedef bp::class_< WindowRenderer_wrapper, boost::noncopyable > WindowRenderer_exposer_t;
        WindowRenderer_exposer_t WindowRenderer_exposer = WindowRenderer_exposer_t( "WindowRenderer", "*!\n\
        \n\
            Base-class for the assignable WindowRenderer object\n\
        *\n", bp::init< CEGUI::String const &, bp::optional< CEGUI::String const & > >(( bp::arg("name"), bp::arg("class_name")="Window" ), "*************************************************************************\n\
                Constructor  Destructor\n\
            **************************************************************************\n\
            *!\n\
            \n\
                Constructor\n\
        \n\
            @param name\n\
                Factory type name\n\
        \n\
            @param class_name\n\
                The name of a widget class that is to be the minimum requirement for\n\
                this window renderer.\n\
            *\n") );
        bp::scope WindowRenderer_scope( WindowRenderer_exposer );
        { //::CEGUI::WindowRenderer::getClass
        
            typedef ::CEGUI::String const & ( ::CEGUI::WindowRenderer::*getClass_function_type )(  ) const;
            
            WindowRenderer_exposer.def( 
                "getClass"
                , getClass_function_type( &::CEGUI::WindowRenderer::getClass )
                , bp::return_value_policy< bp::copy_const_reference >()
                , "*!\n\
            \n\
                Get the minimum Window class this renderer requires\n\
            *\n" );
        
        }
        { //::CEGUI::WindowRenderer::getLookNFeel
        
            typedef ::CEGUI::WidgetLookFeel const & ( ::CEGUI::WindowRenderer::*getLookNFeel_function_type )(  ) const;
            
            WindowRenderer_exposer.def( 
                "getLookNFeel"
                , getLookNFeel_function_type( &::CEGUI::WindowRenderer::getLookNFeel )
                , bp::return_value_policy< bp::copy_const_reference >()
                , "*!\n\
            \n\
                Get the Look'N'Feel assigned to our window\n\
            *\n" );
        
        }
        { //::CEGUI::WindowRenderer::getName
        
            typedef ::CEGUI::String const & ( ::CEGUI::WindowRenderer::*getName_function_type )(  ) const;
            
            WindowRenderer_exposer.def( 
                "getName"
                , getName_function_type( &::CEGUI::WindowRenderer::getName )
                , bp::return_value_policy< bp::copy_const_reference >()
                , "*!\n\
            \n\
                Returns the factory type name of this window renderer.\n\
            *\n" );
        
        }
        { //::CEGUI::WindowRenderer::getRenderingContext
        
            typedef void ( ::CEGUI::WindowRenderer::*getRenderingContext_function_type )( ::CEGUI::RenderingContext & ) const;
            typedef void ( WindowRenderer_wrapper::*default_getRenderingContext_function_type )( ::CEGUI::RenderingContext & ) const;
            
            WindowRenderer_exposer.def( 
                "getRenderingContext"
                , getRenderingContext_function_type(&::CEGUI::WindowRenderer::getRenderingContext)
                , default_getRenderingContext_function_type(&WindowRenderer_wrapper::default_getRenderingContext)
                , ( bp::arg("ctx") ) );
        
        }
        { //::CEGUI::WindowRenderer::getUnclippedInnerRect
        
            typedef ::CEGUI::Rect ( ::CEGUI::WindowRenderer::*getUnclippedInnerRect_function_type )(  ) const;
            typedef ::CEGUI::Rect ( WindowRenderer_wrapper::*default_getUnclippedInnerRect_function_type )(  ) const;
            
            WindowRenderer_exposer.def( 
                "getUnclippedInnerRect"
                , getUnclippedInnerRect_function_type(&::CEGUI::WindowRenderer::getUnclippedInnerRect)
                , default_getUnclippedInnerRect_function_type(&WindowRenderer_wrapper::default_getUnclippedInnerRect) );
        
        }
        { //::CEGUI::WindowRenderer::getWindow
        
            typedef ::CEGUI::Window * ( ::CEGUI::WindowRenderer::*getWindow_function_type )(  ) const;
            
            WindowRenderer_exposer.def( 
                "getWindow"
                , getWindow_function_type( &::CEGUI::WindowRenderer::getWindow )
                , bp::return_value_policy< bp::reference_existing_object >()
                , "*!\n\
            \n\
                Get the window this windowrenderer is attached to.\n\
            *\n" );
        
        }
        { //::CEGUI::WindowRenderer::performChildWindowLayout
        
            typedef void ( ::CEGUI::WindowRenderer::*performChildWindowLayout_function_type )(  ) ;
            typedef void ( WindowRenderer_wrapper::*default_performChildWindowLayout_function_type )(  ) ;
            
            WindowRenderer_exposer.def( 
                "performChildWindowLayout"
                , performChildWindowLayout_function_type(&::CEGUI::WindowRenderer::performChildWindowLayout)
                , default_performChildWindowLayout_function_type(&WindowRenderer_wrapper::default_performChildWindowLayout) );
        
        }
        { //::CEGUI::WindowRenderer::render
        
            typedef void ( ::CEGUI::WindowRenderer::*render_function_type )(  ) ;
            
            WindowRenderer_exposer.def( 
                "render"
                , bp::pure_virtual( render_function_type(&::CEGUI::WindowRenderer::render) )
                , "*************************************************************************\n\
                    Public interface\n\
                **************************************************************************\n\
                *!\n\
                \n\
                    Populate render cache.\n\
            \n\
                    This method must be implemented by all window renderers and should\n\
                    perform the rendering operations needed for this widget.\n\
                    Normally using the Falagard API...\n\
                *\n" );
        
        }
        { //::CEGUI::WindowRenderer::update
        
            typedef void ( ::CEGUI::WindowRenderer::*update_function_type )( float ) ;
            typedef void ( WindowRenderer_wrapper::*default_update_function_type )( float ) ;
            
            WindowRenderer_exposer.def( 
                "update"
                , update_function_type(&::CEGUI::WindowRenderer::update)
                , default_update_function_type(&WindowRenderer_wrapper::default_update)
                , ( bp::arg("arg0") ) );
        
        }
    }

}
