diff --git a/include/ftxui/component/component.hpp b/include/ftxui/component/component.hpp index 7eb33bcf2d33f62d1b193afc9627d6ba0d23a45c..679cd1b9b40f65f380e648aa793ef2fc200a2be7 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 45d16e402d91e6d581b1412c3c45873d9ee158ae..13daee035fe27cd032e690c44fc1e1a16851a212 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