winamp/Src/Plugins/General/gen_ff/fsmonitor.h

40 lines
807 B
C++

#ifndef _FS_MONITOR_H
#define _FS_MONITOR_H
#include <bfc/ptrlist.h>
#include <api/timer/timerclient.h>
class FSCallback {
public:
virtual void onGoFullscreen()=0;
virtual void onCancelFullscreen()=0;
};
class FullScreenMonitor : public TimerClientDI {
public:
FullScreenMonitor();
virtual ~FullScreenMonitor();
void registerCallback(FSCallback *cb);
void unregisterCallback(FSCallback *cb);
int isFullScreen() { return m_fs; }
int wndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
void timerclient_timerCallback(int id);
private:
void onGoFullscreen();
void onCancelFullscreen();
void sendGoFSCallbacks();
void sendCancelFSCallbacks();
PtrList<FSCallback> m_callbacks;
HWND hWnd;
int m_fs;
int m_go_fs_timer_set;
int m_cancel_fs_timer_set;
};
#endif