diff options
author | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-18 04:09:03 +0000 |
---|---|---|
committer | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-18 04:09:03 +0000 |
commit | 5ff6885209ae478cdbb34d975d7f7a7959f14e8e (patch) | |
tree | a96c8d93869d6e05bb1b3f31af743aa9dfe5f089 /webkit/glue/event_conversion.cc | |
parent | 8e44632ef6673e72c0a07f08d45e340d888962b1 (diff) | |
download | chromium_src-5ff6885209ae478cdbb34d975d7f7a7959f14e8e.zip chromium_src-5ff6885209ae478cdbb34d975d7f7a7959f14e8e.tar.gz chromium_src-5ff6885209ae478cdbb34d975d7f7a7959f14e8e.tar.bz2 |
Disable PLATFORM(WIN) !!
port/platform/chromium/PlatformKeyboardEventChromium.cpp
- this is KeyEventWin.cpp renamed and mostly deleted. we just needed to define two static methods.
- the big switch case goes to event_conversion.cc.
port/platform/chromium/DragDataChromium.cpp
- yay, no more dropData wrapper!
port/platform/chromium/TemporaryLinkStubs.cpp
- just stubbing scheduleDispatchFunctionsOnMainThread() for now since i think we should really use an implementation based on MessageLoop, and we don't use background threads in webkit yet.
port/platform/chromium/DragImageChromium.cpp
- PLATFORM(WIN) to PLATFORM(WIN_OS)
port/platform/chromium/PopupMenuChromium.cpp
- lots of nice cleanup. no more dummy HWNDs!
port/platform/chromium/PlatformScrollBarChromium.cpp
port/platform/chromium/ScrollViewChromium.cpp
- GraphicsContext::getWindowsContext is gone. just use the skia canvas directly.
port/platform/network/chromium/NetworkStateNotifierChromium.cpp
- delete the PLATFORM(WIN) stubs
port/platform/win/KeyEventWin.cpp
port/platform/win/PlatformMouseEventWin.cpp
port/platform/graphics/IntPointWin.cpp
port/platform/graphics/IntSizeWin.cpp
port/platform/graphics/IntRectWin.cpp
- deleted :)
port/platform/win/ScreenWin.cpp
- compensate for no longer having implicit conversion between RECT and IntRect
port/platform/UniscribeStateTextRun.cpp
- scriptCache and scriptFontProperties now live on FontPlatformData as discussed with brett and hyatt.
port/platform/graphics/FontCacheWin.cpp
- getFontLinkInterface() function doesn't exist outside of PLATFORM(WIN)
port/platform/graphics/FontPlatformData.h
port/platform/graphics/FontPlatformDataWin.cpp
- support storing script{Cache,FontProperties} on FontPlatformData. need to implement assignment operator and copy constructor. the script{Cache,FontProperties} objects are not copied per discussion with hyatt.
- i moved m_isMLangFont into RefCountedHFONT so that we would know how to "destroy" the HFONT.
port/platform/graphics/SimpleFontDataWin.cpp
port/platform/graphics/GlyphPageTreeNodeWin.cpp
- modified to support changes to FontPlatformData
port/platform/graphics/ImageSkia.cpp
- getHBITMAP, etc. were never used and are not needed
port/platform/graphics/IconWin.cpp
- modifications corresponding to my changes to Icon.h. m_icon is of type PlatformIcon.
port/platform/graphics/GraphicsContextSkia.cpp
- {get,release}WindowsContext are no longer defined
port/platform/Cursor.h
pending/NetworkStateNotifier.h
pending/PlatformKeyboardEvent.h
- we no longer need to fork these files.
port/page/chromium/EventHandlerChromium.cpp
- add #include "Clipboard.h" to support non-WIN_OS
port/page/chromium/AccessibilityObjectWrapper.h
- changed to no longer be a COM interface
port/page/AccessibilityObjectWrapperWin.h
- moved to port/page/chromium/AccessibilityObjectWrapper.h
pending/AccessibleBase.cpp
pending/AccessibleBase.h
- modified to support changes to a11y wrapper class
- by the way, these files should not be in pending! will fix that later.
glue/glue_util.cc
glue/glue_util.h
- add conversion functions for rect structures.
glue/webframe_impl.cc
glue/webplugin_impl.cc
- use new webkit_glue rect conversion functions.
glue/glue_accessibility.cc
- add header that is needed to build this file on windows
glue/webview_impl.cc
- no longer supports auto-conversion between IntPoint and POINT
glue/event_conversion.cc
- initialize by modifying member variables of the base class directly.
- moved a static function from KeyEventWin.cpp
R=tony,brettw
BUG=3488
Review URL: http://codereview.chromium.org/7495
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3587 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/event_conversion.cc')
-rw-r--r-- | webkit/glue/event_conversion.cc | 154 |
1 files changed, 134 insertions, 20 deletions
diff --git a/webkit/glue/event_conversion.cc b/webkit/glue/event_conversion.cc index 91100c6..8c56892 100644 --- a/webkit/glue/event_conversion.cc +++ b/webkit/glue/event_conversion.cc @@ -40,7 +40,7 @@ uint32 MakePlatformMouseEvent::last_click_time_ = 0; MakePlatformMouseEvent::MakePlatformMouseEvent(Widget* widget, const WebMouseEvent& e) #if defined(OS_WIN) - : PlatformMouseEvent(NULL, 0, 0, 0, false /* TODO(darin): do we care? */) { + { #elif defined(OS_MACOSX) : PlatformMouseEvent(e.mac_event.get()) { #elif defined(OS_LINUX) @@ -85,9 +85,7 @@ MakePlatformMouseEvent::MakePlatformMouseEvent(Widget* widget, last_click_position = IntPoint(); last_click_time_ = 0; } -#if defined(OS_WIN) - setClickCount(last_click_count_); -#endif + m_clickCount = last_click_count_; m_eventType = MouseEventMoved; break; @@ -101,16 +99,12 @@ MakePlatformMouseEvent::MakePlatformMouseEvent(Widget* widget, } last_click_time_ = current_time; last_click_button = m_button; -#if defined(OS_WIN) - setClickCount(last_click_count_); -#endif + m_clickCount = last_click_count_; m_eventType = MouseEventPressed; break; case WebInputEvent::MOUSE_UP: -#if defined(OS_WIN) - setClickCount(last_click_count_); -#endif + m_clickCount = last_click_count_; m_eventType = MouseEventReleased; break; @@ -119,9 +113,7 @@ MakePlatformMouseEvent::MakePlatformMouseEvent(Widget* widget, } if (webkit_glue::IsLayoutTestMode()) { -#if defined(OS_WIN) - setClickCount(e.layout_test_click_count); -#endif + m_clickCount = e.layout_test_click_count; } } @@ -130,7 +122,7 @@ MakePlatformMouseEvent::MakePlatformMouseEvent(Widget* widget, MakePlatformWheelEvent::MakePlatformWheelEvent(Widget* widget, const WebMouseWheelEvent& e) #if defined(OS_WIN) - : PlatformWheelEvent(NULL, 0, 0, false) { // TODO(jackson): Check if it's a horizontal event + { #elif defined(OS_MACOSX) : PlatformWheelEvent(e.mac_event.get()) { #elif defined(OS_LINUX) @@ -146,13 +138,20 @@ MakePlatformWheelEvent::MakePlatformWheelEvent(Widget* widget, m_linesToScrollPerDelta = 1; m_pageXScrollMode = false; m_pageYScrollMode = false; + m_isAccepted = false; m_shiftKey = (e.modifiers & WebInputEvent::SHIFT_KEY) != 0; m_ctrlKey = (e.modifiers & WebInputEvent::CTRL_KEY) != 0; m_altKey = (e.modifiers & WebInputEvent::ALT_KEY) != 0; m_metaKey = (e.modifiers & WebInputEvent::META_KEY) != 0; + m_isContinuous = false; + m_continuousDeltaX = 0; + m_continuousDeltaY = 0; } -static inline const PlatformKeyboardEvent::Type platformKeyTypeForWebInputEventType(WebInputEvent::Type type) { +// MakePlatformKeyboardEvent -------------------------------------------------- + +static inline const PlatformKeyboardEvent::Type ToPlatformKeyboardEventType( + WebInputEvent::Type type) { switch (type) { case WebInputEvent::KEY_UP: return PlatformKeyboardEvent::KeyUp; @@ -164,26 +163,141 @@ static inline const PlatformKeyboardEvent::Type platformKeyTypeForWebInputEventT ASSERT_NOT_REACHED(); } return PlatformKeyboardEvent::KeyDown; -} +} -// MakePlatformKeyboardEvent -------------------------------------------------- +static inline String ToSingleCharacterString(UChar c) { + return String(&c, 1); +} + +static String GetKeyIdentifierForWindowsKeyCode(unsigned short keyCode) { + switch (keyCode) { + case VK_MENU: + return "Alt"; + case VK_CONTROL: + return "Control"; + case VK_SHIFT: + return "Shift"; + case VK_CAPITAL: + return "CapsLock"; + case VK_LWIN: + case VK_RWIN: + return "Win"; + case VK_CLEAR: + return "Clear"; + case VK_DOWN: + return "Down"; + // "End" + case VK_END: + return "End"; + // "Enter" + case VK_RETURN: + return "Enter"; + case VK_EXECUTE: + return "Execute"; + case VK_F1: + return "F1"; + case VK_F2: + return "F2"; + case VK_F3: + return "F3"; + case VK_F4: + return "F4"; + case VK_F5: + return "F5"; + case VK_F6: + return "F6"; + case VK_F7: + return "F7"; + case VK_F8: + return "F8"; + case VK_F9: + return "F9"; + case VK_F10: + return "F11"; + case VK_F12: + return "F12"; + case VK_F13: + return "F13"; + case VK_F14: + return "F14"; + case VK_F15: + return "F15"; + case VK_F16: + return "F16"; + case VK_F17: + return "F17"; + case VK_F18: + return "F18"; + case VK_F19: + return "F19"; + case VK_F20: + return "F20"; + case VK_F21: + return "F21"; + case VK_F22: + return "F22"; + case VK_F23: + return "F23"; + case VK_F24: + return "F24"; + case VK_HELP: + return "Help"; + case VK_HOME: + return "Home"; + case VK_INSERT: + return "Insert"; + case VK_LEFT: + return "Left"; + case VK_NEXT: + return "PageDown"; + case VK_PRIOR: + return "PageUp"; + case VK_PAUSE: + return "Pause"; + case VK_SNAPSHOT: + return "PrintScreen"; + case VK_RIGHT: + return "Right"; + case VK_SCROLL: + return "Scroll"; + case VK_SELECT: + return "Select"; + case VK_UP: + return "Up"; + // Standard says that DEL becomes U+007F. + case VK_DELETE: + return "U+007F"; + default: + return String::format("U+%04X", toupper(keyCode)); + } +} MakePlatformKeyboardEvent::MakePlatformKeyboardEvent(const WebKeyboardEvent& e) #if defined(OS_WIN) - : PlatformKeyboardEvent(NULL, e.key_code, e.key_data, - platformKeyTypeForWebInputEventType(e.type), - e.system_key) { + { #elif defined(OS_MACOSX) : PlatformKeyboardEvent(e.mac_event.get()) { #elif defined(OS_LINUX) : PlatformKeyboardEvent(NULL) { #endif + m_type = ToPlatformKeyboardEventType(e.type); + if (m_type == Char || m_type == KeyDown) + m_text = m_unmodifiedText = ToSingleCharacterString(e.key_code); + if (m_type != Char) + m_keyIdentifier = GetKeyIdentifierForWindowsKeyCode(e.key_code); + if (m_type == Char || m_type == KeyDown || m_type == KeyUp || + m_type == RawKeyDown) { + m_windowsVirtualKeyCode = e.key_code; + } else { + m_windowsVirtualKeyCode = 0; + } m_autoRepeat = (e.modifiers & WebInputEvent::IS_AUTO_REPEAT) != 0; m_isKeypad = (e.modifiers & WebInputEvent::IS_KEYPAD) != 0; m_shiftKey = (e.modifiers & WebInputEvent::SHIFT_KEY) != 0; m_ctrlKey = (e.modifiers & WebInputEvent::CTRL_KEY) != 0; m_altKey = (e.modifiers & WebInputEvent::ALT_KEY) != 0; m_metaKey = (e.modifiers & WebInputEvent::META_KEY) != 0; + m_isSystemKey = e.system_key; } void MakePlatformKeyboardEvent::SetKeyType(Type type) { |