App-SocialCalc-Multiplayer
view release on metacpan or search on metacpan
socialcalc/socialcalcspreadsheetcontrol.js view on Meta::CPAN
pos.right = 0;
nodestyle = spreadsheet.parentNode.style;
if (nodestyle.marginTop) {
pos.top += nodestyle.marginTop.slice(0,-2)-0;
}
if (nodestyle.marginBottom) {
pos.bottom += nodestyle.marginBottom.slice(0,-2)-0;
}
if (nodestyle.marginLeft) {
pos.left += nodestyle.marginLeft.slice(0,-2)-0;
}
if (nodestyle.marginRight) {
pos.right += nodestyle.marginRight.slice(0,-2)-0;
}
newval = spreadsheet.requestedHeight ||
sizes.height - (pos.top + pos.bottom + fudgefactorY) -
(spreadsheet.requestedSpaceBelow || 0);
if (spreadsheet.height != newval) {
spreadsheet.height = newval;
spreadsheet.spreadsheetDiv.style.height = newval + "px";
resized = true;
}
newval = spreadsheet.requestedWidth ||
sizes.width - (pos.left + pos.right + fudgefactorX) || 700;
if (spreadsheet.width != newval) {
spreadsheet.width = newval;
spreadsheet.spreadsheetDiv.style.width = newval + "px";
resized = true;
}
return resized;
}
//
// SocialCalc.SetTab(obj)
//
// The obj argument is either a string with the tab name or a DOM element with an ID
//
SocialCalc.SetTab = function(obj) {
var newtab, tname, newtabnum, newview, i, vname, ele;
var menutabs = {};
var tools = {};
var spreadsheet = SocialCalc.GetSpreadsheetControlObject();
var tabs = spreadsheet.tabs;
var views = spreadsheet.views;
if (typeof obj == "string") {
newtab = obj;
}
else {
newtab = obj.id.slice(spreadsheet.idPrefix.length,-3);
}
if (spreadsheet.editor.busy && // if busy and switching from "sheet", ignore
(!tabs[spreadsheet.currentTab].view || tabs[spreadsheet.currentTab].view=="sheet")) {
for (i=0; i<tabs.length; i++) {
if(tabs[i].name==newtab && (tabs[i].view && tabs[i].view!="sheet")) {
return;
}
}
}
if (spreadsheet.tabs[spreadsheet.currentTab].onunclick) {
spreadsheet.tabs[spreadsheet.currentTab].onunclick(spreadsheet, spreadsheet.tabs[spreadsheet.currentTab].name);
}
for (i=0; i<tabs.length; i++) {
tname = tabs[i].name;
menutabs[tname] = document.getElementById(spreadsheet.idPrefix+tname+"tab");
tools[tname] = document.getElementById(spreadsheet.idPrefix+tname+"tools");
if (tname==newtab) {
newtabnum = i;
tools[tname].style.display = "block";
menutabs[tname].style.cssText = spreadsheet.tabselectedCSS;
}
else {
tools[tname].style.display = "none";
menutabs[tname].style.cssText = spreadsheet.tabplainCSS;
}
}
spreadsheet.currentTab = newtabnum;
if (tabs[newtabnum].onclick) {
tabs[newtabnum].onclick(spreadsheet, newtab);
}
for (vname in views) {
if ((!tabs[newtabnum].view && vname == "sheet") || tabs[newtabnum].view == vname) {
views[vname].element.style.display = "block";
newview = vname;
}
else {
views[vname].element.style.display = "none";
}
}
if (tabs[newtabnum].onclickFocus) {
ele = tabs[newtabnum].onclickFocus;
if (typeof ele == "string") {
ele = document.getElementById(spreadsheet.idPrefix+ele);
ele.focus();
}
SocialCalc.CmdGotFocus(ele);
}
else {
SocialCalc.KeyboardFocus();
}
if (views[newview].needsresize && views[newview].onresize) {
views[newview].needsresize = false;
views[newview].onresize(spreadsheet, views[newview]);
}
( run in 1.735 second using v1.01-cache-2.11-cpan-97f6503c9c8 )