67 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			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/rp_widget.h"
 | |
| #include "ui/effects/animations.h"
 | |
| 
 | |
| class PeerData;
 | |
| class Image;
 | |
| 
 | |
| namespace Data {
 | |
| class CloudImageView;
 | |
| class PhotoMedia;
 | |
| } // namespace Data
 | |
| 
 | |
| namespace Calls {
 | |
| 
 | |
| class Userpic final {
 | |
| public:
 | |
| 	Userpic(
 | |
| 		not_null<QWidget*> parent,
 | |
| 		not_null<PeerData*> peer,
 | |
| 		rpl::producer<bool> muted);
 | |
| 	~Userpic();
 | |
| 
 | |
| 	void setVisible(bool visible);
 | |
| 	void setGeometry(int x, int y, int size);
 | |
| 	void setMuteLayout(QPoint position, int size, int stroke);
 | |
| 
 | |
| 	[[nodiscard]] rpl::lifetime &lifetime() {
 | |
| 		return _content.lifetime();
 | |
| 	}
 | |
| 
 | |
| private:
 | |
| 	void setup(rpl::producer<bool> muted);
 | |
| 
 | |
| 	void paint();
 | |
| 	void setMuted(bool muted);
 | |
| 	[[nodiscard]] int size() const;
 | |
| 
 | |
| 	void processPhoto();
 | |
| 	void refreshPhoto();
 | |
| 	[[nodiscard]] bool isGoodPhoto(PhotoData *photo) const;
 | |
| 	void createCache(Image *image);
 | |
| 
 | |
| 	Ui::RpWidget _content;
 | |
| 
 | |
| 	not_null<PeerData*> _peer;
 | |
| 	std::shared_ptr<Data::CloudImageView> _userpic;
 | |
| 	std::shared_ptr<Data::PhotoMedia> _photo;
 | |
| 	Ui::Animations::Simple _mutedAnimation;
 | |
| 	QPixmap _userPhoto;
 | |
| 	PhotoId _userPhotoId = 0;
 | |
| 	QPoint _mutePosition;
 | |
| 	int _muteSize = 0;
 | |
| 	int _muteStroke = 0;
 | |
| 	bool _userPhotoFull = false;
 | |
| 	bool _muted = false;
 | |
| 
 | |
| };
 | |
| 
 | |
| } // namespace Calls
 | 
