1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
#include "ObjectivesEditor.h"
#include "i18n.h"
#include "imodule.h"
#include "ui/imenumanager.h"
#include "iradiant.h"
#include "iscenegraph.h"
#include "ieclass.h"
#include "ientity.h"
#include "itextstream.h"
#include "ce/ComponentEditorFactory.h"
#include <iostream>
/**
* \defgroup objectives Objectives Editor (Dark Mod only)
*
* \file objectives.cpp
* Main plugin file for the Objectives Editor.
*
* \namespace objectives
* \ingroup objectives
* Classes and types comprising the Objectives Editor.
*/
/**
* API module to register the menu commands for the ObjectivesEditor class.
*/
class ObjectivesEditorModule :
public RegisterableModule
{
public:
// RegisterableModule implementation
virtual const std::string& getName() const {
static std::string _name("ObjectivesEditor");
return _name;
}
virtual const StringSet& getDependencies() const {
static StringSet _dependencies;
if (_dependencies.empty()) {
_dependencies.insert(MODULE_MENUMANAGER);
_dependencies.insert(MODULE_COMMANDSYSTEM);
}
return _dependencies;
}
virtual void initialiseModule(const IApplicationContext& ctx) {
// Add the callback event
GlobalCommandSystem().addCommand(
"ObjectivesEditor",
objectives::ObjectivesEditor::DisplayDialog
);
// Add the menu item
ui::menu::IMenuManager& mm = GlobalMenuManager();
mm.add("main/map",
"ObjectivesEditor",
ui::menu::ItemType::Item,
_("Objectives..."),
"objectives16.png",
"ObjectivesEditor");
}
virtual void shutdownModule() {
rMessage() << "ObjectivesEditorModule shutting down.\n";
// Remove all the registered Component Editors from memory
objectives::ce::ComponentEditorFactory::clear();
}
};
typedef std::shared_ptr<ObjectivesEditorModule> ObjectivesEditorModulePtr;
extern "C" void DARKRADIANT_DLLEXPORT RegisterModule(IModuleRegistry& registry)
{
module::performDefaultInitialisation(registry);
registry.registerModule(ObjectivesEditorModulePtr(new ObjectivesEditorModule));
}
|