Crazy Eddies GUI System: CEGUIScriptModule.h Source File

Crazy Eddies GUI System 0.7.6

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List

CEGUIScriptModule.h

    00001 /***********************************************************************
    00002         filename:       CEGUIScriptModule.h
    00003         created:        16/7/2004
    00004         author:         Paul D Turner
    00005
    00006         purpose:        Abstract class interface for scripting support
    00007 *************************************************************************/
    00008 /***************************************************************************
    00009  *   Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team
    00010  *
    00011  *   Permission is hereby granted, free of charge, to any person obtaining
    00012  *   a copy of this software and associated documentation files (the
    00013  *   "Software"), to deal in the Software without restriction, including
    00014  *   without limitation the rights to use, copy, modify, merge, publish,
    00015  *   distribute, sublicense, and/or sell copies of the Software, and to
    00016  *   permit persons to whom the Software is furnished to do so, subject to
    00017  *   the following conditions:
    00018  *
    00019  *   The above copyright notice and this permission notice shall be
    00020  *   included in all copies or substantial portions of the Software.
    00021  *
    00022  *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    00023  *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    00024  *   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    00025  *   IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
    00026  *   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
    00027  *   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
    00028  *   OTHER DEALINGS IN THE SOFTWARE.
    00029  ***************************************************************************/
    00030 #ifndef _CEGUIScriptModule_h_
    00031 #define _CEGUIScriptModule_h_
    00032
    00033 #include "CEGUIBase.h"
    00034 #include "CEGUIString.h"
    00035 #include "CEGUIEvent.h"
    00036
    00037
    00038 // Start of CEGUI namespace section
    00039 namespace CEGUI
    00040 {
    00046 class CEGUIEXPORT ScriptModule
    00047 {
    00048 public:
    00049         /*************************************************************************
    00050                 Construction and Destruction
    00051         *************************************************************************/
    00056         ScriptModule(void);
    00057
    00058
    00063         virtual ~ScriptModule(void) {}
    00064
    00065
    00066         /*************************************************************************
    00067                 Abstract interface
    00068         *************************************************************************/
    00079         virtual void    executeScriptFile(const String& filename, const String& resourceGroup = "")     = 0;
    00080
    00081
    00093         virtual int     executeScriptGlobal(const String& function_name)        = 0;
    00094
    00095
    00112         virtual bool    executeScriptedEventHandler(const String& handler_name, const EventArgs& e)             = 0;
    00113
    00114
    00125     virtual void executeString(const String& str) = 0;
    00126
    00127
    00136     virtual void createBindings(void) {}
    00137
    00138
    00148     virtual void destroyBindings(void) {}
    00149
    00158     const String& getIdentifierString() const;
    00159
    00178     virtual Event::Connection   subscribeEvent(EventSet* target, const String& name, const String& subscriber_name) = 0;
    00179
    00201     virtual Event::Connection   subscribeEvent(EventSet* target, const String& name, Event::Group group, const String& subscriber_name) = 0;
    00202
    00213     static void setDefaultResourceGroup(const String& resourceGroup)
    00214         { d_defaultResourceGroup = resourceGroup; }
    00215
    00223     static const String& getDefaultResourceGroup()
    00224         { return d_defaultResourceGroup; }
    00225
    00226 protected:
    00228     String d_identifierString;
    00230     static String d_defaultResourceGroup;
    00231 };
    00232
    00233
    00238 class CEGUIEXPORT ScriptFunctor
    00239 {
    00240 public:
    00241         ScriptFunctor(const String& functionName) : scriptFunctionName(functionName) {}
    00242     ScriptFunctor(const ScriptFunctor& obj) : scriptFunctionName(obj.scriptFunctionName) {}
    00243         bool    operator()(const EventArgs& e) const;
    00244
    00245 private:
    00246     // no assignment possible
    00247     ScriptFunctor& operator=(const ScriptFunctor& rhs);
    00248
    00249         const String    scriptFunctionName;
    00250 };
    00251
    00252 } // End of  CEGUI namespace section
    00253
    00254
    00255 #endif  // end of guard _CEGUIScriptModule_h_