NativeWebMouseEvent.h 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /*
  2. * Copyright (C) 2011 Apple Inc. All rights reserved.
  3. *
  4. * Redistribution and use in source and binary forms, with or without
  5. * modification, are permitted provided that the following conditions
  6. * are met:
  7. * 1. Redistributions of source code must retain the above copyright
  8. * notice, this list of conditions and the following disclaimer.
  9. * 2. Redistributions in binary form must reproduce the above copyright
  10. * notice, this list of conditions and the following disclaimer in the
  11. * documentation and/or other materials provided with the distribution.
  12. *
  13. * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
  14. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
  15. * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  16. * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
  17. * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  18. * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  19. * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  20. * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  21. * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  22. * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  23. * THE POSSIBILITY OF SUCH DAMAGE.
  24. */
  25. #ifndef NativeWebMouseEvent_h
  26. #define NativeWebMouseEvent_h
  27. #include "WebEvent.h"
  28. #if PLATFORM(MAC)
  29. #include <wtf/RetainPtr.h>
  30. OBJC_CLASS NSView;
  31. #elif PLATFORM(QT)
  32. #include <qevent.h>
  33. #elif PLATFORM(GTK)
  34. #include <GOwnPtrGtk.h>
  35. typedef union _GdkEvent GdkEvent;
  36. #elif PLATFORM(MANX)
  37. #include <manx/MouseEvent.h>
  38. #include <wtf/OwnPtr.h>
  39. #elif PLATFORM(EFL)
  40. #include <Evas.h>
  41. #include <WebCore/AffineTransform.h>
  42. #endif
  43. namespace WebKit {
  44. class NativeWebMouseEvent : public WebMouseEvent {
  45. public:
  46. #if USE(APPKIT)
  47. NativeWebMouseEvent(NSEvent *, NSView *);
  48. #elif PLATFORM(QT)
  49. explicit NativeWebMouseEvent(QMouseEvent*, const QTransform& fromItemTransform, int eventClickCount);
  50. #elif PLATFORM(GTK)
  51. NativeWebMouseEvent(const NativeWebMouseEvent&);
  52. NativeWebMouseEvent(GdkEvent*, int);
  53. #elif PLATFORM(MANX)
  54. NativeWebMouseEvent(const Manx::MouseEvent&);
  55. #elif PLATFORM(EFL)
  56. NativeWebMouseEvent(const Evas_Event_Mouse_Down*, const WebCore::AffineTransform&, const WebCore::AffineTransform&);
  57. NativeWebMouseEvent(const Evas_Event_Mouse_Up*, const WebCore::AffineTransform&, const WebCore::AffineTransform&);
  58. NativeWebMouseEvent(const Evas_Event_Mouse_Move*, const WebCore::AffineTransform&, const WebCore::AffineTransform&);
  59. #endif
  60. #if USE(APPKIT)
  61. NSEvent* nativeEvent() const { return m_nativeEvent.get(); }
  62. #elif PLATFORM(QT)
  63. const QMouseEvent* nativeEvent() const { return m_nativeEvent; }
  64. #elif PLATFORM(GTK)
  65. const GdkEvent* nativeEvent() const { return m_nativeEvent.get(); }
  66. #elif PLATFORM(MANX)
  67. const Manx::MouseEvent* nativeEvent() const { return &m_nativeEvent; }
  68. #elif PLATFORM(EFL)
  69. const void* nativeEvent() const { return m_nativeEvent; }
  70. #endif
  71. private:
  72. #if USE(APPKIT)
  73. RetainPtr<NSEvent> m_nativeEvent;
  74. #elif PLATFORM(QT)
  75. QMouseEvent* m_nativeEvent;
  76. #elif PLATFORM(GTK)
  77. GOwnPtr<GdkEvent> m_nativeEvent;
  78. #elif PLATFORM(MANX)
  79. Manx::MouseEvent m_nativeEvent;
  80. #elif PLATFORM(EFL)
  81. const void* m_nativeEvent;
  82. #endif
  83. };
  84. } // namespace WebKit
  85. #endif // NativeWebMouseEvent_h