I would do it that way
Container
#ifndef CONTAINER1_HPP
#define CONTAINER1_HPP
#include <functional>
#include <gui_generated/containers/Container1Base.hpp>
class Container1 : public Container1Base
{
public:
Container1 ();
virtual ~Container1 () {}
virtual void initialize ();
void bindInvalidateFunc (const std::function<void ()> & fn)
{
_invalidate = fn;
}
/// \brief Invalidate Screen
void emitInvalidateScreen ()
{
if (_invalidate != nullptr) _invalidate ();
}
protected:
private:
std::function<void ()> _invalidate;
};
#endif // CONTAINER1_HPP
Screen
#include <gui/screen1_screen/Screen1View.hpp>
Screen1View::Screen1View ()
{
}
void Screen1View::setupScreen ()
{
Screen1ViewBase::setupScreen ();
container1.bindInvalidateFunc ([this] { invalidate (); });
}
void Screen1View::tearDownScreen ()
{
Screen1ViewBase::tearDownScreen ();
}
Greetings