From 1354d17270961fff662d40f90521223f8fd0d73b Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 14 Aug 2012 18:59:10 +0400 Subject: update dojo to 1.7.3 --- lib/dijit/PopupMenuItem.js.uncompressed.js | 80 ++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 lib/dijit/PopupMenuItem.js.uncompressed.js (limited to 'lib/dijit/PopupMenuItem.js.uncompressed.js') diff --git a/lib/dijit/PopupMenuItem.js.uncompressed.js b/lib/dijit/PopupMenuItem.js.uncompressed.js new file mode 100644 index 000000000..201574225 --- /dev/null +++ b/lib/dijit/PopupMenuItem.js.uncompressed.js @@ -0,0 +1,80 @@ +define("dijit/PopupMenuItem", [ + "dojo/_base/declare", // declare + "dojo/dom-style", // domStyle.set + "dojo/query", // query + "dojo/_base/window", // win.body + "./registry", // registry.byNode + "./MenuItem", + "./hccss" +], function(declare, domStyle, query, win, registry, MenuItem){ + +/*===== + var MenuItem = dijit.MenuItem; +=====*/ + + // module: + // dijit/PopupMenuItem + // summary: + // An item in a Menu that spawn a drop down (usually a drop down menu) + + return declare("dijit.PopupMenuItem", MenuItem, { + // summary: + // An item in a Menu that spawn a drop down (usually a drop down menu) + + _fillContent: function(){ + // summary: + // When Menu is declared in markup, this code gets the menu label and + // the popup widget from the srcNodeRef. + // description: + // srcNodeRefinnerHTML contains both the menu item text and a popup widget + // The first part holds the menu item text and the second part is the popup + // example: + // |
+ // | pick me + // | ... + // |
+ // tags: + // protected + + if(this.srcNodeRef){ + var nodes = query("*", this.srcNodeRef); + this.inherited(arguments, [nodes[0]]); + + // save pointer to srcNode so we can grab the drop down widget after it's instantiated + this.dropDownContainer = this.srcNodeRef; + } + }, + + startup: function(){ + if(this._started){ return; } + this.inherited(arguments); + + // we didn't copy the dropdown widget from the this.srcNodeRef, so it's in no-man's + // land now. move it to win.doc.body. + if(!this.popup){ + var node = query("[widgetId]", this.dropDownContainer)[0]; + this.popup = registry.byNode(node); + } + win.body().appendChild(this.popup.domNode); + this.popup.startup(); + + this.popup.domNode.style.display="none"; + if(this.arrowWrapper){ + domStyle.set(this.arrowWrapper, "visibility", ""); + } + this.focusNode.setAttribute("aria-haspopup", "true"); + }, + + destroyDescendants: function(/*Boolean*/ preserveDom){ + if(this.popup){ + // Destroy the popup, unless it's already been destroyed. This can happen because + // the popup is a direct child of even though it's logically my child. + if(!this.popup._destroyed){ + this.popup.destroyRecursive(preserveDom); + } + delete this.popup; + } + this.inherited(arguments); + } + }); +}); -- cgit v1.2.3