Editor bug fixes. List Properties dialog work. Fixed menu access keys in DTD file. Fixed using selection->Clear() cases

This commit is contained in:
cmanske%netscape.com 1999-09-21 01:36:30 +00:00
Родитель 472450ff09
Коммит 133758b3d7
18 изменённых файлов: 449 добавлений и 354 удалений

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

@ -132,7 +132,6 @@ nsHTMLEditor::InsertTableRow(PRInt32 aNumber, PRBool aAfter)
{
nsAutoEditBatch beginBatching(this);
//TODO: FINISH ME!
selection->ClearSelection();
}
return res;
}
@ -181,6 +180,8 @@ nsHTMLEditor::DeleteTableCell(PRInt32 aNumber)
{
nsAutoEditBatch beginBatching(this);
// We clear the selection to avoid problems when nodes in the selection are deleted,
// Be sure to set it correctly later (in SetCaretAfterTableEdit)!
selection->ClearSelection();
PRInt32 i;
for (i = 0; i < aNumber; i++)

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

@ -795,11 +795,9 @@ nsEditorShell::PrepareDocumentForEditing(nsIURI *aUrl)
}
#endif
#if DEBUG_cmanske
//TODO: TEMPORARY -- THIS IS NOT THE RIGHT THING TO DO!
nsAutoString styleURL("chrome://editor/content/EditorContent.css");
ApplyStyleSheet(styleURL.GetUnicode());
#endif
// Force initial focus to the content window -- HOW?
// mWebShellWin->SetFocus();

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

@ -1206,10 +1206,6 @@ nsHTMLEditor::InsertElement(nsIDOMElement* aElement, PRBool aDeleteSelection)
if (!aElement)
return NS_ERROR_NULL_POINTER;
nsAutoEditBatch beginBatching(this);
// For most elements, set caret after inserting
//PRBool setCaretAfterElement = PR_TRUE;
nsCOMPtr<nsIDOMSelection>selection;
res = GetSelection(getter_AddRefs(selection));
if (!NS_SUCCEEDED(res) || !selection)
@ -1222,48 +1218,33 @@ nsHTMLEditor::InsertElement(nsIDOMElement* aElement, PRBool aDeleteSelection)
res = mRules->WillDoAction(selection, &ruleInfo, &cancel);
if (cancel || (NS_FAILED(res))) return res;
// Clear current selection.
// Should put caret at anchor point?
nsAutoEditBatch beginBatching(this);
if (aDeleteSelection)
{
nsCOMPtr<nsIDOMNode> tempNode;
PRInt32 tempOffset;
nsresult result = DeleteSelectionAndPrepareToCreateNode(tempNode,tempOffset);
if (!NS_SUCCEEDED(result))
return result;
}
// If deleting, selection will be collapsed.
// so if not, we collapse it
if (!aDeleteSelection)
{
PRBool collapseAfter = PR_TRUE;
// Named Anchor is a special case,
// We collapse to insert element BEFORE the selection
// For all other tags, we insert AFTER the selection
nsCOMPtr<nsIDOMNode> node = do_QueryInterface(aElement);
if (IsNamedAnchorNode(node))
collapseAfter = PR_FALSE;
if (collapseAfter)
{
// Default behavior is to collapse to the end of the selection
selection->ClearSelection();
selection->CollapseToStart();
} else {
// Collapse to the start of the selection,
// We must explore the first range and find
// its parent and starting offset of selection
// TODO: Move this logic to a new method nsIDOMSelection::CollapseToStart()???
nsCOMPtr<nsIDOMRange> firstRange;
res = selection->GetRangeAt(0, getter_AddRefs(firstRange));
// XXX: ERROR_HANDLING can firstRange legally be null?
if (NS_SUCCEEDED(res) && firstRange)
{
nsCOMPtr<nsIDOMNode> parent;
// XXX: ERROR_HANDLING bad XPCOM usage, should check for null parent separately
res = firstRange->GetCommonParent(getter_AddRefs(parent));
if (NS_SUCCEEDED(res) && parent)
{
PRInt32 startOffset;
firstRange->GetStartOffset(&startOffset);
selection->Collapse(parent, startOffset);
} else {
// Very unlikely, but collapse to the end if we failed above
selection->ClearSelection();
}
}
selection->CollapseToEnd();
}
}
nsCOMPtr<nsIDOMNode> parentSelectedNode;
PRInt32 offsetForInsert;
res = selection->GetAnchorNode(getter_AddRefs(parentSelectedNode));

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

@ -795,11 +795,9 @@ nsEditorShell::PrepareDocumentForEditing(nsIURI *aUrl)
}
#endif
#if DEBUG_cmanske
//TODO: TEMPORARY -- THIS IS NOT THE RIGHT THING TO DO!
nsAutoString styleURL("chrome://editor/content/EditorContent.css");
ApplyStyleSheet(styleURL.GetUnicode());
#endif
// Force initial focus to the content window -- HOW?
// mWebShellWin->SetFocus();

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

@ -1206,10 +1206,6 @@ nsHTMLEditor::InsertElement(nsIDOMElement* aElement, PRBool aDeleteSelection)
if (!aElement)
return NS_ERROR_NULL_POINTER;
nsAutoEditBatch beginBatching(this);
// For most elements, set caret after inserting
//PRBool setCaretAfterElement = PR_TRUE;
nsCOMPtr<nsIDOMSelection>selection;
res = GetSelection(getter_AddRefs(selection));
if (!NS_SUCCEEDED(res) || !selection)
@ -1222,48 +1218,33 @@ nsHTMLEditor::InsertElement(nsIDOMElement* aElement, PRBool aDeleteSelection)
res = mRules->WillDoAction(selection, &ruleInfo, &cancel);
if (cancel || (NS_FAILED(res))) return res;
// Clear current selection.
// Should put caret at anchor point?
nsAutoEditBatch beginBatching(this);
if (aDeleteSelection)
{
nsCOMPtr<nsIDOMNode> tempNode;
PRInt32 tempOffset;
nsresult result = DeleteSelectionAndPrepareToCreateNode(tempNode,tempOffset);
if (!NS_SUCCEEDED(result))
return result;
}
// If deleting, selection will be collapsed.
// so if not, we collapse it
if (!aDeleteSelection)
{
PRBool collapseAfter = PR_TRUE;
// Named Anchor is a special case,
// We collapse to insert element BEFORE the selection
// For all other tags, we insert AFTER the selection
nsCOMPtr<nsIDOMNode> node = do_QueryInterface(aElement);
if (IsNamedAnchorNode(node))
collapseAfter = PR_FALSE;
if (collapseAfter)
{
// Default behavior is to collapse to the end of the selection
selection->ClearSelection();
selection->CollapseToStart();
} else {
// Collapse to the start of the selection,
// We must explore the first range and find
// its parent and starting offset of selection
// TODO: Move this logic to a new method nsIDOMSelection::CollapseToStart()???
nsCOMPtr<nsIDOMRange> firstRange;
res = selection->GetRangeAt(0, getter_AddRefs(firstRange));
// XXX: ERROR_HANDLING can firstRange legally be null?
if (NS_SUCCEEDED(res) && firstRange)
{
nsCOMPtr<nsIDOMNode> parent;
// XXX: ERROR_HANDLING bad XPCOM usage, should check for null parent separately
res = firstRange->GetCommonParent(getter_AddRefs(parent));
if (NS_SUCCEEDED(res) && parent)
{
PRInt32 startOffset;
firstRange->GetStartOffset(&startOffset);
selection->Collapse(parent, startOffset);
} else {
// Very unlikely, but collapse to the end if we failed above
selection->ClearSelection();
}
}
selection->CollapseToEnd();
}
}
nsCOMPtr<nsIDOMNode> parentSelectedNode;
PRInt32 offsetForInsert;
res = selection->GetAnchorNode(getter_AddRefs(parentSelectedNode));

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

