Module: wine Branch: master Commit: 36fa704444210e83d4f7e03bf624c36b6e97a004 URL: http://source.winehq.org/git/wine.git/?a=commit;h=36fa704444210e83d4f7e03bf6...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Oct 10 15:49:16 2008 -0500
mshtml: Added element keydown, mouseup and mousedown event implementation.
---
dlls/mshtml/htmlelem.c | 36 ++++++++++++++++++++++++------------ dlls/mshtml/htmlevent.c | 12 ++++++++++++ dlls/mshtml/htmlevent.h | 3 +++ 3 files changed, 39 insertions(+), 12 deletions(-)
diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c index b53521a..1335d14 100644 --- a/dlls/mshtml/htmlelem.c +++ b/dlls/mshtml/htmlelem.c @@ -443,15 +443,19 @@ static HRESULT WINAPI HTMLElement_get_ondblclick(IHTMLElement *iface, VARIANT *p static HRESULT WINAPI HTMLElement_put_onkeydown(IHTMLElement *iface, VARIANT v) { HTMLElement *This = HTMLELEM_THIS(iface); - FIXME("(%p)->()\n", This); - return E_NOTIMPL; + + TRACE("(%p)->(%s)\n", This, debugstr_variant(&v)); + + return set_node_event(&This->node, EVENTID_KEYDOWN, &v); }
static HRESULT WINAPI HTMLElement_get_onkeydown(IHTMLElement *iface, VARIANT *p) { HTMLElement *This = HTMLELEM_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, p); + + return get_node_event(&This->node, EVENTID_KEYDOWN, p); }
static HRESULT WINAPI HTMLElement_put_onkeyup(IHTMLElement *iface, VARIANT v) @@ -533,29 +537,37 @@ static HRESULT WINAPI HTMLElement_get_onmousemove(IHTMLElement *iface, VARIANT * static HRESULT WINAPI HTMLElement_put_onmousedown(IHTMLElement *iface, VARIANT v) { HTMLElement *This = HTMLELEM_THIS(iface); - FIXME("(%p)->()\n", This); - return E_NOTIMPL; + + TRACE("(%p)->()\n", This); + + return set_node_event(&This->node, EVENTID_MOUSEDOWN, &v); }
static HRESULT WINAPI HTMLElement_get_onmousedown(IHTMLElement *iface, VARIANT *p) { HTMLElement *This = HTMLELEM_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, p); + + return get_node_event(&This->node, EVENTID_MOUSEDOWN, p); }
static HRESULT WINAPI HTMLElement_put_onmouseup(IHTMLElement *iface, VARIANT v) { HTMLElement *This = HTMLELEM_THIS(iface); - FIXME("(%p)->()\n", This); - return E_NOTIMPL; + + TRACE("(%p)->(%s)\n", This, debugstr_variant(&v)); + + return set_node_event(&This->node, EVENTID_MOUSEUP, &v); }
static HRESULT WINAPI HTMLElement_get_onmouseup(IHTMLElement *iface, VARIANT *p) { HTMLElement *This = HTMLELEM_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, p); + + return get_node_event(&This->node, EVENTID_MOUSEUP, p); }
static HRESULT WINAPI HTMLElement_get_document(IHTMLElement *iface, IDispatch **p) diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c index 67c1d0d..38b7d5d 100644 --- a/dlls/mshtml/htmlevent.c +++ b/dlls/mshtml/htmlevent.c @@ -51,15 +51,24 @@ static const WCHAR ondragW[] = {'o','n','d','r','a','g',0}; static const WCHAR focusW[] = {'f','o','c','u','s',0}; static const WCHAR onfocusW[] = {'o','n','f','o','c','u','s',0};
+static const WCHAR keydownW[] = {'k','e','y','d','o','w','n',0}; +static const WCHAR onkeydownW[] = {'o','n','k','e','y','d','o','w','n',0}; + static const WCHAR keyupW[] = {'k','e','y','u','p',0}; static const WCHAR onkeyupW[] = {'o','n','k','e','y','u','p',0};
static const WCHAR loadW[] = {'l','o','a','d',0}; static const WCHAR onloadW[] = {'o','n','l','o','a','d',0};
+static const WCHAR mousedownW[] = {'m','o','u','s','e','d','o','w','n',0}; +static const WCHAR onmousedownW[] = {'o','n','m','o','u','s','e','d','o','w','n',0}; + static const WCHAR mouseoverW[] = {'m','o','u','s','e','o','v','e','r',0}; static const WCHAR onmouseoverW[] = {'o','n','m','o','u','s','e','o','v','e','r',0};
+static const WCHAR mouseupW[] = {'m','o','u','s','e','u','p',0}; +static const WCHAR onmouseupW[] = {'o','n','m','o','u','s','e','u','p',0}; + static const WCHAR pasteW[] = {'p','a','s','t','e',0}; static const WCHAR onpasteW[] = {'o','n','p','a','s','t','e',0};
@@ -78,9 +87,12 @@ static const event_info_t event_info[] = { {clickW, onclickW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, {dragW, ondragW, 0}, {focusW, onfocusW, EVENT_DEFAULTLISTENER}, + {keydownW, onkeydownW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, {keyupW, onkeyupW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, {loadW, onloadW, 0}, + {mousedownW, onmousedownW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, {mouseoverW, onmouseoverW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, + {mouseupW, onmouseupW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, {pasteW, onpasteW, 0} };
diff --git a/dlls/mshtml/htmlevent.h b/dlls/mshtml/htmlevent.h index ca5b200..a5596f4 100644 --- a/dlls/mshtml/htmlevent.h +++ b/dlls/mshtml/htmlevent.h @@ -22,9 +22,12 @@ typedef enum { EVENTID_CLICK, EVENTID_DRAG, EVENTID_FOCUS, + EVENTID_KEYDOWN, EVENTID_KEYUP, EVENTID_LOAD, + EVENTID_MOUSEDOWN, EVENTID_MOUSEOVER, + EVENTID_MOUSEUP, EVENTID_PASTE, EVENTID_LAST } eventid_t;