76 lines
2.1 KiB
JavaScript
76 lines
2.1 KiB
JavaScript
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;
|
|
}
|