From ad300f5eaee097d21ad7a85e1a036116eed9b406 Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 7 Nov 2025 12:51:34 +0400 Subject: [PATCH] Customize DividerBar/DividerLabel styles. --- .../boxes/moderate_messages_box.cpp | 3 +- .../SourceFiles/boxes/report_messages_box.cpp | 5 +- Telegram/SourceFiles/calls/calls.style | 20 ++++++-- .../calls/group/calls_group_settings.cpp | 2 +- .../group/ui/calls_group_recording_box.cpp | 5 +- .../chat_helpers/chat_helpers.style | 6 +-- .../boosts/create_giveaway_box.cpp | 2 +- .../earn/info_channel_earn_list.cpp | 3 +- .../inline_bot_confirm_prepared.cpp | 3 +- .../SourceFiles/media/view/media_view.style | 3 +- Telegram/SourceFiles/menu/menu_sponsored.cpp | 3 +- .../settings/business/settings_chat_links.cpp | 1 + .../settings/business/settings_chatbots.cpp | 1 + .../settings/business/settings_greeting.cpp | 3 +- .../settings/settings_business.cpp | 11 ++-- .../SourceFiles/settings/settings_common.cpp | 2 +- .../settings/settings_credits_graphics.cpp | 50 ++++++++++++++----- .../settings/settings_credits_graphics.h | 3 +- .../ui/boxes/edit_invite_link_session.cpp | 3 +- Telegram/SourceFiles/ui/effects/credits.style | 37 ++++++++++++++ Telegram/SourceFiles/ui/effects/premium.style | 2 + .../ui/effects/premium_top_bar.cpp | 4 +- Telegram/SourceFiles/ui/vertical_list.cpp | 15 ++++-- Telegram/SourceFiles/ui/vertical_list.h | 10 +++- Telegram/lib_base | 2 +- Telegram/lib_ui | 2 +- 26 files changed, 145 insertions(+), 56 deletions(-) diff --git a/Telegram/SourceFiles/boxes/moderate_messages_box.cpp b/Telegram/SourceFiles/boxes/moderate_messages_box.cpp index 7ab0c2e396..ec249bf5ef 100644 --- a/Telegram/SourceFiles/boxes/moderate_messages_box.cpp +++ b/Telegram/SourceFiles/boxes/moderate_messages_box.cpp @@ -466,8 +466,7 @@ void CreateModerateMessagesBox( inner->add(object_ptr( inner, std::move(label), - st::defaultBoxDividerLabelPadding, - RectPart::Top | RectPart::Bottom)); + st::defaultBoxDividerLabelPadding)); using Flag = ChatRestriction; using Flags = ChatRestrictions; diff --git a/Telegram/SourceFiles/boxes/report_messages_box.cpp b/Telegram/SourceFiles/boxes/report_messages_box.cpp index 25e548f1b2..8855cd581e 100644 --- a/Telegram/SourceFiles/boxes/report_messages_box.cpp +++ b/Telegram/SourceFiles/boxes/report_messages_box.cpp @@ -147,8 +147,7 @@ void ShowReportMessageBox( auto label = object_ptr( container, tr::lng_report_details_message_about(), - st::boxDividerLabel); - label->setTextColorOverride(st->dividerFg->c); + st->divider.label); using namespace Ui; const auto widget = container->add( object_ptr>( @@ -159,7 +158,7 @@ void ShowReportMessageBox( = CreateChild( widget, st::boxDividerHeight, - st->dividerBg, + st->divider.bar, RectPart::Top | RectPart::Bottom); background->lower(); widget->sizeValue( diff --git a/Telegram/SourceFiles/calls/calls.style b/Telegram/SourceFiles/calls/calls.style index 2d87c001fd..c5143573fc 100644 --- a/Telegram/SourceFiles/calls/calls.style +++ b/Telegram/SourceFiles/calls/calls.style @@ -624,11 +624,12 @@ groupCallMenuCover: ShortInfoCover(shortInfoCover) { namePosition: point(17px, 28px); statusPosition: point(17px, 8px); } +groupCallTextPalette: TextPalette(defaultTextPalette) { + linkFg: groupCallActiveFg; +} groupCallMenuAbout: FlatLabel(defaultFlatLabel) { textFg: groupCallMemberNotJoinedStatus; - palette: TextPalette(defaultTextPalette) { - linkFg: groupCallActiveFg; - } + palette: groupCallTextPalette; minWidth: 200px; maxHeight: 92px; } @@ -1082,6 +1083,19 @@ groupCallBox: Box(defaultBox) { groupCallLayerBox: Box(groupCallBox) { buttonPadding: margins(8px, 8px, 8px, 8px); } +groupCallDividerBar: DividerBar { + bg: groupCallBg; + top: icon {{ "box_divider_top", groupCallMemberNotJoinedStatus }}; + bottom: icon {{ "box_divider_bottom", groupCallMemberNotJoinedStatus }}; +} +groupCallDividerLabel: DividerLabel { + bar: groupCallDividerBar; + label: FlatLabel(boxDividerLabel) { + textFg: groupCallVideoSubTextFg; + palette: groupCallTextPalette; + } +} + groupCallLevelMeter: LevelMeter(defaultLevelMeter) { height: 18px; lineWidth: 3px; diff --git a/Telegram/SourceFiles/calls/group/calls_group_settings.cpp b/Telegram/SourceFiles/calls/group/calls_group_settings.cpp index 31c151549b..3c653c5e2e 100644 --- a/Telegram/SourceFiles/calls/group/calls_group_settings.cpp +++ b/Telegram/SourceFiles/calls/group/calls_group_settings.cpp @@ -285,7 +285,7 @@ void SettingsBox( layout->add(object_ptr( layout, st::boxDividerHeight, - st::groupCallDividerBg)); + st::groupCallDividerBar)); }; if (addCheck || addMessages) { diff --git a/Telegram/SourceFiles/calls/group/ui/calls_group_recording_box.cpp b/Telegram/SourceFiles/calls/group/ui/calls_group_recording_box.cpp index 8f269593a4..6ee3bda246 100644 --- a/Telegram/SourceFiles/calls/group/ui/calls_group_recording_box.cpp +++ b/Telegram/SourceFiles/calls/group/ui/calls_group_recording_box.cpp @@ -213,7 +213,10 @@ Switcher::Switcher( not_null parent, rpl::producer &&toggled) : RpWidget(parent) -, _background(this, st::groupCallRecordingInfoHeight, st::groupCallBg) +, _background( + this, + st::groupCallRecordingInfoHeight, + st::groupCallDividerBar) , _audio(this) , _video(this) { _audio->prepareAudio(); diff --git a/Telegram/SourceFiles/chat_helpers/chat_helpers.style b/Telegram/SourceFiles/chat_helpers/chat_helpers.style index d3c2ed199c..907392f39e 100644 --- a/Telegram/SourceFiles/chat_helpers/chat_helpers.style +++ b/Telegram/SourceFiles/chat_helpers/chat_helpers.style @@ -225,8 +225,7 @@ ReportBox { noIconButton: SettingsButton; label: FlatLabel; field: InputField; - dividerBg: color; - dividerFg: color; + divider: DividerLabel; spam: icon; fake: icon; violence: icon; @@ -1470,8 +1469,7 @@ defaultReportBox: ReportBox { } label: boxLabel; field: newGroupDescription; - dividerBg: boxDividerBg; - dividerFg: windowSubTextFg; + divider: defaultDividerLabel; spam: menuIconDelete; fake: menuIconFake; violence: menuIconViolence; diff --git a/Telegram/SourceFiles/info/channel_statistics/boosts/create_giveaway_box.cpp b/Telegram/SourceFiles/info/channel_statistics/boosts/create_giveaway_box.cpp index 6be47fdd92..2e0458f308 100644 --- a/Telegram/SourceFiles/info/channel_statistics/boosts/create_giveaway_box.cpp +++ b/Telegram/SourceFiles/info/channel_statistics/boosts/create_giveaway_box.cpp @@ -213,7 +213,7 @@ void AddPremiumTopBarWithDefaultTitleBar( - st::boxTitleHeight + st::boxDividerHeight + st::defaultVerticalListSkip, - st::boxDividerBg, + st::defaultDividerBar, RectPart::Bottom), style::margins()); bar->setPaused(true); diff --git a/Telegram/SourceFiles/info/channel_statistics/earn/info_channel_earn_list.cpp b/Telegram/SourceFiles/info/channel_statistics/earn/info_channel_earn_list.cpp index 2b332e1218..d15bbc9bf8 100644 --- a/Telegram/SourceFiles/info/channel_statistics/earn/info_channel_earn_list.cpp +++ b/Telegram/SourceFiles/info/channel_statistics/earn/info_channel_earn_list.cpp @@ -607,8 +607,7 @@ void InnerWidget::fill() { container->add(object_ptr( container, std::move(label), - st::defaultBoxDividerLabelPadding, - RectPart::Top | RectPart::Bottom)); + st::defaultBoxDividerLabelPadding)); }; if (canViewCurrencyEarn) { addAboutWithLearn(bot diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_confirm_prepared.cpp b/Telegram/SourceFiles/inline_bots/inline_bot_confirm_prepared.cpp index 4b4b434aeb..8deb49908f 100644 --- a/Telegram/SourceFiles/inline_bots/inline_bot_confirm_prepared.cpp +++ b/Telegram/SourceFiles/inline_bots/inline_bot_confirm_prepared.cpp @@ -194,8 +194,7 @@ void PreparedPreviewBox( container, tr::lng_bot_share_prepared_about(lt_bot, rpl::single(name)), st::boxDividerLabel), - st::defaultBoxDividerLabelPadding, - RectPart::Top | RectPart::Bottom))); + st::defaultBoxDividerLabelPadding))); const auto row = container->add(object_ptr( container)); diff --git a/Telegram/SourceFiles/media/view/media_view.style b/Telegram/SourceFiles/media/view/media_view.style index f28cbed16b..b8ca9ec3e8 100644 --- a/Telegram/SourceFiles/media/view/media_view.style +++ b/Telegram/SourceFiles/media/view/media_view.style @@ -914,8 +914,7 @@ storiesReportBox: ReportBox(defaultReportBox) { textMargins: margins(1px, 26px, 1px, 4px); heightMax: 116px; } - dividerBg: groupCallBg; - dividerFg: groupCallVideoSubTextFg; + divider: groupCallDividerLabel; spam: icon {{ "menu/delete", storiesComposeWhiteText }}; fake: icon {{ "menu/fake", storiesComposeWhiteText }}; violence: icon {{ "menu/violence", storiesComposeWhiteText }}; diff --git a/Telegram/SourceFiles/menu/menu_sponsored.cpp b/Telegram/SourceFiles/menu/menu_sponsored.cpp index f3637a5149..67ad0580e0 100644 --- a/Telegram/SourceFiles/menu/menu_sponsored.cpp +++ b/Telegram/SourceFiles/menu/menu_sponsored.cpp @@ -345,8 +345,7 @@ void ShowReportSponsoredBox( rpl::single(guideLink), Ui::Text::WithEntities), st::boxDividerLabel), - st::defaultBoxDividerLabelPadding, - RectPart::Top | RectPart::Bottom)); + st::defaultBoxDividerLabelPadding)); } box->addButton( tr::lng_close(), diff --git a/Telegram/SourceFiles/settings/business/settings_chat_links.cpp b/Telegram/SourceFiles/settings/business/settings_chat_links.cpp index 44025db44b..2cd44ca23e 100644 --- a/Telegram/SourceFiles/settings/business/settings_chat_links.cpp +++ b/Telegram/SourceFiles/settings/business/settings_chat_links.cpp @@ -808,6 +808,7 @@ void ChatLinks::setupContent( content, std::move(label), st::settingsChatbotsBottomTextMargin, + st::defaultDividerBar, RectPart::Top)); Ui::ResizeFitChild(this, content); diff --git a/Telegram/SourceFiles/settings/business/settings_chatbots.cpp b/Telegram/SourceFiles/settings/business/settings_chatbots.cpp index d6cdf4b0f8..e033635267 100644 --- a/Telegram/SourceFiles/settings/business/settings_chatbots.cpp +++ b/Telegram/SourceFiles/settings/business/settings_chatbots.cpp @@ -468,6 +468,7 @@ void Chatbots::setupContent() { content, tr::lng_chatbots_add_about(), st::peerAppearanceDividerTextMargin, + st::defaultDividerLabel, RectPart::Top); _detailsWrap = content->add(object_ptr(content)); diff --git a/Telegram/SourceFiles/settings/business/settings_greeting.cpp b/Telegram/SourceFiles/settings/business/settings_greeting.cpp index a65d6946dd..b1f69022b0 100644 --- a/Telegram/SourceFiles/settings/business/settings_greeting.cpp +++ b/Telegram/SourceFiles/settings/business/settings_greeting.cpp @@ -177,7 +177,7 @@ void Greeting::setupContent( object_ptr( content, st::boxDividerHeight, - st::boxDividerBg, + st::defaultDividerBar, RectPart::Top)) )->setDuration(0)->toggleOn(enabled->toggledValue() | rpl::map(!_1)); content->add( @@ -256,6 +256,7 @@ void Greeting::setupContent( inner, tr::lng_greeting_period_about(), st::settingsChatbotsBottomTextMargin, + st::defaultDividerLabel, RectPart::Top); wrap->toggleOn(enabled->toggledValue()); diff --git a/Telegram/SourceFiles/settings/settings_business.cpp b/Telegram/SourceFiles/settings/settings_business.cpp index 41768f2a15..bc6c1172fa 100644 --- a/Telegram/SourceFiles/settings/settings_business.cpp +++ b/Telegram/SourceFiles/settings/settings_business.cpp @@ -404,9 +404,9 @@ void Business::setStepDataReference(std::any &data) { void Business::setupSwipeBack() { using namespace Ui::Controls; - + auto swipeBackData = lifetime().make_state(); - + auto update = [=](SwipeContextData data) { if (data.translation > 0) { if (!swipeBackData->callback) { @@ -425,7 +425,7 @@ void Business::setupSwipeBack() { (*swipeBackData) = {}; } }; - + auto init = [=](int, Qt::LayoutDirection direction) { return (direction == Qt::RightToLeft) ? DefaultSwipeBackHandlerFinishData([=] { @@ -433,7 +433,7 @@ void Business::setupSwipeBack() { }) : SwipeHandlerFinishData(); }; - + SetupSwipeHandler({ .widget = this, .scroll = v::null, @@ -585,8 +585,7 @@ void Business::setupContent() { }), Ui::Text::RichLangValue), st::boxDividerLabel), - st::defaultBoxDividerLabelPadding, - RectPart::Top | RectPart::Bottom)); + st::defaultBoxDividerLabelPadding)); } const auto api = inner->lifetime().make_state( diff --git a/Telegram/SourceFiles/settings/settings_common.cpp b/Telegram/SourceFiles/settings/settings_common.cpp index 67ab82a18e..3fc7257d83 100644 --- a/Telegram/SourceFiles/settings/settings_common.cpp +++ b/Telegram/SourceFiles/settings/settings_common.cpp @@ -201,7 +201,7 @@ void AddDividerTextWithLottie( const auto divider = Ui::CreateChild( container.get(), 0, - st::boxDividerBg, + st::defaultDividerBar, descriptor.parts); const auto verticalLayout = container->add( object_ptr(container.get())); diff --git a/Telegram/SourceFiles/settings/settings_credits_graphics.cpp b/Telegram/SourceFiles/settings/settings_credits_graphics.cpp index be23acb592..41f87dfb84 100644 --- a/Telegram/SourceFiles/settings/settings_credits_graphics.cpp +++ b/Telegram/SourceFiles/settings/settings_credits_graphics.cpp @@ -454,7 +454,8 @@ void FillCreditOptions( Fn paid, rpl::producer<> showFinishes, rpl::producer subtitle, - std::vector preloadedTopupOptions) { + std::vector preloadedTopupOptions, + bool dark) { const auto options = container->add( object_ptr>( container, @@ -491,9 +492,15 @@ void FillCreditOptions( const auto fillLoading = [=] { Ui::AddSkip(content, st::settingsPremiumOptionsPadding.top()); if (subtitle) { - Ui::AddSubsectionTitle(content, std::move(subtitle)); + Ui::AddSubsectionTitle( + content, + std::move(subtitle), + {}, + dark ? &st::groupCallSubsectionTitle : nullptr); } - const auto &st = st::creditsTopupButton; + const auto &st = dark + ? st::videoStreamTopupButton + : st::creditsTopupButton; const auto loadingList = content; const auto isRtl = QLocale().textDirection() == Qt::RightToLeft; using WidgetPtr = object_ptr; @@ -533,7 +540,11 @@ void FillCreditOptions( } Ui::AddSkip(content, st::settingsPremiumOptionsPadding.top()); if (subtitle) { - Ui::AddSubsectionTitle(content, std::move(subtitle)); + Ui::AddSubsectionTitle( + content, + std::move(subtitle), + {}, + dark ? &st::groupCallSubsectionTitle : nullptr); } const auto buttons = content->add( @@ -545,14 +556,18 @@ void FillCreditOptions( object_ptr( content, tr::lng_credits_more_options(), - st::statisticsShowMoreButton))); + (dark + ? st::videoStreamShowMoreButton + : st::statisticsShowMoreButton)))); const auto showMore = showMoreWrap->entity(); showMore->setClickedCallback([=] { showMoreWrap->toggle(false, anim::type::instant); }); Ui::AddToggleUpDownArrowToMoreButton(showMore); - const auto &st = st::creditsTopupButton; + const auto &st = dark + ? st::videoStreamTopupButton + : st::creditsTopupButton; const auto diffBetweenTextAndStar = st.padding.left() - st.iconLeft - int(singleStarWidth * 1.5); @@ -593,7 +608,7 @@ void FillCreditOptions( const auto price = Ui::CreateChild( button, Ui::FillAmountAndCurrency(option.amount, option.currency), - st::creditsTopupPrice); + dark ? st::videoStreamTopupPrice : st::creditsTopupPrice); const auto inner = Ui::CreateChild(button); const auto getStars = [=] { const auto starIndex = i + 1; @@ -665,7 +680,11 @@ void FillCreditOptions( }), Ui::Text::RichLangValue); Ui::AddSkip(content); - Ui::AddDividerText(content, std::move(text)); + Ui::AddDividerText( + content, + std::move(text), + st::defaultBoxDividerLabelPadding, + dark ? st::groupCallDividerLabel : st::defaultDividerLabel); } content->resizeToWidth(container->width()); @@ -2864,6 +2883,7 @@ void SmallBalanceBox( paid(); }; + auto dark = false; const auto owner = &show->session().data(); const auto name = v::match(source, [&](SmallBalanceBot value) { return value.botId @@ -2896,7 +2916,9 @@ void SmallBalanceBox( const auto content = [&]() -> Ui::Premium::TopBarAbstract* { return box->setPinnedToTopContent(object_ptr( box, - st::creditsLowBalancePremiumCover, + (dark + ? st::videoStreamStarsCover + : st::creditsLowBalancePremiumCover), Ui::Premium::TopBarDescriptor{ .title = tr::lng_credits_small_balance_title( lt_count, @@ -2961,7 +2983,8 @@ void SmallBalanceBox( [=] { show->session().credits().load(true); }, box->showFinishes(), tr::lng_credits_summary_options_subtitle(), - {}); + {}, + dark); content->setMaximumHeight(st::creditsLowBalancePremiumCoverHeight); content->setMinimumHeight(st::infoLayerTopBarHeight); @@ -2982,7 +3005,9 @@ void SmallBalanceBox( content, &show->session(), show->session().credits().balanceValue(), - true); + true, + nullptr, + dark); show->session().credits().load(true); rpl::combine( @@ -3358,8 +3383,7 @@ void AddWithdrawalWidget( container->add(object_ptr( container, std::move(about), - st::defaultBoxDividerLabelPadding, - RectPart::Top | RectPart::Bottom)); + st::defaultBoxDividerLabelPadding)); Ui::AddSkip(container); } diff --git a/Telegram/SourceFiles/settings/settings_credits_graphics.h b/Telegram/SourceFiles/settings/settings_credits_graphics.h index d4af6f0977..ab5d2e32ae 100644 --- a/Telegram/SourceFiles/settings/settings_credits_graphics.h +++ b/Telegram/SourceFiles/settings/settings_credits_graphics.h @@ -76,7 +76,8 @@ void FillCreditOptions( Fn paid, rpl::producer<> showFinishes, rpl::producer subtitle, - std::vector preloadedTopupOptions); + std::vector preloadedTopupOptions, + bool dark = false); [[nodiscard]] not_null AddBalanceWidget( not_null parent, diff --git a/Telegram/SourceFiles/ui/boxes/edit_invite_link_session.cpp b/Telegram/SourceFiles/ui/boxes/edit_invite_link_session.cpp index 2f09147979..0c08c464f9 100644 --- a/Telegram/SourceFiles/ui/boxes/edit_invite_link_session.cpp +++ b/Telegram/SourceFiles/ui/boxes/edit_invite_link_session.cpp @@ -148,8 +148,7 @@ InviteLinkSubscriptionToggle FillCreateInviteLinkSubscriptionToggle( container->add(object_ptr( container, std::move(about), - st::defaultBoxDividerLabelPadding, - RectPart::Top | RectPart::Bottom)); + st::defaultBoxDividerLabelPadding)); return { toggle, input }; } diff --git a/Telegram/SourceFiles/ui/effects/credits.style b/Telegram/SourceFiles/ui/effects/credits.style index c192c1eba4..6ba52583e3 100644 --- a/Telegram/SourceFiles/ui/effects/credits.style +++ b/Telegram/SourceFiles/ui/effects/credits.style @@ -400,3 +400,40 @@ uniqueGiftValueAvailableLink: FlatLabel(boxLabel) { } } uniqueGiftValueAvailableMargin: margins(0px, 4px, 0px, 4px); + +videoStreamTopupRipple: RippleAnimation(defaultRippleAnimation) { + color: groupCallMembersBgRipple; +} +videoStreamTopupButton: SettingsButton(creditsTopupButton) { + textFg: groupCallMemberNotJoinedStatus; + textFgOver: groupCallMemberNotJoinedStatus; + textBg: groupCallMembersBg; + textBgOver: groupCallMembersBgOver; + ripple: videoStreamTopupRipple; +} +videoStreamTopupPrice: FlatLabel(creditsTopupPrice) { + textFg: groupCallMemberNotJoinedStatus; +} +videoStreamShowMoreButton: SettingsButton(defaultSettingsButton) { + textFg: groupCallActiveFg; + textFgOver: groupCallActiveFg; + textBg: groupCallMembersBg; + textBgOver: groupCallMembersBgOver; + + padding: margins(70px, 10px, 22px, 8px); + + ripple: videoStreamTopupRipple; +} +videoStreamStarsCover: PremiumCover(creditsLowBalancePremiumCover) { + bg: groupCallMembersBg; + titleFg: groupCallMembersFg; + about: FlatLabel(defaultFlatLabel) { + style: premiumAboutTextStyle; + palette: TextPalette(defaultTextPalette) { + linkFg: groupCallMembersFg; + } + align: align(top); + textFg: groupCallMembersFg; + minWidth: 190px; + } +} diff --git a/Telegram/SourceFiles/ui/effects/premium.style b/Telegram/SourceFiles/ui/effects/premium.style index f8e0368a6d..2cd3fd8495 100644 --- a/Telegram/SourceFiles/ui/effects/premium.style +++ b/Telegram/SourceFiles/ui/effects/premium.style @@ -34,6 +34,7 @@ PremiumCover { starTopSkip: pixels; titlePadding: margins; titleFont: font; + titleFg: color; about: FlatLabel; aboutMaxWidth: pixels; additionalShadowForDarkThemes: bool; @@ -58,6 +59,7 @@ defaultPremiumCover: PremiumCover { starTopSkip: 37px; titlePadding: margins(0px, 18px, 0px, 11px); titleFont: boxTitleFont; + titleFg: windowBoldFg; about: FlatLabel(defaultFlatLabel) { style: premiumAboutTextStyle; palette: TextPalette(defaultTextPalette) { diff --git a/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp b/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp index 9cfb5e35b9..ba06933bf6 100644 --- a/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp +++ b/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp @@ -290,9 +290,7 @@ void TopBar::paintEvent(QPaintEvent *e) { _star.render(&p, _starRect); } - const auto color = _light - ? st::settingsPremiumUserTitle.textFg - : st::premiumButtonFg; + const auto color = _light ? st().titleFg : st::premiumButtonFg; p.setPen(color); const auto titlePathRect = _titlePath.boundingRect(); diff --git a/Telegram/SourceFiles/ui/vertical_list.cpp b/Telegram/SourceFiles/ui/vertical_list.cpp index 6666077dd2..73884380b4 100644 --- a/Telegram/SourceFiles/ui/vertical_list.cpp +++ b/Telegram/SourceFiles/ui/vertical_list.cpp @@ -24,19 +24,26 @@ void AddSkip(not_null container, int skip) { container->add(object_ptr(container, skip)); } -void AddDivider(not_null container) { - container->add(object_ptr(container)); +void AddDivider( + not_null container, + const style::DividerBar &st) { + container->add(object_ptr( + container, + st::boxDividerHeight, + st)); } not_null AddDividerText( not_null container, rpl::producer text, const style::margins &margins, + const style::DividerLabel &st, RectParts parts) { return AddDividerText( container, std::move(text) | Ui::Text::ToWithEntities(), margins, + st, parts); } @@ -44,16 +51,18 @@ not_null AddDividerText( not_null container, rpl::producer text, const style::margins &margins, + const style::DividerLabel &st, RectParts parts) { auto label = object_ptr( container, std::move(text), - st::boxDividerLabel); + st.label); const auto result = label.data(); container->add(object_ptr( container, std::move(label), margins, + st.bar, parts)); return result; } diff --git a/Telegram/SourceFiles/ui/vertical_list.h b/Telegram/SourceFiles/ui/vertical_list.h index 82934367f8..656e9cab1a 100644 --- a/Telegram/SourceFiles/ui/vertical_list.h +++ b/Telegram/SourceFiles/ui/vertical_list.h @@ -11,10 +11,14 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL namespace style { struct FlatLabel; +struct DividerBar; +struct DividerLabel; } // namespace style namespace st { extern const style::margins &defaultBoxDividerLabelPadding; +extern const style::DividerBar &defaultDividerBar; +extern const style::DividerLabel &defaultDividerLabel; } // namespace st namespace Ui { @@ -24,16 +28,20 @@ class VerticalLayout; void AddSkip(not_null container); void AddSkip(not_null container, int skip); -void AddDivider(not_null container); +void AddDivider( + not_null container, + const style::DividerBar &st = st::defaultDividerBar); not_null AddDividerText( not_null container, rpl::producer text, const style::margins &margins = st::defaultBoxDividerLabelPadding, + const style::DividerLabel &st = st::defaultDividerLabel, RectParts parts = RectPart::Top | RectPart::Bottom); not_null AddDividerText( not_null container, rpl::producer text, const style::margins &margins = st::defaultBoxDividerLabelPadding, + const style::DividerLabel &st = st::defaultDividerLabel, RectParts parts = RectPart::Top | RectPart::Bottom); not_null AddSubsectionTitle( not_null container, diff --git a/Telegram/lib_base b/Telegram/lib_base index d6c40c834a..617afd2225 160000 --- a/Telegram/lib_base +++ b/Telegram/lib_base @@ -1 +1 @@ -Subproject commit d6c40c834a5b33cb3bad6eab25b0ea9e22f48fe5 +Subproject commit 617afd2225d457a0b433ac8527bde5eea38061c2 diff --git a/Telegram/lib_ui b/Telegram/lib_ui index f6d74c68e7..31c82c8a3e 160000 --- a/Telegram/lib_ui +++ b/Telegram/lib_ui @@ -1 +1 @@ -Subproject commit f6d74c68e7df43b5e4d052d248af534a04bcfd0c +Subproject commit 31c82c8a3eee293c72c54515e0c6075e2ee342b2