From b89a7ee8b956c96a1dcee995ea840feddc5d4b27 Mon Sep 17 00:00:00 2001 From: Pierre Frisch Date: Thu, 22 Dec 2011 07:25:50 -0800 Subject: First commit of Ninja to ninja-internal Signed-off-by: Valerio Virgillito --- js/components/menu/menu.reel/menu.js | 108 +++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 js/components/menu/menu.reel/menu.js (limited to 'js/components/menu/menu.reel/menu.js') diff --git a/js/components/menu/menu.reel/menu.js b/js/components/menu/menu.reel/menu.js new file mode 100644 index 00000000..fb221640 --- /dev/null +++ b/js/components/menu/menu.reel/menu.js @@ -0,0 +1,108 @@ +/* +This file contains proprietary software owned by Motorola Mobility, Inc.
+No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.
+(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. +
*/ + +var Montage = require("montage/core/core").Montage, + Component = require("montage/ui/component").Component; + +exports.Menu = Montage.create(Component, { + + _active: { + value: false + }, + + active: { + get: function() { + return this._active; + }, + set: function(value) { + this._active = value; + } + }, + + _activeEntry: { + value: null + }, + + activeEntry: { + get: function() { + return this._activeEntry; + }, + set: function(value) { + if(this.active) { + + if(this._activeEntry) this._activeEntry.deselect(); + + this._activeEntry = value; + + this._activeEntry.select(); + + } + } + }, + + toggleActivation: { + value: function(item) { + if(this.active) { + this._activeEntry.deselect(); + this._activeEntry = null; + this.active = false; + this.element.ownerDocument.removeEventListener('mousedown', this, false); + } else { + this.active = true; + this.activeEntry = item; + this.element.ownerDocument.addEventListener('mousedown', this, false); + } + } + }, + + prepareForDraw: { + value: function() { + + } + }, + + handleMousedown: { + value: function(evt) { + + if(this.active && (this.getZIndex(evt.target) < 9000 || evt.target.id === "topMenu")) { + this._activeEntry.deselect(); + this._activeEntry = null; + this.active = false; + + //console.log(this.rep.objects[1]); + //this.controller.content[1].header = "BLAH"; + } + +// console.log(evt.target.style['z-index']); +// console.log(this.getZIndex(evt.target)); + + } + }, + + getZIndex: { + value: function(elem) { + + var position, value, zIndex; + while (elem && elem !== document) { +// position = elem.style.position; + position = document.defaultView.getComputedStyle(elem, "").getPropertyValue("position"); + + if (position === "absolute" || position === "relative" || position === "fixed") { + // webkit returns a string for zindex value and "" if zindex is not available +// zIndex = elem.style['z-index']; + zIndex = document.defaultView.getComputedStyle(elem, "").getPropertyValue("z-index"); + value = parseInt(zIndex, 10); + if (!isNaN(value) && value !== 0) { + return value; + } + } + elem = elem.parentNode; + } + return 0; + } + } + +}); \ No newline at end of file -- cgit v1.2.3