<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Application Menubar Example</title>
<!-- Standard reset and fonts --> <link rel="stylesheet" type="text/css" href="./build/reset/reset.css"> <link rel="stylesheet" type="text/css" href="./build/fonts/fonts.css"> <link rel="stylesheet" type="text/css" href="./build/container/assets/container.css">
<!-- CSS for Menu --> <link rel="stylesheet" type="text/css" href="./build/menu/assets/menu.css"> <!-- Page-specific styles --> <style type="text/css">
body { background-color:#dfb8df; }
/* Define a new style for each menubar */
div.yuimenubar { border-width:1px 0; border-color:#666; border-style:solid; background-color:#ccc;
} div.yuimenubar div.bd { border-width:1px 0; border-color:#ddd; border-style:solid; }
div.yuimenubar li.yuimenubaritem {
border-width:0; border-style:none; padding:4px 12px; }
div.yuimenubar li.yuimenubaritem img { margin:0; border:0; height:1px; width:1px; }
/* Define a new style for each menu */
div.yuimenu {
border:solid 1px #666; background-color:#ccc; }
div.yuimenu div.bd { border-width:0; border-style:none; }
/* Define a new style for each menu item */
div.yuimenu li.yuimenuitem {
padding-top:4px; padding-bottom:4px;
}
div.yuimenu li.yuimenuitem img { height:8px; width:8px; margin:0 -16px 0 10px; border:0; }
div.yuimenu ul { border:solid 1px #666; border-width:1px 0 0 0; }
/* Define a new style for an item's "selected" state */
div.yuimenu li.selected, div.yuimenubar li.selected { background-color:#039; }
div.yuimenu li.selected a.selected, div.yuimenubar li.selected a.selected { text-decoration:none; }
/* Define a new style for an item's "disabled" state */
div.yuimenu li.disabled a.disabled, div.yuimenu li.disabled em.disabled, div.yuimenubar li.disabled a.disabled { color:#666; } </style>
</head> <body>
<!-- Namespace source file --> <script type="text/javascript" src="./build/yahoo/yahoo.js"></script>
<!-- Dependency source files --> <script type="text/javascript" src="./build/event/event.js"></script> <script type="text/javascript" src="./build/dom/dom.js"></script> <script type="text/javascript" src="./build/dragdrop/dragdrop.js"></script> <script type="text/javascript" src="./build/animation/animation.js"></script> <!-- Container source file --> <script type="text/javascript" src="./build/container/container.js"></script>
<!-- Menu source file --> <script type="text/javascript" src="./build/menu/menu.js"></script>
<!-- Page-specific script --> <script type="text/javascript">
/** * Constant representing the path to the image to be used for the * submenu arrow indicator. * @final * @type String */ YAHOO.widget.MenuBarItem.prototype.SUBMENU_INDICATOR_IMAGE_PATH = "promo/m/irs/blank.gif"; /** * Constant representing the path to the image to be used for the * submenu arrow indicator when a MenuBarItem instance is selected. * @final * @type String */ YAHOO.widget.MenuBarItem.prototype.SELECTED_SUBMENU_INDICATOR_IMAGE_PATH = "promo/m/irs/blank.gif"; /** * Constant representing the path to the image to be used for the * submenu arrow indicator when a MenuBarItem instance is disabled. * @final * @type String */ YAHOO.widget.MenuBarItem.prototype.DISABLED_SUBMENU_INDICATOR_IMAGE_PATH = "promo/m/irs/blank.gif";
// "load" event handler for the window
YAHOO.example.onWindowLoad = function(p_oEvent) {
// "click" event handler for each item in the root MenuBar instance function onMenuBarItemClick(p_sType, p_aArguments) { this.parent.hasFocus = true; var oActiveItem = this.parent.activeItem; // Hide any other submenus that might be visible if(oActiveItem && oActiveItem != this) { this.parent.clearActiveItem(); } // Select and focus the current MenuItem instance this.cfg.setProperty("selected", true); this.focus(); // Show the submenu for this instance var oSubmenu = this.cfg.getProperty("submenu"); if(oSubmenu) { if(oSubmenu.cfg.getProperty("visible")) { oSubmenu.hide(); } else { oSubmenu.show(); } } } // "mouseover" event handler for each item in the root MenuBar instance function onMenuBarItemMouseOver(p_sType, p_aArguments) { var oActiveItem = this.parent.activeItem; // Hide any other submenus that might be visible if(oActiveItem && oActiveItem != this) { this.parent.clearActiveItem(); } // Select and focus the current MenuItem instance this.cfg.setProperty("selected", true); this.focus(); if(this.parent.hasFocus) { // Show the submenu for this instance var oSubmenu = this.cfg.getProperty("submenu"); if(oSubmenu) { if(oSubmenu.cfg.getProperty("visible")) { oSubmenu.hide(); } else { oSubmenu.show(); } } } }
var oApplicationsMenu = new YAHOO.widget.Menu("applications"); oApplicationsMenu.addItem("Application 1"); oApplicationsMenu.addItem("Application 2"); oApplicationsMenu.addItem("Application 3"); oApplicationsMenu.addItem("Application 3");
var oFileMenu = new YAHOO.widget.Menu("filemenu", { zIndex:2 }); oFileMenu.addItem(new YAHOO.widget.MenuItem("New File", { helptext: "Ctrl + N" } )); oFileMenu.addItem("New Folder"); oFileMenu.addItem(new YAHOO.widget.MenuItem("Open", { helptext: "Ctrl + O" })); oFileMenu.addItem(new YAHOO.widget.MenuItem("Open With...", { submenu: oApplicationsMenu })); oFileMenu.addItem(new YAHOO.widget.MenuItem("Print", { helptext: "Ctrl + P" }));
var oEditMenu = new YAHOO.widget.Menu("edit", { zIndex:2 });
oEditMenu.addItem(new YAHOO.widget.MenuItem("Undo", { helptext: "Ctrl + Z" })); oEditMenu.addItem(new YAHOO.widget.MenuItem("Redo", { helptext: "Ctrl + Y", disabled: true })); oEditMenu.addItem(new YAHOO.widget.MenuItem("Cut", { helptext: "Ctrl + X", disabled: true }), 1); oEditMenu.addItem(new YAHOO.widget.MenuItem("Copy", { helptext: "Ctrl + C", disabled: true }), 1); oEditMenu.addItem(new YAHOO.widget.MenuItem("Paste", { helptext: "Ctrl + V" }), 1); oEditMenu.addItem(new YAHOO.widget.MenuItem("Delete", { helptext: "Del", disabled: true }), 1); oEditMenu.addItem(new YAHOO.widget.MenuItem("Select All", { helptext: "Ctrl + A" }), 2); oEditMenu.addItem(new YAHOO.widget.MenuItem("Find", { helptext: "Ctrl + F" }), 3); oEditMenu.addItem(new YAHOO.widget.MenuItem("Find Again", { helptext: "Ctrl + G" }), 3);
var oMenuBar = new YAHOO.widget.MenuBar("menubar");
oMenuBar.addItem(new YAHOO.widget.MenuBarItem("File", { submenu: oFileMenu })); oMenuBar.addItem(new YAHOO.widget.MenuBarItem("Edit", { submenu: oEditMenu })); oMenuBar.addItem("View"); oMenuBar.addItem("Favorites"); oMenuBar.addItem("Tools"); oMenuBar.addItem("Tools"); oMenuBar.addItem("Help"); oMenuBar.addItem(new YAHOO.widget.MenuBarItem("Examples Home", { url: "index.html" }));
// Render the MenuBar instance and corresponding submenus
oMenuBar.render(document.body);
/* Add a "click" and "mouseover" event handler to each item in the root MenuBar instnace */
var i = oMenuBar.getItemGroups()[0].length - 1, oMenuBarItem;
do {
oMenuBarItem = oMenuBar.getItem(i); if(oMenuBarItem) {
oMenuBarItem.clickEvent.subscribe( onMenuBarItemClick, oMenuBarItem, true );
oMenuBarItem.mouseOverEvent.subscribe( onMenuBarItemMouseOver, oMenuBarItem, true );
} } while(i--);
// "click" event handler for the document function onDocumentClick(p_oEvent) { var oTarget = YAHOO.util.Event.getTarget(p_oEvent);
if( oTarget != oMenuBar.element && !YAHOO.util.Dom.isAncestor(oMenuBar.element, oTarget) ) { oMenuBar.hasFocus = false; if(oMenuBar.activeItem) { var oSubmenu = oMenuBar.activeItem.cfg.getProperty("submenu");
if(oSubmenu) { oSubmenu.hide(); }
oMenuBar.clearActiveItem(); oMenuBar.activeItem.blur(); } }
}
// Add a "click" handler for the document
YAHOO.util.Event.addListener( document, "click", onDocumentClick );
var oPanel = new YAHOO.widget.SimpleDialog( "exampleinfo", { constraintoviewport: true, fixedcenter:true, width:"400px", zIndex:1 } ); oPanel.setHeader("Application Menubar Example"); oPanel.setBody("This example demonstrates how to create an application-like menubar using nothing by JavaScript.");
oPanel.render(document.body); oPanel.show();
}
// Add a "load" handler for the window
YAHOO.util.Event.addListener(window, "load", YAHOO.example.onWindowLoad);
</script>
</body> </html>
|