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

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

namespace bp = boost::python;

struct EventLinkDefinition_wrapper : CEGUI::EventLinkDefinition, bp::wrapper< CEGUI::EventLinkDefinition > {

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

    EventLinkDefinition_wrapper(::CEGUI::String const & event_name )
    : CEGUI::EventLinkDefinition( boost::ref(event_name) )
      , bp::wrapper< CEGUI::EventLinkDefinition >(){
        // constructor
    
    }

    ::CEGUI::Window * getTargetWindow( ::CEGUI::Window & start_wnd, ::CEGUI::String const & name ) const {
        return CEGUI::EventLinkDefinition::getTargetWindow( boost::ref(start_wnd), boost::ref(name) );
    }

};

void register_EventLinkDefinition_class(){

    { //::CEGUI::EventLinkDefinition
        typedef bp::class_< EventLinkDefinition_wrapper > EventLinkDefinition_exposer_t;
        EventLinkDefinition_exposer_t EventLinkDefinition_exposer = EventLinkDefinition_exposer_t( "EventLinkDefinition", bp::init< CEGUI::String const & >(( bp::arg("event_name") )) );
        bp::scope EventLinkDefinition_scope( EventLinkDefinition_exposer );
        bp::implicitly_convertible< CEGUI::String const &, CEGUI::EventLinkDefinition >();
        { //::CEGUI::EventLinkDefinition::addLinkTarget
        
            typedef void ( ::CEGUI::EventLinkDefinition::*addLinkTarget_function_type )( ::CEGUI::String const &,::CEGUI::String const & ) ;
            
            EventLinkDefinition_exposer.def( 
                "addLinkTarget"
                , addLinkTarget_function_type( &::CEGUI::EventLinkDefinition::addLinkTarget )
                , ( bp::arg("widget"), bp::arg("event") )
                , "! add a new link target to  event on  widget (name).\n" );
        
        }
        { //::CEGUI::EventLinkDefinition::cleanUpWidget
        
            typedef void ( ::CEGUI::EventLinkDefinition::*cleanUpWidget_function_type )( ::CEGUI::Window & ) const;
            
            EventLinkDefinition_exposer.def( 
                "cleanUpWidget"
                , cleanUpWidget_function_type( &::CEGUI::EventLinkDefinition::cleanUpWidget )
                , ( bp::arg("window") )
                , "! clean this event from  window.\n" );
        
        }
        { //::CEGUI::EventLinkDefinition::clearLinkTargets
        
            typedef void ( ::CEGUI::EventLinkDefinition::*clearLinkTargets_function_type )(  ) ;
            
            EventLinkDefinition_exposer.def( 
                "clearLinkTargets"
                , clearLinkTargets_function_type( &::CEGUI::EventLinkDefinition::clearLinkTargets )
                , "! add a new link target to  event on  widget (name).\n\
            ! clear all link targets from this link definition.\n" );
        
        }
        { //::CEGUI::EventLinkDefinition::getLinkTargetIterator
        
            typedef ::CEGUI::ConstVectorIterator< std::vector< std::pair<CEGUI::String, CEGUI::String> > > ( ::CEGUI::EventLinkDefinition::*getLinkTargetIterator_function_type )(  ) const;
            
            EventLinkDefinition_exposer.def( 
                "getLinkTargetIterator"
                , getLinkTargetIterator_function_type( &::CEGUI::EventLinkDefinition::getLinkTargetIterator ) );
        
        }
        { //::CEGUI::EventLinkDefinition::getName
        
            typedef ::CEGUI::String const & ( ::CEGUI::EventLinkDefinition::*getName_function_type )(  ) const;
            
            EventLinkDefinition_exposer.def( 
                "getName"
                , getName_function_type( &::CEGUI::EventLinkDefinition::getName )
                , bp::return_value_policy< bp::copy_const_reference >()
                , "! return the name of the Event defined here.\n" );
        
        }
        { //::CEGUI::EventLinkDefinition::getTargetWindow
        
            typedef ::CEGUI::Window * ( EventLinkDefinition_wrapper::*getTargetWindow_function_type )( ::CEGUI::Window &,::CEGUI::String const & ) const;
            
            EventLinkDefinition_exposer.def( 
                "getTargetWindow"
                , getTargetWindow_function_type( &EventLinkDefinition_wrapper::getTargetWindow )
                , ( bp::arg("start_wnd"), bp::arg("name") )
                , bp::return_value_policy< bp::reference_existing_object >()
                , "! Return a pointer to the target window with the given name.\n" );
        
        }
        { //::CEGUI::EventLinkDefinition::initialiseWidget
        
            typedef void ( ::CEGUI::EventLinkDefinition::*initialiseWidget_function_type )( ::CEGUI::Window & ) const;
            
            EventLinkDefinition_exposer.def( 
                "initialiseWidget"
                , initialiseWidget_function_type( &::CEGUI::EventLinkDefinition::initialiseWidget )
                , ( bp::arg("window") )
                , "! initialise  window with an event link as specified here.\n" );
        
        }
        { //::CEGUI::EventLinkDefinition::setName
        
            typedef void ( ::CEGUI::EventLinkDefinition::*setName_function_type )( ::CEGUI::String const & ) ;
            
            EventLinkDefinition_exposer.def( 
                "setName"
                , setName_function_type( &::CEGUI::EventLinkDefinition::setName )
                , ( bp::arg("name") ) );
        
        }
    }

}
