您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

162 行
5.2 KiB

  1. // This code is distributed under MIT license.
  2. // Copyright (c) 2015 George Mamaladze
  3. // See license.txt or https://mit-license.org/
  4. using System;
  5. using System.Windows.Forms;
  6. namespace Gma.System.MouseKeyHook.Implementation
  7. {
  8. internal abstract class EventFacade : IKeyboardMouseEvents
  9. {
  10. private KeyListener m_KeyListenerCache;
  11. private MouseListener m_MouseListenerCache;
  12. public event KeyEventHandler KeyDown
  13. {
  14. add { GetKeyListener().KeyDown += value; }
  15. remove { GetKeyListener().KeyDown -= value; }
  16. }
  17. public event KeyPressEventHandler KeyPress
  18. {
  19. add { GetKeyListener().KeyPress += value; }
  20. remove { GetKeyListener().KeyPress -= value; }
  21. }
  22. public event EventHandler<KeyDownTxtEventArgs> KeyDownTxt
  23. {
  24. add { GetKeyListener().KeyDownTxt += value; }
  25. remove { GetKeyListener().KeyDownTxt -= value; }
  26. }
  27. public event KeyEventHandler KeyUp
  28. {
  29. add { GetKeyListener().KeyUp += value; }
  30. remove { GetKeyListener().KeyUp -= value; }
  31. }
  32. public event MouseEventHandler MouseMove
  33. {
  34. add { GetMouseListener().MouseMove += value; }
  35. remove { GetMouseListener().MouseMove -= value; }
  36. }
  37. public event EventHandler<MouseEventExtArgs> MouseMoveExt
  38. {
  39. add { GetMouseListener().MouseMoveExt += value; }
  40. remove { GetMouseListener().MouseMoveExt -= value; }
  41. }
  42. public event MouseEventHandler MouseClick
  43. {
  44. add { GetMouseListener().MouseClick += value; }
  45. remove { GetMouseListener().MouseClick -= value; }
  46. }
  47. public event MouseEventHandler MouseDown
  48. {
  49. add { GetMouseListener().MouseDown += value; }
  50. remove { GetMouseListener().MouseDown -= value; }
  51. }
  52. public event EventHandler<MouseEventExtArgs> MouseDownExt
  53. {
  54. add { GetMouseListener().MouseDownExt += value; }
  55. remove { GetMouseListener().MouseDownExt -= value; }
  56. }
  57. public event MouseEventHandler MouseUp
  58. {
  59. add { GetMouseListener().MouseUp += value; }
  60. remove { GetMouseListener().MouseUp -= value; }
  61. }
  62. public event EventHandler<MouseEventExtArgs> MouseUpExt
  63. {
  64. add { GetMouseListener().MouseUpExt += value; }
  65. remove { GetMouseListener().MouseUpExt -= value; }
  66. }
  67. public event MouseEventHandler MouseWheel
  68. {
  69. add { GetMouseListener().MouseWheel += value; }
  70. remove { GetMouseListener().MouseWheel -= value; }
  71. }
  72. public event EventHandler<MouseEventExtArgs> MouseWheelExt
  73. {
  74. add { GetMouseListener().MouseWheelExt += value; }
  75. remove { GetMouseListener().MouseWheelExt -= value; }
  76. }
  77. public event MouseEventHandler MouseHWheel
  78. {
  79. add { GetMouseListener().MouseHWheel += value; }
  80. remove { GetMouseListener().MouseHWheel -= value; }
  81. }
  82. public event EventHandler<MouseEventExtArgs> MouseHWheelExt
  83. {
  84. add { GetMouseListener().MouseHWheelExt += value; }
  85. remove { GetMouseListener().MouseHWheelExt -= value; }
  86. }
  87. public event MouseEventHandler MouseDoubleClick
  88. {
  89. add { GetMouseListener().MouseDoubleClick += value; }
  90. remove { GetMouseListener().MouseDoubleClick -= value; }
  91. }
  92. public event MouseEventHandler MouseDragStarted
  93. {
  94. add { GetMouseListener().MouseDragStarted += value; }
  95. remove { GetMouseListener().MouseDragStarted -= value; }
  96. }
  97. public event EventHandler<MouseEventExtArgs> MouseDragStartedExt
  98. {
  99. add { GetMouseListener().MouseDragStartedExt += value; }
  100. remove { GetMouseListener().MouseDragStartedExt -= value; }
  101. }
  102. public event MouseEventHandler MouseDragFinished
  103. {
  104. add { GetMouseListener().MouseDragFinished += value; }
  105. remove { GetMouseListener().MouseDragFinished -= value; }
  106. }
  107. public event EventHandler<MouseEventExtArgs> MouseDragFinishedExt
  108. {
  109. add { GetMouseListener().MouseDragFinishedExt += value; }
  110. remove { GetMouseListener().MouseDragFinishedExt -= value; }
  111. }
  112. public void Dispose()
  113. {
  114. if (m_MouseListenerCache != null) m_MouseListenerCache.Dispose();
  115. if (m_KeyListenerCache != null) m_KeyListenerCache.Dispose();
  116. }
  117. private KeyListener GetKeyListener()
  118. {
  119. var target = m_KeyListenerCache;
  120. if (target != null) return target;
  121. target = CreateKeyListener();
  122. m_KeyListenerCache = target;
  123. return target;
  124. }
  125. private MouseListener GetMouseListener()
  126. {
  127. var target = m_MouseListenerCache;
  128. if (target != null) return target;
  129. target = CreateMouseListener();
  130. m_MouseListenerCache = target;
  131. return target;
  132. }
  133. protected abstract MouseListener CreateMouseListener();
  134. protected abstract KeyListener CreateKeyListener();
  135. }
  136. }