diff -r bf4420e9fa4d -r 2e16851ffecd ginebra/chrome/bedrockchrome/windowcount.snippet/windowcount.js --- a/ginebra/chrome/bedrockchrome/windowcount.snippet/windowcount.js Fri Jun 11 16:23:26 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,222 +0,0 @@ -/* This snippet is used to display the circles indicating the number of windows open. - * Current window is indicated using filled in circle and others by an empty circle. - * In portrait mode, the snippet is placed below the status bar while in landscape - * mode, it is overlaid on the status bar - * Note: When overlaying the snippet there were some issues repainting when the background was set to none - * and hence a table with three cells are being used - the width of first and last cells match the - * area we need to see from the status bar and their backgrounds are set to none. The middle cell is - * used to display the circles and its bakground changes between black and white based - * on the display mode. - */ - -// -// INIT the WindowCount snippet -// -function WindowCountBar(id) -{ - - this.id = id; - - this.begin = - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - '
'+ - ''; - - this.filledimg = - '' ; - - this.emptyimg = - '' ; - - this.end = - ''+ - '
' ; - - this.InitWCBar = function() { - this.wcUpdateWindowHtml(); - this.setId(); - } - - /* To identify the class. This class can also be identified through the - * global variable wcbar which saves the instance when initialized - * in chrome.html - */ - this.setId = function () { - el = document.getElementById(this.id); - if(el.wcChrome) { - delete eldom.wcChrome; - } - el.wcChrome = this; - - } - - this.wcUpdateWindowHtml = function() { - - //window.chrome.alert("wcUpdateWindowHtml "+ window.pageController.pageCount()); - - /* Generate html based on the number of windows open */ - switch(window.pageController.pageCount()) { - case 1: - this.wcOneWindow(); - break; - case 2: - this.wcTwoWindows(); - break; - case 3: - this.wcThreeWindows(); - break; - case 4: - this.wcFourWindows(); - break; - case 5: - this.wcFiveWindows(); - break; - default : - break; - } - this.setProps(); - - } - - this.wcOneWindow = function() { - - var htmlText = '' + - this.begin + this.filledimg + this.end; - - var el = document.getElementById("wcrow"); - if (el ) { - el.innerHTML = htmlText; - } - else { - document.write(htmlText); - } - } - - this.wcTwoWindows = function() { - var htmlText = '' + - this.begin + this.emptyimg + this.emptyimg + this.end; - - this.setHtmlText(htmlText) - - - } - - this.wcThreeWindows = function() { - var htmlText = '' + - this.begin + this.emptyimg + this.emptyimg + this.emptyimg+ this.end; - this.setHtmlText(htmlText) - } - - this.wcFourWindows = function() { - var htmlText = '' + - this.begin + this.emptyimg + this.emptyimg + this.emptyimg + this.emptyimg + this.end; - - this.setHtmlText(htmlText) - } - - this.wcFiveWindows = function() { - var htmlText = '' + - this.begin + this.emptyimg + this.emptyimg + this.emptyimg + this.emptyimg + this.emptyimg + this.end; - - this.setHtmlText(htmlText) - } - - this.setHtmlText = function(htmlText) { - - var el = document.getElementById("wcrow"); - if (el ) { - el.innerHTML = htmlText; - } - else { - document.write(htmlText); - } - this.setCurrentIndex(); - } - - this.setCurrentIndex = function(){ - var el = document.getElementById("wcrow"); - Icons = el.getElementsByTagName("img"); - - Icons[window.pageController.currentPageIndex].setAttribute('src', "windowcount.snippet/icons/filledcircle.png"); - } - - - this.setSnippetPosition = function(mode) { - if (window.snippets.WindowCountBarId ) { - if (mode == "portrait") { - window.snippets.WindowCountBarId.anchor = "AnchorTop"; - window.snippets.WindowCountBarId.anchorOffset = 27; - document.getElementById("WindowCountBarId").style.backgroundColor='white'; - - - } - else if (mode == "landscape") { - window.snippets.WindowCountBarId.anchor = "AnchorNone"; - window.snippets.WindowCountBarId.setPosition(0, 0); - document.getElementById("WindowCountBarId").style.backgroundColor='transparent'; - } - - } - } - - - /* Private method that sets the properties: - * set the widht of first and last cells, - * set the background of middle cell based on - * display mode - */ - this.setProps = function() { - var leftW = document.getElementById("strength").offsetWidth + - document.getElementById("title").offsetWidth; - - var rightW = document.getElementById("clock").offsetWidth + - document.getElementById("battery").offsetWidth; - - if (window.snippets.WindowCountBarId ) { - document.getElementById("wcfirst").width = leftW; - document.getElementById("wclast").width = rightW; - - if (window.chrome.displayMode == "portrait" ) { - document.getElementById("wccontent").style.backgroundColor='white'; - } - else { - // match status bar style (transparent doesn't repaint/refresh correctly) - document.getElementById("wccontent").style.background='-webkit-gradient(linear, left top, left bottom,color-stop(0%,#111122),color-stop(100%,#111144))'; - } - } - - } - - /* Initialize */ - this.InitWCBar(); - - /* Slots */ - window.chrome.loadComplete.connect( - function() { - document.getElementById('WindowCountBarId').wcChrome.setSnippetPosition(window.chrome.displayMode); - window.snippets.updateGeometry(); - } - ); - - /* Geometry is updated when there is a change in display mode. Here, we - * just need to set our attributes - */ - window.chrome.onDisplayModeChangeStart.connect( - function(mode) { - document.getElementById('WindowCountBarId').wcChrome.setSnippetPosition(mode); - } - ); - - window.chrome.onDisplayModeChanged.connect( - function(mode) { - document.getElementById('WindowCountBarId').wcChrome.setProps(); - } - ); - - -}