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

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

namespace bp = boost::python;

struct WidgetDim_wrapper : CEGUI::WidgetDim, bp::wrapper< CEGUI::WidgetDim > {

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

    WidgetDim_wrapper( )
    : CEGUI::WidgetDim( )
      , bp::wrapper< CEGUI::WidgetDim >(){
        // null constructor
    
    }

    WidgetDim_wrapper(::CEGUI::String const & name, ::CEGUI::DimensionType dim )
    : CEGUI::WidgetDim( boost::ref(name), dim )
      , bp::wrapper< CEGUI::WidgetDim >(){
        // constructor
    
    }

    virtual ::CEGUI::BaseDim * clone(  ) const  {
        if( bp::override func_clone = this->get_override( "clone" ) )
            return func_clone(  );
        else{
            return this->CEGUI::WidgetDim::clone(  );
        }
    }
    
    ::CEGUI::BaseDim * default_clone(  ) const  {
        return CEGUI::WidgetDim::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::WidgetDim::getValue( boost::ref(wnd) );
        }
    }
    
    float default_getValue( ::CEGUI::Window const & wnd ) const  {
        return CEGUI::WidgetDim::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::WidgetDim::getValue( boost::ref(wnd), boost::ref(container) );
        }
    }
    
    float default_getValue( ::CEGUI::Window const & wnd, ::CEGUI::Rectf const & container ) const  {
        return CEGUI::WidgetDim::getValue( boost::ref(wnd), boost::ref(container) );
    }

    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::WidgetDim::writeXMLElementAttributes_impl( boost::ref(xml_stream) );
        }
    }
    
    virtual void default_writeXMLElementAttributes_impl( ::CEGUI::XMLSerializer & xml_stream ) const {
        CEGUI::WidgetDim::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::WidgetDim::writeXMLElementName_impl( boost::ref(xml_stream) );
        }
    }
    
    virtual void default_writeXMLElementName_impl( ::CEGUI::XMLSerializer & xml_stream ) const {
        CEGUI::WidgetDim::writeXMLElementName_impl( 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) );
    }

    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::BaseDim::writeXMLToStream( boost::ref(xml_stream) );
        }
    }
    
    void default_writeXMLToStream( ::CEGUI::XMLSerializer & xml_stream ) const  {
        CEGUI::BaseDim::writeXMLToStream( boost::ref(xml_stream) );
    }

};

