зеркало из https://github.com/mozilla/gecko-dev.git
Added italic/bold/underline editing
This commit is contained in:
Родитель
6691dedd78
Коммит
1b3569c314
|
@ -550,6 +550,10 @@ HRESULT CMozillaBrowser::SetEditorMode(BOOL bEnabled)
|
|||
|
||||
HRESULT CMozillaBrowser::OnEditorCommand(DWORD nCmdID)
|
||||
{
|
||||
static nsIAtom * propB = NS_NewAtom("b");
|
||||
static nsIAtom * propI = NS_NewAtom("i");
|
||||
static nsIAtom * propU = NS_NewAtom("u");
|
||||
|
||||
if (!m_bEditorMode)
|
||||
{
|
||||
return E_UNEXPECTED;
|
||||
|
@ -560,13 +564,24 @@ HRESULT CMozillaBrowser::OnEditorCommand(DWORD nCmdID)
|
|||
return E_UNEXPECTED;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIHTMLEditor> pHtmlEditor = do_QueryInterface(m_pEditor);
|
||||
|
||||
bool bToggleInlineProperty = false;
|
||||
nsIAtom *pInlineProperty = nsnull;
|
||||
|
||||
switch (nCmdID)
|
||||
{
|
||||
case IDM_BOLD:
|
||||
pInlineProperty = propB;
|
||||
bToggleInlineProperty = true;
|
||||
break;
|
||||
case IDM_ITALIC:
|
||||
pInlineProperty = propI;
|
||||
bToggleInlineProperty = true;
|
||||
break;
|
||||
case IDM_UNDERLINE:
|
||||
pInlineProperty = propU;
|
||||
bToggleInlineProperty = true;
|
||||
break;
|
||||
|
||||
// TODO add the rest!
|
||||
|
@ -576,6 +591,25 @@ HRESULT CMozillaBrowser::OnEditorCommand(DWORD nCmdID)
|
|||
break;
|
||||
}
|
||||
|
||||
// Does the instruction involve toggling something? e.g. B, U, I
|
||||
if (bToggleInlineProperty)
|
||||
{
|
||||
PRBool bFirst = PR_TRUE;
|
||||
PRBool bAny = PR_TRUE;
|
||||
PRBool bAll = PR_TRUE;
|
||||
|
||||
// Set or remove
|
||||
pHtmlEditor->GetInlineProperty(pInlineProperty, nsnull, nsnull, bFirst, bAny, bAll);
|
||||
if (bAny)
|
||||
{
|
||||
pHtmlEditor->RemoveInlineProperty(pInlineProperty, nsnull);
|
||||
}
|
||||
else
|
||||
{
|
||||
pHtmlEditor->SetInlineProperty(pInlineProperty, nsnull, nsnull);
|
||||
}
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -155,6 +155,11 @@ BEGIN_OLECOMMAND_TABLE()
|
|||
OLECOMMAND_MESSAGE(HTMLID_VIEWSOURCE, &CGID_IWebBrowser, 0, L"ViewSource", L"View Source")
|
||||
OLECOMMAND_MESSAGE(HTMLID_OPTIONS, &CGID_IWebBrowser, 0, L"Options", L"Options")
|
||||
// DHTML editor command group
|
||||
OLECOMMAND_HANDLER(IDM_EDITMODE, &CGID_MSHTML, EditModeHandler, L"EditMode", L"Switch to edit mode")
|
||||
OLECOMMAND_HANDLER(IDM_BROWSEMODE, &CGID_MSHTML, EditModeHandler, L"UserMode", L"Switch to user mode")
|
||||
OLECOMMAND_HANDLER(IDM_BOLD, &CGID_MSHTML, EditCommandHandler, L"Bold", L"Toggle Bold")
|
||||
OLECOMMAND_HANDLER(IDM_ITALIC, &CGID_MSHTML, EditCommandHandler, L"Italic", L"Toggle Italic")
|
||||
OLECOMMAND_HANDLER(IDM_UNDERLINE, &CGID_MSHTML, EditCommandHandler, L"Underline", L"Toggle Underline")
|
||||
OLECOMMAND_HANDLER(IDM_UNKNOWN, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_ALIGNBOTTOM, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_ALIGNHORIZONTALCENTERS, &CGID_MSHTML, NULL, L"", L"")
|
||||
|
@ -199,18 +204,15 @@ BEGIN_OLECOMMAND_TABLE()
|
|||
OLECOMMAND_HANDLER(IDM_VERTSPACEMAKEEQUAL, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_JUSTIFYFULL, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_BACKCOLOR, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_BOLD, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_BORDERCOLOR, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_FLAT, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_FORECOLOR, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_ITALIC, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_JUSTIFYCENTER, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_JUSTIFYGENERAL, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_JUSTIFYLEFT, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_JUSTIFYRIGHT, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_RAISED, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_SUNKEN, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_UNDERLINE, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_CHISELED, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_ETCHED, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_SHADOWED, &CGID_MSHTML, NULL, L"", L"")
|
||||
|
@ -240,8 +242,6 @@ BEGIN_OLECOMMAND_TABLE()
|
|||
OLECOMMAND_HANDLER(IDM_DELETEWORD, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_EXECPRINT, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_JUSTIFYNONE, &CGID_MSHTML, NULL, L"", L"")
|
||||
OLECOMMAND_HANDLER(IDM_EDITMODE, &CGID_MSHTML, EditModeHandler, L"EditMode", L"Switch to edit mode")
|
||||
OLECOMMAND_HANDLER(IDM_BROWSEMODE, &CGID_MSHTML, EditModeHandler, L"UserMode", L"Switch to user mode")
|
||||
END_OLECOMMAND_TABLE()
|
||||
|
||||
|
||||
|
|
|
@ -90,6 +90,7 @@ typedef long int32;
|
|||
#include "nsGfxCIID.h"
|
||||
#include "nsViewsCID.h"
|
||||
#include "nsString.h"
|
||||
#include "nsCOMPtr.h"
|
||||
|
||||
#ifdef NECKO
|
||||
#include "nsIHTTPChannel.h"
|
||||
|
@ -101,8 +102,11 @@ typedef long int32;
|
|||
#include "nsIContentViewer.h"
|
||||
#include "nsIPresContext.h"
|
||||
#include "nsIPresShell.h"
|
||||
|
||||
#include "nsEditorCID.h"
|
||||
#include "nsIEditor.h"
|
||||
#include "nsIHtmlEditor.h"
|
||||
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIDocumentObserver.h"
|
||||
#include "nsIDocumentLoaderObserver.h"
|
||||
|
|
Загрузка…
Ссылка в новой задаче