mirror of
https://github.com/debauchee/barrier.git
synced 2024-12-24 11:32:43 +03:00
4b46862026
files so this is only a checkpoint.
45 lines
1.5 KiB
C++
45 lines
1.5 KiB
C++
#ifndef ISCREENEVENTHANDLER_H
|
|
#define ISCREENEVENTHANDLER_H
|
|
|
|
#include "IInterface.h"
|
|
|
|
// the platform screen should define this
|
|
class CEvent;
|
|
|
|
class IScreen;
|
|
|
|
// the interface through which IScreen sends notification of events.
|
|
// each platform will derive two types from IScreenEventHandler, one
|
|
// for handling events on the primary screen and one for the
|
|
// secondary screen. the header file with the IScreen subclass for
|
|
// each platform should define the CEvent type, which depends on the
|
|
// type of native events for that platform.
|
|
class IScreenEventHandler : public IInterface {
|
|
public:
|
|
// manipulators
|
|
|
|
// called if the screen is unexpectedly closing. this implies that
|
|
// the screen is no longer usable and that the program should
|
|
// close the screen and possibly terminate.
|
|
virtual void onError() = 0;
|
|
|
|
// called when the screensaver is activated or deactivated
|
|
virtual void onScreensaver(bool activated) = 0;
|
|
|
|
// called for each event before event translation and dispatch. return
|
|
// true to skip translation and dispatch. subclasses should call the
|
|
// superclass's version first and return true if it returns true.
|
|
virtual bool onPreDispatch(const CEvent* event) = 0;
|
|
|
|
// called by mainLoop(). iff the event was handled return true and
|
|
// store the result, if any, in m_result, which defaults to zero.
|
|
virtual bool onEvent(CEvent* event) = 0;
|
|
|
|
// accessors
|
|
|
|
// called to get the jump zone size
|
|
virtual SInt32 getJumpZoneSize() const = 0;
|
|
};
|
|
|
|
#endif
|