input.cpp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #include "pch.h"
  2. //////////////////////////////////////////////////////////////////////////////
  3. //
  4. // Keyboard Input Delegate
  5. //
  6. //////////////////////////////////////////////////////////////////////////////
  7. class KeyboardInputDelegate : public IKeyboardInput {
  8. private:
  9. IKeyboardInput* m_pkeyboardInput;
  10. public:
  11. KeyboardInputDelegate(IKeyboardInput* pkeyboardInput) :
  12. m_pkeyboardInput(pkeyboardInput)
  13. {
  14. }
  15. bool OnChar(IInputProvider* pprovider, const KeyState& ks)
  16. {
  17. return m_pkeyboardInput->OnChar(pprovider, ks);
  18. }
  19. bool OnKey(IInputProvider* pprovider, const KeyState& ks, bool& fForceTranslate)
  20. {
  21. return m_pkeyboardInput->OnKey(pprovider, ks, fForceTranslate);
  22. }
  23. };
  24. TRef<IKeyboardInput> IKeyboardInput::CreateDelegate(IKeyboardInput* pkeyboardInput)
  25. {
  26. return new KeyboardInputDelegate(pkeyboardInput);
  27. }
  28. //////////////////////////////////////////////////////////////////////////////
  29. //
  30. // Mouse Input Delegate
  31. //
  32. //////////////////////////////////////////////////////////////////////////////
  33. class MouseInputDelegate : public IMouseInput {
  34. private:
  35. IMouseInput* m_pmouseInput;
  36. public:
  37. MouseInputDelegate(IMouseInput* pmouseInput) :
  38. m_pmouseInput(pmouseInput)
  39. {
  40. }
  41. void RemoveCapture()
  42. {
  43. m_pmouseInput->RemoveCapture();
  44. }
  45. MouseResult HitTest(IInputProvider* pprovider, const Point& point, bool bCaptured)
  46. {
  47. return m_pmouseInput->HitTest(pprovider, point, bCaptured);
  48. }
  49. void MouseMove(IInputProvider* pprovider, const Point& point, bool bCaptured, bool bInside)
  50. {
  51. m_pmouseInput->MouseMove(pprovider, point, bCaptured, bInside);
  52. }
  53. void MouseEnter(IInputProvider* pprovider, const Point& point)
  54. {
  55. m_pmouseInput->MouseEnter(pprovider, point);
  56. }
  57. void MouseLeave(IInputProvider* pprovider)
  58. {
  59. m_pmouseInput->MouseLeave(pprovider);
  60. }
  61. MouseResult Button(IInputProvider* pprovider, const Point& point, int button, bool bCaptured, bool bInside, bool bDown)
  62. {
  63. return m_pmouseInput->Button(pprovider, point, button, bCaptured, bInside, bDown);
  64. }
  65. };
  66. TRef<IMouseInput> IMouseInput::CreateDelegate(IMouseInput* pmouseInput)
  67. {
  68. return new MouseInputDelegate(pmouseInput);
  69. }