@ -89,6 +89,8 @@
<menu id="headingMenu"/>
<menu id="paragraphMenu"/>
<!-- This brings up dialog. Alternative is: <menu id="listMenu"> -->
<menuitem id="listProps"/>
<menuseparator />
<menu id="stylesheetMenu"/>
</menupopup>

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

@ -402,6 +402,12 @@ function EditorSetParagraphFormat(paraFormat)
contentWindow.focus();
}
function EditorListProperties()
{
window.openDialog("chrome://editor/content/EdListProps.xul","_blank", "chrome,close,titlebar,modal");
contentWindow.focus();
}
function EditorSetListStyle(listType)
{
// Write me! Replace EditorInsertList when working?
@ -638,7 +644,7 @@ function EditorInsertHLine()
dump("failed to get HLine prefs\n");
}
}
editorShell.InsertElement(hLine, false);
editorShell.InsertElement(hLine, true);
}
}
contentWindow.focus();
@ -652,7 +658,7 @@ function EditorInsertNamedAnchor()
function EditorIndent(indent)
{
dump("indenting\n");
dump(indent+"\n");
editorShell.Indent(indent);
contentWindow.focus();
}

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

@ -5,6 +5,8 @@ Save=Save
DontSave=Don't Save
More=More
Fewer=Fewer
None=None
none=none
OpenHTMLFile=Open HTML File
SelectImageFile=Select Image File
SaveDocument=Save Document
@ -23,11 +25,25 @@ SaveFileFailed=Saving file failed!
DocumentTitle=Document Title
NeedDocTitle=Document does not have a title.
AttributesFor=Current attributes for:
MissingImageError=Please enter or choose an image\nof type gif, jpg or png.
EmptyHREFError=You must enter or choose\na location (URL) to create a new link.
MissingImageError=Please enter or choose an image<br>of type gif, jpg or png.
EmptyHREFError=You must enter or choose<br>a location (URL) to create a new link.
EmptyLinkTextError=You must enter some text for this link.
ValidateNumber1=The number you entered (
ValidateNumber2=) is outside of allowed range.\nPlease enter a number between
ValidateNumber2=) is outside of allowed range.<br>Please enter a number between
ValidateNumber3=and
MissingAnchorNameError=You must enter a name for this anchor.
DuplicateAnchorNameError=already exists in this page.\nPlease enter a different name.
DuplicateAnchorNameError=already exists in this page.<br>Please enter a different name.
BulletStyle=Bullet Style:
SolidCircle=Solid circle
OpenCircle=Open circle
OpenSquare=Open square
NumberStyle=Number Style:
Automatic=Automatic
Style_1=1,2,3...
Style_I=I,II,III...
Style_i=i,ii,iii...
Style_A=A,B,C...
Style_a=a,b,c...

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

@ -148,7 +148,7 @@
<broadcaster id="Editor:ToggleFormattingToolbar" value="&hideFormattingToolbarCmd.label;" showing="true" oncommand="_EditorNotImplemented()"/>
<broadcaster id="Editor:InsertLink" value="&insertLinkCmd.label;" disabled="false" oncommand="EditorInsertLink()"/>
<broadcaster id="Editor:InsertTarget" value="&insertTargetCmd.label;" disabled="false" oncommand="_EditorNotImplemented()"/>
<broadcaster id="Editor:InsertAnchor" value="&insertAnchorCmd.label;" disabled="false" oncommand="EditorInsertNamedAnchor()"/>
<broadcaster id="Editor:InsertImage" value="&insertImageCmd.label;" disabled="false" oncommand="EditorInsertImage()"/>
<broadcaster id="Editor:InsertHLine" value="&insertHLineCmd.label;" disabled="false" oncommand="EditorInsertHLine()"/>
<broadcaster id="Editor:InsertTable" value="&insertTableCmd.label;" disabled="false" oncommand="EditorInsertTable()"/>
@ -193,7 +193,7 @@
<menuitem accesskey="&editfind.accesskey;" key="findkb" observes="Editor:Find"/>
<menuitem accesskey="&editfindnext.accesskey;" key="findnextkb" observes="Editor:FindNext"/>
<menuseparator />
<menuitem accesskey="&toolspellcheck.accesskey;" key="checkspellingkb" observes="Editor:CheckSpelling"/>
<menuitem accesskey="&editcheckspelling.accesskey;" key="checkspellingkb" observes="Editor:CheckSpelling"/>
</menupopup>
</menu>
@ -357,7 +357,7 @@
<menu id="insertMenu" value="&insertMenu.label;" accesskey="&insertmenu.accesskey;">
<menupopup>
<menuitem accesskey="&insertlink.accesskey;" observes="Editor:InsertLink"/>
<menuitem accesskey="&inserttarget.accesskey;" observes="Editor:InsertTarget"/>
<menuitem accesskey="&insertanchor.accesskey;" observes="Editor:InsertAnchor"/>
<menuitem accesskey="&insertimage.accesskey;" observes="Editor:InsertImage"/>
<menuitem accesskey="&inserthline.accesskey;" observes="Editor:InsertHLine"/>
<menuitem accesskey="&inserttable.accesskey;" observes="Editor:InsertTable"/>
@ -473,21 +473,23 @@
</menupopup>
</menu>
<!-- List Style submenu -->
<!-- List Style (opens dialog) -->
<menuitem id="listProps" value="&listProps.label;" accesskey="&formatlistmenu.accesskey;" oncommand="EditorListProperties()"/>
<!-- We used a menu in 4.x, but we had list stuff in Paragraph Properties
Since we killed that, make list item bring up new List Properties dialog
<menu id="listMenu" value="&listMenu.label;" accesskey="&formatlistmenu.accesskey;">
<menupopup>
<menuitem value="&listNoneCmd.label;" accesskey="&listnone.accesskey;" oncommand="EditorSetParagraphFormat('ol')"/>
<menuitem value="&listBullettedCmd.label;" accesskey="&listbulletted.accesskey;" oncommand="EditorSetParagraphFormat('')"/>
<menuitem value="&listNumberedCmd.label;" accesskey="&listnumbered.accesskey;" oncommand="EditorSetParagraphFormat('normal')"/>
<menuitem value="&listDefinitionCmd.label;" accesskey="&listdefinition.accesskey;" oncommand="EditorSetParagraphFormat('normal')"/>
<menuitem value="&listNoneCmd.label;" accesskey="&listnone.accesskey;" oncommand="EditorSetListStyle('')"/>
<menuitem value="&listBullettedCmd.label;" accesskey="&listbulletted.accesskey;" oncommand="EditorSetListStyle('ul')"/>
<menuitem value="&listNumberedCmd.label;" accesskey="&listnumbered.accesskey;" oncommand="EditorSetListStyle('ol')"/>
<menuitem value="&listDefinitionCmd.label;" accesskey="&listdefinition.accesskey;" oncommand="EditorSetListStyle('dl')"/>
</menupopup>
</menu>
-->
<!-- Stylesheet submenu -->
<menu id="stylesheetMenu" value="&stylesheetMenu.label;" accesskey="&formatstylesheetmenu.accesskey;">
<menupopup>
<menuitem value="EditorContent Sheet" accesskey="&sseditorcontent.accesskey;" oncommand="EditorApplyStyleSheet('chrome://editor/content/EditorContent.css')"/>
<menuseparator />
<menuitem value="&stylesheetEditorOneCmd.label;" accesskey="&sseditor1.accesskey;" oncommand="EditorApplyStyleSheet('chrome://editor/content/EditorStyles1.css')"/>
<menuseparator />
<menuitem value="&stylesheetOldstyleCmd.label;" accesskey="&ssoldstyle.accesskey;" oncommand="EditorApplyStyleSheet('http://www.w3.org/StyleSheets/Core/Oldstyle')"/>
@ -501,15 +503,16 @@
<!-- Random table menu items -->
<menuitem id="tableJoinCellsMenuitem" value="&tableJoinCells.label;" accesskey="&tablejoin.accesskey;" oncommand="EditorJoinTableCells()"/>
<menuitem id="tablePropertiesMenuitem" value="&properties.label;" accesskey="&tableproperties.accesskey;" oncommand="EditorInsertOrEditTable(false)"/>
<menuitem id="tablePropertiesMenuitem" value="&properties.label;" accesskey="&properties.accesskey;" oncommand="EditorInsertOrEditTable(false)"/>
<!-- Table insert submenu -->
<menu id="tableInsertMenu" value="&tableInsertMenu.label;" accesskey="&tableinsertmenu.accesskey;">
<menupopup>
<menuitem value="&tableTable.label;" accesskey="&tabletable.accesskey;" oncommand="EditorInsertTable()"/>
<menuitem value="&tableRow.label;" accesskey="&tablerow.accesskey;" oncommand="EditorInsertTableRow()"/>
<menuitem value="&tableColumn.label;" accesskey="&tablecolumn.accesskey;" oncommand="EditorInsertTableColumn()"/>
<menuitem value="&tableCell.label;" accesskey="&tablecell.accesskey;" oncommand="EditorInsertTableCell(false)"/>
<menuitem value="&tableTable.label;" accesskey="&tabletable.accesskey;" oncommand="EditorInsertTable()"/>
<menuitem value="&tableRow.label;" accesskey="&tablerow.accesskey;" oncommand="EditorInsertTableRow()"/>
<menuitem value="&tableColumn.label;" accesskey="&tablecolumn.accesskey;" oncommand="EditorInsertTableColumn()"/>
<menuitem value="&tableCellBefore.label;" accesskey="&tablecell.accesskey;" oncommand="EditorInsertTableCell(false)"/>
<menuitem value="&tableCellAfter.label;" accesskey="&tablecellafter.accesskey;" oncommand="EditorInsertTableCell(true)"/>
</menupopup>
</menu>

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

