Support more args when switching screens
This commit is contained in:
@@ -15,8 +15,12 @@ public:
|
|||||||
void triggered() override { switchScreen<Tscreen>(); }
|
void triggered() override { switchScreen<Tscreen>(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
template<typename Tscreen, typename ...Targs>
|
||||||
|
class SwitchScreenActionArgs;
|
||||||
|
|
||||||
template<typename Tscreen, typename T1>
|
template<typename Tscreen, typename T1>
|
||||||
class SwitchScreenActionArgs : public virtual ActionInterface
|
class SwitchScreenActionArgs<Tscreen, T1> : public virtual ActionInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SwitchScreenActionArgs(T1 &&arg1) :
|
SwitchScreenActionArgs(T1 &&arg1) :
|
||||||
@@ -31,4 +35,24 @@ public:
|
|||||||
private:
|
private:
|
||||||
T1 m_arg1;
|
T1 m_arg1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template<typename Tscreen, typename T1, typename T2>
|
||||||
|
class SwitchScreenActionArgs<Tscreen, T1, T2> : public virtual ActionInterface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
SwitchScreenActionArgs(T1 &&arg1, T2 &&arg2) :
|
||||||
|
m_arg1{std::move<T1>(arg1)},
|
||||||
|
m_arg2{std::move<T2>(arg2)}
|
||||||
|
{}
|
||||||
|
SwitchScreenActionArgs(const T1 &arg1, const T2 &arg2) :
|
||||||
|
m_arg1{arg1},
|
||||||
|
m_arg2{arg2}
|
||||||
|
{}
|
||||||
|
|
||||||
|
void triggered() override { switchScreen<Tscreen>(std::move(m_arg1), std::move(m_arg2)); }
|
||||||
|
|
||||||
|
private:
|
||||||
|
T1 m_arg1;
|
||||||
|
T2 m_arg2;
|
||||||
|
};
|
||||||
} // namespace espgui
|
} // namespace espgui
|
||||||
|
@@ -47,6 +47,18 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template <typename T1, typename T2, typename T3, typename ...T4>
|
||||||
|
class makeComponentArgs2x2 : public T1, public T2, public T3, public T4...
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
template<typename Targ1, typename Targ2, typename Targ3, typename Targ4>
|
||||||
|
makeComponentArgs2x2(Targ1&& arg1, Targ2&& arg2, Targ3&& arg3, Targ4&& arg4) :
|
||||||
|
T2{std::forward<Targ1>(arg1), std::forward<Targ2>(arg2)},
|
||||||
|
T3{std::forward<Targ3>(arg3), std::forward<Targ4>(arg4)}
|
||||||
|
{
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
class Display : public virtual ButtonsInterface
|
class Display : public virtual ButtonsInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
Reference in New Issue
Block a user