home *** CD-ROM | disk | FTP | other *** search
/ ftp.swcp.com / ftp.swcp.com.zip / ftp.swcp.com / mac / mozilla-mac-0.9.sea.hqx / mozilla-mac-0.9 / res / samples / navigator-test1.xul < prev    next >
Extensible Markup Language  |  2001-05-05  |  28KB  |  775 lines

  1. <?xml version="1.0"?> 
  2. <?xml-stylesheet href="chrome://navigator/skin/navigator.css" type="text/css"?> 
  3.  
  4. <!DOCTYPE window> 
  5.  
  6. <window id="main-window" xmlns:html="http://www.w3.org/1999/xhtml"
  7.         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
  8.         onload="Startup()" title="Mozilla"> 
  9.  
  10.   <script>
  11.   function Startup()
  12.   {
  13.     dump("Doing Startup...\n");
  14.     appCore = XPAppCoresManager.Find("BrowserAppCore");  
  15.     dump("Looking up BrowserAppCore...\n");
  16.     if (appCore == null) {
  17.       dump("Creating BrowserAppCore...\n");
  18.       appCore = new BrowserAppCore();
  19.       if (appCore != null) {
  20.         dump("BrowserAppCore has been created.\n");
  21.         appCore.Init("BrowserAppCore");
  22.         appCore.setContentWindow(window.frames[0]);
  23.         appCore.setWebShellWindow(window);
  24.         appCore.setToolbarWindow(window);
  25.         appCore.setDisableCallback("DoDisableButtons();");
  26.         appCore.setEnableCallback("DoEnableButtons();");
  27.         dump("Adding BrowserAppCore to AppCoreManager...\n");
  28.         dump("...probably for a second time, because the constructor of nsBaseAppCore does this!\n");
  29.         XPAppCoresManager.Add(appCore);  
  30.       }
  31.     } else {
  32.       dump("BrowserAppCore has already been created! Why?\n");
  33.     }
  34.   }
  35.  
  36.   function DoDisableButtons()
  37.   {
  38.     // Find buttons in the UI and disable them
  39.     dump("Browser disabling buttons\n");
  40.     document.getElementById('urlbar')
  41.   }
  42.  
  43.   function DoEnableButtons()
  44.   {
  45.     // Find buttons in the UI and enable them
  46.     dump("Browser enabling buttons\n");
  47.   }
  48.  
  49.   function RefreshUrlbar()
  50.   {
  51.    //Refresh the urlbar bar
  52.     document.getElementById('urlbar').value = window.frames[0].location.href;
  53.   }
  54.  
  55.   function BrowserBack()
  56.   {
  57.     appCore = XPAppCoresManager.Find("BrowserAppCore");  
  58.     if (appCore != null) {
  59.       dump("Going Back\n");
  60.       appCore.back();
  61.       RefreshUrlbar();
  62.     } else {
  63.       dump("BrowserAppCore has not been created!\n");
  64.     }
  65.   }
  66.  
  67.   function BrowserForward()
  68.   {
  69.     appCore = XPAppCoresManager.Find("BrowserAppCore");  
  70.     if (appCore != null) {
  71.       dump("Going Forward\n");
  72.       appCore.forward();
  73.     RefreshUrlbar();
  74.     } else {
  75.       dump("BrowserAppCore has not been created!\n");
  76.     }
  77.   }
  78.  
  79.   function BrowserHome()
  80.   {
  81.    window.frames[0].home();
  82.    RefreshUrlbar();
  83.   }
  84.  
  85.   function OpenBookmarkURL(node)
  86.   {
  87.     if (node.getAttribute('type') !=
  88.         "http://home.netscape.com/NC-rdf#Bookmark") {
  89.       return false;
  90.     }
  91.     url = node.getAttribute('id');
  92.  
  93.     // Ignore "NC:" urls.
  94.     if (url.substring(0, 3) == "NC:") {
  95.       return false;
  96.     }
  97.  
  98.     window.frames[0].location.href = url;
  99.   RefreshUrlbar();
  100.   }
  101.  
  102.   function BrowserNewWindow()
  103.   {
  104.     appCore = XPAppCoresManager.Find("BrowserAppCore");  
  105.     if (appCore != null) {
  106.       dump("Opening New Window\n");
  107.       appCore.newWindow();
  108.     } else {
  109.       dump("BrowserAppCore has not been created!\n");
  110.     }
  111.   }
  112.  
  113.   function BrowserAddBookmark(url,title)
  114.   {
  115.     // get RDF Core service
  116.     var rdfCore = XPAppCoresManager.Find("RDFCore");
  117.     if (!rdfCore) {
  118.       rdfCore = new RDFCore();
  119.       if (!rdfCore) {
  120.         return(false);
  121.       }
  122.       rdfCore.Init("RDFCore");
  123.       XPAppCoresManager.Add(rdfCore);
  124.     }
  125.     // Add it
  126.     rdfCore.addBookmark(url,title);
  127.   }
  128.  
  129.   function BrowserEditBookmarks()
  130.   {
  131.     var toolkitCore = XPAppCoresManager.Find("toolkitCore");
  132.     if (!toolkitCore) {
  133.       toolkitCore = new ToolkitCore();
  134.       if (toolkitCore) {
  135.         toolkitCore.Init("toolkitCore");
  136.       }
  137.     }
  138.     if (toolkitCore) {
  139.       toolkitCore.ShowWindow("resource:/res/rdf/bookmarks.xul",window);
  140.     }
  141.   }
  142.  
  143.   function BrowserPrintPreview()
  144.   {
  145.     // Borrowing this method to show how to 
  146.     // dynamically change icons
  147.     dump("BrowserPrintPreview\n");
  148.     appCore = XPAppCoresManager.Find("BrowserAppCore");  
  149.     if (appCore != null) {
  150.       dump("Changing Icons\n");
  151.       appCore.printPreview();
  152.     } else {
  153.       dump("BrowserAppCore has not been created!\n");
  154.     }
  155.   }
  156.  
  157.   function BrowserSetDocumentCharacterSet(aCharset)
  158.   {
  159.     appCore = XPAppCoresManager.Find("BrowserAppCore");  
  160.     if (appCore != null) {
  161.       appCore.SetDocumentCharset(aCharset);
  162.     } else {
  163.       dump("BrowserAppCore has not been created!\n");
  164.     }
  165.   }
  166.  
  167.   function BrowserClose()
  168.   {
  169.     dump("BrowserClose\n");
  170.   }
  171.  
  172.   function BrowserExit()
  173.   {
  174.     appCore = XPAppCoresManager.Find("BrowserAppCore");  
  175.     if (appCore != null) {
  176.       dump("Exiting\n");
  177.       appCore.exit();
  178.     } else {
  179.       dump("BrowserAppCore has not been created!\n");
  180.     }
  181.   }
  182.  
  183.   function BrowserLoadURL()
  184.   {
  185.   appCore = XPAppCoresManager.Find("BrowserAppCore");
  186.   if (appCore == null)
  187.   {
  188.     dump("BrowserAppCore has not been initialized\n");
  189.     return;
  190.   }
  191.  
  192.   // rjc: added support for URL shortcuts (3/30/1999)
  193.  
  194.   // get RDF Core service
  195.   var rdfCoreFound = false;
  196.   var rdfCore = XPAppCoresManager.Find("RDFCore");
  197.   if (rdfCore)
  198.   {
  199.     rdfCoreFound = true;
  200.   }
  201.   else
  202.   {
  203.     rdfCore = new RDFCore();
  204.     if (rdfCore)
  205.     {
  206.       rdfCore.Init("RDFCore");
  207.       XPAppCoresManager.Add(rdfCore);
  208.       rdfCoreFound = true;
  209.     }
  210.   }
  211.   if (rdfCoreFound == true)
  212.   {
  213.     var shortcutURL = rdfCore.findBookmarkShortcut(document.getElementById('urlbar').value);
  214.  
  215.     dump("FindBookmarkShortcut: in='" + document.getElementById('urlbar').value + "'  out='" + shortcutURL + "'\n");
  216.  
  217.     if ((shortcutURL != null) && (shortcutURL != ""))
  218.     {
  219.       document.getElementById('urlbar').value = shortcutURL;
  220.     }
  221.   }
  222.  
  223.   appCore.loadUrl(document.getElementById('urlbar').value);
  224.       
  225.   }
  226.  
  227.   function WalletEditor()
  228.   {
  229.     appCore = XPAppCoresManager.Find("BrowserAppCore");  
  230.     if (appCore != null) {
  231.       dump("Wallet Editor\n");
  232.       appCore.walletEditor();
  233.     } else {
  234.       dump("BrowserAppCore has not been created!\n");
  235.     }
  236.   }
  237.  
  238.   function WalletSafeFillin()
  239.   {
  240.     appCore = XPAppCoresManager.Find("BrowserAppCore");  
  241.     if (appCore != null) {
  242.       dump("Wallet Safe Fillin\n");
  243.       appCore.walletSafeFillin();
  244.     } else {
  245.       dump("BrowserAppCore has not been created!\n");
  246.     }
  247.   }
  248.  
  249.   function WalletQuickFillin()
  250.   {
  251.     appCore = XPAppCoresManager.Find("BrowserAppCore");  
  252.     if (appCore != null) {
  253.       dump("Wallet Quick Fillin\n");
  254.       appCore.walletQuickFillin();
  255.     } else {
  256.       dump("BrowserAppCore has not been created!\n");
  257.     }
  258.   }
  259.  
  260.   function WalletRequestToCapture()
  261.   {
  262.     appCore = XPAppCoresManager.Find("BrowserAppCore");  
  263.     if (appCore != null) {
  264.       dump("Wallet Request To Capture\n");
  265.       appCore.walletRequestToCapture();
  266.     } else {
  267.       dump("BrowserAppCore has not been created!\n");
  268.     }
  269.   }
  270.  
  271.   function WalletSamples()
  272.   {
  273.     appCore = XPAppCoresManager.Find("BrowserAppCore");  
  274.     if (appCore != null) {
  275.       dump("Wallet Samples\n");
  276.       appCore.walletSamples();
  277.     } else {
  278.       dump("BrowserAppCore has not been created!\n");
  279.     }
  280.   }
  281.  
  282.   function OpenMessenger()
  283.   {
  284.     var toolkitCore = XPAppCoresManager.Find("ToolkitCore");
  285.     if (!toolkitCore) {
  286.       toolkitCore = new ToolkitCore();
  287.       if (toolkitCore) {
  288.         toolkitCore.Init("ToolkitCore");
  289.       }
  290.     }
  291.     if (toolkitCore) {
  292.       toolkitCore.ShowWindow("resource:/res/mailnews/messenger/mailshell.xul",
  293.                              window);
  294.     }
  295.   }
  296.  
  297.   function DoPreferences()
  298.   {
  299.     var toolkitCore = XPAppCoresManager.Find("ToolkitCore");
  300.     if (!toolkitCore) {
  301.       toolkitCore = new ToolkitCore();
  302.       if (toolkitCore) {
  303.         toolkitCore.Init("ToolkitCore");
  304.       }
  305.     }
  306.     if (toolkitCore) {
  307.       toolkitCore.ShowWindow("resource:/res/samples/PrefsWindow.html",
  308.                              window);
  309.     }
  310.   }
  311.  
  312.   function OpenEditor()
  313.   {
  314.     var toolkitCore = XPAppCoresManager.Find("ToolkitCore");
  315.     if (!toolkitCore) {
  316.       toolkitCore = new ToolkitCore();
  317.       if (toolkitCore) {
  318.         toolkitCore.Init("ToolkitCore");
  319.       }
  320.     }
  321.     if (toolkitCore) {
  322.       toolkitCore.ShowWindow("resource:/res/samples/EditorAppShell.xul",
  323.                              window);
  324.     }
  325.   }
  326.  
  327.  
  328.   </script>
  329.  
  330.   <broadcaster id="canGoBack"/>
  331.   <broadcaster id="canGoForward"/>
  332.   <broadcaster id="canReload"/>
  333.   <broadcaster id="canStop"/>
  334.   <broadcaster id="canPrint"/>
  335.   
  336.   <menubar>
  337.       <menu name="File">
  338.       <menuitem name="New Browser Window" onclick="BrowserNewWindow();"/>
  339.         <menu name="New">
  340.           <menuitem name="Mail Message" onclick="MsgNewMessage();"/>
  341.           <menuitem name="Chat Window" onclick=""/>
  342.           <separator />
  343.           <menuitem name="Blank Page" onclick="BrowserNewWindow();"/>
  344.           <menuitem name="Page Using Template..." onclick="BrowserNewWindow();"/>
  345.           <menuitem name="Page Using Draft..." onclick="BrowserNewWindow();"/>
  346.         </menu>
  347.       <menuitem name="Open" onclick="BrowserNewWindow();"/>
  348.       <separator />
  349.       <menuitem name="Send Page" onclick="BrowserReload();"/>
  350.      <menuitem name="Edit Page" onclick="BrowserReload();" />
  351.      <separator />
  352.       <menu name="Offline">
  353.         <menuitem name="Go Offline" onclick="BrowserReload();"/>
  354.         <separator />
  355.         <menuitem name="Synchronize..." onclick="BrowserReload();"/>
  356.       </menu>
  357.       <separator />
  358.       <menuitem name="Print Setup" onclick=""/>
  359.       <menuitem name="Print Preview" onclick=""/>
  360.       <menuitem name="Print" onclick=""/>
  361.       <separator />
  362.       <menuitem name="Close" onclick="BrowserClose();"/>
  363.       <menuitem name="Quit" onclick="BrowserExit();"/>
  364.     </menu>
  365.   <menu name="Edit"> 
  366.       <menuitem name="Undo" onclick="BrowserReload();"/> 
  367.       <menuitem name="Redo" onclick="BrowserReload();"/> 
  368.       <separator /> 
  369.       <menuitem name="Cut" onclick="BrowserReload();"/> 
  370.       <menuitem name="Copy" onclick="BrowserReload();"/> 
  371.       <menuitem name="Paste" onclick="BrowserReload();"/> 
  372.       <menuitem name="Delete" onclick="BrowserReload();"/> 
  373.       <separator /> 
  374.       <menu name="Wallet"> 
  375.           <menuitem name="Safe Form Fill" onclick="WalletSafeFillin();"/> 
  376.           <menuitem name="Quick Form Fill" onclick="WalletQuickFillin();"/> 
  377.           <menuitem name="Capture Form" onclick="WalletRequestToCapture();"/> 
  378.           <separator /> 
  379.           <menuitem name="Wallet Contents" onclick="WalletEditor();"/> 
  380.           <separator /> 
  381.           <menuitem name="Samples" onclick="WalletSamples();"/> 
  382.     </menu> 
  383.       <separator /> 
  384.       <menuitem name="Select All" onclick="BrowserReload();"/> 
  385.       <separator /> 
  386.       <menuitem name="Preferences..." onclick="DoPreferences();"/> 
  387.     </menu> 
  388.  
  389.     <menu name="View">
  390.       <menuitem name="Toolbars" onclick="BrowserReload();"/>
  391.       <menuitem name="Sidebar" onclick="BrowserReload();"/>
  392.       <separator />
  393.       <menuitem name="Enlarge Text Size" onclick="BrowserReload();"/>
  394.       <menuitem name="Reduce Text Size" onclick="BrowserReload();"/>
  395.       <separator />
  396.       <menu name="Use Stylesheet" onclick="BrowserReload();">
  397.         <menuitem name="Default" onclick="BrowserReload();"/>
  398.         <separator />
  399.         <menuitem name="Easy Reading" onclick="BrowserReload();"/>
  400.         <menuitem name="Maximum Information" onclick="BrowserReload();"/>
  401.         <menuitem name="Bizarre" onclick="BrowserReload();"/>
  402.       </menu>
  403.       <separator />
  404.       <menuitem name="Reload" onclick="BrowserReload();"/>
  405.       <menuitem name="Show Images" onclick="BrowserReload();"/>
  406.       <menuitem name="Stop" onclick="BrowserReload();"/>
  407.       <separator />
  408.       <menuitem name="Page Source" onclick="BrowserReload();"/>
  409.       <menuitem name="Page Info" onclick="BrowserReload();"/>
  410.       <separator />
  411.       <menu name="Translate">
  412.         <menuitem name="French To English" onclick="BrowserReload();"/>
  413.         <menuitem name="German To English" onclick="BrowserReload();"/>
  414.         <menuitem name="Spanish To English" onclick="BrowserReload();"/>
  415.         <separator />
  416.         <menuitem name="English To French" onclick="BrowserReload();"/>
  417.         <menuitem name="German To French" onclick="BrowserReload();"/>
  418.         <menuitem name="Spanish To French" onclick="BrowserReload();"/>
  419.         <separator />
  420.         <menuitem name="English To German" onclick="BrowserReload();"/>
  421.         <menuitem name="French To German" onclick="BrowserReload();"/>
  422.         <menuitem name="Spanish To German" onclick="BrowserReload();"/>
  423.         <separator />
  424.         <menuitem name="English To Spanish" onclick="BrowserReload();"/>
  425.         <menuitem name="French To Spanish" onclick="BrowserReload();"/>
  426.         <menuitem name="German To Spanish" onclick="BrowserReload();"/>
  427.     </menu>
  428.       <menu name="Character Set">
  429.         <menuitem name="Latin1" onclick="BrowserSetDocumentCharacterSet('ISO-8859-1');"/>
  430.         <menuitem name="ISO-2022-JP" onclick="BrowserSetDocumentCharacterSet('ISO-2022-JP');"/>
  431.         <menuitem name="Shift_JIS" onclick="BrowserSetDocumentCharacterSet('Shift_JIS');"/>
  432.         <menuitem name="EUC-JP" onclick="BrowserSetDocumentCharacterSet('EUC-JP');"/>
  433.      </menu>
  434.     </menu>
  435.     <menu name="Search">
  436.       <menuitem name="Find On This page..." onclick="BrowserReload();"/>
  437.       <menuitem name="Find Again" onclick="BrowserReload();"/>
  438.       <separator />
  439.       <menuitem name="Search Parent Item..." onclick="BrowserReload();"/>
  440.       <menuitem name="Search Parent2 Item..." onclick="BrowserReload();"/>
  441.       <menuitem name="App Specific" onclick="BrowserReload();"/>
  442.       <menuitem name="App Specific" onclick="BrowserReload();"/>
  443.       <separator />
  444.       <menuitem name="Search The Internet..." onclick="BrowserReload();"/>
  445.       <menuitem name="Search All Mail..." onclick="BrowserReload();"/>
  446.       <menuitem name="Search Bookmarks" onclick="BrowserReload();"/>
  447.       <menuitem name="Search People" onclick="BrowserReload();"/>
  448.       <separator />
  449.       <menuitem name="Search On This Computer..." onclick="BrowserReload();"/>
  450.     </menu>
  451.     <menu name="Go">
  452.       <menuitem name="Back" onclick="BrowserBack();"/>
  453.       <menuitem name="Forward" onclick="BrowserForward();" />
  454.       <menuitem name="Home" onclick="BrowserHome();"/>
  455.       <separator />
  456.       <menuitem name="Previous Site 1" onclick="BrowserBack();"/>
  457.       <menuitem name="Previous Site 2" onclick="BrowserBack();"/>
  458.       <menuitem name="Previous Site n" onclick="BrowserBack();"/>
  459.     </menu>
  460.     <menu name="Bookmarks" onclick="OpenBookmarkURL(event.target)" 
  461.                datasources="rdf:bookmarks" id="NC:BookmarksRoot" open="true">
  462.     <menuitem name="Add Current Page" onclick="BrowserAddBookmark(window.frames[0].location.href,window.frames[0].document.title);"/>
  463.     <menuitem name="Manage Bookmarks..." onclick="BrowserEditBookmarks();"/>
  464.     <separator/>
  465.   </menu>
  466.    <menu name="Tasks">
  467.       <menuitem name="Navigator" onclick="BrowserReload();"/>
  468.       <menuitem name="Messenger" onclick="OpenMessenger();" />
  469.       <menuitem name="Editor"    onclick="OpenEditor();" />
  470.       <menuitem name="Chat" onclick="BrowserReload();"/>
  471.       <menuitem name="Shopping Cart" onclick="BrowserReload();"/>
  472.       <separator />
  473.       <menuitem name="Services A" onclick="BrowserReload();"/>
  474.       <menuitem name="Services B" onclick="BrowserReload();" />
  475.       <menuitem name="Services C" onclick="BrowserReload();"/>
  476.       <menuitem name="Services D" onclick="BrowserReload();"/>
  477.       <separator />
  478.       <menu name="Tools">
  479.         <menuitem name="Plugins Info" onclick="BrowserReload();"/>
  480.         <menuitem name="Server Tools" onclick="BrowserReload();" />
  481.         <menuitem name="Java/JS Console" onclick="BrowserReload();"/>
  482.         <menuitem name="JavaScript Debugger" onclick="BrowserReload();"/>
  483.       </menu>
  484.       <separator />
  485.       <menuitem name="Security Info" onclick="BrowserReload();"/>
  486.       <separator/>
  487.       <menuitem name="Window 1" onclick="BrowserReload();" key="1"/>
  488.       <menuitem name="Window 2" onclick="BrowserReload();" />
  489.       <menuitem name="Window 3" onclick="BrowserReload();" />
  490.     </menu>
  491.     
  492.      <menu name="Help">
  493.       <menuitem name="Help Contents" onclick="BrowserReload();"/>
  494.       <separator />
  495.       <menuitem name="How To Tutorial" onclick="BrowserReload();"/>
  496.       <menuitem name="Help Channel" onclick="BrowserReload();" />
  497.       <separator />
  498.       <menuitem name="Software Updates" onclick="BrowserReload();"/>
  499.       <menuitem name="Technical Support" onclick="BrowserReload();"/>
  500.       <menuitem name="Release Notes" 
  501.               onclick="window.frames[0].location.href='http://www.mozilla.org/projects/seamonkey/release-notes/index.html'"/>
  502.       
  503.       <separator />
  504.       <menuitem name="About Communicator Prototype" 
  505.               onclick="window.frames[0].location.href='http://www.mozilla.org/projects/seamonkey/release-notes/index.html'"/>
  506.     </menu>
  507.  
  508.     // Menu for testing.
  509.     <menu name="Debug">
  510.  
  511.       <menu name="Verification"> // Build verification sites.
  512.         <menuitem name="Mozilla"  onclick="window.frames[0].location.href='http://www.mozilla.org'"/>
  513.         <menuitem name="Yahoo"  onclick="window.frames[0].location.href='http://www.yahoo.com'"/>
  514.         <menuitem name="Netscape"  onclick="window.frames[0].location.href='http://www.netscape.com'"/>
  515.       </menu>
  516.  
  517.     <menu name="Viewer">  // Viewer tests.
  518.         <menuitem name="Demo #0"  onclick="window.frames[0].location.href='resource:/res/samples/test0.html'"/>
  519.         <menuitem name="Demo #1"  onclick="window.frames[0].location.href='resource:/res/samples/test1.html'"/>
  520.         <menuitem name="Demo #2"  onclick="window.frames[0].location.href='resource:/res/samples/test2.html'"/>
  521.         <menuitem name="Demo #3"  onclick="window.frames[0].location.href='resource:/res/samples/test3.html'"/>
  522.         <menuitem name="Demo #4"  onclick="window.frames[0].location.href='resource:/res/samples/test4.html'"/>
  523.         <menuitem name="Demo #5"  onclick="window.frames[0].location.href='resource:/res/samples/test5.html'"/>
  524.         <menuitem name="Demo #6"  onclick="window.frames[0].location.href='resource:/res/samples/test6.html'"/>
  525.         <menuitem name="Demo #7"  onclick="window.frames[0].location.href='resource:/res/samples/test7.html'"/>
  526.         <menuitem name="Demo #8"  onclick="window.frames[0].location.href='resource:/res/samples/test8.html'"/>
  527.         <menuitem name="Demo #9"  onclick="window.frames[0].location.href='resource:/res/samples/test9.html'"/>
  528.         <menuitem name="Demo #10" onclick="window.frames[0].location.href='resource:/res/samples/test10.html'"/>
  529.         <menuitem name="Demo #11" onclick="window.frames[0].location.href='resource:/res/samples/test11.html'"/>
  530.         <menuitem name="Demo #12" onclick="window.frames[0].location.href='resource:/res/samples/test12.html'"/>
  531.         <menuitem name="Demo #13" onclick="window.frames[0].location.href='resource:/res/samples/test13.html'"/>
  532.       </menu>
  533.  
  534.       <menu name="XPToolkit"> // XPToolkit tests.
  535.         <menuitem name="Toolbar" onclick="window.frames[0].location.href='resource:/res/samples/toolbarTest1.xul'"/>
  536.         <menuitem name="Tree" onclick="window.frames[0].location.href='resource:/res/samples/treeTest1.xul'"/>
  537.       </menu>
  538.  
  539.     </menu>
  540.  
  541.   </menubar>
  542.   
  543.   <box id="outer-box" align="vertical">
  544.   <box align="horizontal" style="margin: 5px;">
  545.   <box align="vertical" flex="100%">
  546.   <spring flex="100%"/>
  547.   <html:input id="urlbar" type="text" style="min-width: 100px; min-height: 25px"
  548.     onkeyup="if (event.keyCode == 13) { BrowserLoadURL(); }"/>   
  549.   <spring flex="100%"/>
  550.   </box>
  551.   <button id="Throbber" onclick="window.frames[0].home()">
  552.      <observes element="Browser:Throbber" attribute="busy"/>
  553.   </button>
  554.    </box>
  555.  
  556.    <box align="horizontal" flex="100%">
  557.  
  558.    <toolbox align="horizontal">
  559.     <toolbar class="main-bar" align="vertical">
  560.       <button id="back-button" align="bottom" label="Back" onclick="BrowserBack()"> 
  561.           <observes element="canGoBack" attribute="disabled"/>      
  562.         </button>
  563.  
  564.         <button id="forward-button" align="bottom" label="Forward" 
  565.         onclick="BrowserForward()">
  566.           <observes element="canGoForward" attribute="disabled"/>
  567.         </button>
  568.  
  569.         <button id="reload-button" align="bottom" label="Reload" 
  570.           onclick="window.frames[0].location.reload()">
  571.           <observes element="canReload" attribute="disabled"/>
  572.         </button>
  573.  
  574.         <button id="stop-button" align="bottom" label="Stop" 
  575.         onclick="window.frames[0].stop()">
  576.           <observes element="canStop" attribute="disabled"/>
  577.         </button>
  578.     
  579.         <button id="print-button" align="bottom" label="Print"  
  580.         onclick="">
  581.           <observes element="canPrint" attribute="disabled"/>
  582.         </button>
  583.  
  584.   </toolbar>
  585.  
  586.     <toolbar class="main-bar" align="vertical">
  587.       <button id="home-button" align="bottom" label="Home" 
  588.       onclick="BrowserHome()"/>
  589.     <button id="netscape-button" align="bottom" label="Netscape" 
  590.       onclick="window.frames[0].location.href='http://my.netscape.com'"/>
  591.     <spring flex="100%"/>
  592.   </toolbar>
  593.   </toolbox>
  594.   
  595.  
  596.   
  597.   <html:iframe id="content-frame" html:name="content" html:src="BrowserInitPage.html" flex="100%" />
  598.  
  599.   </box>
  600.  
  601.   <script>
  602.         var bindCount = 0;
  603.         function onStatus() {
  604.             var status = document.getElementById("Browser:Status");
  605.             if ( status ) {
  606.                 var text = status.getAttribute("text");
  607.                 var statusText = document.getElementById("statusText");
  608.                 if ( statusText ) {
  609.                     statusText.setAttribute( "label", text );
  610.                 }
  611.                 /*
  612.                 if ( bindCount == 0 ) {
  613.                     // This presumably precedes the first onStartBinding, spin
  614.                     // the progress meter.
  615.                     var meter = document.getElementById("Browser:LoadingProgress");
  616.                     if ( meter ) {
  617.                         meter.setAttribute( "mode", "undetermined" );
  618.                     } 
  619.                 }
  620.                 */
  621.             } else {
  622.                 dump("Can't find status broadcaster!\n");
  623.             }
  624.         }
  625.  
  626.         function onSecurity() {
  627.             var security = document.getElementById("Browser:Security");
  628.             var indicator = document.getElementById("security-box");
  629.             var icon = document.getElementById("security-button");
  630.  
  631.             if ( security.getAttribute("secure") == "true" ) {
  632.                 indicator.setAttribute("class","secure");
  633.                 icon.setAttribute("class","secure");
  634.             } else {
  635.                 indicator.setAttribute("class","insecure");
  636.                 icon.setAttribute("class","insecure");
  637.             }
  638.         }
  639.  
  640.         function securityOn() {
  641.             var security = document.getElementById("Browser:Security");
  642.             if ( security.getAttribute("secure") == "false" ) {
  643.                 security.setAttribute("secure","true");
  644.                 // Temporary till onchange handlers work.
  645.                 onSecurity();
  646.             }
  647.         }
  648.         function securityOff() {
  649.             var security = document.getElementById("Browser:Security");
  650.             if ( security.getAttribute("secure") == "true" ) {
  651.                 security.setAttribute("secure","false");
  652.                 // Temporary till onchange handlers work.
  653.                 onSecurity();
  654.             }
  655.         }
  656.         function doTests() {
  657.             // Turn security on.
  658.             securityOn();
  659.         }
  660.         function onStartBinding() {
  661.             bindCount++;
  662.             if ( bindCount == 1 ) {
  663.                 // Something is going on, turn on progress meter.
  664.                 var meter = document.getElementById("Browser:LoadingProgress");
  665.                 if ( meter ) {
  666.                     meter.setAttribute( "mode", "undetermined" );
  667.                 } 
  668.             }
  669.         }
  670.         function onStopBinding() {
  671.             bindCount--;
  672.             if ( bindCount < 0 ) {
  673.                 // Something unusual occurred (stop/back?).
  674.                 bindCount = 0;
  675.             }
  676.             var stop = document.getElementById("Browser:OnStopBinding");
  677.             if ( bindCount == 0 ) {
  678.                 // Turn off progress meter.
  679.                 var meter  = document.getElementById("Browser:LoadingProgress");
  680.                 var status = document.getElementById("Browser:Status");
  681.                 status.setAttribute("label","Document: Done");
  682.                 meter.setAttribute("value","0");
  683.                 meter.setAttribute("mode","normal");
  684.             }
  685.         }
  686.         function onProgress() {
  687.             var throbber = document.getElementById("Browser:Throbber");
  688.             var meter    = document.getElementById("Browser:LoadingProgress");
  689.             if ( throbber && meter ) {
  690.                 var busy = throbber.getAttribute("busy");
  691.                 if ( busy == "true" ) {
  692.                     mode = "undetermined";
  693.                 } else {
  694.                     mode = "normal";
  695.                 }
  696.                 meter.setAttribute("mode",mode);
  697.                 if ( mode == "normal" ) {
  698.                     var status = document.getElementById("Browser:Status");
  699.                     if ( status ) {
  700.                         status.setAttribute("label","Document: Done");
  701.                     }
  702.                 }
  703.             }
  704.         }
  705.         function dumpProgress() {
  706.             var broadcaster = document.getElementById("Browser:LoadingProgress");
  707.             var meter       = document.getElementById("meter");
  708.             dump( "bindCount=" + bindCount + "\n" );
  709.             dump( "broadcaster mode=" + broadcaster.getAttribute("mode") + "\n" );
  710.             dump( "broadcaster value=" + broadcaster.getAttribute("value") + "\n" );
  711.             dump( "meter mode=" + meter.getAttribute("mode") + "\n" );
  712.             dump( "meter value=" + meter.getAttribute("value") + "\n" );
  713.         }
  714.     </script>
  715.  
  716.   <box align="horizontal" id="status-bar">
  717.  
  718.     <broadcaster id="Browser:LoadingProgress"/>
  719.     <broadcaster id="Browser:Status"/>
  720.     <broadcaster id="Browser:OnStartBinding"/>
  721.     <broadcaster id="Browser:OnStopBinding"/>
  722.     <broadcaster id="Browser:Security" secure="false"/>
  723.     <broadcaster id="Browser:Throbber" busy="false"/>
  724.     
  725.     <button label="[Notification Component]" onclick="doTests()"/>
  726.  
  727.   <box id="security-box" class="insecure" align="horizontal" flex="100%">
  728.     <box align="vertical" style="width:100px">
  729.       <spring flex="100%"/>
  730.       <progressmeter id="statusbar-icon" mode="normal" value="0" onclick="dumpProgress()">
  731.         <observes element="Browser:LoadingProgress" attribute="mode"/>
  732.         <observes element="Browser:Throbber" attribute="busy" onbroadcast="onProgress()"/>
  733.       </progressmeter>
  734.       <spring flex="100%"/>
  735.     </box>
  736.  
  737.     <button id="statusText" align="right" flex="1%" label="Document: Done" style="font-family:sans-serif;font-size:2.5mm">
  738.              <observes element="Browser:Status" attribute="label" onbroadcast="onStatus()"/>      
  739.     </button>
  740.  
  741.     <spring flex="100%"/>
  742.  
  743.     <button align="right" label="Build ID: 99032911" style="font-family:sans-serif;font-size:2.5mm">
  744.     </button>
  745.  
  746.     <button id="security-button" class="insecure" label="Secure Conn" align="right" onclick="securityOff();"/>
  747.      </box>
  748.   </box>
  749.  
  750.   <toolbox>
  751.     <toolbar id="taskbar">
  752.         <box align="horizontal">
  753.            <button align="left" class="popup"  label="Web" />
  754.            <button align="left" class="popup"  label="Mail" />
  755.            <button align="left" class="popup"  label="Chat" />
  756.       </box>
  757.       <spring flex="100%"/>
  758.       <box align="horizontal">
  759.         <button align="left"  class="popup"  label="DayPlanner" />
  760.         <button align="left"  class="popup"  label="Shopping" />
  761.         <button align="left"  class="popup"  label="My Desk" />
  762.           </box>
  763.       <spring flex="100%"/>
  764.         <box align="horizontal">
  765.         <button align="left" class="popup" label="Open Windows" />
  766.         <button align="left" id="mini-nav" label="" />
  767.         <button align="left" id="mini-mail" label="" onclick="OpenMessenger()"/>
  768.         <button align="left" id="mini-addr" label="" />
  769.         <button align="left" id="mini-comp" label="" />
  770.         </box>
  771.     </toolbar>
  772.   </toolbox>
  773.   </box>
  774. </window>
  775.