1 /* 2 This file is part of Telegram Desktop, 3 the official desktop application for the Telegram messaging service. 4 5 For license and copyright information please follow this link: 6 https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL 7 */ 8 #pragma once 9 10 #include "ui/rp_widget.h" 11 #include "base/object_ptr.h" 12 13 namespace Ui { 14 class BoxContentDivider; 15 class ScrollArea; 16 class FadeShadow; 17 class RoundButton; 18 class FlatLabel; 19 class UserpicButton; 20 } // namespace Ui 21 22 namespace Passport::Ui { 23 using namespace ::Ui; 24 class FormRow; 25 } // namespace Passport::Ui 26 27 namespace Passport { 28 29 class PanelController; 30 31 class PanelForm : public Ui::RpWidget { 32 public: 33 PanelForm( 34 QWidget *parent, 35 not_null<PanelController*> controller); 36 37 protected: 38 void resizeEvent(QResizeEvent *e) override; 39 40 private: 41 using Row = Ui::FormRow; 42 43 void setupControls(); 44 not_null<Ui::RpWidget*> setupContent(); 45 void updateControlsGeometry(); 46 47 not_null<PanelController*> _controller; 48 49 object_ptr<Ui::ScrollArea> _scroll; 50 object_ptr<Ui::FadeShadow> _topShadow; 51 object_ptr<Ui::FadeShadow> _bottomShadow; 52 object_ptr<Ui::RoundButton> _submit; 53 54 QPointer<Ui::UserpicButton> _userpic; 55 QPointer<Ui::FlatLabel> _about1; 56 QPointer<Ui::FlatLabel> _about2; 57 std::vector<QPointer<Row>> _rows; 58 59 }; 60 61 } // namespace Passport 62