We are using possible 3rd party theme packages (installed via package
manager) with other counts of images.
This should ensure an automatic adaptation of interval
in case of different count of images.
Timeout bar could not be switched off, is now disabled for CHint
TODO: find a better solution to vizualize timeout for CHint.
It looks not so good on the top of the hintbox, especially
with round corners or frameless window.
Conflicts:
src/neutrino.cpp
Signed-off-by: Thilo Graf <dbt@novatux.de>
I'm not enthused of this solution to misuse the CHint destructor since
commit 1cb25e7cd3 "- hintbox: add setDelay() prototype".
I think such tasks with delay impact are not the designation of
destructors and avoidable. Unless it is absolutely necessary.
Therefore, I think this is only a temporary solution.
This allows to execute one ore more methods inside the ShowHintS() method.
This should simplify calls of CHint messages with or without hide delays
In the simplest or most cases, only one code line is necessary for this,
see examples inside test_menu.cpp or here:
Single methode:
old:
CHintBox *hintBox new CHintBox(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_SERVICEMENU_GETPLUGINS_HINT));
hintBox->paint();
g_Plugins->loadPlugins();
sleep(1);
hintBox->.hide();
delete hintbox;
new:
ShowHintS(LOCALE_SERVICEMENU_GETPLUGINS_HINT, 1, true, sigc::mem_fun(g_Plugins, &CPlugins::loadPlugins));
Multiple methods:
old:
CHint *hint = new CHint("Restart Tuner");
hint->paint();
g_Zapit->setStandby(true);
sleep(2);
g_Zapit->setStandby(false);
sleep(2);
g_Zapit->Rezap();
delete hint;
new:
std::vector <hint_message_data_t> hints;
hints.push_back({sigc::bind(sigc::mem_fun(g_Zapit, &CZapitClient::setStandby), true),"Stopping tuner...", NONEXISTANT_LOCALE, 2, true});
hints.push_back({sigc::bind(sigc::mem_fun(g_Zapit, &CZapitClient::setStandby), false), "Start tuner...", NONEXISTANT_LOCALE, 2, true});
hints.push_back({sigc::hide_return(sigc::mem_fun(g_Zapit, &CZapitClient::Rezap)), "Rezap...", NONEXISTANT_LOCALE, 2, true});
ShowHintS(hints);
slots can be used with sigc::bind, sigc::hide_return (or what ever) too.
sample slot:
sigc::slot<void> sl = sigc::bind(sigc::mem_fun(this, &ClassName::method), parameter);
Note: Usage of namespace sigc are doing to simplify the lines,
but this is a matter of discretion.
TODO: - timeoutbar should visualize a kind of busy mode.
- implemetations
It's always easier to use blindly the cross control buttons,
than looking for the colored buttons on the remote control.
Nothing will change for users who want to use the colored keys directly,
but they will get used to it.
This was a directly user request.