File indexing completed on 2025-02-16 04:25:46
0001 #pragma once 0002 0003 #include <QObject> 0004 0005 #include "modules/formfactormanager.h" 0006 0007 class FormFactor : public QObject 0008 { 0009 Q_OBJECT 0010 Q_PROPERTY(uint preferredMode READ preferredMode WRITE setPreferredMode NOTIFY preferredModeChanged) 0011 Q_PROPERTY(uint bestMode READ bestMode NOTIFY bestModeChanged) 0012 Q_PROPERTY(uint defaultMode READ defaultMode CONSTANT) 0013 0014 Q_PROPERTY(bool hasKeyboard READ hasKeyboard NOTIFY hasKeyboardChanged) 0015 Q_PROPERTY(bool hasTouchscreen READ hasTouchscreen NOTIFY hasTouchscreenChanged) 0016 Q_PROPERTY(bool hasMouse READ hasMouse NOTIFY hasMouseChanged) 0017 Q_PROPERTY(bool hasTouchpad READ hasTouchpad NOTIFY hasTouchpadChanged) 0018 0019 0020 public: 0021 explicit FormFactor(QObject *parent = nullptr); 0022 0023 /** 0024 * @brief preferredMode 0025 * Mode picked manually by the user as the preffered one over the default and best fit modes. 0026 * 0 - Desktop 0027 * 1 - Tablet 0028 * 2 - Phone 0029 * @return 0030 */ 0031 uint preferredMode() const; 0032 void setPreferredMode(uint preferredMode); 0033 0034 /** 0035 * @brief bestMode 0036 * The result of computing different variables such as inputs, architecture, and screensize resulting in what mode is the best fit. 0037 * @return 0038 */ 0039 uint bestMode() const; 0040 0041 /** 0042 * @brief defaultMode 0043 * @return 0044 */ 0045 uint defaultMode() const; 0046 0047 bool hasKeyboard() const; 0048 0049 bool hasTouchscreen() const; 0050 0051 bool hasMouse() const; 0052 0053 bool hasTouchpad() const; 0054 0055 0056 private Q_SLOTS: 0057 void setBestMode(uint bestMode); 0058 void setHasKeyboard(bool value); 0059 void setHasMouse(bool value); 0060 void setHasTouchpad(bool value); 0061 void setHasTouchscreen(bool value); 0062 0063 private: 0064 MauiMan::FormFactorInfo *m_manager; 0065 uint m_preferredMode = MauiMan::FormFactorManager::DefaultValues::defaultMode; 0066 0067 uint m_bestMode = MauiMan::FormFactorManager::DefaultValues::defaultMode; 0068 0069 uint m_defaultMode = MauiMan::FormFactorManager::DefaultValues::defaultMode; 0070 0071 bool m_hasKeyboard = false; 0072 0073 bool m_hasTouchscreen = false; 0074 0075 bool m_hasMouse = false; 0076 0077 bool m_hasTouchpad= false; 0078 0079 bool hasTouchScreen() const; 0080 0081 Q_SIGNALS: 0082 void preferredModeChanged(uint preferredMode); 0083 void bestModeChanged(uint bestMode); 0084 void defaultModeChanged(uint defaultMode); 0085 void hasKeyboardChanged(bool hasKeyboard); 0086 void hasTouchscreenChanged(bool hasTouchscreen); 0087 void hasMouseChanged(bool hasMouse); 0088 void hasTouchpadChanged(bool hasTouchpad); 0089 }; 0090