2
0
mirror of https://github.com/telegramdesktop/tdesktop synced 2025-08-23 10:47:11 +00:00
tdesktop/Telegram/SourceFiles/ui/vertical_list.cpp

75 lines
1.9 KiB
C++
Raw Normal View History

/*
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
*/
#include "ui/vertical_list.h"
#include "ui/text/text_utilities.h"
#include "ui/widgets/box_content_divider.h"
#include "ui/widgets/labels.h"
#include "ui/wrap/padding_wrap.h"
#include "ui/wrap/vertical_layout.h"
#include "styles/style_layers.h"
namespace Ui {
void AddSkip(not_null<Ui::VerticalLayout*> container) {
AddSkip(container, st::defaultVerticalListSkip);
}
void AddSkip(not_null<Ui::VerticalLayout*> container, int skip) {
container->add(object_ptr<Ui::FixedHeightWidget>(container, skip));
}
void AddDivider(not_null<Ui::VerticalLayout*> container) {
container->add(object_ptr<Ui::BoxContentDivider>(container));
}
2024-07-25 18:08:22 +02:00
not_null<Ui::FlatLabel*> AddDividerText(
not_null<Ui::VerticalLayout*> container,
2024-02-18 00:25:40 +04:00
rpl::producer<QString> text,
2024-02-20 14:33:46 +04:00
const style::margins &margins,
RectParts parts) {
2024-07-25 18:08:22 +02:00
return AddDividerText(
2024-02-18 00:25:40 +04:00
container,
std::move(text) | Ui::Text::ToWithEntities(),
2024-02-20 14:33:46 +04:00
margins,
parts);
}
2024-07-25 18:08:22 +02:00
not_null<Ui::FlatLabel*> AddDividerText(
not_null<Ui::VerticalLayout*> container,
2024-02-18 00:25:40 +04:00
rpl::producer<TextWithEntities> text,
2024-02-20 14:33:46 +04:00
const style::margins &margins,
RectParts parts) {
2024-07-25 18:08:22 +02:00
auto label = object_ptr<Ui::FlatLabel>(
container,
std::move(text),
st::boxDividerLabel);
const auto result = label.data();
container->add(object_ptr<Ui::DividerLabel>(
container,
2024-07-25 18:08:22 +02:00
std::move(label),
2024-02-20 14:33:46 +04:00
margins,
parts));
2024-07-25 18:08:22 +02:00
return result;
}
not_null<Ui::FlatLabel*> AddSubsectionTitle(
not_null<Ui::VerticalLayout*> container,
rpl::producer<QString> text,
style::margins addPadding,
const style::FlatLabel *st) {
return container->add(
object_ptr<Ui::FlatLabel>(
container,
std::move(text),
st ? *st : st::defaultSubsectionTitle),
st::defaultSubsectionTitlePadding + addPadding);
}
} // namespace Ui