passport_panel_form.h 1.2 KB

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