diff --git a/Telegram/SourceFiles/boxes/moderate_messages_box.cpp b/Telegram/SourceFiles/boxes/moderate_messages_box.cpp index 22d234ef0..0b8b4dc90 100644 --- a/Telegram/SourceFiles/boxes/moderate_messages_box.cpp +++ b/Telegram/SourceFiles/boxes/moderate_messages_box.cpp @@ -757,38 +757,22 @@ void DeleteChatBox(not_null box, not_null peer) { return base::EventFilterResult::Continue; }); - const auto line = container->add(object_ptr(container)); - const auto &st = st::mainMenuUserpic; - line->resize(line->width(), st.size.height()); - const auto userpic = Ui::CreateChild( - line, + container, peer, - st); + st::mainMenuUserpic); userpic->showSavedMessagesOnSelf(true); - const auto label = Ui::CreateChild( - line, - peer->isSelf() - ? tr::lng_saved_messages() | Ui::Text::ToBold() - : maybeUser - ? tr::lng_profile_delete_conversation() | Ui::Text::ToBold() - : rpl::single(Ui::Text::Bold(peer->name())) | rpl::type_erased(), - box->getDelegate()->style().title); - line->widthValue( - ) | rpl::start_with_next([=](int width) { - userpic->moveToLeft(st::boxRowPadding.left(), 0); - const auto skip = st::defaultBoxCheckbox.textPosition.x(); - label->resizeToWidth(width - - rect::right(userpic) - - skip - - st::boxRowPadding.right()); - label->moveToLeft( - rect::right(userpic) + skip, - ((userpic->height() - label->height()) / 2)); - }, label->lifetime()); - - userpic->setAttribute(Qt::WA_TransparentForMouseEvents); - label->setAttribute(Qt::WA_TransparentForMouseEvents); + Ui::IconWithTitle( + container, + userpic, + Ui::CreateChild( + container, + peer->isSelf() + ? tr::lng_saved_messages() | Ui::Text::ToBold() + : maybeUser + ? tr::lng_profile_delete_conversation() | Ui::Text::ToBold() + : rpl::single(peer->name()) | Ui::Text::ToBold(), + box->getDelegate()->style().title)); Ui::AddSkip(container); Ui::AddSkip(container); diff --git a/Telegram/SourceFiles/ui/boxes/confirm_box.cpp b/Telegram/SourceFiles/ui/boxes/confirm_box.cpp index 5af3f3b28..275be6c21 100644 --- a/Telegram/SourceFiles/ui/boxes/confirm_box.cpp +++ b/Telegram/SourceFiles/ui/boxes/confirm_box.cpp @@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/boxes/confirm_box.h" #include "lang/lang_keys.h" +#include "ui/rect.h" #include "ui/widgets/buttons.h" #include "styles/style_layers.h" @@ -100,4 +101,33 @@ object_ptr MakeConfirmBox(ConfirmBoxArgs &&args) { return Box(ConfirmBox, std::move(args)); } +void IconWithTitle( + not_null container, + not_null icon, + not_null title) { + const auto line = container->add( + object_ptr(container), + st::boxRowPadding); + icon->setParent(line); + title->setParent(line); + + icon->heightValue( + ) | rpl::start_with_next([=](int height) { + line->resize(line->width(), height); + }, icon->lifetime()); + + line->widthValue( + ) | rpl::start_with_next([=](int width) { + icon->moveToLeft(0, 0); + const auto skip = st::defaultBoxCheckbox.textPosition.x(); + title->resizeToWidth(width - rect::right(icon) - skip); + title->moveToLeft( + rect::right(icon) + skip, + ((icon->height() - title->height()) / 2)); + }, title->lifetime()); + + icon->setAttribute(Qt::WA_TransparentForMouseEvents); + title->setAttribute(Qt::WA_TransparentForMouseEvents); +} + } // namespace Ui diff --git a/Telegram/SourceFiles/ui/boxes/confirm_box.h b/Telegram/SourceFiles/ui/boxes/confirm_box.h index c33192e29..97ba8eb41 100644 --- a/Telegram/SourceFiles/ui/boxes/confirm_box.h +++ b/Telegram/SourceFiles/ui/boxes/confirm_box.h @@ -60,4 +60,9 @@ inline void InformBox(not_null box, ConfirmBoxArgs &&args) { return MakeInformBox({ .text = std::move(text) }); } +void IconWithTitle( + not_null container, + not_null icon, + not_null title); + } // namespace Ui