#pragma once #include "ui/wrap/slide_wrap.h" #include "facades.h" namespace Window { template class TopBarWrapWidget : public Ui::SlideWrap { using Parent = Ui::SlideWrap; public: TopBarWrapWidget(QWidget *parent, object_ptr inner) : Parent(parent, std::move(inner)) { this->sizeValue( ) | rpl::start_with_next([this](const QSize &size) { updateShadowGeometry(size); }, this->lifetime()); } void updateAdaptiveLayout() { updateShadowGeometry(this->size()); } void showShadow() { this->entity()->showShadow(); } void hideShadow() { this->entity()->hideShadow(); } int contentHeight() const { return qMax(this->height() - st::lineWidth, 0); } private: void updateShadowGeometry(const QSize &size) { auto skip = Adaptive::OneColumn() ? 0 : st::lineWidth; this->entity()->setShadowGeometryToLeft( skip, size.height() - st::lineWidth, size.width() - skip, st::lineWidth); } }; } // namespace Window