From 371b0edb8ed21065da56bd76dfe12afbd2157026 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Mon, 11 Jun 2007 00:30:30 +0200 Subject: [PATCH] mshtml: Added edit mode IDM_CUT implementation. --- dlls/mshtml/editor.c | 12 ++++++++++++ dlls/mshtml/mshtml_private.h | 1 + dlls/mshtml/olecmd.c | 7 ++++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/dlls/mshtml/editor.c b/dlls/mshtml/editor.c index 4630cfb6f5c..d257c5f3a1f 100644 --- a/dlls/mshtml/editor.c +++ b/dlls/mshtml/editor.c @@ -42,6 +42,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml); #define NSCMD_CHARNEXT "cmd_charNext" #define NSCMD_CHARPREVIOUS "cmd_charPrevious" #define NSCMD_COPY "cmd_copy" +#define NSCMD_CUT "cmd_cut" #define NSCMD_FONTCOLOR "cmd_fontColor" #define NSCMD_FONTFACE "cmd_fontFace" #define NSCMD_INDENT "cmd_indent" @@ -946,6 +947,17 @@ HRESULT editor_exec_copy(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, VARI return S_OK; } +HRESULT editor_exec_cut(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, VARIANT *out) +{ + update_doc(This, UPDATE_UI); + + if(!This->nscontainer) + return E_FAIL; + + do_ns_editor_command(This->nscontainer, NSCMD_CUT); + return S_OK; +} + HRESULT editor_exec_paste(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, VARIANT *out) { update_doc(This, UPDATE_UI); diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index 4c4ee4ad8c4..74ee748bccb 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -399,6 +399,7 @@ void init_editor(HTMLDocument*); void set_ns_editmode(NSContainer*); void handle_edit_event(HTMLDocument*,nsIDOMEvent*); HRESULT editor_exec_copy(HTMLDocument*,DWORD,VARIANT*,VARIANT*); +HRESULT editor_exec_cut(HTMLDocument*,DWORD,VARIANT*,VARIANT*); HRESULT editor_exec_paste(HTMLDocument*,DWORD,VARIANT*,VARIANT*); extern DWORD mshtml_tls; diff --git a/dlls/mshtml/olecmd.c b/dlls/mshtml/olecmd.c index e2b749cfdfe..288a12b21d1 100644 --- a/dlls/mshtml/olecmd.c +++ b/dlls/mshtml/olecmd.c @@ -487,7 +487,12 @@ static HRESULT query_mshtml_cut(HTMLDocument *This, OLECMD *cmd) static HRESULT exec_mshtml_cut(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, VARIANT *out) { - FIXME("(%p)->(%08x %p %p)\n", This, cmdexecopt, in, out); + TRACE("(%p)->(%08x %p %p)\n", This, cmdexecopt, in, out); + + if(This->usermode == EDITMODE) + return editor_exec_cut(This, cmdexecopt, in, out); + + FIXME("Unimplemented in browse mode\n"); return E_NOTIMPL; }