/* 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 "base/type_traits.h" #include "base/call_delayed.h" #include "mtproto/mtproto_proxy_data.h" class History; namespace Main { class Session; } // namespace Main namespace Window { class SessionController; } // namespace Window namespace App { template [[nodiscard]] inline auto LambdaDelayed(int duration, Guard &&object, Lambda &&lambda) { auto guarded = crl::guard( std::forward(object), std::forward(lambda)); return [saved = std::move(guarded), duration] { auto copy = saved; base::call_delayed(duration, std::move(copy)); }; } } // namespace App namespace Ui { // Legacy global methods. void showPeerHistory(not_null peer, MsgId msgId); void showPeerHistory(not_null history, MsgId msgId); void showChatsList(not_null session); bool skipPaintEvent(QWidget *widget, QPaintEvent *event); } // namespace Ui