/* 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" namespace Ui { class InputField; class PlainShadow; class RoundButton; class VerticalLayout; } // namespace Ui namespace Passport { class PanelController; class PanelEditContact : public Ui::RpWidget { public: struct Scheme { enum class ValueType { Phone, Text, }; ValueType type = ValueType::Phone; QString aboutExisting; QString newHeader; base::lambda newPlaceholder; QString aboutNew; base::lambda validate; base::lambda preprocess; base::lambda postprocess; }; PanelEditContact( QWidget *parent, not_null controller, Scheme scheme, const QString &data, const QString &existing); protected: void focusInEvent(QFocusEvent *e) override; void resizeEvent(QResizeEvent *e) override; private: void setupControls( const QString &data, const QString &existing); void updateControlsGeometry(); void save(); void save(const QString &value); not_null _controller; Scheme _scheme; object_ptr _content; QPointer _field; object_ptr _bottomShadow; object_ptr _done; }; } // namespace Passport