- Timestamp:
- 06/16/09 11:47:05 (3 years ago)
- Location:
- branches/sc36
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
model/sources/dkCore/genSld/wdt/mgr/scPresMgr.doss/scPresMgr.js (modified) (66 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/sc36
-
branches/sc36/model/sources/dkCore/genSld/wdt/mgr/scPresMgr.doss/scPresMgr.js
r474 r478 17 17 * samuel.monsarrat@kelis.fr 18 18 * 19 * Portions created by the Initial Developer are Copyright (C) 200 819 * Portions created by the Initial Developer are Copyright (C) 2009 20 20 * the Initial Developer. All Rights Reserved. 21 21 * … … 47 47 fNavPath : null, 48 48 49 /* Paths standards. */ 49 50 fContainerFilter : ".ssContainer", 50 51 fContainerBlocksRootPath : "des:.ssBkRoot", 51 fBlkCoPath : "des:.ssBkCo", 52 fCutableFilter : ".ssCutable|p|ol|ul|li", 53 52 fBlkCoPath : "des:.ssBkCo", 53 fCutableFilter : ".ssCutable|p|ol|ul|li", 54 55 /* Constantes de stylage. */ 54 56 fSsCssName : "modeSS", 57 fSsClassPrefix : "tpl", 55 58 56 59 /* Constantes pour les animations. */ 57 58 60 /** Largeur mini du slide */ 59 61 fBlockMinWidth : 500, 60 62 /** Ratio de marge max par rapport à la largeur du container */ 61 fBlockMaxMargin : .3,63 fBlockMaxMargin : 0.3, 62 64 /** Ratio d'espace libre à placer au dessus du contenu */ 63 fBlockTopSpace : .3,65 fBlockTopSpace : 0.3, 64 66 /** Opacité pour les masks des steps. */ 65 67 fStepMaskOpacity : 0.9, … … 78 80 fListeners : [], 79 81 fToolElts : [], 82 fSldPosStyledElts : [], 83 fEnableEffects : true, 80 84 81 85 /* Etats */ … … 83 87 84 88 /* Localisations */ 85 fStrings : {en:["previous","previous image(left arrow)", //086 "next","next image(right arrow)", //287 "close","close the zoom (ESC)", //488 "WARNING: The Firebug extention is active.\nIt is advisable to deactivate Firebug while viewing this slide-show ",""],//689 fStrings : {en:["previous","previous (left arrow)", //0 90 "next","next (right arrow)", //2 91 "close","close the zoom (ESC)", //4 92 "WARNING: The Firebug extention is active.\nIt is advisable to deactivate Firebug while viewing this slide-show.",""],//6 89 93 fr:["Précédant","Précédant (flèche gauche)", 90 94 "Suivant","Suivant (flèche droite)", 91 95 "Fermer","Fermer le zoom (ESC)", 92 "ATTENTION : L'extension Firebug est actif.\nIl est conseillé de désactiver Firebug pour visualiser ce diaporama.",""] 96 "ATTENTION : L'extension Firebug est actif.\nIl est conseillé de désactiver Firebug pour visualiser ce diaporama.",""], 97 es:["anterior","anterior (flecha izquierda)", 98 "siguiente","siguiente (flecha derecha)", 99 "cerrar","cerrar el zoom (ESC)", 100 "ATENCIÓN: La extensión Firebug esta activa.\nSe recomienda desactivar Firebug mientras consulte esa presentación",""] 93 101 }, 94 102 … … 116 124 //Init liste elements outils 117 125 this.fToolElts = new Array(); 126 //Init liste elements stylés avec la position actuel dans le slide-show (FirstSlide LastSlide, FirstStep, LastStep) 127 this.fSldPosStyledElts = new Array(); 118 128 119 129 scOnLoads[scOnLoads.length] = this; … … 122 132 this.fContainerFilter = pContainerFilter; 123 133 }, 134 setCutableFilter : function(pCutableFilter) { 135 this.fCutableFilter = pCutableFilter; 136 }, 124 137 setContainerBlocksRootPath : function(pContainerBlocksRootPath) { 125 138 this.fContainerBlocksRootPath = pContainerBlocksRootPath; … … 128 141 this.fBlkCoPath = pBlkCoPath; 129 142 }, 130 setCutableFilter : function(pCutableFilter) { 131 this.fCutableFilter = pCutableFilter; 132 }, 143 /** Set paths of elements that constitute the zoom frame. */ 144 setZoomPaths : function(pZoomFramePath,pZoomContentPath) { 145 this.fZoomFramePath = pZoomFramePath; 146 this.fZoomContentPath = pZoomContentPath; 147 }, 148 /** register a path as a slide-position styled element. */ 149 addSlidePositionStyledPath : function(pPath) { 150 this.fSldPosStyledElts.push(pPath); 151 }, 152 /** register a listener. */ 153 register : function(pType, pFunc) { 154 this.fListeners[pType].push(pFunc); 155 }, 156 /** Enable / Disable auto tool hiding */ 157 enableToolHider : function(pEnable) { 158 this.fToolHider = pEnable; 159 if (!pEnable) this.xShowTools(); 160 }, 161 /** Enable / Disable visual effects */ 162 enableEffects : function(pEnable) { 163 this.fEnableEffects = pEnable; 164 }, 165 /** Enable / Disable visual effects */ 166 toggleEffects : function() { 167 this.fEnableEffects = ! this.fEnableEffects; 168 }, 169 /** register a node as a tool (auto hidden elements). */ 170 addToolElt : function(pNode) { 171 this.fToolElts.push(pNode); 172 }, 173 /** Main OnLoad function called by the SCENARI framework. */ 133 174 onLoad : function() { 134 175 try{ … … 166 207 //Init nav bar 167 208 this.fNav = scPaLib.findNode(this.fNavPath); 209 this.fNav.fDefaultClass = this.fNav.className; 168 210 this.fNav.innerHTML = ""; // Purge the nav bar 169 211 this.fBtnPrv = this.xAddBtn(this.fNav, "btnPrv", this.xGetStr(0), this.xGetStr(1)); … … 176 218 this.fSldHome.fSldMgr.initSld(); 177 219 //Init zoom container 178 this.fZoom = this.xAddEltHidden("div", document.body, "tplZm"); 179 this.fZoom.fSld = scPresMgr.xAddElt("div", this.fZoom, "tplZmSld"); 180 this.fZoom.fCo = this.xAddElt("div", this.fZoom, "tplZmCo"); 181 this.fZoom.fBtnCls = this.xAddBtn(this.fZoom, "btnZmCls", this.xGetStr(4), this.xGetStr(5)); 220 this.fZoom = (this.fZoomFramePath ? scPaLib.findNode(this.fZoomFramePath) : this.xAddElt("div", document.body, null)); 221 this.fZoom.className = this.fZoom.className + " "+this.fSsClassPrefix+"Zm" 222 this.fZoom.style.visibility = "hidden"; 223 this.fZoom.fCo = (this.fZoomContentPath ? scPaLib.findNode(this.fZoomContentPath) : this.fZoom); 224 this.fZoom.fSld = scPresMgr.xAddElt("div", this.fZoom.fCo, this.fSsClassPrefix+"ZmSld"); 225 this.fZoom.fFrg = this.xAddElt("div", this.fZoom.fCo, this.fSsClassPrefix+"ZmFrg"); 226 this.fZoom.fBtnCls = this.xAddBtn(this.fZoom.fCo, "btnZmCls", this.xGetStr(4), this.xGetStr(5)); 227 //Init slide-position styled elements 228 for (var i in this.fSldPosStyledElts){ 229 this.fSldPosStyledElts[i] = scPaLib.findNode(this.fSldPosStyledElts[i]); 230 if (this.fSldPosStyledElts[i]) this.fSldPosStyledElts[i].fBaseClass = this.fSldPosStyledElts[i].className; 231 } 182 232 //Enable tool auto hiding 183 233 this.enableToolHider(true); 184 234 //Affichage du slide d'accueil (rendu instantanné) 185 235 this.fSwitchSldTask.initTask(this.fSldHome, "first", true); 236 // this.xUpdateSldPosStyledElts(); 186 237 if (!scCoLib.fDebug && window.console && window.console.firebug) alert(this.xGetStr(6)); 187 238 }catch(e){scCoLib.util.logError("ERROR scPresMgr.onLoad : ", e);} 188 239 }, 189 240 loadSortKey : "A", 190 191 241 /** Load a slide by index id. 192 242 * @param pFromStart affiche le slide du début (true) ou de la fin (false). … … 195 245 */ 196 246 loadSld : function(pIdx, pFromStart, pInstantResult) { 197 //scCoLib.util.log("scPresMgr.loadSld: "+pIdx);247 scCoLib.util.log("scPresMgr.loadSld: "+pIdx); 198 248 this.xResetFocus(); 199 249 return this.xGotoSlide(pIdx, pFromStart, pInstantResult); 200 250 }, 201 202 251 /** Returns the current slide. */ 203 252 getCurrSld : function(){ 204 253 return scPresMgr.fSwitchSldTask.fNewSld || this.fCurrSld; 205 254 }, 206 207 255 /** Redessinement de la zone des slides (suite à resize notamment). */ 208 256 redrawSlideZone : function(){ … … 221 269 } 222 270 }, 223 224 271 /** Show the passed ressource in the zoom. */ 225 272 showZoom : function(pRes) { 226 273 return this.xShowZoom(pRes); 227 274 }, 228 229 275 /** Returns true if the presentation has a next step / slide. */ 230 276 hasNxt : function() { … … 234 280 } else return false; 235 281 }, 236 237 282 /** Returns true if the presentation has a previous step / slide. */ 238 283 hasPrv : function() { … … 241 286 return (vSld.fSldMgr.hasPrv() ? true : !vSld.fSldMgr.isFirstSld()); 242 287 } else return false; 243 },244 245 /** register a listener. */246 register : function(pType, pFunc) {247 this.fListeners[pType].push(pFunc);248 },249 250 /** Enable / Disable auto tool hiding */251 enableToolHider : function(pEnable) {252 this.fToolHider = pEnable;253 if (!pEnable) this.xShowTools();254 },255 256 /** register a node as a tool (auto hidden elements). */257 addToolElt : function(pNode) {258 this.fToolElts.push(pNode);259 288 }, 260 289 … … 280 309 return true; 281 310 }, 282 283 311 /** Move back 1 step / slide. 284 312 * @param pSkip if true move to beginning of previous slide. … … 305 333 this.fBtnPrv.style.visibility = (vSld.fSldMgr.hasPrv() ? "" : (!vSld.fSldMgr.isFirstSld() ? "" : "hidden")); 306 334 } 307 }, 308 335 this.xUpdateSldPosStyledElts(); 336 }, 337 /** xUpdateSldPosStyledElts */ 338 xUpdateSldPosStyledElts : function() { 339 // Add slide-postion classes on registed elements if needed. 340 var vSld = this.getCurrSld(); 341 if (vSld && vSld.fSldMgr) { 342 for (var i in this.fSldPosStyledElts){ 343 var vNewClass = this.fSldPosStyledElts[i].fBaseClass + (vSld.fSldMgr.isFirstSld() ? " "+this.fSsClassPrefix+"FirstSlide" + (!vSld.fSldMgr.hasPrv() ? " "+this.fSsClassPrefix+"FirstStep" : "") : (vSld.fSldMgr.isLastSld() ? " "+this.fSsClassPrefix+"LastSlide" + (!vSld.fSldMgr.hasNxt() ? " "+this.fSsClassPrefix+"LastStep" : "") : "")); 344 // var vNewClass = this.fSldPosStyledElts[i].fBaseClass + (vSld.fSldMgr.isFirstSld() ? " "+this.fSsClassPrefix+"FirstSlide" + (!vSld.fSldMgr.hasPrv() ? " "+this.fSsClassPrefix+"FirstStep" : "") : ""); 345 if (this.fSldPosStyledElts[i].className != vNewClass) this.fSldPosStyledElts[i].className = vNewClass; 346 } 347 } 348 }, 309 349 /** Navigation vers un slide. 310 350 * @param pFromStart affiche le slide du début (true) ou de la fin (false). … … 312 352 */ 313 353 xGotoSlide : function(pIdx, pFromStart, pInstantResult) { 314 //scCoLib.util.log("scPresMgr.xGotoSlide: "+pIdx);354 scCoLib.util.log("scPresMgr.xGotoSlide: "+pIdx); 315 355 try{ 316 356 //Borne pIdx selon les limites du slide show … … 341 381 //Trouvé 342 382 scPresMgr.fSwitchSldTask.initTask(vSld, pFromStart? "first" : "last", pInstantResult); 383 // this.xUpdateSldPosStyledElts(); 343 384 return true; 344 385 } … … 348 389 scPresMgr.fSwitchSldTask.initTask(this.xBuildSlide(pIdx), pFromStart? "first" : "last", pInstantResult); 349 390 } 391 // this.xUpdateSldPosStyledElts(); 350 392 return true; 351 393 }catch(e){scCoLib.util.logError("ERROR scPresMgr.xGotoSlide: ",e);} 352 394 }, 353 354 395 /** Affecte le nouveau slide "stabilisé" et devient la nouvelle référence. 355 396 * Gère le cache des slides en fonction de cette nouvelle position. … … 390 431 }catch(e){scCoLib.util.logError("ERROR scPresMgr.xSetCurrSlide: ",e);} 391 432 }, 392 393 433 /** Chargement d'un slide. */ 394 434 xBuildSlide : function(pIdx) { … … 399 439 return vSld; 400 440 }, 401 402 441 /** Buttons manager. */ 403 442 xBtnMgr : function(pBtn){ … … 412 451 this.xResetFocus(); 413 452 }, 414 415 453 /** Event clavier. */ 416 454 sOnKeyUp : function(pEvent){ … … 419 457 return scPresMgr.xKeyMgr(vCharCode); 420 458 }, 421 422 459 /** scPresMgr.xKeyMgr */ 423 460 xKeyMgr : function(pCharCode){ … … 435 472 case 80://p 436 473 this.xPrv(); return false; 474 case 70://f 475 this.toggleEffects(); return false; 437 476 case 34://pg_dwn 438 477 this.xNxt(true); return false; … … 445 484 } 446 485 }, 447 448 486 /** scPresMgr.xShowZoom : display the zoom window 449 487 * @param pRes : resource to zoom : if it is a anchor (A) then we zoom the href as a slide otherwise we clone/import the node … … 454 492 if (!vZm.fAct){ 455 493 vZm.fAct = true; 456 vZm.f Co.innerHTML = "";494 vZm.fFrg.innerHTML = ""; 457 495 vZm.fSld.innerHTML = ""; 458 496 vZm.fSldMgr = null; 459 497 if (pRes.nodeName.toLowerCase() == "a") { 460 new scPresMgr.FadeEltTask(vZm.f Co,0,null,null,true);498 new scPresMgr.FadeEltTask(vZm.fFrg,0,null,null,true); 461 499 new scPresMgr.FadeEltTask(vZm.fSld,1,null,null,true); 462 vZm.fSldMgr = new scPresMgr.SldZoomMgr(vZm.fSld, pRes.href,function(){new scPresMgr.FadeEltTask(scPresMgr.fZoom,1);}); 500 501 vZm.fSldMgr = new scPresMgr.SldZoomMgr(vZm.fSld, pRes.href,function(){new scPresMgr.FadeEltTask(scPresMgr.fZoom,1,this.sFadeEltStart,this.sFadeEltEnd);}); 463 502 vZm.fSldMgr.initSld(); 464 503 } else { 465 new scPresMgr.FadeEltTask(vZm.f Co,1,null,null,true);504 new scPresMgr.FadeEltTask(vZm.fFrg,1,null,null,true); 466 505 new scPresMgr.FadeEltTask(vZm.fSld,0,null,null,true); 467 vDst = scPresUt.importDeepNode(pRes, vZm.fCo.ownerDocument, vZm.fCo); 468 new scPresMgr.FadeEltTask(vZm,1); 469 } 506 vDst = scPresUt.importDeepNode(pRes, vZm.fFrg.ownerDocument, vZm.fFrg); 507 new scPresMgr.FadeEltTask(vZm,1,this.sFadeEltStart,this.sFadeEltEnd); 508 } 509 this.fNav.className = this.fNav.fDefaultClass + " "+this.fSsClassPrefix+"NavZoom"; 470 510 } else { 471 511 if (pRes.nodeName.toLowerCase() == "a") { … … 474 514 vZm.fSldMgr.initSld(); 475 515 } else { 476 vDst = scPresUt.importDeepNode(pRes, vZm.f Co.ownerDocument, vZm.fCo);477 new scPresMgr.FadeEltTask(vZm.fSld,0 );478 new scPresMgr.FadeEltTask(vZm.f Co,1);516 vDst = scPresUt.importDeepNode(pRes, vZm.fFrg.ownerDocument, vZm.fFrg); 517 new scPresMgr.FadeEltTask(vZm.fSld,0,this.sFadeEltStart,this.sFadeEltEnd); 518 new scPresMgr.FadeEltTask(vZm.fFrg,1,this.sFadeEltStart,this.sFadeEltEnd); 479 519 } 480 520 } 481 521 return vDst; 482 522 }, 483 484 523 /** scPresMgr.xHideZoom : hide the zoom window */ 485 524 xHideZoom : function(){ 486 525 if (this.fZoom.fAct){ 487 526 this.fZoom.fAct = false; 488 new scPresMgr.FadeEltTask(this.fZoom, 0, null, function(){scPresMgr.fZoom.fSldMgr = null; scPresMgr.fZoom.fSld.innerHTML = ""; scPresMgr.fZoom.fCo.innerHTML = ""; scPresMgr.fNav.style.zIndex = "";}); 489 } 490 }, 491 527 new scPresMgr.FadeEltTask(this.fZoom, 0, this.sFadeEltStart, this.sHideZoomEnd); 528 this.fNav.className = this.fNav.fDefaultClass; 529 } 530 }, 531 /** scPresMgr.sHideZoomEnd */ 532 sHideZoomEnd : function(){ 533 this.fElt.fSldMgr = null; 534 this.fElt.fSld.innerHTML = ""; 535 this.fElt.fFrg.innerHTML = ""; 536 if (scCoLib.isIE) this.fElt.style.backgroundColor = ""; 537 }, 492 538 /** scPresMgr.xGetZoomContainer : return the zoom container */ 493 539 xGetZoomContainer : function(){ 494 return this.fZoom.fCo; 495 }, 496 540 return this.fZoom.fFrg; 541 }, 497 542 /** scPresMgr.xGetZoomSlide : return the zoom iframe container */ 498 543 xGetZoomSlide : function(){ 499 544 return this.fZoom.fFra; 500 545 }, 501 502 546 /** scPresMgr.xResetFocus - sets the focus to the current slide. */ 503 547 xResetFocus : function() { … … 510 554 } 511 555 }, 512 /** scPresMgr.xNotifyListeners - calls all the listeners of a given type. 513 */ 556 /** scPresMgr.xNotifyListeners - calls all the listeners of a given type. */ 514 557 xNotifyListeners : function(pType,pRes) { 515 558 //scCoLib.util.log("scPresMgr.xNotifyListeners: "+pType); … … 521 564 } 522 565 }, 523 524 566 /** scPresMgr.xHideTools : tool hider */ 525 567 xHideTools : function(){ … … 530 572 for (i in this.fToolElts) { 531 573 try { 532 new this.FadeEltTask(this.fToolElts[i],0,this.sFade ToolsStart,this.sFadeToolsEnd);574 new this.FadeEltTask(this.fToolElts[i],0,this.sFadeEltStart,this.sFadeEltEnd); 533 575 } catch(e) {scCoLib.util.logError("ERROR scPresMgr.xHideTools: ",e);} 534 576 } … … 536 578 } 537 579 }, 538 539 580 /** scPresMgr.xShowTools : mouse event manager */ 540 581 xShowTools : function(){ … … 543 584 for (i in this.fToolElts) { 544 585 try { 545 new this.FadeEltTask(this.fToolElts[i],1,this.sFade ToolsStart,this.sFadeToolsEnd);586 new this.FadeEltTask(this.fToolElts[i],1,this.sFadeEltStart,this.sFadeEltEnd); 546 587 } catch(e) {scCoLib.util.logError("ERROR scPresMgr.xShowTools: ",e);} 547 588 } … … 549 590 this.fToolsShowTime = new Date().getTime(); 550 591 }, 551 552 592 /** Init tous les blocks fils d'un blockRoot (du slide ou d'un container) */ 553 593 xInitBlocks : function(pParentMgr, pBlockRoot){ … … 570 610 return vResult; 571 611 }, 572 573 612 /** scPresMgr.sOnClickTocLnk : TOC item onclick event */ 574 613 sOnClickTocLnk : function(){ … … 576 615 return false; 577 616 }, 578 579 617 /** scPresMgr.sMouseMgr : mouse event manager */ 580 618 sMouseMgr : function(){ 581 619 if (scPresMgr.fToolHider) scPresMgr.xShowTools(); 582 620 }, 583 584 621 /** scPresMgr.sHeartbeat : run every second. */ 585 622 sHeartbeat : function(){ 586 623 if (scPresMgr.fToolHider) scPresMgr.xHideTools(); 587 624 }, 588 589 /** scPresMgr.sFadeToolsStart */590 sFadeToolsStart : function(){591 if (scCoLib.isIE) this.fElt.style.backgroundColor = scPresMgr.xReadStyle(scPresMgr.fSldFra, "backgroundColor") || "white";592 }, 593 /** scPresMgr.sFade ToolsEnd */594 sFade ToolsEnd : function(){625 /** scPresMgr.sFadeEltStart */ 626 sFadeEltStart : function(){ 627 var vBkColor = scPresMgr.xReadStyle(scPresMgr.fSldFra, "backgroundColor") || "white"; 628 if (scCoLib.isIE) this.fElt.style.backgroundColor = (vBkColor == "transparent" ? "white" : vBkColor); 629 }, 630 /** scPresMgr.sFadeEltEnd */ 631 sFadeEltEnd : function(){ 595 632 if (scCoLib.isIE) this.fElt.style.backgroundColor = ""; 596 633 }, … … 606 643 if (pNxtSib) pParent.insertBefore(vFrmHolder,pNxtSib) 607 644 else pParent.appendChild(vFrmHolder); 608 vFrmHolder.innerHTML = "<iframe scrolling='no' frameborder='0' ></iframe>";645 vFrmHolder.innerHTML = "<iframe scrolling='no' frameborder='0' allowtransparency='true'></iframe>"; 609 646 vElt = vFrmHolder.firstChild; 610 647 } else { … … 618 655 return vElt; 619 656 }, 620 621 657 /** scPresMgr.xAddEltNoDisp : Add a non displayed HTML element to a parent node. */ 622 658 xAddEltNoDisp : function(pName, pParent, pClassName) { … … 624 660 return vElt; 625 661 }, 626 627 662 /** scPresMgr.xAddEltHidden : Add a hidden HTML element to a parent node. */ 628 663 xAddEltHidden : function(pName, pParent, pClassName) { … … 630 665 return vElt; 631 666 }, 632 633 667 /** scPresMgr.xAddBtn : Add a HTML button to a parent node. */ 634 668 xAddBtn : function(pParent, pClassName, pCapt, pTitle, pNxtSib) { … … 648 682 return vBtn; 649 683 }, 650 651 684 /** scPresMgr.xReadStyle : Read a style property (inline or CSS). */ 652 685 xReadStyle : function(pElt, pProp) { … … 669 702 } 670 703 }, 671 672 704 /** scPresMgr.xGetEltTop : Retrun an element's absolute top (from pRoot or the top of the page). 673 705 * @param pElt start element. … … 684 716 return vY; 685 717 }, 686 687 718 /** scPresMgr.xGetEltH : Retrun an element's height. */ 688 719 xGetEltH: function(pElt) { 689 720 return(scCoLib.toInt(pElt.style.pixelHeight || pElt.offsetHeight)); 690 721 }, 691 692 722 /** Set the opacity of a given node. 693 723 * @param pRate Variable de 0 à 1. … … 697 727 else pNode.style.opacity = pRate; 698 728 }, 699 700 729 /** Start the opacity of a given node. 701 730 * On ajoute le filtre d'opacité sur IE. … … 708 737 pNode.style.visibility = ""; 709 738 }, 710 711 739 /** End the opacity of a given node. 712 740 * On supprime le filtre d'opacité sur IE (évite des bugs de refresh). … … 720 748 else pNode.style.visibility = ""; 721 749 }, 722 723 750 /** Reteive a localized string. */ 724 751 xGetStr: function(pStrId) { … … 735 762 fNewSld: null, 736 763 fStatus: null, 737 738 764 fIdx: -1, 739 765 fRateOld: [.9, .8, .7, .5, .3, .2, .1, 0, 0, 0, 0], 740 766 fRateNew: [ 0, 0, 0, 0, .1, .2, .3, .5, .7, .8, .9], 741 742 /** 743 * Init la task pour accéder à un nouveau slide. 767 /** Init la task pour accéder à un nouveau slide. 744 768 * @param pBlock block à afficher. 745 769 * @param pStatus … … 751 775 //scCoLib.util.log("fSwitchSldTask.initTask: status: "+pStatus); 752 776 try{ 777 if (!scPresMgr.fEnableEffects) pInstantResult = true; 753 778 //On annule tout autre task en cours 754 779 scPresMgr.fSwitchStpTask.precipitateEndTask(); … … 840 865 scPresMgr.xEndOpacityEffect(this.fNewSld, 1); 841 866 } 867 scPresMgr.xUpdateGui(); 842 868 scPresMgr.xSetCurrSlide(this.fNewSld); 843 scPresMgr.xUpdateGui();844 869 this.fNewSld = null; 845 870 this.fIdx = -1; … … 868 893 fNewBlock: null, 869 894 fStep: 0, 870 871 895 fIdx: -1, 872 896 fRateOld: [.9, .8, .7, .5, .3, .2, .1, 0, 0, 0, 0], 873 897 fRateNew: [ 0, 0, 0, 0, .1, .2, .3, .5, .7, .8, .9], 874 875 /** 876 * init la task pour accéder à un nouveau block. 898 /** init la task pour accéder à un nouveau block. 877 899 * @param pTarget Block/Step cible à afficher 878 900 * "F" : First … … 885 907 //scCoLib.util.log("fSwitchBlkTask.initTask: "+pNewBlock); 886 908 try{ 909 if (!scPresMgr.fEnableEffects) pInstantResult = true; 887 910 //On précipite le chgt de steps. 888 911 scPresMgr.fSwitchStpTask.precipitateEndTask(); … … 965 988 /** Mask précédent qui détenait le focus. */ 966 989 fOldMask : null, 967 968 /** 969 * init la task pour accéder à un nouveau step. 990 /** init la task pour accéder à un nouveau step. 970 991 * @param pTargetStep Step cible à passer en focus 971 992 * "F" : First (pInstantResult est alors forcé à true) … … 979 1000 initTask : function(pBlock, pTargetStep, pInstantResult){ 980 1001 try{ 1002 if (!scPresMgr.fEnableEffects) pInstantResult = true; 981 1003 if(this.fBlockMgr) { 982 1004 this.precipitateEndTask(); … … 1062 1084 } 1063 1085 }catch(e){scCoLib.util.log("ERROR fSwitchStpTask.execTask: "+e);} 1064 } 1065 , 1086 }, 1066 1087 /** Permet de précipiter la fin de la task en cours. */ 1067 1088 precipitateEndTask : function(){ … … 1114 1135 var vSldMgr = this.fSldMgr; 1115 1136 scCoLib.util.log("scPresMgr.SldMgr.sOnLoadSld: "+vSldDoc.title); 1116 1117 1137 // Enable fSsCssName CSS on slide 1118 1138 var vCss = null; … … 1298 1318 scPresMgr.SldZoomMgr.prototype.postOnLoad = function() { 1299 1319 scPresMgr.fSwitchBlkTask.initTask(this.fCurrBlk, this.getFirstBlock(), "F", true); 1300 scPresMgr.fNav.style.zIndex = this.hasNxt() ? "100" : "";1301 1320 this.fPostLoadFunc(); 1302 1321 } … … 1375 1394 } 1376 1395 } 1377 } else { 1378 this.fCurrStep = -1; 1379 } 1380 1396 } else this.fCurrStep = -1; 1381 1397 // Centre le block dans son container 1382 1398 this.xCenterBlock(); 1383 1384 1399 // Resize ok 1385 1400 this.fNeedResize = false; 1386 1387 1401 //On resize et redessine le block 1388 1402 scPresMgr.fSwitchBlkTask.initTask(this.fBlkNode, this.fBlkNode, "S", true); … … 1409 1423 // Flag ok 1410 1424 this.fNeedResize = false; 1411 1412 //scCoLib.util.log("Afetr RESIAZE : this.fTargetStepIdx: "+pTarget+" - "+this.fCurrStep);1413 //scCoLib.util.log("Afetr RESIAZE : this.fBlockMgr.fMasks: "+this.fMasks);1414 1425 } 1415 1426 //Redraw sans animation des steps du block. … … 1475 1486 if(! this.fAllSteps || this.fAllSteps.length==0) return; 1476 1487 //On fige les dimensions du content du block 1477 var vContentH = Math.max(20, vAvailH - scPresMgr.xGetEltTop(this.fBlk Content,this.fParentMgr.fBlocksRoot));1488 var vContentH = Math.max(20, vAvailH - scPresMgr.xGetEltTop(this.fBlkNode,this.fParentMgr.fBlocksRoot) - (this.fBlkNode.offsetHeight - this.fBlkContent.offsetHeight)); 1478 1489 vBlkContentStyle.position = "absolute"; 1479 1490 vBlkContentStyle.width = "100%"; … … 1492 1503 var vTop = pNode.offsetTop; 1493 1504 var vH = vTop - vPreviousTop; 1494 if(vH > v AvailH) return -1;1505 if(vH > vContentH) return -1; 1495 1506 //Malus en fonction de la profondeur de cuttable au dessus 1496 1507 var vP = pNode.parentNode; … … 1500 1511 } 1501 1512 //Malus si le dernier step devient plus petit que celui-là 1502 if( vRealH - vTop < vTop - vPreviousTop) vH -= (v AvailH - (vRealH - vTop))/2;1513 if( vRealH - vTop < vTop - vPreviousTop) vH -= (vContentH - (vRealH - vTop))/2; 1503 1514 return 1000000 + vH; 1504 1515 } … … 1522 1533 vPreviousAllStepsIdx = vBestIdx; 1523 1534 } 1524 } while(vBestIdx>=0 && (vRealH-vPreviousTop > v AvailH));1535 } while(vBestIdx>=0 && (vRealH-vPreviousTop > vContentH)); 1525 1536 //On crée le tableau des masks 1526 1537 if(! this.fMasks) this.fMasks = []; … … 1601 1612 this.fBlkNode = pBlkContainerNode; 1602 1613 this.fBlkIdx = pBlkIdx; 1603 1604 1614 // Racine des blocks du container. 1605 this.fSubBlocksRoot = scPaLib.findNode(scPresMgr.fContainerBlocksRootPathComp, this.fBlkNode); 1606 1615 this.fBlocksRoot = scPaLib.findNode(scPresMgr.fContainerBlocksRootPathComp, this.fBlkNode); 1607 1616 //Fixe les dim du container 1608 1617 this.xFixContainerSize(); 1609 1610 1618 //init les blocks de ce container 1611 this.fSubBlocks = scPresMgr.xInitBlocks(this, this.fSubBlocksRoot); 1612 1619 this.fSubBlocks = scPresMgr.xInitBlocks(this, this.fBlocksRoot); 1613 1620 // Sous-bloc en cours. 1614 1621 this.fCurrSubBlk = null; … … 1724 1731 /** Hauteur disponible pour les fils de ce container. */ 1725 1732 scPresMgr.BlkContainerMgr.prototype.getAvailHeight = function(){ 1726 return this.f SubBlocksRoot.offsetHeight;1733 return this.fBlocksRoot.offsetHeight; 1727 1734 } 1728 1735 /** Largeur disponible pour les fils de ce container. */ 1729 1736 scPresMgr.BlkContainerMgr.prototype.getAvailWidth = function(){ 1730 return this.f SubBlocksRoot.offsetWidth;1737 return this.fBlocksRoot.offsetWidth; 1731 1738 } 1732 1739 /** Fixe la taille du container dans son contexte parent. */ 1733 1740 scPresMgr.BlkContainerMgr.prototype.xFixContainerSize = function(){ 1734 1741 var vBodyH = this.fParentMgr.getAvailHeight(); 1735 var vTop = this.f SubBlocksRoot.offsetTop;1742 var vTop = this.fBlocksRoot.offsetTop; 1736 1743 //scCoLib.util.log("vBodyH: "+vBodyH+" - vTop"+vTop); 1737 this.f SubBlocksRoot.style.height = Math.max(50, vBodyH - vTop)+"px";1744 this.fBlocksRoot.style.height = Math.max(50, vBodyH - vTop)+"px"; 1738 1745 this.fNeedResize = false; 1739 1746 } 1740 1741 1742 1743 1747 1744 1748 /** scPresMgr.FadeEltTask : TiLib task that fades a given element in or out. … … 1758 1762 this.fStartFunc = pStartFunc || function(){}; 1759 1763 this.fEndFunc = pEndFunc || function(){}; 1760 if (pInstant ) {1764 if (pInstant || !scPresMgr.fEnableEffects) { 1761 1765 this.terminate(); 1762 1766 return; … … 1800 1804 } 1801 1805 1802 /** scSlideMgr : scSlideMgr pour le homeSlide. 1803 */ 1806 /** scSlideMgr : scSlideMgr pour le homeSlide. */ 1804 1807 var scSlideMgr = { 1805 1808 fDefaultFontSize : 22, // fontSize in pixels … … 1826 1829 return this.fBlocksRoot.offsetWidth; 1827 1830 }, 1828 1829 1831 /** Api scSiLib. */ 1830 1832 onResizedAnc : function(pOwnerNode, pEvent) { … … 1861 1863 } 1862 1864 1863 /** scPresUt : Browser dependant utility toolbox. 1864 */ 1865 /** scPresUt : Browser dependant utility toolbox. */ 1865 1866 var scPresUt = {}; 1866 1867 if(scCoLib.isIE) {
Note: See TracChangeset
for help on using the changeset viewer.