@ -24,164 +24,304 @@
<!-- File menu items -->
<!ENTITY fileMenu.label "File">
<!ENTITY filemenu.accesskey "f">
<!ENTITY newCmd.label "New">
<!ENTITY filenew.accesskey "n">
<!ENTITY openCmd.label "Open...">
<!ENTITY closeCmd.label "Close">
<!ENTITY fileopen.accesskey "o">
<!ENTITY saveCmd.label "Save">
<!ENTITY filesave.accesskey "s">
<!ENTITY saveAsCmd.label "Save As...">
<!ENTITY filesaveas.accesskey "a">
<!ENTITY printSetupCmd.label ".Print Setup...">
<!ENTITY fileprintsetup.accesskey "t">
<!ENTITY printPreviewCmd.label "Print Preview">
<!ENTITY fileprintpreview.accesskey "r">
<!ENTITY printCmd.label "Print...">
<!ENTITY fileprint.accesskey "p">
<!ENTITY closeCmd.label "Close">
<!ENTITY fileclose.accesskey "c">
<!ENTITY exitCmd.label "Quit">
<!ENTITY fileexit.accesskey "q">
<!-- Edit menu items -->
<!ENTITY editMenu.label "Edit">
<!ENTITY editmenu.accesskey "e">
<!ENTITY undoCmd.label "Undo">
<!ENTITY editundo.accesskey "u">
<!ENTITY redoCmd.label "Redo">
<!ENTITY editredo.accesskey "r">
<!ENTITY cutCmd.label "Cut">
<!ENTITY editcut.accesskey "t">
<!ENTITY copyCmd.label "Copy">
<!ENTITY editcopy.accesskey "c">
<!ENTITY pasteCmd.label "Paste">
<!ENTITY editpaste.accesskey "p">
<!ENTITY pasteAsQuotationCmd.label "Paste As Quotation">
<!ENTITY editpastequotation.accesskey "q">
<!ENTITY clearCmd.label ".Clear">
<!ENTITY editclear.accesskey "l">
<!ENTITY selectAllCmd.label "Select All">
<!ENTITY editselectall.accesskey "a">
<!ENTITY findCmd.label "Find...">
<!ENTITY editfind.accesskey "f">
<!ENTITY findAgainCmd.label "Find Again">
<!ENTITY editfindnext.accesskey "n">
<!ENTITY checkSpellingCmd.label "Check Spelling">
<!ENTITY editcheckspelling.accesskey "s">
<!-- View menu items -->
<!ENTITY viewMenu.label "View">
<!ENTITY hideCompositionToolbarCmd.label ".Hide Composition Toolbar">
<!ENTITY viewcompositiontb.accesskey "c">
<!ENTITY showCompositionToolbarCmd.label ".Show Composition Toolbar">
<!ENTITY hideFormattingToolbarCmd.label ".Hide Format Toolbar">
<!ENTITY viewformattingtb.accesskey "f">
<!ENTITY showFormattingToolbarCmd.label ".Show Format Toolbar">
<!ENTITY viewPageSource.label "View Page Source">
<!ENTITY viewpagesource.accesskey "s">
<!-- Charset menu items -->
<!ENTITY dcharMenu.label "Character Set">
<!ENTITY viewcharsetmenu.accesskey "s">
<!ENTITY dcharIso1Cmd.label "ISO Latin 1 (ISO-8859-1)">
<!ENTITY charsetLatin1.accesskey "l">
<!ENTITY dcharIso2Cmd.label "ISO Latin 2 (ISO-8859-2)">
<!ENTITY charsetLatin2.accesskey "2">
<!ENTITY dcharIso3Cmd.label "ISO Latin 3 (ISO-8859-3)">
<!ENTITY charsetLatin3.accesskey "3">
<!ENTITY dcharIso4Cmd.label "ISO Latin 4 (ISO-8859-4)">
<!ENTITY charsetLatin4.accesskey "4">
<!ENTITY dcharIso9Cmd.label "ISO Latin 5 (ISO-8859-9)">
<!ENTITY charsetLatin5.accesskey "9">
<!ENTITY dcharIso10Cmd.label "ISO Latin 6 (ISO-8859-10)">
<!ENTITY charsetLatin6.accesskey "1">
<!ENTITY dcharIso13Cmd.label "ISO Latin 7 (ISO-8859-13)">
<!ENTITY charsetLatin7.accesskey "n">
<!ENTITY dcharIso14Cmd.label "ISO Latin 8 (ISO-8859-14)">
<!ENTITY charsetLatin8.accesskey "f">
<!ENTITY dcharIso15Cmd.label "ISO Latin 9 (ISO-8859-15)">
<!ENTITY charsetLatin9.accesskey "9">
<!ENTITY dcharWinLat2Cmd.label "Windows Latin 2 (windows-1250)">
<!ENTITY charsetWinLatin2.accesskey "0">
<!ENTITY dcharWinLat1Cmd.label "Windows Latin 1 (windows-1252)">
<!ENTITY charsetWinLatin1.accesskey "d">
<!ENTITY dcharWinLat5Cmd.label "Windows Latin 5 (windows-1254)">
<!ENTITY charsetWinLatin5.accesskey "o">
<!ENTITY dcharWinBalRimCmd.label "Windows Baltic (windows-1257)">
<!ENTITY charsetWinBaltic.accesskey "b">
<!ENTITY dcharMacRomCmd.label "Macintosh Roman">
<!ENTITY charsetMacRoman.accesskey "m">
<!ENTITY dcharMacCenEuroCmd.label "Macintosh Central European">
<!ENTITY charsetMacCentralEurope.accesskey "e">
<!ENTITY dcharMacTurCmd.label "Macintosh Turkish">
<!ENTITY charsetMacTurkish.accesskey "xxx">
<!ENTITY dcharMacCroaCmd.label "Macintosh Croatian">
<!ENTITY charsetMacCroatian.accesskey "c">
<!ENTITY dcharMacRomanianCmd.label "Macintosh Romanian">
<!ENTITY charsetMacRomanian.accesskey "xxx">
<!ENTITY dcharMacIceCmd.label "Macintosh Icelandic">
<!ENTITY charsetMacIcelandic.accesskey "i">
<!ENTITY dcharJapanCmd.label "Japanese JIS (ISO-2022-JP)">
<!ENTITY charsetJIS.accesskey "j">
<!ENTITY dcharJapanShiftjsCmd.label "Japanese (Shift_JIS)">
<!ENTITY charsetshiftJIS.accesskey "s">
<!ENTITY dcharJapanEucCmd.label "Japanese (EUC-JP)">
<!ENTITY charsetJapaneseEUC.accesskey "p">
<!ENTITY dcharTradChiBigCmd.label "Traditional Chinese (Big5)">
<!ENTITY charsetChineseBig5.accesskey "5">
<!ENTITY dcharTriChiEucCmd.label "Traditional Chinese (EUC-TW)">
<!ENTITY charsetChineseEUC.accesskey "xxx">
<!ENTITY dcharSimpChiGbCmd.label "Simplified Chinese (GB2312)">
<!ENTITY charsetChineseSimplified.accesskey "f">
<!ENTITY dcharKoreanCmd.label "Korean (EUC-KR)">
<!ENTITY charsetKorean.accesskey "k">
<!ENTITY dcharUtf7Cmd.label "Multilingual (UTF-7)">
<!ENTITY charsetUTF7.accesskey "7">
<!ENTITY dcharUtf8Cmd.label "Multilingual (UTF-8)">
<!ENTITY charsetUTF8.accesskey "8">
<!ENTITY dcharIsoCyrCmd.label "ISO Cyrillic (ISO-8859-5)">
<!ENTITY charsetISOCyrillic.accesskey "y">
<!ENTITY dcharEcmaCyrCmd.label "ECMA Cyrillic (ISO-IR-111)">
<!ENTITY charsetECMACyrillic.accesskey "xxx">
<!ENTITY dcharDosCyrCmd.label "DOS Cyrillic (IBM866)">
<!ENTITY charsetDOSCyrillic.accesskey "d">
<!ENTITY dcharWinCyrCmd.label "Windows Cyrillic (windows-1251)">
<!ENTITY charsetWinCyrillic.accesskey "xxx">
<!ENTITY dcharMacCyrCmd.label "Macintosh Cyrillic">
<!ENTITY charsetMacCyrillic.accesskey "xxx">
<!ENTITY dcharMacUkrCmd.label "Macintosh Ukrainian">
<!ENTITY charsetMacUkrainian.accesskey "xxx">
<!ENTITY dcharRusCmd.label "Russian (KOI8-R)">
<!ENTITY charsetRussian.accesskey "r">
<!ENTITY dcharUkrCmd.label "Ukrainian (KOI8-U)">
<!ENTITY charsetUkrainian.accesskey "u">
<!ENTITY dcharIsoGreekCmd.label "ISO Greek (ISO-8859-7)">
<!ENTITY charsetGreek.accesskey "g">
<!ENTITY dcharWinGreekCmd.label "Windows Greek (windows-1253)">
<!ENTITY charsetWinGreek.accesskey "xxx">
<!ENTITY dcharMacGreekCmd.label "Macintosh Greek">
<!ENTITY charsetMacGreek.accesskey "xxx">
<!ENTITY dcharWinVietCmd.label "Windows Vietnamese (windows-1258)">
<!ENTITY charsetWinVietnamese.accesskey "v">
<!ENTITY dcharVietTcnCmd.label "Vietnamese (TCVN5712)">
<!ENTITY charsetVietnameseTCN.accesskey "xxx">
<!ENTITY dcharVietViCmd.label "Vietnamese (VISCII)">
<!ENTITY charsetVietnameseVIS.accesskey "xxx">
<!ENTITY dcharVieVpCmd.label "Vietnamese (VPS)">
<!ENTITY charsetVietnameseVPS.accesskey "xxx">
<!ENTITY dcharThaiCmd.label "Thai (TIS-620)">
<!ENTITY charsetThai.accesskey "t">
<!ENTITY dcharArmCmd.label "Armenian (ARMSCII-8)">
<!ENTITY charsetArmenian.accesskey "a">
<!ENTITY dcharIso6Cmd.label ".ISO Arabic (ISO-8859-6)">
<!ENTITY charsetArabic.accesskey "6">
<!ENTITY dcharIso8Cmd.label ".ISO Hebrew (ISO-8859-8)">
<!ENTITY charsetHebrew.accesskey "h">
<!ENTITY dcharCp1255Cmd.label "Windows Hebrew (windows-1255)">
<!ENTITY charsetWinHebrew.accesskey "w">
<!ENTITY dcharCp1256Cmd.label "Windows Arabic (windows-1256)">
<!ENTITY charsetWinArabic.accesskey "xxx">
<!-- Insert menu items -->
<!ENTITY insertMenu.label "Insert">
<!ENTITY insertmenu.accesskey "i">
<!ENTITY insertLinkCmd.label "Link...">
<!ENTITY insertTargetCmd.label ".Target...">
<!ENTITY insertlink.accesskey "l">
<!ENTITY insertAnchorCmd.label "Named Anchor...">
<!ENTITY insertanchor.accesskey "a">
<!ENTITY insertImageCmd.label "Image...">
<!ENTITY insertimage.accesskey "i">
<!ENTITY insertHLineCmd.label "Horizontal Line">
<!ENTITY inserthline.accesskey "h">
<!ENTITY insertTableCmd.label "Table...">
<!ENTITY inserttable.accesskey "t">
<!ENTITY insertHTMLSourceCmd.label "HTML Source...">
<!ENTITY insertsource.accesskey "s">
<!ENTITY insertLineBreakCmd.label ".Line Break">
<!ENTITY insertlinebreak.accesskey "n">
<!ENTITY insertBreakBelowImagesCmd.label ".Break Below Image(s)">
<!ENTITY insertbreak.accesskey "b">
<!-- Format Menu -->
<!-- Font Face SubMenu -->
<!ENTITY fontfaceMenu.label "Font Face">
<!ENTITY formatfontmenu.accesskey "f">
<!ENTITY defaultVariableWidthCmd.label "Default Variable Width">
<!ENTITY fontvarwidth.accesskey "v">
<!ENTITY defaultFixedWidthCmd.label "Default Fixed Width">
<!ENTITY fontfixedwidth.accesskey "x">
<!ENTITY arialHelveticaFont.label "Arial, Helvetica">
<!ENTITY fonthelvetica.accesskey "l">
<!ENTITY timesFont.label "Times">
<!ENTITY fonttimes.accesskey "t">
<!ENTITY courierFont.label "Courier">
<!ENTITY fontcourier.accesskey "c">
<!-- Font Size SubMenu -->
<!ENTITY fontsizeMenu.label "Size">
<!ENTITY formatsizemenu.accesskey "s">
<!ENTITY sizeMinusTwoCmd.label " -2">
<!ENTITY sizeminus2.accesskey "-">
<!ENTITY sizeMinusOneCmd.label " -1 (smaller)">
<!ENTITY sizeminus1.accesskey "s">
<!ENTITY sizeNormalCmd.label " Normal">
<!ENTITY sizenormal.accesskey "n">
<!ENTITY sizePlusOneCmd.label " +1 (bigger)">
<!ENTITY size1.accesskey "1">
<!ENTITY sizePlusTwoCmd.label " +2">
<!ENTITY size2.accesskey "2">
<!ENTITY sizePlusThreeCmd.label " +3">
<!ENTITY size3.accesskey "3">
<!ENTITY sizePlusFourCmd.label " +4">
<!ENTITY size4.accesskey "4">
<!-- Font Style SubMenu -->
<!ENTITY fontStyleMenu.label "Style">
<!ENTITY formatstylemenu.accesskey "t">
<!ENTITY styleBoldCmd.label "Bold">
<!ENTITY stylebold.accesskey "b">
<!ENTITY styleItalicCmd.label "Italic">
<!ENTITY styleitalic.accesskey "i">
<!ENTITY styleUnderlineCmd.label "Underline">
<!ENTITY styleunderline.accesskey "u">
<!ENTITY styleStrikeThruCmd.label "Strikethrough">
<!ENTITY stylestrikethru.accesskey "k">
<!ENTITY styleSuperscriptCmd.label "Superscript">
<!ENTITY stylesuperscript.accesskey "p">
<!ENTITY styleSubscriptCmd.label "Subscript">
<!ENTITY stylesubscript.accesskey "s">
<!ENTITY styleBlinkCmd.label "Blink">
<!ENTITY styleblink.accesskey "l">
<!ENTITY styleNonbreakingCmd.label "Nonbreaking">
<!ENTITY stylenonbreaking.accesskey "n">
<!ENTITY fontColorMenu.label "Text Color">
<!ENTITY formatcolormenu.accesskey "c">
<!ENTITY colorBlackCmd.label "Black">
<!ENTITY colorblack.accesskey "l">
<!ENTITY colorGrayCmd.label "Gray">
<!ENTITY colorgray.accesskey "a">
<!ENTITY colorSilverCmd.label "Silver">
<!ENTITY colorsilver.accesskey "s">
<!ENTITY colorWhiteCmd.label "White">
<!ENTITY colorwhite.accesskey "w">
<!ENTITY colorRedCmd.label "Red">
<!ENTITY colorred.accesskey "r">
<!ENTITY colorBlueCmd.label "Blue">
<!ENTITY colorblue.accesskey "b">
<!ENTITY colorGreenCmd.label "Green">
<!ENTITY colorgreen.accesskey "g">
<!ENTITY colorCyanCmd.label "Cyan">
<!ENTITY colorcyan.accesskey "c">
<!ENTITY colorYellowCmd.label "Yellow">
<!ENTITY coloryellow.accesskey "y">
<!ENTITY colorMagentaCmd.label "Magenta">
<!ENTITY colormagenta.accesskey "m">
<!ENTITY backgroundColorMenu.label "Background Color">
<!ENTITY formatbkgdcolormenu.accesskey "b">
<!ENTITY removeAllStylesCmd.label "Remove All Styles">
<!ENTITY formatremovestyles.accesskey "r">
<!ENTITY removeLinksCmd.label "Remove Link(s)">
<!ENTITY formatremovelinks.accesskey "m">
<!ENTITY headingMenu.label "Heading">
<!ENTITY formatheadingmenu.accesskey "h">
<!ENTITY headingNormalCmd.label "Normal">
<!ENTITY headingnone.accesskey "n">
<!ENTITY headingOneCmd.label "Heading 1">
<!ENTITY heading1.accesskey "1">
<!ENTITY headingTwoCmd.label "Heading 2">
<!ENTITY heading2.accesskey "2">
<!ENTITY headingThreeCmd.label "Heading 3">
<!ENTITY heading3.accesskey "3">
<!ENTITY headingFourCmd.label "Heading 4">
<!ENTITY heading4.accesskey "4">
<!ENTITY headingFiveCmd.label "Heading 5">
<!ENTITY heading5.accesskey "5">
<!ENTITY headingSixCmd.label "Heading 6">
<!ENTITY heading6.accesskey "6">
<!ENTITY paragraphMenu.label "Paragraph">
<!ENTITY formatparagraphmenu.accesskey "p">
<!ENTITY paragraphNormalCmd.label "Normal">
<!ENTITY paragraphnormal.accesskey "n">
<!ENTITY paragraphBlockquoteCmd.label "Blockquote">
<!ENTITY paragraphblockquote.accesskey "b">
<!ENTITY paragraphAddressCmd.label "Address">
<!ENTITY paragraphaddress.accesskey "a">
<!ENTITY paragraphPreformatCmd.label "Preformat">
<!ENTITY paragraphpreformat.accesskey "p">
<!ENTITY paragraphListCmd.label "List item">
<!ENTITY paragraphlist.accesskey "l">
<!ENTITY paragraphDfnTermCmd.label "Definition term">
<!ENTITY paragraphterm.accesskey "t">
<!ENTITY paragraphDfnDescCmd.label "Definition description">
<!ENTITY paragraphdesc.accesskey "d">
<!-- List menu items -->
<!ENTITY listMenu.label "List">
<!ENTITY listProps.label "List">
<!ENTITY formatlistmenu.accesskey "l">
<!ENTITY listNoneCmd.label "None">
<!ENTITY listnone.accesskey "o">
@ -197,24 +337,55 @@
<!-- Align items shared with popup above -->
<!ENTITY stylesheetMenu.label "Apply Style Sheet">
<!ENTITY formatstylesheetmenu.accesskey "e">
<!ENTITY stylesheetEditorOneCmd.label "Editor Styles 1">
<!ENTITY sseditor1.accesskey "1">
<!ENTITY stylesheetOldstyleCmd.label "Oldstyle">
<!ENTITY ssoldstyle.accesskey "o">
<!ENTITY stylesheetModernistCmd.label "Modernist">
<!ENTITY ssmodernist.accesskey "m">
<!ENTITY stylesheetMidnightCmd.label "Midnight">
<!ENTITY ssmidnight.accesskey "n">
<!ENTITY stylesheetUltramarineCmd.label "Ultramarine">
<!ENTITY ssultramarine.accesskey "u">
<!ENTITY stylesheetChocolateCmd.label "Chocolate">
<!ENTITY sschocolate.accesskey "c">
<!ENTITY stylesheetSteelyCmd.label "Steely">
<!ENTITY sssteely.accesskey "s">
<!-- Table Menu -->
<!-- Insert SubMenu -->
<!ENTITY tableInsertMenu.label "Insert">
<!ENTITY tableinsertmenu.accesskey "i">
<!ENTITY tableTable.label "Table">
<!ENTITY tabletable.accesskey "t">
<!ENTITY tableRow.label ".Row">
<!ENTITY tablerow.accesskey "r">
<!ENTITY tableColumn.label "Column">
<!ENTITY tablecolumn.accesskey "o">
<!ENTITY tableCell.label "Cell">
<!ENTITY tablecell.accesskey "c">
<!ENTITY tableCellBefore.label "Cell before">
<!-- uses tablecell.accesskey -->
<!ENTITY tableCellAfter.label "Cell after">
<!ENTITY tablecellafter.accesskey "a">
<!-- Delete SubMenu -->
<!ENTITY tableDeleteMenu.label "Delete">
<!ENTITY tabledeletemenu.accesskey "d">
<!ENTITY tableJoinCells.label ".Join Cells">
<!ENTITY tablejoin.accesskey "j">
<!-- These may be shared in other menus -->
<!ENTITY properties.label "Properties...">
<!ENTITY properties.accesskey "p">
<!-- Tools Menu -->
<!ENTITY toolsmenu.accesskey "l">
<!ENTITY toolbrowser.accesskey "b">
<!ENTITY toolplaineditor.accesskey "p">
<!ENTITY toolsetfocus.accesskey "f">
<!-- debug menu items -->
<!ENTITY debugMenu.label "Debug">
@ -284,172 +455,5 @@
<!ENTITY alignRight.label "Right">
<!ENTITY alignJustify.label "Justify">
<!-- KEYBOARD AND MENU MAPPING -->
<!ENTITY filemenu.accesskey "f">
<!ENTITY filenew.accesskey "n">
<!ENTITY fileopen.accesskey "o">
<!ENTITY filesave.accesskey "s">
<!ENTITY filesaveas.accesskey "a">
<!ENTITY fileprintsetup.accesskey "t">
<!ENTITY fileprintpreview.accesskey "r">
<!ENTITY fileprint.accesskey "p">
<!ENTITY fileclose.accesskey "c">
<!ENTITY fileexit.accesskey "q">
<!ENTITY editmenu.accesskey "e">
<!ENTITY editundo.accesskey "u">
<!ENTITY editredo.accesskey "r">
<!ENTITY editcut.accesskey "x">
<!ENTITY editcopy.accesskey "c">
<!ENTITY editpaste.accesskey "v">
<!ENTITY editpastequotation.accesskey "q">
<!ENTITY editclear.accesskey "l">
<!ENTITY editselectall.accesskey "a">
<!ENTITY editfind.accesskey "f">
<!ENTITY editfindnext.accesskey "n">
<!ENTITY viewcompositiontb.accesskey "c">
<!ENTITY viewformattingtb.accesskey "f">
<!ENTITY viewpagesource.accesskey "7">
<!ENTITY viewcharsetmenu.accesskey "s">
<!ENTITY charsetLatin1.accesskey "l">
<!ENTITY charsetLatin2.accesskey "2">
<!ENTITY charsetLatin3.accesskey "3">
<!ENTITY charsetLatin4.accesskey "4">
<!ENTITY charsetLatin5.accesskey "9">
<!ENTITY charsetLatin6.accesskey "1">
<!ENTITY charsetLatin7.accesskey "n">
<!ENTITY charsetLatin8.accesskey "f">
<!ENTITY charsetLatin9.accesskey "9">
<!ENTITY charsetWinLatin2.accesskey "0">
<!ENTITY charsetWinLatin1.accesskey "d">
<!ENTITY charsetWinLatin5.accesskey "o">
<!ENTITY charsetWinBaltic.accesskey "b">
<!ENTITY charsetMacRoman.accesskey "m">
<!ENTITY charsetMacCentralEurope.accesskey "e">
<!ENTITY charsetMacTurkish.accesskey "xxx">
<!ENTITY charsetMacCroatian.accesskey "c">
<!ENTITY charsetMacRomanian.accesskey "xxx">
<!ENTITY charsetMacIcelandic.accesskey "i">
<!ENTITY charsetJIS.accesskey "j">
<!ENTITY charsetshiftJIS.accesskey "s">
<!ENTITY charsetJapaneseEUC.accesskey "p">
<!ENTITY charsetChineseBig5.accesskey "5">
<!ENTITY charsetChineseEUC.accesskey "xxx">
<!ENTITY charsetChineseSimplified.accesskey "f">
<!ENTITY charsetKorean.accesskey "k">
<!ENTITY charsetUTF7.accesskey "7">
<!ENTITY charsetUTF8.accesskey "8">
<!ENTITY charsetISOCyrillic.accesskey "y">
<!ENTITY charsetECMACyrillic.accesskey "xxx">
<!ENTITY charsetDOSCyrillic.accesskey "d">
<!ENTITY charsetWinCyrillic.accesskey "xxx">
<!ENTITY charsetMacCyrillic.accesskey "xxx">
<!ENTITY charsetMacUkrainian.accesskey "xxx">
<!ENTITY charsetRussian.accesskey "r">
<!ENTITY charsetUkrainian.accesskey "u">
<!ENTITY charsetGreek.accesskey "g">
<!ENTITY charsetWinGreek.accesskey "xxx">
<!ENTITY charsetMacGreek.accesskey "xxx">
<!ENTITY charsetWinVietnamese.accesskey "v">
<!ENTITY charsetVietnameseTCN.accesskey "xxx">
<!ENTITY charsetVietnameseVIS.accesskey "xxx">
<!ENTITY charsetVietnameseVPS.accesskey "xxx">
<!ENTITY charsetThai.accesskey "t">
<!ENTITY charsetArmenian.accesskey "a">
<!ENTITY charsetArabic.accesskey "6">
<!ENTITY charsetHebrew.accesskey "h">
<!ENTITY charsetWinHebrew.accesskey "w">
<!ENTITY charsetWinArabic.accesskey "xxx">
<!-- not using qxz -->
<!ENTITY insertmenu.accesskey "i">
<!ENTITY insertlink.accesskey "l">
<!ENTITY inserttarget.accesskey "r">
<!ENTITY insertimage.accesskey "i">
<!ENTITY inserthline.accesskey "h">
<!ENTITY inserttable.accesskey "t">
<!ENTITY insertsource.accesskey "s">
<!ENTITY insertlinebreak.accesskey "n">
<!ENTITY insertbreak.accesskey "b">
<!ENTITY formatfontmenu.accesskey "f">
<!ENTITY fontvarwidth.accesskey "v">
<!ENTITY fontfixedwidth.accesskey "f">
<!ENTITY fonthelvetica.accesskey "l">
<!ENTITY fonttimes.accesskey "t">
<!ENTITY fontcourier.accesskey "c">
<!ENTITY formatsizemenu.accesskey "s">
<!ENTITY sizeminus2.accesskey "-">
<!ENTITY sizeminus1.accesskey "s">
<!ENTITY sizenormal.accesskey "0">
<!ENTITY size1.accesskey "1">
<!ENTITY size2.accesskey "2">
<!ENTITY size3.accesskey "3">
<!ENTITY size4.accesskey "4">
<!ENTITY formatstylemenu.accesskey "t">
<!ENTITY stylebold.accesskey "b">
<!ENTITY styleitalic.accesskey "i">
<!ENTITY styleunderline.accesskey "u">
<!ENTITY stylestrikethru.accesskey "k">
<!ENTITY stylesuperscript.accesskey "p">
<!ENTITY stylesubscript.accesskey "s">
<!ENTITY styleblink.accesskey "l">
<!ENTITY stylenonbreaking.accesskey "n">
<!ENTITY formatcolormenu.accesskey "c">
<!ENTITY formatbkgdcolormenu.accesskey "b">
<!ENTITY colorblack.accesskey "l">
<!ENTITY colorgray.accesskey "a">
<!ENTITY colorsilver.accesskey "s">
<!ENTITY colorwhite.accesskey "w">
<!ENTITY colorred.accesskey "r">
<!ENTITY colorblue.accesskey "b">
<!ENTITY colorgreen.accesskey "g">
<!ENTITY colorcyan.accesskey "c">
<!ENTITY coloryellow.accesskey "y">
<!ENTITY colormagenta.accesskey "m">
<!ENTITY formatremovestyles.accesskey "r">
<!ENTITY formatremovelinks.accesskey "m">
<!ENTITY formatheadingmenu.accesskey "h">
<!ENTITY headingnone.accesskey "n">
<!ENTITY heading1.accesskey "1">
<!ENTITY heading2.accesskey "2">
<!ENTITY heading3.accesskey "3">
<!ENTITY heading4.accesskey "4">
<!ENTITY heading5.accesskey "5">
<!ENTITY heading6.accesskey "6">
<!ENTITY formatparagraphmenu.accesskey "p">
<!ENTITY paragraphnormal.accesskey "n">
<!ENTITY paragraphblockquote.accesskey "b">
<!ENTITY paragraphaddress.accesskey "a">
<!ENTITY paragraphpreformat.accesskey "p">
<!ENTITY paragraphlist.accesskey "l">
<!ENTITY paragraphterm.accesskey "t">
<!ENTITY paragraphdesc.accesskey "d">
<!ENTITY formatstylesheetmenu.accesskey "e">
<!ENTITY sseditorcontent.accesskey "e">
<!ENTITY sseditor1.accesskey "1">
<!ENTITY ssoldstyle.accesskey "o">
<!ENTITY ssmodernist.accesskey "m">
<!ENTITY ssmidnight.accesskey "n">
<!ENTITY ssultramarine.accesskey "u">
<!ENTITY sschocolate.accesskey "c">
<!ENTITY sssteely.accesskey "s">
<!ENTITY tableinsertmenu.accesskey "i">
<!ENTITY tabledeletemenu.accesskey "d">
<!ENTITY tabletable.accesskey "t">
<!ENTITY tablerow.accesskey "r">
<!ENTITY tablecolumn.accesskey "o">
<!ENTITY tablecell.accesskey "c">
<!ENTITY tablejoin.accesskey "j">
<!ENTITY tableproperties.accesskey "p">
<!ENTITY toolsmenu.accesskey "l">
<!ENTITY toolbrowser.accesskey "b">
<!ENTITY toolplaineditor.accesskey "p">
<!ENTITY toolsetfocus.accesskey "f">
<!ENTITY tempNotification.label "Some random notification">
<!ENTITY tempDoneLoading.label "Document: Done">

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

