Files
webthink/menuControl.js

76 lines
2.1 KiB
JavaScript
Raw Normal View History

2017-02-07 20:13:14 +00:00
function menuControl(menuItems,colCount) {
var m_domElement=document.createElement("div");
m_domElement.setAttribute("class","contextMenu");
var m_menuItems=menuItems;
var m_colCount=colCount?colCount:0;
return(construct());
function construct() {
m_domElement.isVisible=true;
m_domElement.show=show;
m_domElement.hide=hide;
m_domElement.toggleVisible=toggleVisible;
var btnTbl=document.createElement("table");
if (0==m_colCount) {
var tblRow=document.createElement("tr");
btnTbl.appendChild(tblRow);
}
for(var i=0;i<m_menuItems.length;i++){
if ((0!=m_colCount) && ((i%m_colCount)==0)) {
var tblRow=document.createElement("tr");
btnTbl.appendChild(tblRow);
}
var tblDta=document.createElement("td");
tblDta.appendChild(addMenuItem(m_menuItems[i]));
tblRow.appendChild(tblDta);
}
m_domElement.appendChild(btnTbl);
return(m_domElement);
}
function addMenuItem(menuItem) {
var theItem=document.createElement("div");
theItem.setAttribute("class",menuItem.styleClass?menuItem.styleClass:"contextMenuItem");
theItem.onclick=menuItem.clickAction;
theItem.appendChild(menuItem.node);
return(theItem);
}
function toggleVisible() {
if (m_domElement.isVisible) {
hide();
} else {
show();
}
}
function hide() {
m_domElement.isVisible=false;
m_domElement.style.display="none";
}
function show() {
m_domElement.isVisible=true;
m_domElement.style.display="block";
}
}
function pictureMenuItem(image,title,clickAction,styleClass){
this.node=document.createElement("span");
var imgNode=document.createElement("img");
imgNode.setAttribute("src",image);
imgNode.setAttribute("title",title);
this.node.appendChild(imgNode);
this.clickAction=clickAction;
this.styleClass=styleClass;
}
function textMenuItem(text,clickAction,styleClass){
this.node=document.createElement("span");
this.node.appendChild(document.createTextNode(text));
this.clickAction=clickAction;
this.styleClass=styleClass;
}
function menuItem(node,clickAction,styleClass){
this.node=node;
this.clickAction=clickAction;
this.styleClass=styleClass;
}