From 349a02c841561132b69b7446aa802869a61a0acc Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Thu, 2 Jul 2020 17:26:45 +0200 Subject: [PATCH] Add an handler to CarouselItem select --- radio/src/thirdparty/libopenui/src/carousel.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/radio/src/thirdparty/libopenui/src/carousel.h b/radio/src/thirdparty/libopenui/src/carousel.h index 696a20cfd..2fb4a7a82 100644 --- a/radio/src/thirdparty/libopenui/src/carousel.h +++ b/radio/src/thirdparty/libopenui/src/carousel.h @@ -33,11 +33,17 @@ class CarouselItem { { } + void setSelectHandler(std::function handler) + { + selectHandler = std::move(handler); + } + virtual ~CarouselItem() = default; public: Window * front; Window * back; + std::function selectHandler; }; class CarouselWindow: public Window { @@ -74,6 +80,10 @@ class CarouselWindow: public Window { void select(int index, bool scroll = true) { selection = index; + auto item = items[selection]; + if (item->selectHandler) { + item->selectHandler(); + } update(); }