@ -63,6 +63,7 @@ function StringExists(string)
function ClearList(list)
{
list.selectedIndex = -1;
for( i = (list.length-1); i >= 0; i-- ) {
list.remove(i);
}
@ -99,8 +100,14 @@ function ReplaceStringInList(list, index, string)
}
}
function AppendStringToListByID(list, stringID)
{
AppendStringToList(list, editorShell.GetString(stringID));
}
function AppendStringToList(list, string)
{
dump("**** Append String = "+string+"\n");
// THIS DOESN'T WORK! Result is a XULElement -- namespace problem
//optionNode1 = document.createElement("option");
@ -117,6 +124,11 @@ function AppendStringToList(list, string)
}
}
/*
It would be better to add method to Select object, but what is its name?
SELECT and HTMLSELECT don't work!
*/
// "value" may be a number or string type
function ValidateNumberString(value, minValue, maxValue)
@ -133,7 +145,7 @@ function ValidateNumberString(value, minValue, maxValue)
return number + "";
}
}
message = GetString("ValidateNumber1")+number+GetString("ValidateNumber2")+" "+minValue+" "+GetString("ValidateNumber3")+" "+maxValue;
message = editorShell.GetString("ValidateNumber1")+number+editorShell.GetString("ValidateNumber2")+" "+minValue+" "+editorShell.GetString("ValidateNumber3")+" "+maxValue;
ShowInputErrorMessage(message);
// Return an empty string to indicate error
@ -143,7 +155,8 @@ function ValidateNumberString(value, minValue, maxValue)
function ShowInputErrorMessage(message)
{
window.openDialog("chrome://editor/content/EdMessage.xul", "MsgDlg", "chrome,close,titlebar,modal", "", message, "Input Error");
dump("ShowInputErrorMessage:"+message+"[end]\n");
window.openDialog("chrome://editor/content/EdMessage.xul", "_blank", "chrome,close,titlebar,modal", "", message, "Input Error");
}
function GetString(name)
@ -174,12 +187,9 @@ String.prototype.trimString = function() {
return this.replace(/(^\s+)|(\s+$)/g, '')
}
function IsWhitespace(character)
function IsWhitespace(string)
{
var result = character.match(/\s/);
if (result == null)
return false;
return true;
return /^\s/.test(string);
}
function TruncateStringAtWordEnd(string, maxLength, addEllipses)

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

