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
|
#include "imodule.h"
#include "i18n.h"
#include "itextstream.h"
#include "icommandsystem.h"
#include "ui/imenumanager.h"
#include "generic/callback.h"
#include "debugging/debugging.h"
#include "ConversationDialog.h"
/**
* Module to register the menu commands for the Conversation Editor class.
*/
class ConversationEditorModule :
public RegisterableModule
{
public:
// RegisterableModule implementation
virtual const std::string& getName() const {
static std::string _name("ConversationEditor");
return _name;
}
virtual const StringSet& getDependencies() const
{
static StringSet _dependencies
{
MODULE_MENUMANAGER,
MODULE_COMMANDSYSTEM
};
return _dependencies;
}
virtual void initialiseModule(const IApplicationContext& ctx) {
// Add the callback event
GlobalCommandSystem().addCommand("ConversationEditor", ui::ConversationDialog::ShowDialog);
// Add the menu item
GlobalMenuManager().add("main/map", // menu location path
"ConversationEditor", // name
ui::menu::ItemType::Item, // type
_("Conversations..."), // caption
"stimresponse.png", // icon
"ConversationEditor"); // event name
}
};
typedef std::shared_ptr<ConversationEditorModule> ConversationEditorModulePtr;
extern "C" void DARKRADIANT_DLLEXPORT RegisterModule(IModuleRegistry& registry)
{
module::performDefaultInitialisation(registry);
registry.registerModule(ConversationEditorModulePtr(new ConversationEditorModule));
}
|