Module: wine Branch: master Commit: 227be057c222756de196d879790d05e92f29b47d URL: http://source.winehq.org/git/wine.git/?a=commit;h=227be057c222756de196d87979...
Author: Jacek Caban jacek@codeweavers.com Date: Thu Nov 2 17:34:17 2006 +0100
mshtml: Added implementation of QueryStatus(IDM_BOLD).
---
dlls/mshtml/olecmd.c | 31 +++++++++++++++++++++++++++---- 1 files changed, 27 insertions(+), 4 deletions(-)
diff --git a/dlls/mshtml/olecmd.c b/dlls/mshtml/olecmd.c index 908ed90..6c619c7 100644 --- a/dlls/mshtml/olecmd.c +++ b/dlls/mshtml/olecmd.c @@ -39,6 +39,8 @@ #include "mshtml_private.h"
WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
+#define NSCMD_BOLD "cmd_bold" + /********************************************************** * IOleCommandTarget implementation */ @@ -245,7 +247,7 @@ static void do_ns_command(NSContainer *T nsIInterfaceRequestor *iface_req; nsresult nsres;
- FIXME("(%p)\n", This); + TRACE("(%p)\n", This);
nsres = nsIWebBrowser_QueryInterface(This->webbrowser, &IID_nsIInterfaceRequestor, (void**)&iface_req); @@ -298,6 +300,27 @@ static nsresult get_ns_command_state(NSC return nsres; }
+static DWORD query_edit_status(HTMLDocument *This, const char *nscmd) +{ + nsICommandParams *nsparam; + PRBool b = FALSE; + + if(!This->nscontainer) { + FIXME("dummy not implemented\n"); + return OLECMDF_SUPPORTED; + } + + if(This->usermode != EDITMODE || This->readystate < READYSTATE_INTERACTIVE) + return OLECMDF_SUPPORTED; + + nsparam = create_nscommand_params(); + get_ns_command_state(This->nscontainer, nscmd, nsparam); + + nsICommandParams_GetBooleanValue(nsparam, "state_enabled", &b); + + return OLECMDF_SUPPORTED | OLECMDF_ENABLED | (b ? OLECMDF_LATCHED : 0); +} + static HRESULT exec_fontname(HTMLDocument *This, VARIANT *in, VARIANT *out) { TRACE("(%p)->(%p %p)\n", This, in, out); @@ -364,7 +387,7 @@ static HRESULT exec_bold(HTMLDocument *T TRACE("(%p)\n", This);
if(This->nscontainer) - do_ns_command(This->nscontainer, "cmd_bold", NULL); + do_ns_command(This->nscontainer, NSCMD_BOLD, NULL);
return S_OK; } @@ -626,8 +649,8 @@ static HRESULT WINAPI OleCommandTarget_Q prgCmds[i].cmdf = OLECMDF_SUPPORTED|OLECMDF_ENABLED; break; case IDM_BOLD: - FIXME("CGID_MSHTML: IDM_BOLD\n"); - prgCmds[i].cmdf = OLECMDF_SUPPORTED|OLECMDF_ENABLED; + TRACE("CGID_MSHTML: IDM_BOLD\n"); + prgCmds[i].cmdf = query_edit_status(This, NSCMD_BOLD); break; case IDM_FORECOLOR: FIXME("CGID_MSHTML: IDM_FORECOLOR\n");