diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2007-11-02 15:47:39 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2007-11-02 15:47:39 +0000 |
| commit | e000302ccf5389fe23e376f5a32629bc210f99ce (patch) | |
| tree | cb361cc2b32118f9711e802f4a207186f5262af6 /skins/xstyle/javascript | |
| parent | 1082766ae4b0091bd9a697ac99d31869187ab6db (diff) | |
| download | xxv-e000302ccf5389fe23e376f5a32629bc210f99ce.tar.gz xxv-e000302ccf5389fe23e376f5a32629bc210f99ce.tar.bz2 | |
* xstyle remove double files
* xstyle fix some css mistakes
* xstyle update tooltips functions
Diffstat (limited to 'skins/xstyle/javascript')
| -rw-r--r-- | skins/xstyle/javascript/tooltip.js | 178 | ||||
| -rw-r--r-- | skins/xstyle/javascript/xtree.js | 4 |
2 files changed, 146 insertions, 36 deletions
diff --git a/skins/xstyle/javascript/tooltip.js b/skins/xstyle/javascript/tooltip.js index e0ee20b..f66f4e8 100644 --- a/skins/xstyle/javascript/tooltip.js +++ b/skins/xstyle/javascript/tooltip.js @@ -6,10 +6,72 @@ var ttp_x = -1; var ttp_y = -1; var ttp_visable = 0; var ttp_offset_x = 0; +var ttp_x_start = -1; +var ttp_y_start = -1; +var ttp_active = 1; +var ttp_inside = 0; + +var ie5=document.all&&document.getElementById; +var ns6=document.getElementById&&!document.all; +var opera =window.opera; +var dom=(!opera && document.compatMode && document.compatMode!="BackCompat"); + +function iecompattest(){ + return dom ? document.documentElement : document.body +} + +function getScrollingPosition() { + var x = 0, y = 0; + if( ns6 || typeof( window.pageYOffset ) == 'number' ) { + y = window.pageYOffset; + x = window.pageXOffset; + } else { + y = iecompattest().scrollTop; + x = iecompattest().scrollLeft; + } + return [ x, y ]; +} + +function WindowSize () { + var width = 0, height = 0; + if( ns6 || typeof( window.innerWidth ) == 'number' ) { + width = window.innerWidth; + height = window.innerHeight; + } else { + width = iecompattest().clientWidth; + height = iecompattest().clientHeight; + } + return [ width, height ]; +} function ttp_update_pos(){ - document.getElementById('TOOLTIP').style.left = (ttp_offset_x + ttp_x) + "px"; - document.getElementById('TOOLTIP').style.top = (ttp_y + 20) + "px"; + var Size = WindowSize(); + + var x = ttp_x + ttp_offset_x; + var y = ttp_y; + + var ele = document.getElementById('TOOLTIP'); + var scrPos = getScrollingPosition(); + + if(x + 500 > Size[0] + scrPos[0]) { + x = Size[0] - 500; + } + if(y + 150 > Size[1] + scrPos[1]) { + y = Size[1] - (y - 10); + ele.style.top = ''; + if(ie5&&!opera) { + ele.style.removeAttribute('top'); + y += scrPos[1]; + } + ele.style.bottom = y + "px"; + } else { + ele.style.bottom = ''; + if(ie5&&!opera) { + ele.style.removeAttribute('bottom'); + } + ele.style.top = (y + 20) + "px"; + } + ele.style.left = x + "px"; } var ttp_ie = document.all?true:false; @@ -26,7 +88,13 @@ if (ttp_ie) { } if (ttp_x < 0) {ttp_x = 0;} if (ttp_y < 0) {ttp_y = 0;} -if(ttp_visable) {ttp_update_pos();} +if(ttp_visable) { + if(Math.abs(ttp_x_start - ttp_x) > 200 + || Math.abs(ttp_y_start - ttp_y) > 200) { + ttp_make_invisable(); + } + ttp_update_pos(); + } } @@ -36,51 +104,64 @@ function ttp_update_content(title, description){ ttp_content += utitle.substr(0,50); if (utitle.length > 50) {ttp_content += '...';} ttp_content += '</p><p class="description">' - ttp_content += unescape(description); + if(description == 'WAIT') { + ttp_content += '<img src="images/repeat.png" alt="" />'; /* TODO => wait.gif */ + } else { + ttp_content += unescape(description); + } ttp_content += '</p></div>'; } function ttp_make_visable(title, description){ ttp_update_pos(); - document.getElementById('TOOLTIP').style.visibility = "visible"; ttp_update_content(title, description); - document.getElementById('TOOLTIP').innerHTML = ttp_content; - ttp_visable = 1; + var ele = document.getElementById('TOOLTIP'); + ele.innerHTML = ttp_content; + ele.style.visibility = "visible"; } -function ttp_make_invisable(self){ - clearTimeout(ttp_timer); - ttp_visable = 0; - document.getElementById('TOOLTIP').style.visibility = "hidden"; +function ttp_make_invisable(){ + var ele = document.getElementById('TOOLTIP'); + + if(ttp_visable || ele.style.visibility == "visible") { + clearTimeout(ttp_timer); + ele.style.visibility = "hidden"; + } + ttp_visable = 0; + ttp_inside = 0; } -function ttp(self, title, description, offset_x){ - self.onmouseout=function(){ ttp_make_invisable(this); }; - if(description && ttp_x != -1 && ttp_y != -1){ - ttp_offset_x = offset_x; - ttp_timer = setTimeout("ttp_make_visable('"+escape(title)+"', '"+escape(description)+"')", 750); - } +function ttp_enable(enable){ + ttp_make_invisable(); + ttp_active = enable } -function ttp_make_req_visable(title, eventid){ +function ttp_make_req_visable(title, eventid, x, y){ + + if(!eventid || eventid<=0 || ttp_inside==0 + || Math.abs(x - ttp_x) > 200 + || Math.abs(y - ttp_y) > 200) { + clearTimeout(ttp_timer); + ttp_inside = 0; + return false; + } + + ttp_x_start = ttp_x; + ttp_y_start = ttp_y; + ttp_make_visable(title,'WAIT'); - if(!eventid || eventid<=0) - return false; var fnWhenDone = function (oXML, sData) { var description = eval('(' + oXML.responseText + ')'); + var content; if(description && description.data && typeof(description.data) == 'string'){ - var content = description.data.replace(/\r\n/g,'<br />'); - - ttp_update_pos(); - ttp_update_content(title,content); - - document.getElementById('TOOLTIP').innerHTML = ttp_content; - document.getElementById('TOOLTIP').style.visibility = "visible"; - - ttp_visable = 1; + content = description.data.replace(/\r\n/g,'<br />'); + } else { + content = '...'; } + + ttp_make_visable(title,content); }; var url = "?cmd=edescription&data=" + eventid + "&ajax=json"; @@ -92,9 +173,38 @@ function ttp_make_req_visable(title, eventid){ function ttpreq(self, title, eventid, offset_x){ - self.onmouseout=function(){ ttp_make_invisable(this); }; - if(eventid && ttp_x != -1 && ttp_y != -1){ - ttp_offset_x = offset_x; - ttp_timer = setTimeout("ttp_make_req_visable('"+escape(title)+"', '"+eventid+"')", 750); - } + if(ttp_active) { + self.onmouseout=function(){ ttp_make_invisable(); }; + if(eventid && ttp_x != -1 && ttp_y != -1){ + ttp_offset_x = offset_x; + ttp_inside = 1; + ttp_timer = setTimeout("ttp_make_req_visable('"+escape(title)+"', '"+eventid+"', '"+ttp_x+"', '"+ttp_y+"')", 750); + } + } +} + +function ttp_make_direct_visable(title, description, x, y){ + + if(ttp_inside==0 + || Math.abs(x - ttp_x) > 200 + || Math.abs(y - ttp_y) > 200) { + clearTimeout(ttp_timer); + ttp_inside = 0; + return false; + } + + ttp_x_start = ttp_x; + ttp_y_start = ttp_y; + ttp_make_visable(title,description); +} + +function ttp(self, title, description, offset_x){ + if(ttp_active) { + self.onmouseout=function(){ ttp_make_invisable(); }; + if(description && ttp_x != -1 && ttp_y != -1){ + ttp_offset_x = offset_x; + ttp_inside = 1; + ttp_timer = setTimeout("ttp_make_direct_visable('"+escape(title)+"', '"+escape(description)+"')", 750); + } + } } diff --git a/skins/xstyle/javascript/xtree.js b/skins/xstyle/javascript/xtree.js index 58d2d95..a6652b0 100644 --- a/skins/xstyle/javascript/xtree.js +++ b/skins/xstyle/javascript/xtree.js @@ -78,7 +78,7 @@ var webFXTreeConfig = { tIcon : 'images/T.png', tMinusIcon : 'images/Tminus.png', tPlusIcon : 'images/Tplus.png', - blankIcon : 'images/blank.png', + blankIcon : 'images/trans.gif', defaultText : 'Tree Item', defaultAction : 'javascript:void(0);', defaultBehavior : 'classic', @@ -538,4 +538,4 @@ WebFXTreeItem.prototype.toString = function (nItem, nItemCount) { this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon); this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon); return str + sb.join("") + "</div>"; -}
\ No newline at end of file +} |
