lib_ui/ui/integration.cpp
2022-07-07 08:38:53 +04:00

177 lines
3.5 KiB
C++

// This file is part of Desktop App Toolkit,
// a set of libraries for developing nice desktop applications.
//
// For license and copyright information please follow this link:
// https://github.com/desktop-app/legal/blob/master/LEGAL
//
#include "ui/integration.h"
#include "ui/gl/gl_detection.h"
#include "ui/text/text_entity.h"
#include "ui/text/text_block.h"
#include "ui/basic_click_handlers.h"
#include "base/platform/base_platform_info.h"
namespace Ui {
namespace {
Integration *IntegrationInstance = nullptr;
} // namespace
void Integration::Set(not_null<Integration*> instance) {
IntegrationInstance = instance;
if constexpr (Platform::IsWindows()) {
GL::ConfigureANGLE();
}
}
Integration &Integration::Instance() {
Expects(IntegrationInstance != nullptr);
return *IntegrationInstance;
}
bool Integration::Exists() {
return (IntegrationInstance != nullptr);
}
void Integration::textActionsUpdated() {
}
void Integration::activationFromTopPanel() {
}
bool Integration::screenIsLocked() {
return false;
}
QString Integration::timeFormat() {
return u"hh:mm"_q;
}
std::shared_ptr<ClickHandler> Integration::createLinkHandler(
const EntityLinkData &data,
const std::any &context) {
switch (data.type) {
case EntityType::CustomUrl:
return !data.data.isEmpty()
? std::make_shared<UrlClickHandler>(data.data, false)
: nullptr;
case EntityType::Email:
case EntityType::Url:
return !data.data.isEmpty()
? std::make_shared<UrlClickHandler>(
data.data,
data.shown == EntityLinkShown::Full)
: nullptr;
}
return nullptr;
}
std::unique_ptr<Text::CustomEmoji> Integration::createCustomEmoji(
const QString &data,
const std::any &context) {
return nullptr;
}
bool Integration::handleUrlClick(
const QString &url,
const QVariant &context) {
return false;
}
QString Integration::convertTagToMimeTag(const QString &tagId) {
return tagId;
}
const Emoji::One *Integration::defaultEmojiVariant(const Emoji::One *emoji) {
return emoji;
}
rpl::producer<> Integration::forcePopupMenuHideRequests() {
return rpl::never<rpl::empty_value>();
}
QString Integration::phraseContextCopyText() {
return "Copy text";
}
QString Integration::phraseContextCopyEmail() {
return "Copy email";
}
QString Integration::phraseContextCopyLink() {
return "Copy link";
}
QString Integration::phraseContextCopySelected() {
return "Copy to clipboard";
}
QString Integration::phraseFormattingTitle() {
return "Formatting";
}
QString Integration::phraseFormattingLinkCreate() {
return "Create link";
}
QString Integration::phraseFormattingLinkEdit() {
return "Edit link";
}
QString Integration::phraseFormattingClear() {
return "Plain text";
}
QString Integration::phraseFormattingBold() {
return "Bold";
}
QString Integration::phraseFormattingItalic() {
return "Italic";
}
QString Integration::phraseFormattingUnderline() {
return "Underline";
}
QString Integration::phraseFormattingStrikeOut() {
return "Strike-through";
}
QString Integration::phraseFormattingMonospace() {
return "Monospace";
}
QString Integration::phraseFormattingSpoiler() {
return "Spoiler";
}
QString Integration::phraseButtonOk() {
return "OK";
}
QString Integration::phraseButtonClose() {
return "Close";
}
QString Integration::phraseButtonCancel() {
return "Cancel";
}
QString Integration::phrasePanelCloseWarning() {
return "Warning";
}
QString Integration::phrasePanelCloseUnsaved() {
return "Changes that you made may not be saved.";
}
QString Integration::phrasePanelCloseAnyway() {
return "Close anyway";
}
} // namespace Ui