Allow LambdaClickHandler to see context.

This commit is contained in:
John Preston 2020-11-10 21:50:49 +03:00
parent cffa5e11d8
commit f46a1be77c

View file

@ -105,16 +105,20 @@ protected:
class LambdaClickHandler : public ClickHandler { class LambdaClickHandler : public ClickHandler {
public: public:
LambdaClickHandler(Fn<void()> handler) : _handler(std::move(handler)) { LambdaClickHandler(Fn<void()> handler)
: _handler([handler = std::move(handler)](ClickContext) { handler(); }) {
}
LambdaClickHandler(Fn<void(ClickContext)> handler)
: _handler(std::move(handler)) {
} }
void onClick(ClickContext context) const override final { void onClick(ClickContext context) const override final {
if (context.button == Qt::LeftButton && _handler) { if (context.button == Qt::LeftButton && _handler) {
_handler(); _handler(context);
} }
} }
private: private:
Fn<void()> _handler; Fn<void(ClickContext)> _handler;
}; };