From 60b9e491dbbfa7c47fad6f6245cb47703dce57f5 Mon Sep 17 00:00:00 2001 From: Arthur Sonzogni <sonzogniarthur@gmail.com> Date: Thu, 22 Dec 2022 21:15:54 +0100 Subject: [PATCH] Add all the Slider implementations. (#532) This resolves: https://github.com/ArthurSonzogni/FTXUI/issues/524 --- include/ftxui/component/component.hpp | 9 ++++++--- src/ftxui/component/slider.cpp | 15 ++++++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/include/ftxui/component/component.hpp b/include/ftxui/component/component.hpp index 7eb33bcf..679cd1b9 100644 --- a/include/ftxui/component/component.hpp +++ b/include/ftxui/component/component.hpp @@ -67,6 +67,12 @@ Component Radiobox(ConstStringListRef entries, Ref<RadioboxOption> option = {}); Component Toggle(ConstStringListRef entries, int* selected); + +// General slider constructor: +template <typename T> +Component Slider(SliderOption<T> options = {}); + +// Shorthand without the `SliderOption` constructor: Component Slider(ConstStringRef label, Ref<int> value, ConstRef<int> min = 0, @@ -82,9 +88,6 @@ Component Slider(ConstStringRef label, ConstRef<long> min = 0l, ConstRef<long> max = 100l, ConstRef<long> increment = 5l); -// General slider type without support for a `label`. -template <typename T> // T = {int, float, long} -Component Slider(SliderOption<T> options = {}); Component ResizableSplitLeft(Component main, Component back, int* main_size); Component ResizableSplitRight(Component main, Component back, int* main_size); diff --git a/src/ftxui/component/slider.cpp b/src/ftxui/component/slider.cpp index 45d16e40..13daee03 100644 --- a/src/ftxui/component/slider.cpp +++ b/src/ftxui/component/slider.cpp @@ -325,9 +325,18 @@ template <typename T> Component Slider(SliderOption<T> options) { return Make<SliderBase<T>>(options); } -template Component Slider(SliderOption<int> options); -template Component Slider(SliderOption<float> options); -template Component Slider(SliderOption<long> options); +template Component Slider(SliderOption<int8_t>); +template Component Slider(SliderOption<int16_t>); +template Component Slider(SliderOption<int32_t>); +template Component Slider(SliderOption<int64_t>); + +template Component Slider(SliderOption<uint8_t>); +template Component Slider(SliderOption<uint16_t>); +template Component Slider(SliderOption<uint32_t>); +template Component Slider(SliderOption<uint64_t>); + +template Component Slider(SliderOption<float>); +template Component Slider(SliderOption<double>); } // namespace ftxui -- GitLab