Changeset 738


Ignore:
Timestamp:
02/15/07 05:12:43 (12 years ago)
Author:
ray
Message:

FullScreen? update:

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Xinha.css

    r736 r738  
    8787  color: ButtonText; 
    8888  font: 11px Tahoma,Verdana,sans-serif; 
     89  height:16px; 
    8990} 
    9091 
  • trunk/XinhaCore.js

    r734 r738  
    101101// browser identification 
    102102Xinha.agt       = navigator.userAgent.toLowerCase(); 
    103 Xinha.is_ie        = ((Xinha.agt.indexOf("msie") != -1) && (Xinha.agt.indexOf("opera") == -1)); 
     103Xinha.is_ie    = ((Xinha.agt.indexOf("msie") != -1) && (Xinha.agt.indexOf("opera") == -1)); 
     104Xinha.ie_version= parseFloat(Xinha.agt.substring(Xinha.agt.indexOf("msie")+5)); 
    104105Xinha.is_opera  = (Xinha.agt.indexOf("opera") != -1); 
    105106Xinha.is_mac       = (Xinha.agt.indexOf("mac") != -1); 
     
    423424  this.colorPickerSaveColors = 20; 
    424425 
     426  // start up the editor in fullscreen mode 
     427  this.fullScreen = false; 
     428   
     429  // you can tell the fullscreen mode to leave certain margins on each side 
     430  // the value is an array with the values for [top,right,bottom,left] in that order 
     431  this.fullScreenMargins = [0,0,0,0]; 
     432   
    425433  /** CUSTOMIZING THE TOOLBAR 
    426434   * ------------------------- 
     
    15181526    return false; 
    15191527  } 
     1528   
     1529  if ( typeof FullScreen == "undefined" ) 
     1530  { 
     1531    Xinha.loadPlugin("FullScreen", function() { editor.generate(); }, _editor_url + 'modules/FullScreen/full-screen.js' ); 
     1532    return false; 
     1533  } 
    15201534 
    15211535  var toolbar = editor.config.toolbar; 
     
    15271541      { 
    15281542        case "popupeditor": 
    1529           if ( typeof FullScreen == "undefined" ) 
    1530           { 
    1531             Xinha.loadPlugin("FullScreen", function() { editor.generate(); }, _editor_url + 'modules/FullScreen/full-screen.js' ); 
    1532             return false; 
    1533           } 
    15341543          editor.registerPlugin('FullScreen'); 
    15351544        break; 
     
    23722381  doc.write(html); 
    23732382  doc.close(); 
    2374  
     2383  if ( this.config.fullScreen ) 
     2384  { 
     2385    this._fullScreen(); 
     2386  } 
    23752387  this.setEditorEvents(); 
    23762388}; 
     
    43274339}; 
    43284340 
    4329 // FIXME!!! this should return false for IE < 5.5 
    43304341Xinha.checkSupportedBrowser = function() 
    43314342{ 
     
    43424353    } 
    43434354  } 
    4344   return Xinha.is_gecko || Xinha.is_ie; 
     4355  return Xinha.is_gecko || Xinha.ie_version >= 5.5; 
    43454356}; 
    43464357 
  • trunk/modules/FullScreen/full-screen.js

    r736 r738  
    1212      { 
    1313        e._fullScreen(); 
    14         if(e._isFullScreen) 
    15         { 
    16           obj.swapImage([_editor_url + cfg.imgURL + 'ed_buttons_main.gif',9,0]); 
    17         } 
    18         else 
    19         { 
    20           obj.swapImage([_editor_url + cfg.imgURL + 'ed_buttons_main.gif',8,0]); 
    21         } 
    2214      } 
    2315  ); 
     
    4032 
    4133FullScreen.prototype._lc = function(string) { 
    42     return HTMLArea._lc(string, {url : _editor_url + 'modules/FullScreen/lang/',context:"FullScreen"}); 
     34    return Xinha._lc(string, {url : _editor_url + 'modules/FullScreen/lang/',context:"FullScreen"}); 
    4335}; 
    4436 
     
    4941 */ 
    5042 
    51 HTMLArea.prototype._fullScreen = function() 
     43Xinha.prototype._fullScreen = function() 
    5244{ 
    5345  var e = this; 
     
    5749    e._sizing = true; 
    5850    // Width & Height of window 
    59     var dim = HTMLArea.viewportSize(); 
    60  
    61     e.sizeEditor(dim.x + 'px',dim.y + 'px',true,true); 
     51    var dim = Xinha.viewportSize(); 
     52 
     53    var h = dim.y - e.config.fullScreenMargins[0] -  e.config.fullScreenMargins[2]; 
     54    var w = dim.x - e.config.fullScreenMargins[1] -  e.config.fullScreenMargins[3]; 
     55 
     56    e.sizeEditor(w + 'px', h + 'px',true,true); 
    6257    e._sizing = false; 
     58    if ( e._toolbarObjects.fullscreen ) e._toolbarObjects.fullscreen.swapImage([_editor_url + cfg.imgURL + 'ed_buttons_main.gif',9,0]);  
    6359  } 
    6460 
     
    6965    e.initSize(); 
    7066    e._sizing = false; 
     67    if ( e._toolbarObjects.fullscreen ) e._toolbarObjects.fullscreen.swapImage([_editor_url + cfg.imgURL + 'ed_buttons_main.gif',8,0]);  
    7168  } 
    7269 
     
    8885    if(e.target != e._iframe) 
    8986    { 
    90       HTMLArea._addEvent(window, 'resize', sizeItUp); 
     87      Xinha._addEvent(window, 'resize', sizeItUp); 
    9188    } 
    9289  } 
     
    9491  // Gecko has a bug where if you change position/display on a 
    9592  // designMode iframe that designMode dies. 
    96   if(HTMLArea.is_gecko) 
     93  if(Xinha.is_gecko) 
    9794  { 
    9895    this.deactivateEditor(); 
     
    103100    // Unmaximize 
    104101    this._htmlArea.style.position = ''; 
    105     this._htmlArea.style.border   = ''; 
     102    if (!Xinha.is_ie ) this._htmlArea.style.border   = ''; 
     103 
    106104    try 
    107105    { 
    108       if(HTMLArea.is_ie) 
     106      if(Xinha.is_ie && document.compatMode == 'CSS1Compat') 
    109107      { 
    110108        var bod = document.getElementsByTagName('html'); 
     
    130128      ancestor._xinha_fullScreenOldPosition = null; 
    131129    } 
    132  
     130     
     131    if ( Xinha.ie_version < 7 ) 
     132    { 
     133      var selects = document.getElementsByTagName("select"); 
     134      for ( var i=0;i<selects.length;++i ) 
     135      { 
     136        selects[i].style.visibility = 'visible'; 
     137      } 
     138    } 
    133139    window.scroll(this._unScroll.x, this._unScroll.y); 
    134140  } 
     
    151157      ancestor.style.position = 'static'; 
    152158    } 
    153  
     159    // very ugly bug in IE < 7 shows select boxes through elements that are positioned over them 
     160    if ( Xinha.ie_version < 7 ) 
     161    { 
     162      var selects = document.getElementsByTagName("select"); 
     163      var s, currentEditor; 
     164      for ( var i=0;i<selects.length;++i ) 
     165      { 
     166        s = selects[i]; 
     167        currentEditor = false; 
     168        while ( s = s.parentNode ) 
     169        { 
     170          if ( s == this._htmlArea ) 
     171          { 
     172            currentEditor = true; 
     173            break; 
     174          } 
     175        } 
     176        if ( !currentEditor && selects[i].style.visibility != 'hidden') 
     177        { 
     178          selects[i].style.visibility = 'hidden'; 
     179        } 
     180      } 
     181    } 
    154182    // Maximize 
    155183    window.scroll(0,0); 
    156184    this._htmlArea.style.position = 'absolute'; 
    157185    this._htmlArea.style.zIndex   = 999; 
    158     this._htmlArea.style.left     = 0; 
    159     this._htmlArea.style.top      = 0; 
    160     this._htmlArea.style.border   = 'none'; 
     186    this._htmlArea.style.left     = e.config.fullScreenMargins[3] + 'px'; 
     187    this._htmlArea.style.top      = e.config.fullScreenMargins[0] + 'px'; 
     188    if ( !Xinha.is_ie ) this._htmlArea.style.border   = 'none'; 
    161189    this._isFullScreen = true; 
    162190    resetScroll(); 
     
    164192    try 
    165193    { 
    166       if(HTMLArea.is_ie) 
     194      if(Xinha.is_ie && document.compatMode == 'CSS1Compat') 
    167195      { 
    168196        var bod = document.getElementsByTagName('html'); 
     
    182210  } 
    183211 
    184   if(HTMLArea.is_gecko) 
     212  if(Xinha.is_gecko) 
    185213  { 
    186214    this.activateEditor(); 
Note: See TracChangeset for help on using the changeset viewer.