tdesktop/Telegram/SourceFiles/profile/profile_cover_drop_area.h

45 lines
939 B
C++

/*
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
*/
#pragma once
#include "ui/effects/animations.h"
#include "ui/rp_widget.h"
namespace Profile {
class CoverDropArea : public TWidget {
public:
CoverDropArea(QWidget *parent, const QString &title, const QString &subtitle);
void showAnimated();
using HideFinishCallback = Fn<void(CoverDropArea*)>;
void hideAnimated(HideFinishCallback &&callback);
bool hiding() const {
return _hiding;
}
protected:
void paintEvent(QPaintEvent *e) override;
private:
void setupAnimation();
QString _title, _subtitle;
int _titleWidth, _subtitleWidth;
QPixmap _cache;
Ui::Animations::Simple _a_appearance;
bool _hiding = false;
HideFinishCallback _hideFinishCallback;
};
} // namespace Profile