- add function to integrate plugins

TODO: maybe find a solution without void *pluginsExec
Thanks to micha-bbg and SatBaby
This commit is contained in:
svenhoefer
2014-09-28 22:03:42 +02:00
committed by [CST] Focus
parent f586552719
commit 1b5a30c326
3 changed files with 2342 additions and 0 deletions

View File

@@ -956,6 +956,30 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &)
return retval; return retval;
} }
void CMenuWidget::integratePlugins(void *pluginsExec, CPlugins::i_type_t integration)
{
CPluginsExec *_pluginsExec = static_cast<CPluginsExec*>(pluginsExec);
bool separatorline = false;
char id_plugin[5];
unsigned int number_of_plugins = (unsigned int) g_PluginList->getNumberOfPlugins();
for (unsigned int count = 0; count < number_of_plugins; count++)
{
if (g_PluginList->getIntegration(count) == integration)
{
if (!separatorline)
{
addItem(GenericMenuSeparatorLine);
separatorline = true;
}
printf("[neutrino] integratePlugins: add %s\n", g_PluginList->getName(count));
sprintf(id_plugin, "%d", count);
CMenuForwarder *fw_plugin = new CMenuForwarder(g_PluginList->getName(count), true, NULL, _pluginsExec, id_plugin);
fw_plugin->setHint("", g_PluginList->getDescription(count));
addItem(fw_plugin);
}
}
}
void CMenuWidget::hide() void CMenuWidget::hide()
{ {
if(savescreen && background) if(savescreen && background)

File diff suppressed because it is too large Load Diff

View File

@@ -42,6 +42,7 @@
#include <gui/widget/buttons.h> #include <gui/widget/buttons.h>
#include <gui/widget/icons.h> #include <gui/widget/icons.h>
#include <gui/color.h> #include <gui/color.h>
#include <gui/plugins.h>
#include <gui/components/cc.h> #include <gui/components/cc.h>
#include <string> #include <string>
#include <vector> #include <vector>
@@ -556,6 +557,7 @@ class CMenuWidget : public CMenuTarget
virtual void hide(); virtual void hide();
virtual int exec(CMenuTarget* parent, const std::string & actionKey); virtual int exec(CMenuTarget* parent, const std::string & actionKey);
virtual const char *getName(); virtual const char *getName();
virtual void integratePlugins(void *pluginsExec, CPlugins::i_type_t integration);
void setSelected(const int &Preselected){ preselected = Preselected; }; void setSelected(const int &Preselected){ preselected = Preselected; };
int getSelected()const { return selected; }; int getSelected()const { return selected; };
void move(int xoff, int yoff); void move(int xoff, int yoff);