Hopefully, my questions will only confirm the quality of your work.
Yes, right-mouse click is important in the current use of
ASV3, and its pop-up context menu.
Below are two files that demonstrate the dynamic needs for the
context menu:
If can accomplish dynamic changes the 'pop-up' menu, then I will be
happy as a clam.
Francis
the HTML file:
<HTML>
<HEAD>
<style>
body{
font-family:arial;
font-size:14;
}
</style>
<TITLE>Dynamic Context Menu</TITLE>
</HEAD>
<BODY onLoad=init()>
<embed name="svgEmbed" src="dynamicContext.svg"
style="width:500;height:500" type="image/svg+xml">
<h2>Dynamically writing the Context Menu for the Adobe SVG Viewer,
version 3</h2>
The reason this is needed, is to provide the user with an
intelligent 'pop-up' menu that displays only the functions that are
needed during a specific operation
on the SVG drawing. This simplifies their choices, and also
simplifies the coding, whereby many, many status flags are
eliminated.<p>
The pop-up menu also has certain 'rhythm':<br>
1. Select an operation.<br>
2. Do the selected operation.<br>
3. Finish or Cancel the operation.<br>
4. Return to previous selection choices.<p>
This feature on the MobiusPortal DataPort & ViewPort are of vital
importance: The user's
experience must be seamless and intuitive. The trick is to get them
to initially right-click their mouse button over the SVG drawing, and
begin boogeying to the rhythm:)<p>
<script>
var docSVG
var ContextMenu
function init()
{
docSVG=document.embeds['svgEmbed'].getSVGDocument()
ContextMenu=docSVG.getElementById("ContextMenu")
//---initial context menu---
rewriteContextMenu(",0,")
}
//--------build context menus for SVG---
//---calls function in SVG that use Adobe Viewer, resident methods---
function makeContextMenu(){window.makeContextMenu();}
//---An array of all functions and their displayed text----
var contextMenuArray= new Array()
contextMenuArray[0]="doThis(),Do This Please!"
contextMenuArray[1]="finish(),finish it dammit!"
contextMenuArray[2]="cancel(),cancel it I dare you"
//---fired at every function to update user's pop-up choices---
function rewriteContextMenu(items)
{
//---purge previous items---
menuChildren=ContextMenu.childNodes
for(i=menuChildren.length-1;i>=0;i--)
{
ContextMenu.removeChild(menuChildren.item(i))
}
//---then for some unknown reason:)---
//---start with a bogus, empty item??---
createItem=docSVG.createElement
("item")
textNode=docSVG.createTextNode("")
createItem.appendChild(textNode)
ContextMenu.appendChild(createItem)
//---A title for this menu----
createItem=docSVG.createElement
("item")
textNode=docSVG.createTextNode
("MOBIUS PORTAL IS THE GREATEST!")
createItem.appendChild(textNode)
ContextMenu.appendChild(createItem)
separator=docSVG.createElement
("separator")
ContextMenu.appendChild(separator)
for(i=0;i<contextMenuArray.length;i++)
{
addMe=","+i+","
if(items.indexOf(addMe)!=-1)
{
menuItem=contextMenuArray[i]
split=menuItem.split(",")
activate=split[0]
textItem=split[1]
createItem=docSVG.createElement
("item")
createItem.setAttribute
("onactivate",activate)
textNode=docSVG.createTextNode
(textItem)
createItem.appendChild(textNode)
ContextMenu.appendChild(createItem)
}
}
separator=docSVG.createElement("separator")
ContextMenu.appendChild(separator)
//---include the Adobe resident original view selection---
view=docSVG.createElement("item")
view.setAttribute
("action","OriginalView")
textNode=docSVG.createTextNode("Full
View")
view.appendChild(textNode)
ContextMenu.appendChild(view)
makeContextMenu()
}
//---functions resident at the context menu array---
function doThis()
{
rewriteContextMenu(",1,2,")
}
function finish()
{
rewriteContextMenu(",0,")
}
function cancel()
{
rewriteContextMenu(",0,")
}
</script>
</BODY>
</HTML>
dynamicContext.svg
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG
1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" >
<svg id="mySVG" width="500" height="500">
<rect x="0" y="0" width="100%" height="100%" fill="lemonchiffon" />
<defs id="menuDefs">
<menu id='ContextMenu'
xmlns="http://www.mobiusPortal.com" />
</defs>
<script>
<![CDATA[
//---allows function to be called
from HTML---
parent.makeContextMenu=makeContextMenu
function makeContextMenu(){var newMenuRoot = parseXML
( printNode( document.getElementById( "ContextMenu" ) ),
contextMenu );contextMenu.replaceChild( newMenuRoot,
contextMenu.firstChild )} ;
]]>
</script>
</svg>
--- In [email protected], "Mark Birbeck"
<[EMAIL PROTECTED]> wrote:
> Francis,
>
> > If you can get your viewer seamless with IE and have nice CSS
> > capablities then I may know of a site that could use it:)
> > Anyway, I'll download it and fiddle with it for a while.
> > Expect a few questions from yours truly about it's abilities
> > to create a dynamic context menu.
>
> I'd be very pleased to get questions! I look forward to your
comments.
>
> BTW, by context menu, do you mean with a right-hand mouse click?
>
> Regards,
>
> Mark
>
>
> Mark Birbeck
> CEO
> x-port.net Ltd.
>
> e: [EMAIL PROTECTED]
> t: +44 (0) 20 7689 9232
> w: http://www.formsPlayer.com/
> b: http://internet-apps.blogspot.com/
>
> Download our XForms processor from
> http://www.formsPlayer.com/
-----
To unsubscribe send a message to: [EMAIL PROTECTED]
-or-
visit http://groups.yahoo.com/group/svg-developers and click "edit my
membership"
----
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/svg-developers/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/