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

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

namespace bp = boost::python;

struct BiDiVisualMapping_wrapper : CEGUI::BiDiVisualMapping, bp::wrapper< CEGUI::BiDiVisualMapping > {

    BiDiVisualMapping_wrapper()
    : CEGUI::BiDiVisualMapping()
      , bp::wrapper< CEGUI::BiDiVisualMapping >(){
        // null constructor
        
    }

    virtual ::CEGUI::BidiCharType getBidiCharType( ::CEGUI::utf32 const char_to_check ) const {
        bp::override func_getBidiCharType = this->get_override( "getBidiCharType" );
        return func_getBidiCharType( char_to_check );
    }

    virtual bool reorderFromLogicalToVisual( ::CEGUI::String const & logical, ::CEGUI::String & visual, ::std::vector< int > & l2v, ::std::vector< int > & v2l ) const {
        bp::override func_reorderFromLogicalToVisual = this->get_override( "reorderFromLogicalToVisual" );
        return func_reorderFromLogicalToVisual( boost::ref(logical), boost::ref(visual), boost::ref(l2v), boost::ref(v2l) );
    }

};

void register_BiDiVisualMapping_class(){

    { //::CEGUI::BiDiVisualMapping
        typedef bp::class_< BiDiVisualMapping_wrapper, boost::noncopyable > BiDiVisualMapping_exposer_t;
        BiDiVisualMapping_exposer_t BiDiVisualMapping_exposer = BiDiVisualMapping_exposer_t( "BiDiVisualMapping", "! Abstract class to wrap a BiDi visual mapping of a text string.\n" );
        bp::scope BiDiVisualMapping_scope( BiDiVisualMapping_exposer );
        { //::CEGUI::BiDiVisualMapping::getBidiCharType
        
            typedef ::CEGUI::BidiCharType ( ::CEGUI::BiDiVisualMapping::*getBidiCharType_function_type )( ::CEGUI::utf32 const ) const;
            
            BiDiVisualMapping_exposer.def( 
                "getBidiCharType"
                , bp::pure_virtual( getBidiCharType_function_type(&::CEGUI::BiDiVisualMapping::getBidiCharType) )
                , ( bp::arg("char_to_check") )
                , "*!\n\
                \n\
                    Gets the BiDi char type of a char.\n\
            \n\
                @param charToCheck\n\
                    The utf32 character code that will be checked.\n\
            \n\
                @return\n\
                    One of the BidiCharType enumerated values indicating the BiDi char type.\n\
                *\n" );
        
        }
        { //::CEGUI::BiDiVisualMapping::getL2vMapping
        
            typedef ::std::vector< int > const ( ::CEGUI::BiDiVisualMapping::*getL2vMapping_function_type )(  ) const;
            
            BiDiVisualMapping_exposer.def( 
                "getL2vMapping"
                , getL2vMapping_function_type( &::CEGUI::BiDiVisualMapping::getL2vMapping ) );
        
        }
        { //::CEGUI::BiDiVisualMapping::getTextVisual
        
            typedef ::CEGUI::String const & ( ::CEGUI::BiDiVisualMapping::*getTextVisual_function_type )(  ) const;
            
            BiDiVisualMapping_exposer.def( 
                "getTextVisual"
                , getTextVisual_function_type( &::CEGUI::BiDiVisualMapping::getTextVisual )
                , bp::return_value_policy< bp::copy_const_reference >() );
        
        }
        { //::CEGUI::BiDiVisualMapping::getV2lMapping
        
            typedef ::std::vector< int > const ( ::CEGUI::BiDiVisualMapping::*getV2lMapping_function_type )(  ) const;
            
            BiDiVisualMapping_exposer.def( 
                "getV2lMapping"
                , getV2lMapping_function_type( &::CEGUI::BiDiVisualMapping::getV2lMapping ) );
        
        }
        { //::CEGUI::BiDiVisualMapping::reorderFromLogicalToVisual
        
            typedef bool ( ::CEGUI::BiDiVisualMapping::*reorderFromLogicalToVisual_function_type )( ::CEGUI::String const &,::CEGUI::String &,::std::vector<int, std::allocator<int> > &,::std::vector<int, std::allocator<int> > & ) const;
            
            BiDiVisualMapping_exposer.def( 
                "reorderFromLogicalToVisual"
                , bp::pure_virtual( reorderFromLogicalToVisual_function_type(&::CEGUI::BiDiVisualMapping::reorderFromLogicalToVisual) )
                , ( bp::arg("logical"), bp::arg("visual"), bp::arg("l2v"), bp::arg("v2l") ) );
        
        }
        { //::CEGUI::BiDiVisualMapping::updateVisual
        
            typedef bool ( ::CEGUI::BiDiVisualMapping::*updateVisual_function_type )( ::CEGUI::String const & ) ;
            
            BiDiVisualMapping_exposer.def( 
                "updateVisual"
                , updateVisual_function_type( &::CEGUI::BiDiVisualMapping::updateVisual )
                , ( bp::arg("logical") )
                , "*!\n\
                \n\
                    Use reorderFromLogicalToVisual to update the internal visual mapping\n\
                    data and visual string representation based upon the logical string\n\
                     logical.\n\
            \n\
                @param logical\n\
                    String object representing the logical text order.\n\
            \n\
                @return\n\
                    - true if the update was a success.\n\
                    - false if something went wrong.\n\
                *\n" );
        
        }
    }

}
