зеркало из https://github.com/mozilla/pjs.git
More improvements to insert link and insert image dialogs. Added EdDialogCommon.js, where we should put java script used by all dialogs
This commit is contained in:
Родитель
3ff6ddce37
Коммит
b967b34da5
|
@ -1439,8 +1439,10 @@ nsHTMLEditor::GetSelectedElement(const nsString& aTagName, nsIDOMElement** aRetu
|
||||||
|
|
||||||
iter->Next();
|
iter->Next();
|
||||||
}
|
}
|
||||||
if (!bNodeFound)
|
if (!bNodeFound) {
|
||||||
printf("No nodes of tag name = %s were found in selection\n", aTagName);
|
char TagBuf[50] = "";
|
||||||
|
printf("No nodes of tag name = %s were found in selection\n", aTagName.ToCString(TagBuf, 50));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Should never get here?
|
// Should never get here?
|
||||||
|
@ -1525,7 +1527,20 @@ nsHTMLEditor::InsertElement(nsIDOMElement* aElement, PRBool aDeleteSelection, ns
|
||||||
nsCOMPtr<nsIDOMNode> parentSelectedNode;
|
nsCOMPtr<nsIDOMNode> parentSelectedNode;
|
||||||
PRInt32 offsetOfNewNode;
|
PRInt32 offsetOfNewNode;
|
||||||
|
|
||||||
|
// Clear current selection.
|
||||||
|
// Should put caret at anchor point?
|
||||||
|
if (!aDeleteSelection)
|
||||||
|
{
|
||||||
|
nsCOMPtr<nsIDOMSelection>selection;
|
||||||
|
nsresult res = nsEditor::GetSelection(getter_AddRefs(selection));
|
||||||
|
if (NS_SUCCEEDED(res) && selection)
|
||||||
|
{
|
||||||
|
selection->ClearSelection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
DeleteSelectionAndPrepareToCreateNode(parentSelectedNode, offsetOfNewNode);
|
DeleteSelectionAndPrepareToCreateNode(parentSelectedNode, offsetOfNewNode);
|
||||||
|
|
||||||
if (NS_SUCCEEDED(result))
|
if (NS_SUCCEEDED(result))
|
||||||
{
|
{
|
||||||
nsCOMPtr<nsIDOMNode> newNode = do_QueryInterface(aElement);
|
nsCOMPtr<nsIDOMNode> newNode = do_QueryInterface(aElement);
|
||||||
|
|
|
@ -1439,8 +1439,10 @@ nsHTMLEditor::GetSelectedElement(const nsString& aTagName, nsIDOMElement** aRetu
|
||||||
|
|
||||||
iter->Next();
|
iter->Next();
|
||||||
}
|
}
|
||||||
if (!bNodeFound)
|
if (!bNodeFound) {
|
||||||
printf("No nodes of tag name = %s were found in selection\n", aTagName);
|
char TagBuf[50] = "";
|
||||||
|
printf("No nodes of tag name = %s were found in selection\n", aTagName.ToCString(TagBuf, 50));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Should never get here?
|
// Should never get here?
|
||||||
|
@ -1525,7 +1527,20 @@ nsHTMLEditor::InsertElement(nsIDOMElement* aElement, PRBool aDeleteSelection, ns
|
||||||
nsCOMPtr<nsIDOMNode> parentSelectedNode;
|
nsCOMPtr<nsIDOMNode> parentSelectedNode;
|
||||||
PRInt32 offsetOfNewNode;
|
PRInt32 offsetOfNewNode;
|
||||||
|
|
||||||
|
// Clear current selection.
|
||||||
|
// Should put caret at anchor point?
|
||||||
|
if (!aDeleteSelection)
|
||||||
|
{
|
||||||
|
nsCOMPtr<nsIDOMSelection>selection;
|
||||||
|
nsresult res = nsEditor::GetSelection(getter_AddRefs(selection));
|
||||||
|
if (NS_SUCCEEDED(res) && selection)
|
||||||
|
{
|
||||||
|
selection->ClearSelection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
DeleteSelectionAndPrepareToCreateNode(parentSelectedNode, offsetOfNewNode);
|
DeleteSelectionAndPrepareToCreateNode(parentSelectedNode, offsetOfNewNode);
|
||||||
|
|
||||||
if (NS_SUCCEEDED(result))
|
if (NS_SUCCEEDED(result))
|
||||||
{
|
{
|
||||||
nsCOMPtr<nsIDOMNode> newNode = do_QueryInterface(aElement);
|
nsCOMPtr<nsIDOMNode> newNode = do_QueryInterface(aElement);
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
// dialog initialization code
|
// OnOK(), Undo(), and Cancel() are in EdDialogCommon.js
|
||||||
|
// applyChanges() must be implemented here
|
||||||
|
|
||||||
|
// dialog initialization code
|
||||||
var appCore;
|
var appCore;
|
||||||
var toolkitCore;
|
var toolkitCore;
|
||||||
var insertNew = true;
|
var insertNew = true;
|
||||||
var selectionIsCollapsed = false;
|
var selectionIsCollapsed = false;
|
||||||
var undoCount = 0;
|
var undoCount = 0;
|
||||||
|
|
||||||
function Statup()
|
function Startup()
|
||||||
{
|
{
|
||||||
dump("Doing Character Props Startup...\n");
|
dump("Doing Character Props Startup...\n");
|
||||||
toolkitCore = XPAppCoresManager.Find("ToolkitCore");
|
toolkitCore = XPAppCoresManager.Find("ToolkitCore");
|
||||||
|
@ -24,4 +27,8 @@ function Statup()
|
||||||
dump("EditorAppCore not found!!!\n");
|
dump("EditorAppCore not found!!!\n");
|
||||||
toolkitCore.CloseWindow(window);
|
toolkitCore.CloseWindow(window);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function applyChanges()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
|
@ -7,6 +7,11 @@
|
||||||
xmlns:xul ="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
xmlns:xul ="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||||
onload = "Startup()">
|
onload = "Startup()">
|
||||||
|
|
||||||
|
<!-- Methods common to all editor dialogs -->
|
||||||
|
<script language="JavaScript" src="chrome://editordlgs/content/EdDialogCommon.js">
|
||||||
|
</script>
|
||||||
<html:script language="JavaScript" src="chrome://editordlgs/content/EdCharacterProps.js">
|
<html:script language="JavaScript" src="chrome://editordlgs/content/EdCharacterProps.js">
|
||||||
</html:script>
|
</html:script>
|
||||||
|
|
||||||
|
|
||||||
</xul:window>
|
</xul:window>
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
function onUndo() {
|
||||||
|
if (undoCount > 0)
|
||||||
|
{
|
||||||
|
dump("Undo count = "+undoCount+"\n");
|
||||||
|
undoCount = undoCount - 1;
|
||||||
|
appCore.undo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function onOK() {
|
||||||
|
applyChanges();
|
||||||
|
//toolkitCore.CloseWindow(window);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onCancel() {
|
||||||
|
// Undo all actions performed within the dialog
|
||||||
|
// TODO: We need to suppress reflow/redraw untill all levels are undone
|
||||||
|
while (undoCount > 0) {
|
||||||
|
appCore.undo();
|
||||||
|
}
|
||||||
|
//toolkitCore.CloseWindow(window);
|
||||||
|
}
|
||||||
|
|
|
@ -1,28 +1,94 @@
|
||||||
|
// OnOK(), Undo(), and Cancel() are in EdDialogCommon.js
|
||||||
|
// applyChanges() must be implemented here
|
||||||
|
|
||||||
var appCore;
|
var appCore;
|
||||||
var toolkitCore;
|
var toolkitCore;
|
||||||
var insertNew = true;
|
var insertNew = true;
|
||||||
var selectionIsCollapsed = false;
|
|
||||||
var undoCount = 0;
|
var undoCount = 0;
|
||||||
|
var imageElement;
|
||||||
|
var tagName = "img"
|
||||||
|
|
||||||
// dialog initialization code
|
// dialog initialization code
|
||||||
function Startup()
|
function Startup()
|
||||||
{
|
{
|
||||||
dump("Doing Startup...\n");
|
dump("Doing Startup...\n");
|
||||||
toolkitCore = XPAppCoresManager.Find("ToolkitCore");
|
toolkitCore = XPAppCoresManager.Find("ToolkitCore");
|
||||||
if (!toolkitCore) {
|
if (!toolkitCore) {
|
||||||
toolkitCore = new ToolkitCore();
|
toolkitCore = new ToolkitCore();
|
||||||
if (toolkitCore)
|
if (toolkitCore)
|
||||||
toolkitCore.Init("ToolkitCore");
|
toolkitCore.Init("ToolkitCore");
|
||||||
}
|
}
|
||||||
if(!toolkitCore) {
|
if(!toolkitCore) {
|
||||||
dump("toolkitCore not found!!! And we can't close the dialog!\n");
|
dump("toolkitCore not found!!! And we can't close the dialog!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
// NEVER create an appcore here - we must find parent editor's
|
// NEVER create an appcore here - we must find parent editor's
|
||||||
appCore = XPAppCoresManager.Find("EditorAppCoreHTML");
|
appCore = XPAppCoresManager.Find("EditorAppCoreHTML");
|
||||||
if(!appCore || !toolkitCore) {
|
if(!appCore || !toolkitCore) {
|
||||||
dump("EditorAppCore not found!!!\n");
|
dump("EditorAppCore not found!!!\n");
|
||||||
toolkitCore.CloseWindow(window);
|
toolkitCore.CloseWindow(window);
|
||||||
}
|
}
|
||||||
dump("EditorAppCore found for Image Properties dialog\n");
|
dump("EditorAppCore found for Image Properties dialog\n");
|
||||||
|
|
||||||
|
// Create dialog object to store controls for easy access
|
||||||
|
dialog = new Object;
|
||||||
|
// This is the "combined" widget:
|
||||||
|
dialog.Src = document.getElementById("image.Src");
|
||||||
|
// Can we get at just the edit field?
|
||||||
|
fileChild = dialog.Src.firstChild;
|
||||||
|
if (fileChild)
|
||||||
|
{
|
||||||
|
dump("*** fileInput control has a child\n");
|
||||||
|
} else {
|
||||||
|
dump("*** fileInput control has NO child\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
dialog.AltText = document.getElementById("image.AltText");
|
||||||
|
if (null == dialog.Src ||
|
||||||
|
null == dialog.AltText )
|
||||||
|
{
|
||||||
|
dump("Not all dialog controls were found!!!\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
initDialog();
|
||||||
|
|
||||||
|
dialog.Src.focus();
|
||||||
|
if (fileChild)
|
||||||
|
fileChild.focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function initDialog() {
|
||||||
|
// Get a single selected anchor element
|
||||||
|
imageElement = appCore.getSelectedElement(tagName);
|
||||||
|
|
||||||
|
if (imageElement) {
|
||||||
|
// 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");
|
||||||
|
imageElement = appCore.createElementWithDefaults(tagName);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!imageElement)
|
||||||
|
{
|
||||||
|
dump("Failed to get selected element or create a new one!\n");
|
||||||
|
//toolkitCore.CloseWindow(window);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function applyChanges()
|
||||||
|
{
|
||||||
|
// TODO: BE SURE Src AND AltText are completed!
|
||||||
|
imageElement.setAttribute("src",dialog.Src.value);
|
||||||
|
// We must convert to "file:///" format else image doesn't load!
|
||||||
|
imageElement.setAttribute("alt",dialog.AltText.value);
|
||||||
|
if (insertNew) {
|
||||||
|
dump("Src="+imageElement.getAttribute("src")+" Alt="+imageElement.getAttribute("alt")+"\n");
|
||||||
|
appCore.insertElement(imageElement, true)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,18 +3,22 @@
|
||||||
<?xml-stylesheet href="chrome://editordlgs/skin/EditorDialog.css" type="text/css"?>
|
<?xml-stylesheet href="chrome://editordlgs/skin/EditorDialog.css" type="text/css"?>
|
||||||
<!DOCTYPE window>
|
<!DOCTYPE window>
|
||||||
<!-- dialog containing a control requiring initial setup -->
|
<!-- dialog containing a control requiring initial setup -->
|
||||||
<xul:window width="370" height="255" title="Image Properties"
|
<xul:window width="380" height="205" title="Image Properties"
|
||||||
xmlns:xul ="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
xmlns:xul ="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||||
xmlns="http://www.w3.org/TR/REC-html40"
|
xmlns="http://www.w3.org/TR/REC-html40"
|
||||||
onload = "Startup()">
|
onload = "Startup()">
|
||||||
|
|
||||||
|
<!-- Methods common to all editor dialogs -->
|
||||||
|
<script language="JavaScript" src="chrome://editordlgs/content/EdDialogCommon.js">
|
||||||
|
</script>
|
||||||
<script language="JavaScript" src="chrome://editordlgs/content/EdImageProps.js">
|
<script language="JavaScript" src="chrome://editordlgs/content/EdImageProps.js">
|
||||||
</script>
|
</script>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<fieldset><legend align="left">Image Information </legend>
|
<fieldset><legend align="left">Image Information </legend>
|
||||||
<input type="file" value=" Choose File... " size="50" length="50" maxlength="255" id="image.url" />
|
<p class="smallmargin">Enter a remote URL or local file: </p>
|
||||||
|
<input type="file" size="50" length="50" maxlength="255" id="image.Src" />
|
||||||
<br/>
|
<br/>
|
||||||
<p class="smallmargin">Alternative Text</p>
|
<p class="smallmargin">Alternative Text</p>
|
||||||
<input type="text" size="30" length="30" maxlength="255" id="image.AltText" />
|
<input type="text" size="30" length="30" maxlength="255" id="image.AltText" />
|
||||||
|
|
|
@ -1,10 +1,14 @@
|
||||||
|
// OnOK(), Undo(), and Cancel() are in EdDialogCommon.js
|
||||||
|
// applyChanges() must be implemented here
|
||||||
|
|
||||||
var appCore;
|
var appCore;
|
||||||
var toolkitCore;
|
var toolkitCore;
|
||||||
var anchorElement = null;
|
var anchorElement = null;
|
||||||
var insertNew = true;
|
var insertNew = true;
|
||||||
var needLinkText = false;
|
var needLinkText = false;
|
||||||
var selectionIsCollapsed = false;
|
var selection;
|
||||||
var undoCount = 0;
|
var undoCount = 0;
|
||||||
|
var makeLinkWithSelection = false;
|
||||||
|
|
||||||
// NOTE: Use "HREF" instead of "A" to distinguish from Named Anchor
|
// NOTE: Use "HREF" instead of "A" to distinguish from Named Anchor
|
||||||
// The returned node is has an "A" tagName
|
// The returned node is has an "A" tagName
|
||||||
|
@ -37,27 +41,35 @@ function Startup() {
|
||||||
dialog = new Object;
|
dialog = new Object;
|
||||||
dialog.linkTextInput = document.getElementById("linkTextInput");
|
dialog.linkTextInput = document.getElementById("linkTextInput");
|
||||||
dialog.hrefInput = document.getElementById("hrefInput");
|
dialog.hrefInput = document.getElementById("hrefInput");
|
||||||
dialog.linkMessage = document.getElementById("linkMessage");
|
|
||||||
dialog.ok = document.getElementById("OK");
|
// Kinda clunky: Message was wrapped in a <p>, so actual message is a child text node
|
||||||
|
dialog.linkMessage = (document.getElementById("linkMessage")).firstChild;
|
||||||
|
|
||||||
if (null == dialog.linkTextInput ||
|
if (null == dialog.linkTextInput ||
|
||||||
null == dialog.hrefInput ||
|
null == dialog.hrefInput ||
|
||||||
null == dialog.linkMessage ||
|
null == dialog.linkMessage )
|
||||||
null == dialog.ok )
|
|
||||||
{
|
{
|
||||||
dump("Not all dialog controls were found!!!\n");
|
dump("Not all dialog controls were found!!!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set data for the dialog controls
|
||||||
|
initDialog();
|
||||||
|
|
||||||
if (!insertNew)
|
// Set initial focus
|
||||||
{
|
|
||||||
var parent = dialog.linkTextInput.parentNode;
|
if (insertNew) {
|
||||||
if (parent) {
|
dialog.linkTextInput.focus();
|
||||||
parent.removeChild(dialog.linkTextInput);
|
} else {
|
||||||
|
dialog.hrefInput.focus();
|
||||||
|
|
||||||
|
// We will not insert a new link at caret, so remove link text input field
|
||||||
|
parentNode = dialog.linkTextInput.parentNode;
|
||||||
|
if (parentNode) {
|
||||||
|
dump("Removing link text input field.\n");
|
||||||
|
parentNode.removeChild(dialog.linkTextInput);
|
||||||
dialog.linkTextInput = null;
|
dialog.linkTextInput = null;
|
||||||
// TODO: Replace the text with the currently-selected text
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
initDialog();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function initDialog() {
|
function initDialog() {
|
||||||
|
@ -65,10 +77,8 @@ function initDialog() {
|
||||||
anchorElement = appCore.getSelectedElement(tagName);
|
anchorElement = appCore.getSelectedElement(tagName);
|
||||||
|
|
||||||
selection = appCore.editorSelection;
|
selection = appCore.editorSelection;
|
||||||
if (selection)
|
if (selection) {
|
||||||
{
|
dump("There is a selection: collapsed = "+selection.isCollapsed+"\n");
|
||||||
selectionIsCollapsed = selection.selectionIsCollapsed;
|
|
||||||
dump("There is a selection: collapsed = "+selectionIsCollapsed+"\n");
|
|
||||||
} else {
|
} else {
|
||||||
dump("Failed to get selection\n");
|
dump("Failed to get selection\n");
|
||||||
}
|
}
|
||||||
|
@ -77,26 +87,38 @@ function initDialog() {
|
||||||
// We found an element and don't need to insert one
|
// We found an element and don't need to insert one
|
||||||
insertNew = false;
|
insertNew = false;
|
||||||
|
|
||||||
// BUT href is a weird case: If selection extends beyond
|
if (!selection.isCollapsed)
|
||||||
// the link, user probably wants to extend link to
|
|
||||||
// entire selection. We do this by "inserting" the link
|
|
||||||
// (actually does the appropriate reparenting)
|
|
||||||
if (!selectionIsCollapsed)
|
|
||||||
{
|
{
|
||||||
insertNew = true;
|
// HREF is a weird case: If selection extends beyond
|
||||||
|
// the link, user probably wants to extend link to
|
||||||
|
// entire selection.
|
||||||
|
// TODO: We need to know if selection extends beyond existing
|
||||||
|
// link text before we should do this
|
||||||
|
//makeLinkWithSelection = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
insertNew = true;
|
|
||||||
// We don't have an element selected,
|
// We don't have an element selected,
|
||||||
// so create one with default attributes
|
// so create one with default attributes
|
||||||
dump("Element not selected - calling createElementWithDefaults\n");
|
dump("Element not selected - calling createElementWithDefaults\n");
|
||||||
anchorElement = appCore.createElementWithDefaults(tagName);
|
anchorElement = appCore.createElementWithDefaults(tagName);
|
||||||
}
|
|
||||||
|
|
||||||
|
// We will insert a new link at caret location if there's no selection
|
||||||
|
// TODO: This isn't entirely correct. If selection doesn't have any text
|
||||||
|
// or an image, then shouldn't we clear the selection and insert new text?
|
||||||
|
insertNew = selection.isCollapsed;
|
||||||
|
}
|
||||||
if(!anchorElement)
|
if(!anchorElement)
|
||||||
{
|
{
|
||||||
dump("Failed to get selected element or create a new one!\n");
|
dump("Failed to get selected element or create a new one!\n");
|
||||||
toolkitCore.CloseWindow(window);
|
toolkitCore.CloseWindow(window);
|
||||||
|
} else if (!insertNew) {
|
||||||
|
dump("Need to get selected text\n");
|
||||||
|
|
||||||
|
// Replace the link message with the link source string
|
||||||
|
// TODO: Get the text of the selection WHAT ABOUT IMAGES?
|
||||||
|
// Maybe have a special method "GetLinkSource" that resolves images as
|
||||||
|
// their URL? E.g.: "Link source [image:http://myimage.gif]"
|
||||||
|
dialog.linkMessage.data = "[Link source text or image URL goes here]";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,18 +132,15 @@ function applyChanges()
|
||||||
anchorElement.setAttribute("href",dialog.hrefInput.value);
|
anchorElement.setAttribute("href",dialog.hrefInput.value);
|
||||||
|
|
||||||
// Get text to use for a new link
|
// Get text to use for a new link
|
||||||
if (insertNew)
|
if (insertNew) {
|
||||||
{
|
|
||||||
// Append the link text as the last child node
|
// Append the link text as the last child node
|
||||||
// of the anchor node
|
// of the anchor node
|
||||||
textNode = appCore.editorDocument.createTextNode(dialog.linkTextInput.value);
|
textNode = appCore.editorDocument.createTextNode(dialog.linkTextInput.value);
|
||||||
if (textNode)
|
if (textNode) {
|
||||||
{
|
|
||||||
anchorElement.appendChild(textNode);
|
anchorElement.appendChild(textNode);
|
||||||
}
|
}
|
||||||
newElement = appCore.insertElement(anchorElement, true);
|
newElement = appCore.insertElement(anchorElement, true);
|
||||||
if (newElement != anchorElement)
|
if (newElement != anchorElement) {
|
||||||
{
|
|
||||||
dump("Returned element from insertElement is different from orginal element.\n");
|
dump("Returned element from insertElement is different from orginal element.\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -131,27 +150,3 @@ function applyChanges()
|
||||||
// Reinitialize dialog data
|
// Reinitialize dialog data
|
||||||
initDialog();
|
initDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
function onUndo() {
|
|
||||||
if (undoCount > 0)
|
|
||||||
{
|
|
||||||
dump("Undo count = "+undoCount+"\n");
|
|
||||||
undoCount = undoCount - 1;
|
|
||||||
appCore.undo();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function onOK() {
|
|
||||||
applyChanges();
|
|
||||||
//toolkitCore.CloseWindow(window);
|
|
||||||
}
|
|
||||||
|
|
||||||
function onCancel() {
|
|
||||||
// Undo all actions performed within the dialog
|
|
||||||
// TODO: We need to suppress reflow/redraw untill all levels are undone
|
|
||||||
while (undoCount > 0) {
|
|
||||||
appCore.undo();
|
|
||||||
}
|
|
||||||
//toolkitCore.CloseWindow(window);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -7,13 +7,16 @@
|
||||||
xmlns="http://www.w3.org/TR/REC-html40"
|
xmlns="http://www.w3.org/TR/REC-html40"
|
||||||
onload = "Startup()">
|
onload = "Startup()">
|
||||||
|
|
||||||
|
<!-- Methods common to all editor dialogs -->
|
||||||
|
<script language="JavaScript" src="chrome://editordlgs/content/EdDialogCommon.js">
|
||||||
|
</script>
|
||||||
<script language="JavaScript" src="chrome://editordlgs/content/EdLinkProps.js">
|
<script language="JavaScript" src="chrome://editordlgs/content/EdLinkProps.js">
|
||||||
</script>
|
</script>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<fieldset><legend align="left">Link source </legend>
|
<fieldset><legend align="left">Link source </legend>
|
||||||
<p class="smallmargin" id="linkMessage"> Enter text to display for a new link:</p>
|
<p class="smallmargin" id="linkMessage">Enter text to display for a new link:</p>
|
||||||
<input type="text" size="25" length="25" maxlength="100" id="linkTextInput"></input>
|
<input type="text" size="25" length="25" maxlength="100" id="linkTextInput"></input>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
|
|
||||||
#dialogs:content directory
|
#dialogs:content directory
|
||||||
|
|
||||||
|
EdDialogCommon.js
|
||||||
EdCharacterProps.xul
|
EdCharacterProps.xul
|
||||||
EdCharacterProps.js
|
EdCharacterProps.js
|
||||||
EdImageProps.xul
|
EdImageProps.xul
|
||||||
|
|
|
@ -27,6 +27,7 @@ include $(topsrcdir)/config/config.mk
|
||||||
include $(topsrcdir)/config/rules.mk
|
include $(topsrcdir)/config/rules.mk
|
||||||
|
|
||||||
EXPORT_RESOURCE_CONTENT = \
|
EXPORT_RESOURCE_CONTENT = \
|
||||||
|
$(srcdir)/EdDialogCommon.js \
|
||||||
$(srcdir)/EdLinkProps.xul \
|
$(srcdir)/EdLinkProps.xul \
|
||||||
$(srcdir)/EdImageProps.xul \
|
$(srcdir)/EdImageProps.xul \
|
||||||
$(srcdir)/EdCharacterProps.xul \
|
$(srcdir)/EdCharacterProps.xul \
|
||||||
|
|
|
@ -20,6 +20,7 @@ DEPTH=..\..\..\..
|
||||||
include <$(DEPTH)\config\rules.mak>
|
include <$(DEPTH)\config\rules.mak>
|
||||||
|
|
||||||
install::
|
install::
|
||||||
|
$(MAKE_INSTALL) EdDialogCommon.js $(DIST)\bin\chrome\editor\dialogs\content\default
|
||||||
$(MAKE_INSTALL) EdLinkProps.xul $(DIST)\bin\chrome\editor\dialogs\content\default
|
$(MAKE_INSTALL) EdLinkProps.xul $(DIST)\bin\chrome\editor\dialogs\content\default
|
||||||
$(MAKE_INSTALL) EdLinkProps.js $(DIST)\bin\chrome\editor\dialogs\content\default
|
$(MAKE_INSTALL) EdLinkProps.js $(DIST)\bin\chrome\editor\dialogs\content\default
|
||||||
$(MAKE_INSTALL) EdImageProps.xul $(DIST)\bin\chrome\editor\dialogs\content\default
|
$(MAKE_INSTALL) EdImageProps.xul $(DIST)\bin\chrome\editor\dialogs\content\default
|
||||||
|
@ -28,6 +29,7 @@ install::
|
||||||
$(MAKE_INSTALL) EdCharacterProps.js $(DIST)\bin\chrome\editor\dialogs\content\default
|
$(MAKE_INSTALL) EdCharacterProps.js $(DIST)\bin\chrome\editor\dialogs\content\default
|
||||||
|
|
||||||
clobber::
|
clobber::
|
||||||
|
rm -f $(DIST)\bin\chrome\editor\dialogs\content\default\EdDialogCommon.js
|
||||||
rm -f $(DIST)\bin\chrome\editor\dialogs\content\default\EdLinkProps.xul
|
rm -f $(DIST)\bin\chrome\editor\dialogs\content\default\EdLinkProps.xul
|
||||||
rm -f $(DIST)\bin\chrome\editor\dialogs\content\default\EdLinkProps.js
|
rm -f $(DIST)\bin\chrome\editor\dialogs\content\default\EdLinkProps.js
|
||||||
rm -f $(DIST)\bin\chrome\editor\dialogs\content\default\EdImageProps.xul
|
rm -f $(DIST)\bin\chrome\editor\dialogs\content\default\EdImageProps.xul
|
||||||
|
|
Загрузка…
Ссылка в новой задаче