void register_WidgetDim_class(){

    { //::CEGUI::WidgetDim
        typedef bp::class_< WidgetDim_wrapper, bp::bases< CEGUI::BaseDim > > WidgetDim_exposer_t;
        WidgetDim_exposer_t WidgetDim_exposer = WidgetDim_exposer_t( "WidgetDim", "*!\n\
        \n\
            Dimension type that represents some dimension of a Windowwidget.\n\
            Implements BaseDim interface.\n\
        \n\
            When calculating the final pixel value for the dimension, a target widget\n\
            name is built by appending the name specified in the WidgetDim to the name\n\
            path of the window passed to getValue, we then use the windowwidget with\n\
            that name to obtain the value for the dimension.\n\
        *\n", bp::init< >() );
        bp::scope WidgetDim_scope( WidgetDim_exposer );
        WidgetDim_exposer.def( bp::init< CEGUI::String const &, CEGUI::DimensionType >(( bp::arg("name"), bp::arg("dim") ), "*!\n\
            \n\
                Constructor.\n\
        \n\
            @param name\n\
                String object holding the name suffix for a windowwidget.\n\
        \n\
            @param dim\n\
                DimensionType value indicating which dimension of the described image that this ImageDim\n\
                is to represent.\n\
            *\n") );
        { //::CEGUI::WidgetDim::clone
        
            typedef ::CEGUI::BaseDim * ( ::CEGUI::WidgetDim::*clone_function_type )(  ) const;
            typedef ::CEGUI::BaseDim * ( WidgetDim_wrapper::*default_clone_function_type )(  ) const;
            
            WidgetDim_exposer.def( 
                "clone"
                , clone_function_type(&::CEGUI::WidgetDim::clone)
                , default_clone_function_type(&WidgetDim_wrapper::default_clone)
                , bp::return_value_policy< bp::reference_existing_object >() );
        
        }
        { //::CEGUI::WidgetDim::getSourceDimension
        
            typedef ::CEGUI::DimensionType ( ::CEGUI::WidgetDim::*getSourceDimension_function_type )(  ) const;
            
            WidgetDim_exposer.def( 
                "getSourceDimension"
                , getSourceDimension_function_type( &::CEGUI::WidgetDim::getSourceDimension )
                , "*!\n\
                \n\
                    Gets the source dimension type for this WidgetDim.\n\
            \n\
                @return\n\
                    DimensionType value indicating which dimension of the described image\n\
                    that this WidgetDim is to represent.\n\
                *\n" );
        
        }
        { //::CEGUI::WidgetDim::getValue
        
            typedef float ( ::CEGUI::WidgetDim::*getValue_function_type )( ::CEGUI::Window const & ) const;
            typedef float ( WidgetDim_wrapper::*default_getValue_function_type )( ::CEGUI::Window const & ) const;
            
            WidgetDim_exposer.def( 
                "getValue"
                , getValue_function_type(&::CEGUI::WidgetDim::getValue)
                , default_getValue_function_type(&WidgetDim_wrapper::default_getValue)
                , ( bp::arg("wnd") ) );
        
        }
        { //::CEGUI::WidgetDim::getValue
        
            typedef float ( ::CEGUI::WidgetDim::*getValue_function_type )( ::CEGUI::Window const &,::CEGUI::Rectf const & ) const;
            typedef float ( WidgetDim_wrapper::*default_getValue_function_type )( ::CEGUI::Window const &,::CEGUI::Rectf const & ) const;
            
            WidgetDim_exposer.def( 
                "getValue"
                , getValue_function_type(&::CEGUI::WidgetDim::getValue)
                , default_getValue_function_type(&WidgetDim_wrapper::default_getValue)
                , ( bp::arg("wnd"), bp::arg("container") ) );
        
        }
        { //::CEGUI::WidgetDim::getWidgetName
        
            typedef ::CEGUI::String const & ( ::CEGUI::WidgetDim::*getWidgetName_function_type )(  ) const;
            
            WidgetDim_exposer.def( 
                "getWidgetName"
                , getWidgetName_function_type( &::CEGUI::WidgetDim::getWidgetName )
                , bp::return_value_policy< bp::copy_const_reference >()
                , "*!\n\
                \n\
                    Get the name suffix to use for this WidgetDim.\n\
            \n\
                @return\n\
                    String object holding the name suffix for a windowwidget.\n\
                *\n" );
        
        }
        { //::CEGUI::WidgetDim::setSourceDimension
        
            typedef void ( ::CEGUI::WidgetDim::*setSourceDimension_function_type )( ::CEGUI::DimensionType ) ;
            
            WidgetDim_exposer.def( 
                "setSourceDimension"
                , setSourceDimension_function_type( &::CEGUI::WidgetDim::setSourceDimension )
                , ( bp::arg("dim") )
                , "*!\n\
                \n\
                    Sets the source dimension type for this WidgetDim.\n\
            \n\
                @param dim\n\
                    DimensionType value indicating which dimension of the described image\n\
                    that this WidgetDim is to represent.\n\
                *\n" );
        
        }
        { //::CEGUI::WidgetDim::setWidgetName
        
            typedef void ( ::CEGUI::WidgetDim::*setWidgetName_function_type )( ::CEGUI::String const & ) ;
            
            WidgetDim_exposer.def( 
                "setWidgetName"
                , setWidgetName_function_type( &::CEGUI::WidgetDim::setWidgetName )
                , ( bp::arg("name") )
                , "*!\n\
                \n\
                    Set the name suffix to use for this WidgetDim.\n\
            \n\
                @param name\n\
                    String object holding the name suffix for a windowwidget.\n\
            \n\
                @return\n\
                    Nothing.\n\
                *\n" );
        
        }
        { //::CEGUI::WidgetDim::writeXMLElementAttributes_impl
        
            typedef void ( WidgetDim_wrapper::*writeXMLElementAttributes_impl_function_type )( ::CEGUI::XMLSerializer & ) const;
            
            WidgetDim_exposer.def( 
                "writeXMLElementAttributes_impl"
                , writeXMLElementAttributes_impl_function_type( &WidgetDim_wrapper::default_writeXMLElementAttributes_impl )
                , ( bp::arg("xml_stream") )
                , "Implementation of the base class interface\n" );
        
        }
        { //::CEGUI::WidgetDim::writeXMLElementName_impl
        
            typedef void ( WidgetDim_wrapper::*writeXMLElementName_impl_function_type )( ::CEGUI::XMLSerializer & ) const;
            
            WidgetDim_exposer.def( 
                "writeXMLElementName_impl"
                , writeXMLElementName_impl_function_type( &WidgetDim_wrapper::default_writeXMLElementName_impl )
                , ( 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 ( WidgetDim_wrapper::*default_handleFontRenderSizeChange_function_type )( ::CEGUI::Window &,::CEGUI::Font const * ) const;
            
            WidgetDim_exposer.def( 
                "handleFontRenderSizeChange"
                , handleFontRenderSizeChange_function_type(&::CEGUI::BaseDim::handleFontRenderSizeChange)
                , default_handleFontRenderSizeChange_function_type(&WidgetDim_wrapper::default_handleFontRenderSizeChange)
                , ( bp::arg("window"), bp::arg("font") ) );
        
        }
        { //::CEGUI::BaseDim::writeXMLToStream
        
            typedef void ( ::CEGUI::BaseDim::*writeXMLToStream_function_type )( ::CEGUI::XMLSerializer & ) const;
            typedef void ( WidgetDim_wrapper::*default_writeXMLToStream_function_type )( ::CEGUI::XMLSerializer & ) const;
            
            WidgetDim_exposer.def( 
                "writeXMLToStream"
                , writeXMLToStream_function_type(&::CEGUI::BaseDim::writeXMLToStream)
                , default_writeXMLToStream_function_type(&WidgetDim_wrapper::default_writeXMLToStream)
                , ( bp::arg("xml_stream") ) );
        
        }
    }

}
