#include "pch.h" ////////////////////////////////////////////////////////////////////////////// // // Keyboard Input Delegate // ////////////////////////////////////////////////////////////////////////////// class KeyboardInputDelegate : public IKeyboardInput { private: IKeyboardInput* m_pkeyboardInput; public: KeyboardInputDelegate(IKeyboardInput* pkeyboardInput) : m_pkeyboardInput(pkeyboardInput) { } bool OnChar(IInputProvider* pprovider, const KeyState& ks) { return m_pkeyboardInput->OnChar(pprovider, ks); } bool OnKey(IInputProvider* pprovider, const KeyState& ks, bool& fForceTranslate) { return m_pkeyboardInput->OnKey(pprovider, ks, fForceTranslate); } }; TRef IKeyboardInput::CreateDelegate(IKeyboardInput* pkeyboardInput) { return new KeyboardInputDelegate(pkeyboardInput); } ////////////////////////////////////////////////////////////////////////////// // // Mouse Input Delegate // ////////////////////////////////////////////////////////////////////////////// class MouseInputDelegate : public IMouseInput { private: IMouseInput* m_pmouseInput; public: MouseInputDelegate(IMouseInput* pmouseInput) : m_pmouseInput(pmouseInput) { } void RemoveCapture() { m_pmouseInput->RemoveCapture(); } MouseResult HitTest(IInputProvider* pprovider, const Point& point, bool bCaptured) { return m_pmouseInput->HitTest(pprovider, point, bCaptured); } void MouseMove(IInputProvider* pprovider, const Point& point, bool bCaptured, bool bInside) { m_pmouseInput->MouseMove(pprovider, point, bCaptured, bInside); } void MouseEnter(IInputProvider* pprovider, const Point& point) { m_pmouseInput->MouseEnter(pprovider, point); } void MouseLeave(IInputProvider* pprovider) { m_pmouseInput->MouseLeave(pprovider); } MouseResult Button(IInputProvider* pprovider, const Point& point, int button, bool bCaptured, bool bInside, bool bDown) { return m_pmouseInput->Button(pprovider, point, button, bCaptured, bInside, bDown); } }; TRef IMouseInput::CreateDelegate(IMouseInput* pmouseInput) { return new MouseInputDelegate(pmouseInput); }