@ -194,12 +194,11 @@ function ValidateData()
function onOK()
{
// Since we only edit existing HLines,
// ValidateData will set the new attributes
// so there's nothing else to do
var res = ValidateData();
// Copy attributes from the globalElement to the document element
if (res)
if (ValidateData())
{
// Copy attributes from the globalElement to the document element
editorShell.CloneAttributes(hLineElement, globalElement);
return (ValidateData(true));
return true;
}
return false;
}

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

@ -68,7 +68,6 @@
onkeypress="forceInteger('width')" />
</td>
<td>
<!-- EXPOSE THIS TO SHOW POPUP MENU IN A DIALOG
<xul:menu>
<xul:titledbutton class="popup" id="pixelOrPercentButton" align="right" value="&percentPopup.value;"/>
<xul:menupopup id="PixelOrPercentMenu">
@ -76,7 +75,6 @@
<xul:menuitem value="&percentPopup.value;" oncommand="SetPixelOrPercentByID('pixelOrPercentButton', '%')"/>
</xul:menupopup>
</xul:menu>
-->
</td>
</tr>
</table>
@ -86,9 +84,9 @@
<tr>
<td colspan="2">
<fieldset><legend align="left">&alignmentFieldset.label;</legend>
<label><input type="radio" name="HRuleAlign" id="leftAlign"/>&leftPopup.value;</label>
<label><input type="radio" name="HRuleAlign" id="centerAlign"/>&centerPopup.value;</label>
<label><input type="radio" name="HRuleAlign" id="rightAlign"/>&rightPopup.value;</label>
<label><input type="radio" name="Align" id="leftAlign"/>&leftPopup.value;</label>
<label><input type="radio" name="Align" id="centerAlign"/>&centerPopup.value;</label>
<label><input type="radio" name="Align" id="rightAlign"/>&rightPopup.value;</label>
</fieldset>
</td>
</tr>

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

