diff --git a/Telegram/SourceFiles/editor/photo_editor_controls.cpp b/Telegram/SourceFiles/editor/photo_editor_controls.cpp index b820520742..c7e9911ba6 100644 --- a/Telegram/SourceFiles/editor/photo_editor_controls.cpp +++ b/Telegram/SourceFiles/editor/photo_editor_controls.cpp @@ -7,11 +7,51 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "editor/photo_editor_controls.h" +#include "ui/cached_round_corners.h" namespace Editor { -PhotoEditorControls::PhotoEditorControls( - not_null parent) +class HorizontalContainer final : public Ui::RpWidget { +public: + HorizontalContainer(not_null parent); + + void updateChildrenPosition(); + +}; + +HorizontalContainer::HorizontalContainer(not_null parent) : RpWidget(parent) { } +void HorizontalContainer::updateChildrenPosition() { + auto left = 0; + auto height = 0; + for (auto child : RpWidget::children()) { + if (child->isWidgetType()) { + const auto widget = static_cast(child); + widget->move(left, 0); + left += widget->width(); + height = std::max(height, widget->height()); + } + } + resize(left, height); +} + +PhotoEditorControls::PhotoEditorControls( + not_null parent, + bool doneControls) +: RpWidget(parent) +, _buttonsContainer(base::make_unique_q(this)) { + + _buttonsContainer->updateChildrenPosition(); + + sizeValue( + ) | rpl::start_with_next([=](const QSize &size) { + + _buttonsContainer->moveToLeft( + (size.width() - _buttonsContainer->width()) / 2, + 0); + + }, lifetime()); + +} } // namespace Editor diff --git a/Telegram/SourceFiles/editor/photo_editor_controls.h b/Telegram/SourceFiles/editor/photo_editor_controls.h index 2543b3466a..783424c67f 100644 --- a/Telegram/SourceFiles/editor/photo_editor_controls.h +++ b/Telegram/SourceFiles/editor/photo_editor_controls.h @@ -11,12 +11,18 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL namespace Editor { +class HorizontalContainer; + class PhotoEditorControls final : public Ui::RpWidget { public: - PhotoEditorControls(not_null parent); + PhotoEditorControls( + not_null parent, + bool doneControls = true); private: + const base::unique_qptr _buttonsContainer; + }; } // namespace Editor