File indexing completed on 2024-05-12 04:46:54
0001 #pragma once 0002 #include <QList> 0003 #include <QObject> 0004 #include <QString> 0005 #include <QUrl> 0006 0007 #include "mauikit_export.h" 0008 0009 /** 0010 * @brief The AbstractPlatform class 0011 * Defines abstract methods and properties that are common to be implemeted by each different platform Maui supports. 0012 * For detailed information check each platform own's implementation 0013 */ 0014 class MAUIKIT_EXPORT AbstractPlatform : public QObject 0015 { 0016 Q_OBJECT 0017 Q_PROPERTY(bool darkModeEnabled READ darkModeEnabled NOTIFY darkModeEnabledChanged) 0018 0019 public: 0020 explicit AbstractPlatform(QObject *parent = nullptr); 0021 0022 public Q_SLOTS: 0023 0024 /** 0025 * @brief shareFiles 0026 * @param urls 0027 */ 0028 virtual void shareFiles(const QList<QUrl> &urls) = 0; 0029 0030 /** 0031 * @brief shareText 0032 * @param urls 0033 */ 0034 virtual void shareText(const QString &urls) = 0; 0035 0036 /** 0037 * @brief hasKeyboard 0038 * @return 0039 */ 0040 virtual bool hasKeyboard() = 0; 0041 0042 /** 0043 * @brief hasMouse 0044 * @return 0045 */ 0046 virtual bool hasMouse() = 0; 0047 0048 virtual void notify(const QString &title, const QString &message, const QString &icon, const QString &imageUrl); 0049 0050 virtual bool darkModeEnabled() = 0; 0051 0052 Q_SIGNALS: 0053 void hasKeyboardChanged(); 0054 void hasMouseChanged(); 0055 void shareFilesRequest(QStringList urls); 0056 void darkModeEnabledChanged(); 0057 };