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 };