ScreenLockDetector/src/platform/screenlockdetector_macos.h

68 lines
1.5 KiB
C
Raw Normal View History

#ifndef SCREENLOCKDETECTOR_MACOS_H
#define SCREENLOCKDETECTOR_MACOS_H
#include "screenlockdetector_base.h"
#ifdef Q_OS_MAC
/**
* @brief macOS
*
* macOS /
* 使 NSDistributedNotificationCenter
*/
class ScreenLockDetectorMacOS : public ScreenLockDetectorBase
{
Q_OBJECT
public:
explicit ScreenLockDetectorMacOS(QObject *parent = nullptr);
~ScreenLockDetectorMacOS() override;
/**
* @brief macOS
* @return true false
*/
bool initialize() override;
public:
/**
* @brief
*/
void handleScreenLocked();
/**
* @brief
*/
void handleScreenUnlocked();
/**
* @brief
*/
void handleScreenSaverStarted();
/**
* @brief
*/
void handleScreenSaverStopped();
private:
/**
* @brief
* @return true
*/
bool registerNotificationObservers();
/**
* @brief
*/
void unregisterNotificationObservers();
private:
void *m_observerToken; // Objective-C 观察者令牌(不透明指针)
bool m_initialized; // 是否已初始化
};
#endif // Q_OS_MAC
#endif // SCREENLOCKDETECTOR_MACOS_H