/* 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 "boxes/peer_list_box.h" namespace Data { class Feed; } // namespace Data namespace Info { class Controller; namespace FeedProfile { class ChannelsController : public PeerListController , private base::Subscriber { public: ChannelsController(not_null controller); void prepare() override; void rowClicked(not_null row) override; void rowActionClicked(not_null row) override; std::unique_ptr createRestoredRow( not_null peer) override; std::unique_ptr saveState() const override; void restoreState(std::unique_ptr state) override; private: class Row; struct SavedState : SavedStateBase { rpl::lifetime lifetime; }; void rebuildRows(); std::unique_ptr createRow(not_null channel); const not_null _controller; not_null _feed; }; } // namespace FeedProfile } // namespace Info