Added italic/bold/underline editing

This commit is contained in:
locka%iol.ie 1999-09-05 14:26:55 +00:00
Родитель 6691dedd78
Коммит 1b3569c314
3 изменённых файлов: 43 добавлений и 5 удалений

Просмотреть файл

@ -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"