App-SocialCalc-Multiplayer
view release on metacpan or search on metacpan
socialcalc/socialcalcpopup.js view on Meta::CPAN
var sp = SocialCalc.Popup;
var spt = sp.Types;
var spc = sp.Controls;
var spcdata = spc[id].data;
var list = spcdata.listdiv;
if (!list) return;
var rowele = list.firstChild.firstChild.firstChild; // div.table.tbody.tr
for (col=0; col<spcdata.ncols; col++) {
for (i=0; i<rowele.childNodes[col*2].childNodes.length; i++) {
rowele.childNodes[col*2].childNodes[i].style.backgroundColor = "#FFF";
}
}
ele.style.backgroundColor = "#DDF";
}
SocialCalc.Popup.Types.List.Hide = function(type, id) {
var sp = SocialCalc.Popup;
var spt = sp.Types;
var spc = sp.Controls;
var spcdata = spc[id].data;
sp.DestroyPopupDiv(spcdata.popupele, spcdata.dragregistered);
spcdata.popupele = null;
if (spcdata.mainele && spcdata.mainele.firstChild) {
spcdata.mainele.firstChild.disabled = false;
}
}
SocialCalc.Popup.Types.List.Cancel = function(type, id) {
SocialCalc.Popup.Types.List.Hide(type, id);
}
//
// ColorChooser
//
// type: ColorChooser
// value: value of control as "rgb(r,g,b)" or "" if default,
// oldvalue: starting value to reset to on close,
// display: "value to display" as hex color value,
// custom: true if custom value,
// disabled: t/f,
// attribs: {
// title: "popup title string",
// moveable: t/f,
// width: optional width, e.g., "100px", of popup chooser
// ensureWithin: optional element object to ensure popup fits within if possible
// sampleWidth: optional width, e.g., "20px",
// sampleHeight: optional height, e.g., "20px",
// backgroundImage: optional background image for sample (transparent where want to show current color), e.g., "colorbg.gif"
// backgroundImageDefault: optional background image for sample when default (transparent shows white)
// backgroundImageDisabled: optional background image for sample when disabled (transparent shows gray)
// changedcallback: optional function(attribs, id, newvalue),
// ...
// }
// data: {
// }
//
// popupele: gets popup element object when created
// contentele: gets element created with all the content
// customele: gets input element with custom value
//
SocialCalc.Popup.Types.ColorChooser = {};
SocialCalc.Popup.Types.ColorChooser.Create = function(type, id, attribs) {
var sp = SocialCalc.Popup;
var spt = sp.Types;
var spc = sp.Controls;
var spcid = {type: type, value: "", display: "", data: {}};
if (spc[id]) {alert("Already created "+id); return;}
spc[id] = spcid;
var spcdata = spcid.data;
spcdata.attribs = attribs || {};
var spca = spcdata.attribs;
spcdata.value = "";
var ele = document.getElementById(id);
if (!ele) {alert("Missing element "+id); return;}
spcdata.mainele = ele;
ele.innerHTML = '<div style="cursor:pointer;border:1px solid black;vertical-align:top;width:'+
(spca.sampleWidth || '15px')+';height:'+(spca.sampleHeight || '15px')+
';" onclick="SocialCalc.Popup.Types.ColorChooser.ControlClicked(\''+id+'\');"> </div>';
}
SocialCalc.Popup.Types.ColorChooser.SetValue = function(type, id, value) {
var i, img, pos;
var sp = SocialCalc.Popup;
var spt = sp.Types;
var spc = sp.Controls;
var spcdata = spc[id].data;
var spca = spcdata.attribs;
spcdata.value = value;
spcdata.custom = false;
if (spcdata.mainele && spcdata.mainele.firstChild) {
if (spcdata.value) {
spcdata.mainele.firstChild.style.backgroundColor = spcdata.value;
if (spca.backgroundImage) {
img = "url("+sp.imagePrefix+spca.backgroundImage+")";
}
else {
( run in 2.953 seconds using v1.01-cache-2.11-cpan-364913b4093 )