diff --git a/Telegram/SourceFiles/info/bot/earn/info_earn_inner_widget.cpp b/Telegram/SourceFiles/info/bot/earn/info_earn_inner_widget.cpp index 5605dfce2..f2371bd22 100644 --- a/Telegram/SourceFiles/info/bot/earn/info_earn_inner_widget.cpp +++ b/Telegram/SourceFiles/info/bot/earn/info_earn_inner_widget.cpp @@ -36,10 +36,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/toast/toast.h" #include "ui/vertical_list.h" #include "ui/widgets/buttons.h" -#include "ui/widgets/discrete_sliders.h" #include "ui/widgets/fields/number_input.h" #include "ui/widgets/label_with_custom_emoji.h" #include "ui/widgets/labels.h" +#include "ui/widgets/slider_natural_width.h" #include "ui/wrap/slide_wrap.h" #include "styles/style_boxes.h" #include "styles/style_channel_earn.h" @@ -577,25 +577,12 @@ void InnerWidget::fillHistory() { header->setSubTitle({}); } - class Slider final : public Ui::SettingsSlider { - public: - using Ui::SettingsSlider::SettingsSlider; - void setNaturalWidth(int w) { - _naturalWidth = w; - } - int naturalWidth() const override { - return _naturalWidth; - } - - private: - int _naturalWidth = 0; - - }; - const auto slider = inner->add( - object_ptr>( + object_ptr>( inner, - object_ptr(inner, st::defaultTabsSlider)), + object_ptr( + inner, + st::defaultTabsSlider)), st::boxRowPadding); slider->toggle(!hasOneTab, anim::type::instant); diff --git a/Telegram/SourceFiles/info/channel_statistics/boosts/info_boosts_inner_widget.cpp b/Telegram/SourceFiles/info/channel_statistics/boosts/info_boosts_inner_widget.cpp index 15c72c5f2..6234ab010 100644 --- a/Telegram/SourceFiles/info/channel_statistics/boosts/info_boosts_inner_widget.cpp +++ b/Telegram/SourceFiles/info/channel_statistics/boosts/info_boosts_inner_widget.cpp @@ -32,8 +32,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/rect.h" #include "ui/vertical_list.h" #include "ui/widgets/buttons.h" -#include "ui/widgets/discrete_sliders.h" #include "ui/widgets/labels.h" +#include "ui/widgets/slider_natural_width.h" #include "ui/wrap/slide_wrap.h" #include "styles/style_giveaway.h" #include "styles/style_info.h" @@ -423,25 +423,12 @@ void InnerWidget::fill() { header->setSubTitle({}); } - class Slider final : public Ui::SettingsSlider { - public: - using Ui::SettingsSlider::SettingsSlider; - void setNaturalWidth(int w) { - _naturalWidth = w; - } - int naturalWidth() const override { - return _naturalWidth; - } - - private: - int _naturalWidth = 0; - - }; - const auto slider = inner->add( - object_ptr>( + object_ptr>( inner, - object_ptr(inner, st::defaultTabsSlider)), + object_ptr( + inner, + st::defaultTabsSlider)), st::boxRowPadding); slider->toggle(!hasOneTab, anim::type::instant); diff --git a/Telegram/SourceFiles/settings/settings_credits.cpp b/Telegram/SourceFiles/settings/settings_credits.cpp index 08d7231c3..0890f2703 100644 --- a/Telegram/SourceFiles/settings/settings_credits.cpp +++ b/Telegram/SourceFiles/settings/settings_credits.cpp @@ -31,7 +31,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/text/text_utilities.h" #include "ui/vertical_list.h" #include "ui/widgets/buttons.h" -#include "ui/widgets/discrete_sliders.h" +#include "ui/widgets/slider_natural_width.h" #include "ui/wrap/fade_wrap.h" #include "ui/wrap/slide_wrap.h" #include "ui/wrap/vertical_layout.h" @@ -160,25 +160,12 @@ void Credits::setupHistory(not_null container) { header->setSubTitle({}); } - class Slider final : public Ui::SettingsSlider { - public: - using Ui::SettingsSlider::SettingsSlider; - void setNaturalWidth(int w) { - _naturalWidth = w; - } - int naturalWidth() const override { - return _naturalWidth; - } - - private: - int _naturalWidth = 0; - - }; - const auto slider = inner->add( - object_ptr>( + object_ptr>( inner, - object_ptr(inner, st::defaultTabsSlider)), + object_ptr( + inner, + st::defaultTabsSlider)), st::boxRowPadding); slider->toggle(!hasOneTab, anim::type::instant); diff --git a/Telegram/SourceFiles/ui/widgets/slider_natural_width.h b/Telegram/SourceFiles/ui/widgets/slider_natural_width.h new file mode 100644 index 000000000..f2c52aa0a --- /dev/null +++ b/Telegram/SourceFiles/ui/widgets/slider_natural_width.h @@ -0,0 +1,29 @@ +/* +This file is part of Telegram Desktop, +the official desktop application for the Telegram messaging service. + +For license and copyright information please follow this link: +https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL +*/ +#pragma once + +#include "ui/widgets/discrete_sliders.h" + +namespace Ui { + +class CustomWidthSlider final : public SettingsSlider { +public: + using Ui::SettingsSlider::SettingsSlider; + void setNaturalWidth(int w) { + _naturalWidth = w; + } + int naturalWidth() const override { + return _naturalWidth; + } + +private: + int _naturalWidth = 0; + +}; + +} // namespace Ui diff --git a/Telegram/cmake/td_ui.cmake b/Telegram/cmake/td_ui.cmake index 34063bb22..f5cd963c5 100644 --- a/Telegram/cmake/td_ui.cmake +++ b/Telegram/cmake/td_ui.cmake @@ -404,6 +404,7 @@ PRIVATE ui/widgets/multi_select.h ui/widgets/sent_code_field.cpp ui/widgets/sent_code_field.h + ui/widgets/slider_natural_width.h ui/widgets/vertical_drum_picker.cpp ui/widgets/vertical_drum_picker.h