2019-09-16 11:14:06 +00:00
|
|
|
/*
|
|
|
|
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
|
|
|
|
|
2019-09-19 09:34:37 +00:00
|
|
|
#include "ui/integration.h"
|
2019-09-16 11:14:06 +00:00
|
|
|
|
2020-06-09 09:36:40 +00:00
|
|
|
namespace Main {
|
|
|
|
class Session;
|
|
|
|
} // namespace Main
|
|
|
|
|
2020-11-10 16:38:21 +00:00
|
|
|
namespace HistoryView {
|
|
|
|
class ElementDelegate;
|
|
|
|
} // namespace HistoryView
|
|
|
|
|
2019-09-16 11:14:06 +00:00
|
|
|
namespace Core {
|
|
|
|
|
2020-11-10 16:38:21 +00:00
|
|
|
struct MarkedTextContext {
|
2020-06-16 15:10:39 +00:00
|
|
|
enum class HashtagMentionType : uchar {
|
|
|
|
Telegram,
|
|
|
|
Twitter,
|
|
|
|
Instagram,
|
|
|
|
};
|
|
|
|
|
2020-11-10 16:38:21 +00:00
|
|
|
Main::Session *session = nullptr;
|
|
|
|
HashtagMentionType type = HashtagMentionType::Telegram;
|
|
|
|
};
|
|
|
|
|
2021-04-20 12:40:54 +00:00
|
|
|
class UiIntegration final : public Ui::Integration {
|
2020-11-10 16:38:21 +00:00
|
|
|
public:
|
2019-09-16 11:14:06 +00:00
|
|
|
void postponeCall(FnMut<void()> &&callable) override;
|
|
|
|
void registerLeaveSubscription(not_null<QWidget*> widget) override;
|
|
|
|
void unregisterLeaveSubscription(not_null<QWidget*> widget) override;
|
|
|
|
|
|
|
|
QString emojiCacheFolder() override;
|
|
|
|
|
|
|
|
void textActionsUpdated() override;
|
|
|
|
void activationFromTopPanel() override;
|
|
|
|
|
2020-09-30 09:11:44 +00:00
|
|
|
QString timeFormat() override;
|
2020-03-30 08:18:50 +00:00
|
|
|
|
2019-09-16 11:14:06 +00:00
|
|
|
std::shared_ptr<ClickHandler> createLinkHandler(
|
2020-06-16 15:10:39 +00:00
|
|
|
const EntityLinkData &data,
|
|
|
|
const std::any &context) override;
|
2019-09-16 11:14:06 +00:00
|
|
|
bool handleUrlClick(
|
|
|
|
const QString &url,
|
|
|
|
const QVariant &context) override;
|
|
|
|
rpl::producer<> forcePopupMenuHideRequests() override;
|
|
|
|
QString convertTagToMimeTag(const QString &tagId) override;
|
|
|
|
const Ui::Emoji::One *defaultEmojiVariant(
|
|
|
|
const Ui::Emoji::One *emoji) override;
|
|
|
|
|
|
|
|
QString phraseContextCopyText() override;
|
|
|
|
QString phraseContextCopyEmail() override;
|
|
|
|
QString phraseContextCopyLink() override;
|
|
|
|
QString phraseContextCopySelected() override;
|
|
|
|
QString phraseFormattingTitle() override;
|
|
|
|
QString phraseFormattingLinkCreate() override;
|
|
|
|
QString phraseFormattingLinkEdit() override;
|
|
|
|
QString phraseFormattingClear() override;
|
|
|
|
QString phraseFormattingBold() override;
|
|
|
|
QString phraseFormattingItalic() override;
|
|
|
|
QString phraseFormattingUnderline() override;
|
|
|
|
QString phraseFormattingStrikeOut() override;
|
|
|
|
QString phraseFormattingMonospace() override;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace Core
|