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(); }