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

#include "boost/python.hpp"
#include "generators/include/python_CEGUI.h"
#include "OperatorDim.pypp.hpp"

namespace bp = boost::python;

struct OperatorDim_wrapper : CEGUI::OperatorDim, bp::wrapper< CEGUI::OperatorDim > {

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

    OperatorDim_wrapper( )
    : CEGUI::OperatorDim( )
      , bp::wrapper< CEGUI::OperatorDim >(){
        // null constructor
    
    }

    OperatorDim_wrapper(::CEGUI::DimensionOperator op )
    : CEGUI::OperatorDim( op )
      , bp::wrapper< CEGUI::OperatorDim >(){
        // constructor
    
    }

    OperatorDim_wrapper(::CEGUI::DimensionOperator op, ::CEGUI::BaseDim * left, ::CEGUI::BaseDim * right )
    : CEGUI::OperatorDim( op, boost::python::ptr(left), boost::python::ptr(right) )
      , bp::wrapper< CEGUI::OperatorDim >(){
        // constructor
    
    }

    virtual ::CEGUI::BaseDim * clone(  ) const  {
        if( bp::override func_clone = this->get_override( "clone" ) )
            return func_clone(  );
        else{
            return this->CEGUI::OperatorDim::clone(  );
        }
    }
    
    ::CEGUI::BaseDim * default_clone(  ) const  {
        return CEGUI::OperatorDim::clone( );
    }

    virtual float getValue( ::CEGUI::Window const & wnd ) const  {
        if( bp::override func_getValue = this->get_override( "getValue" ) )
            return func_getValue( boost::ref(wnd) );
        else{
            return this->CEGUI::OperatorDim::getValue( boost::ref(wnd) );
        }
    }
    
    float default_getValue( ::CEGUI::Window const & wnd ) const  {
        return CEGUI::OperatorDim::getValue( boost::ref(wnd) );
    }

    virtual float getValue( ::CEGUI::Window const & wnd, ::CEGUI::Rectf const & container ) const  {
        if( bp::override func_getValue = this->get_override( "getValue" ) )
            return func_getValue( boost::ref(wnd), boost::ref(container) );
        else{
            return this->CEGUI::OperatorDim::getValue( boost::ref(wnd), boost::ref(container) );
        }
    }
    
    float default_getValue( ::CEGUI::Window const & wnd, ::CEGUI::Rectf const & container ) const  {
        return CEGUI::OperatorDim::getValue( boost::ref(wnd), boost::ref(container) );
    }

    float getValueImpl( float const lval, float const rval ) const {
        return CEGUI::OperatorDim::getValueImpl( lval, rval );
    }

    virtual void writeXMLElementAttributes_impl( ::CEGUI::XMLSerializer & xml_stream ) const {
        if( bp::override func_writeXMLElementAttributes_impl = this->get_override( "writeXMLElementAttributes_impl" ) )
            func_writeXMLElementAttributes_impl( boost::ref(xml_stream) );
        else{
            this->CEGUI::OperatorDim::writeXMLElementAttributes_impl( boost::ref(xml_stream) );
        }
    }
    
    virtual void default_writeXMLElementAttributes_impl( ::CEGUI::XMLSerializer & xml_stream ) const {
        CEGUI::OperatorDim::writeXMLElementAttributes_impl( boost::ref(xml_stream) );
    }

    virtual void writeXMLElementName_impl( ::CEGUI::XMLSerializer & xml_stream ) const {
        if( bp::override func_writeXMLElementName_impl = this->get_override( "writeXMLElementName_impl" ) )
            func_writeXMLElementName_impl( boost::ref(xml_stream) );
        else{
            this->CEGUI::OperatorDim::writeXMLElementName_impl( boost::ref(xml_stream) );
        }
    }
    
    virtual void default_writeXMLElementName_impl( ::CEGUI::XMLSerializer & xml_stream ) const {
        CEGUI::OperatorDim::writeXMLElementName_impl( boost::ref(xml_stream) );
    }

    virtual void writeXMLToStream( ::CEGUI::XMLSerializer & xml_stream ) const {
        if( bp::override func_writeXMLToStream = this->get_override( "writeXMLToStream" ) )
            func_writeXMLToStream( boost::ref(xml_stream) );
        else{
            this->CEGUI::OperatorDim::writeXMLToStream( boost::ref(xml_stream) );
        }
    }
    
    virtual void default_writeXMLToStream( ::CEGUI::XMLSerializer & xml_stream ) const {
        CEGUI::OperatorDim::writeXMLToStream( boost::ref(xml_stream) );
    }

