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
|
#include <BALL/VIEW/PLUGIN/modularWidgetPluginHandler.h>
#include <BALL/PLUGIN/BALLPlugin.h>
#include <BALL/PLUGIN/pluginManager.h>
#include <BALL/VIEW/PLUGIN/modularWidgetPlugin.h>
#include <BALL/VIEW/KERNEL/mainControl.h>
namespace BALL
{
namespace VIEW
{
ModularWidgetPluginHandler::ModularWidgetPluginHandler(MainControl* parent)
{
main_control_ = parent;
}
ModularWidgetPluginHandler::~ModularWidgetPluginHandler()
{
PluginManager::instance().unregisterHandler(this);
}
bool ModularWidgetPluginHandler::canHandle(BALLPlugin* plugin) const
{
return qobject_cast<ModularWidgetPlugin*>(plugin) != 0;
}
bool ModularWidgetPluginHandler::specificSetup_(BALLPlugin* plugin)
{
ModularWidgetPlugin* ptr = qobject_cast<ModularWidgetPlugin*>(plugin);
// let the plugin create its widget
modular_widget_ = ptr->createModularWidget(main_control_);
modular_widget_->registerWidget(modular_widget_);
// and initialize it
modular_widget_->initializeWidget(*main_control_);
return plugin->activate();
}
bool ModularWidgetPluginHandler::specificShutdown_(BALLPlugin* plugin)
{
// finalize the widget
modular_widget_->finalizeWidget(*main_control_);
delete(modular_widget_);
return plugin->deactivate();
}
}
}
|