@ -24,6 +24,14 @@
//Cancel() is in EdDialogCommon.js
var insertNew = true;
var tagname = "TAG NAME"
var ListStyleList;
var BulletStyleList;
var BulletStyleLabel;
var StartingNumberInput;
var StartingNumberLabel;
var BulletStyleIndex = 0;
var NumberStyleIndex = 0;
var ListStyle = "";
// dialog initialization code
function Startup()
@ -33,46 +41,131 @@ function Startup()
doSetOKCancel(onOK, null);
// Create dialog object to store controls for easy access
dialog = new Object;
// GET EACH CONTROL -- E.G.:
//dialog.editBox = document.getElementById("editBox");
ListStyleList = document.getElementById("ListStyle");
BulletStyleList = document.getElementById("BulletStyle");
BulletStyleLabel = document.getElementById("BulletStyleLabel");
StartingNumberInput = document.getElementById("StartingNumber");
StartingNumberLabel = document.getElementById("StartingNumberLabel");
initDialog();
// SET FOCUS TO FIRST CONTROL
//dialog.editBox.focus();
InitDialog();
ListStyleList.focus();
}
function InitDialog() {
// Get a single selected element of the desired type
element = editorShell.GetSelectedElement(tagName);
if (element) {
// We found an element and don't need to insert one
insertNew = false;
dump("Found existing image\n");
} else {
insertNew = true;
// We don't have an element selected,
// so create one with default attributes
dump("Element not selected - calling createElementWithDefaults\n");
element = appCore.createElementWithDefaults(tagName);
}
function InitDialog()
{
//TODO: Get the current list style and set in ListStyle variable
ListStyle = "ul";
BuildBulletStyleList();
/*
if(!element)
{
dump("Failed to get selected element or create a new one!\n");
window.close();
}
*/
}
function BuildBulletStyleList()
{
// Put methods on the object if I can figure out its name!
// (SELECT and HTMLSelect don't work!)
//BulletStyleList.clear();
ClearList(BulletStyleList);
var label = "";
var selectedIndex = -1;
if (ListStyle == "ul")
{
BulletStyleList.removeAttribute("disabled");
BulletStyleLabel.removeAttribute("disabled");
StartingNumberInput.setAttribute("disabled", "true");
StartingNumberLabel.setAttribute("disabled", "true");
label = GetString("BulletStyle");
AppendStringToListByID(BulletStyleList,"SolidCircle");
AppendStringToListByID(BulletStyleList,"OpenCircle");
AppendStringToListByID(BulletStyleList,"OpenSquare");
BulletStyleList.selectedIndex = BulletStyleIndex;
ListStyleList.selectedIndex = 1;
} else if (ListStyle == "ol")
{
BulletStyleList.removeAttribute("disabled");
BulletStyleLabel.removeAttribute("disabled");
StartingNumberInput.removeAttribute("disabled");
StartingNumberLabel.removeAttribute("disabled");
label = GetString("NumberStyle");
AppendStringToListByID(BulletStyleList,"Style_1");
AppendStringToListByID(BulletStyleList,"Style_I");
AppendStringToListByID(BulletStyleList,"Style_i");
AppendStringToListByID(BulletStyleList,"Style_A");
AppendStringToListByID(BulletStyleList,"Style_a");
BulletStyleList.selectedIndex = NumberStyleIndex;
ListStyleList.selectedIndex = 2;
} else {
BulletStyleList.setAttribute("disabled", "true");
BulletStyleLabel.setAttribute("disabled", "true");
StartingNumberInput.setAttribute("disabled", "true");
StartingNumberLabel.setAttribute("disabled", "true");
if (ListStyle == "dl")
ListStyleList.selectedIndex = 3;
else
ListStyleList.selectedIndex = 0;
}
if (label)
{
if (BulletStyleLabel.hasChildNodes())
BulletStyleLabel.removeChild(BulletStyleLabel.firstChild);
var textNode = document.createTextNode(label);
BulletStyleLabel.appendChild(textNode);
}
}
function SelectListStyle()
{
switch (ListStyleList.selectedIndex)
{
case 1:
ListStyle = "ul";
break;
case 2:
ListStyle = "ol";
break;
case 3:
ListStyle = "dl";
break;
default:
ListStyle = "";
}
BuildBulletStyleList();
}
// Save the selected index
function SelectBulleStyle()
{
if (ListStyle == "ul")
BulletStyleIndex = BulletStyleList.selectedIndex;
else if (ListStyle == "ol")
NumberStyleIndex = BulletStyleList.selectedIndex;
}
function ValidateData()
{
return true;
}
function onOK()
{
// Set attribute example:
// imageElement.setAttribute("src",dialog.srcInput.value);
if (insertNew) {
editorShell.InsertElement(element, false);
if (ValidateData())
{
// Set the list attributes
return true;
}
return true; // do close the window
return false;
}

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

@ -28,8 +28,7 @@
<?xul-overlay href="chrome://global/content/dialogOverlay.xul"?>
<?xul-overlay href="chrome://editor/content/EdDialogOverlay.xul"?>
<!DOCTYPE window SYSTEM "chrome://editor/locale/EditorHLineProperties.dtd">
<!-- dialog containing a control requiring initial setup -->
<!DOCTYPE window SYSTEM "chrome://editor/locale/EditorListProperties.dtd">
<xul:window class="dialog" title="&windowTitle.label;"
xmlns:xul ="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns="http://www.w3.org/TR/REC-html40"
@ -37,31 +36,35 @@
align="vertical">
<!-- Methods common to all editor dialogs -->
<script language="JavaScript" src="chrome://editor/content/EdDialogCommon.js">
</script>
<script language="JavaScript" src="chrome://editor/content/EdListProps.js">
</script>
<script language="JavaScript" src="chrome://editor/content/EdDialogCommon.js"/>
<script language="JavaScript" src="chrome://editor/content/EdListProps.js"/>
<script language="JavaScript" src="chrome://global/content/dialogOverlay.js" />
<xul:menu>
<fieldset><legend align="left">&listStyle.label;</legend>
<xul:menu>
<!-- text on this button is set in JavaScript ->
<xul:titledbutton class="popup" id="ListStyleButton" align="right"/>
<xul:menupopup id="PixelOrPercentMenu">
<xul:menuitem value="&numberedList.value;" oncommand="SetListStyle('pixelOrPercentButton', '')"/>
</xul:menupopup>
</xul:menu>
</fieldset>
<fieldset><legend align="left">&alignmentFieldset.label;</legend>
<label><input type="radio" name="HRuleAlign" id="leftAlign"/>&leftPopup.value;</label>
<label><input type="radio" name="HRuleAlign" id="centerAlign"/>&centerPopup.value;</label>
<label><input type="radio" name="HRuleAlign" id="rightAlign"/>&rightPopup.value;</label>
</fieldset>
<label for="ListStyle">&listStyle.label;</label>
<select class="ComboBox" id="ListStyle" onchange="SelectListStyle()">
<option>&none.value;</option>
<option>&bulletList.value;</option>
<option>&numberList.value;</option>
<option>&definitionList.value;</option>
</select>
<xul:spring class="spacer"/>
<!-- message text and list items are set in JS
bulletStyle.label should be identical to string with id=BulletStyle in editor.properties -->
<div id="BulletStyleLabel">&bulletStyle.label;</div>
<select class="ComboBox" id="BulletStyle" style="min-width: 10em"/>
<xul:spring class="spacer"/>
<xul:box align="horizontal">
<label id="StartingNumberLabel" for="StartingNumber">&startingNumber.label;</label>
<xul:spring class="spacer"/>
<input type="text" id="StartingNumber" size="3"/>
<xul:spring/>
</xul:box>
<xul:broadcaster id="args" value=""/>
<!-- from EdDialogOverlay -->
<xul:box id="advancedEditButton"/>
<!-- from global dialogOverlay -->
<xul:box id="okCancelButtons"/>
</xul:window>

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

@ -40,12 +40,15 @@ function Startup()
if (messageText != "") {
var messageFragment;
// Let the caller use "\n" to cause breaks
// Translate these into <br> tags
// Let the caller use '\n' character or strings "\n" or "<br>"
// to cause line breaks so first convert all to '\n'
// Note: Stringbundle's get string turns "\n" into "n", so use "\\n" or "<br>"
messageText = messageText.replace(/\\n/g,'\n').replace(/<br>/g,'\n');
// Then translate these into <br> tags
done = false;
while (!done) {
breakIndex = messageText.indexOf('\n');
breakIndex = messageText.indexOf("\n");
if (breakIndex == 0) {
// Ignore break at the first character
messageText = messageText.slice(1);

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

@ -25,9 +25,9 @@
<!ENTITY windowTitle.label "List Properties">
<!ENTITY listStyle.label "List Style">
<!ENTITY bulletStyle.label "Bullet Style:">
<!ENTITY startingNumber.label "Starting number:">
<!ENTITY alignmentFieldset.label "Alignment">
<!-- MOVE TO OVERLAY TO SHARE WITH HLINE AND TABLE PROPS -->
<!ENTITY leftPopup.value "Left">
<!ENTITY centerPopup.value "Center">
<!ENTITY rightPopup.value "Right">
<!ENTITY none.value "None (normal paragraph)">
<!ENTITY bulletList.value "Bullet (Unnumbered) List">
<!ENTITY numberList.value "Numbered List">
<!ENTITY definitionList.value "Definition List">

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

@ -183,24 +183,23 @@ titledbutton.MsgButton {
margin: 5px;
}
/* What is this for!
menupopup {
font: inherit;
visibility: hidden;
background-color: #CCCCDD;
background-color: inherit;
color: inherit;
border: 1px white outset;
}
*/
select.combobox {
font-family: Sans-Serif;
font-size: 8pt;
border-top: 2px;
border-left: 4px;
border-right: 2px;
select.ComboBox {
/*
EXPERIMENTAL: This ADDS an outset border,
but doesn't affect inset border of item and trigger button!
border-style: outset;
*/
}
select.SpellCheckList, select.SpellCheckLanguage, input.SpellCheckWord {