Jacek Caban : mshtml: Added implementation of QueryStatus(IDM_BOLD).
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Nov 2 15:47:20 CST 2006
Module: wine
Branch: master
Commit: 227be057c222756de196d879790d05e92f29b47d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=227be057c222756de196d879790d05e92f29b47d
Author: Jacek Caban <jacek at 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");
More information about the wine-cvs
mailing list