screens into CPrimaryScreen and merged common code from secondary screens into CSecondaryScreen. changed is-a relationship to a has-a between the primary and secondary screen classes and the generic platform dependent screen class to avoid multiple inheritance of implementation. also standardized the interface for those generic screen classes. adding a platform now involves implementing simpler interfaces: IScreen for the generic screen, IScreenEventHandler and some methods of CPrimaryScreen for the primary screen, and IScreenEventHandler and some methods of CSecondaryScreen for the secondary screen. did X11 platform but not win32 platform.
36 lines
1.4 KiB
C++
36 lines
1.4 KiB
C++
#ifndef IPRIMARYSCREENRECEIVER_H
|
|
#define IPRIMARYSCREENRECEIVER_H
|
|
|
|
#include "IInterface.h"
|
|
#include "KeyTypes.h"
|
|
#include "MouseTypes.h"
|
|
|
|
// the interface for receiving notification of events on the primary
|
|
// screen. the server implements this interface to handle user input.
|
|
// platform dependent primary screen implementation will need to take
|
|
// an IPrimaryScreenReceiver* and notify it of events.
|
|
class IPrimaryScreenReceiver : public IInterface {
|
|
public:
|
|
// called if the display is unexpectedly closing.
|
|
|
|
// 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;
|
|
|
|
// call to notify of events. onMouseMovePrimary() returns
|
|
// true iff the mouse enters a jump zone and jumps.
|
|
virtual void onKeyDown(KeyID, KeyModifierMask) = 0;
|
|
virtual void onKeyUp(KeyID, KeyModifierMask) = 0;
|
|
virtual void onKeyRepeat(KeyID, KeyModifierMask, SInt32 count) = 0;
|
|
virtual void onMouseDown(ButtonID) = 0;
|
|
virtual void onMouseUp(ButtonID) = 0;
|
|
virtual bool onMouseMovePrimary(SInt32 x, SInt32 y) = 0;
|
|
virtual void onMouseMoveSecondary(SInt32 dx, SInt32 dy) = 0;
|
|
virtual void onMouseWheel(SInt32 delta) = 0;
|
|
};
|
|
|
|
#endif
|