<!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>
|