    virtual bool handleFontRenderSizeChange( ::CEGUI::Window & window, ::CEGUI::Font const * font ) const  {
        if( bp::override func_handleFontRenderSizeChange = this->get_override( "handleFontRenderSizeChange" ) )
            return func_handleFontRenderSizeChange( boost::ref(window), boost::python::ptr(font) );
        else{
            return this->CEGUI::BaseDim::handleFontRenderSizeChange( boost::ref(window), boost::python::ptr(font) );
        }
    }
    
    bool default_handleFontRenderSizeChange( ::CEGUI::Window & window, ::CEGUI::Font const * font ) const  {
        return CEGUI::BaseDim::handleFontRenderSizeChange( boost::ref(window), boost::python::ptr(font) );
    }

};

void register_OperatorDim_class(){

    { //::CEGUI::OperatorDim
        typedef bp::class_< OperatorDim_wrapper, bp::bases< CEGUI::BaseDim > > OperatorDim_exposer_t;
        OperatorDim_exposer_t OperatorDim_exposer = OperatorDim_exposer_t( "OperatorDim", "*!\n\
        \n\
            Dimension type that represents the result of an operation performed on\n\
            two other dimension values. Implements BaseDim interface.\n\
        *\n", bp::init< >() );
        bp::scope OperatorDim_scope( OperatorDim_exposer );
        OperatorDim_exposer.def( bp::init< CEGUI::DimensionOperator >(( bp::arg("op") )) );
        bp::implicitly_convertible< CEGUI::DimensionOperator, CEGUI::OperatorDim >();
        OperatorDim_exposer.def( bp::init< CEGUI::DimensionOperator, CEGUI::BaseDim *, CEGUI::BaseDim * >(( bp::arg("op"), bp::arg("left"), bp::arg("right") )) );
        { //::CEGUI::OperatorDim::clone
        
            typedef ::CEGUI::BaseDim * ( ::CEGUI::OperatorDim::*clone_function_type )(  ) const;
            typedef ::CEGUI::BaseDim * ( OperatorDim_wrapper::*default_clone_function_type )(  ) const;
            
            OperatorDim_exposer.def( 
                "clone"
                , clone_function_type(&::CEGUI::OperatorDim::clone)
                , default_clone_function_type(&OperatorDim_wrapper::default_clone)
                , bp::return_value_policy< bp::reference_existing_object >() );
        
        }
        { //::CEGUI::OperatorDim::getLeftOperand
        
            typedef ::CEGUI::BaseDim * ( ::CEGUI::OperatorDim::*getLeftOperand_function_type )(  ) const;
            
            OperatorDim_exposer.def( 
                "getLeftOperand"
                , getLeftOperand_function_type( &::CEGUI::OperatorDim::getLeftOperand )
                , bp::return_value_policy< bp::reference_existing_object >()
                , "! return pointer to the left hand side operand\n" );
        
        }
        { //::CEGUI::OperatorDim::getOperator
        
            typedef ::CEGUI::DimensionOperator ( ::CEGUI::OperatorDim::*getOperator_function_type )(  ) const;
            
            OperatorDim_exposer.def( 
                "getOperator"
                , getOperator_function_type( &::CEGUI::OperatorDim::getOperator )
                , "! Get the current operation that will be performed\n" );
        
        }
        { //::CEGUI::OperatorDim::getRightOperand
        
            typedef ::CEGUI::BaseDim * ( ::CEGUI::OperatorDim::*getRightOperand_function_type )(  ) const;
            
            OperatorDim_exposer.def( 
                "getRightOperand"
                , getRightOperand_function_type( &::CEGUI::OperatorDim::getRightOperand )
                , bp::return_value_policy< bp::reference_existing_object >()
                , "! return pointer to the right hand side operand\n" );
        
        }
        { //::CEGUI::OperatorDim::getValue
        
            typedef float ( ::CEGUI::OperatorDim::*getValue_function_type )( ::CEGUI::Window const & ) const;
            typedef float ( OperatorDim_wrapper::*default_getValue_function_type )( ::CEGUI::Window const & ) const;
            
            OperatorDim_exposer.def( 
                "getValue"
                , getValue_function_type(&::CEGUI::OperatorDim::getValue)
                , default_getValue_function_type(&OperatorDim_wrapper::default_getValue)
                , ( bp::arg("wnd") ) );
        
        }
        { //::CEGUI::OperatorDim::getValue
        
            typedef float ( ::CEGUI::OperatorDim::*getValue_function_type )( ::CEGUI::Window const &,::CEGUI::Rectf const & ) const;
            typedef float ( OperatorDim_wrapper::*default_getValue_function_type )( ::CEGUI::Window const &,::CEGUI::Rectf const & ) const;
            
            OperatorDim_exposer.def( 
                "getValue"
                , getValue_function_type(&::CEGUI::OperatorDim::getValue)
                , default_getValue_function_type(&OperatorDim_wrapper::default_getValue)
                , ( bp::arg("wnd"), bp::arg("container") ) );
        
        }
        { //::CEGUI::OperatorDim::getValueImpl
        
            typedef float ( OperatorDim_wrapper::*getValueImpl_function_type )( float const,float const ) const;
            
            OperatorDim_exposer.def( 
                "getValueImpl"
                , getValueImpl_function_type( &OperatorDim_wrapper::getValueImpl )
                , ( bp::arg("lval"), bp::arg("rval") ) );
        
        }
        { //::CEGUI::OperatorDim::setLeftOperand
        
            typedef void ( ::CEGUI::OperatorDim::*setLeftOperand_function_type )( ::CEGUI::BaseDim const * ) ;
            
            OperatorDim_exposer.def( 
                "setLeftOperand"
                , setLeftOperand_function_type( &::CEGUI::OperatorDim::setLeftOperand )
                , ( bp::arg("operand") )
                , "! set the left hand side operand (passed object is cloned)\n" );
        
        }
        { //::CEGUI::OperatorDim::setNextOperand
        
            typedef void ( ::CEGUI::OperatorDim::*setNextOperand_function_type )( ::CEGUI::BaseDim const * ) ;
            
            OperatorDim_exposer.def( 
                "setNextOperand"
                , setNextOperand_function_type( &::CEGUI::OperatorDim::setNextOperand )
                , ( bp::arg("operand") )
                , "! helper to set the next free operand, will throw after 2 are set\n" );
        
        }
        { //::CEGUI::OperatorDim::setOperator
        
            typedef void ( ::CEGUI::OperatorDim::*setOperator_function_type )( ::CEGUI::DimensionOperator ) ;
            
            OperatorDim_exposer.def( 
                "setOperator"
                , setOperator_function_type( &::CEGUI::OperatorDim::setOperator )
                , ( bp::arg("op") )
                , "! Set the operation to be performed\n" );
        
        }
        { //::CEGUI::OperatorDim::setRightOperand
        
            typedef void ( ::CEGUI::OperatorDim::*setRightOperand_function_type )( ::CEGUI::BaseDim const * ) ;
            
            OperatorDim_exposer.def( 
                "setRightOperand"
                , setRightOperand_function_type( &::CEGUI::OperatorDim::setRightOperand )
                , ( bp::arg("operand") )
                , "! set the right hand side operand (passed object is cloned)\n" );
        
        }
        { //::CEGUI::OperatorDim::writeXMLElementAttributes_impl
        
            typedef void ( OperatorDim_wrapper::*writeXMLElementAttributes_impl_function_type )( ::CEGUI::XMLSerializer & ) const;
            
            OperatorDim_exposer.def( 
                "writeXMLElementAttributes_impl"
                , writeXMLElementAttributes_impl_function_type( &OperatorDim_wrapper::default_writeXMLElementAttributes_impl )
                , ( bp::arg("xml_stream") ) );
        
        }
        { //::CEGUI::OperatorDim::writeXMLElementName_impl
        
            typedef void ( OperatorDim_wrapper::*writeXMLElementName_impl_function_type )( ::CEGUI::XMLSerializer & ) const;
            
            OperatorDim_exposer.def( 
                "writeXMLElementName_impl"
                , writeXMLElementName_impl_function_type( &OperatorDim_wrapper::default_writeXMLElementName_impl )
                , ( bp::arg("xml_stream") )
                , "Implementation of the base class interface\n" );
        
        }
        { //::CEGUI::OperatorDim::writeXMLToStream
        
            typedef void ( OperatorDim_wrapper::*writeXMLToStream_function_type )( ::CEGUI::XMLSerializer & ) const;
            
            OperatorDim_exposer.def( 
                "writeXMLToStream"
                , writeXMLToStream_function_type( &OperatorDim_wrapper::default_writeXMLToStream )
                , ( bp::arg("xml_stream") )
                , "Implementation of the base class interface\n" );
        
        }
        { //::CEGUI::BaseDim::handleFontRenderSizeChange
        
            typedef bool ( ::CEGUI::BaseDim::*handleFontRenderSizeChange_function_type )( ::CEGUI::Window &,::CEGUI::Font const * ) const;
            typedef bool ( OperatorDim_wrapper::*default_handleFontRenderSizeChange_function_type )( ::CEGUI::Window &,::CEGUI::Font const * ) const;
            
            OperatorDim_exposer.def( 
                "handleFontRenderSizeChange"
                , handleFontRenderSizeChange_function_type(&::CEGUI::BaseDim::handleFontRenderSizeChange)
                , default_handleFontRenderSizeChange_function_type(&OperatorDim_wrapper::default_handleFontRenderSizeChange)
                , ( bp::arg("window"), bp::arg("font") ) );
        
        }
    }

}
