Вход Регистрация
Файл: mailist/wys/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js
Строк: 329
<?php
/**
 * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
 *
 * @author Moxiecode
 * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
 */

/* Import plugin specific language pack */
tinyMCE.importPluginLanguagePack('fullscreen');

var 
TinyMCE_FullScreenPlugin = {
    
getInfo : function() {
        return {
            
longname 'Fullscreen',
            
author 'Moxiecode Systems AB',
            
authorurl 'http://tinymce.moxiecode.com',
            
infourl 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',
            
version tinyMCE.majorVersion "." tinyMCE.minorVersion
        
};
    },

    
initInstance : function(inst) {
        if (!
tinyMCE.settings['fullscreen_skip_plugin_css'])
            
tinyMCE.importCSS(inst.getContainerWin().documenttinyMCE.baseURL "/plugins/fullscreen/css/page.css");
    },

    
getControlHTML : function(cn) {
        switch (
cn) {
            case 
"fullscreen":
                return 
tinyMCE.getButtonHTML(cn'lang_fullscreen_desc''{$pluginurl}/images/fullscreen.gif''mceFullScreen');
        }

        return 
"";
    },

    
execCommand : function(editor_idelementcommanduser_interfacevalue) {
        var 
inst;

        
// Handle commands
        
switch (command) {
            case 
"mceFullScreen":
                
inst tinyMCE.getInstanceById(editor_id);

                if (
tinyMCE.getParam('fullscreen_new_window'))
                    
this._toggleFullscreenWin(inst);
                else
                    
this._toggleFullscreen(inst);

                return 
true;
        }

        
// Pass to next handler in chain
        
return false;
    },

    
_toggleFullscreenWin : function(inst) {
        if (
tinyMCE.getParam('fullscreen_is_enabled')) {
            
// In fullscreen mode
            
window.opener.tinyMCE.execInstanceCommand(tinyMCE.getParam('fullscreen_editor_id'), 'mceSetContent'falsetinyMCE.getContent(inst.editorId));
            
top.close();
        } else {
            
tinyMCE.setWindowArg('editor_id'inst.editorId);

            var 
win window.open(tinyMCE.baseURL "/plugins/fullscreen/fullscreen.htm""mceFullScreenPopup""fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width=" screen.availWidth ",height=" screen.availHeight);
            try { 
win.resizeTo(screen.availWidthscreen.availHeight); } catch (e) {}
        }
    },

    
_toggleFullscreen : function(inst) {
        var 
ds inst.getData('fullscreen'), editorContainertableElmiframevpcwcdrewhsiblodelta 0cellrowfcmlbcml;

        
cw inst.getContainerWin();
        
cd cw.document;
        
editorContainer cd.getElementById(inst.editorId '_parent');
        
tableElm editorContainer.firstChild;
        
iframe inst.iframeElement;
        
re cd.getElementById(inst.editorId '_resize');
        
blo document.getElementById('mce_fullscreen_blocker');
        
fcm = new TinyMCE_Layer(inst.editorId '_fcMenu');
        
fcml = new TinyMCE_Layer(inst.editorId '_fcMenu');
        
bcml = new TinyMCE_Layer(inst.editorId '_bcMenu');

        if (
fcml.exists() && fcml.isVisible()) {
            
tinyMCE.switchClass(inst.editorId '_forecolor''mceMenuButton');
            
fcml.hide();
        }

        if (
bcml.exists() && bcml.isVisible()) {
            
tinyMCE.switchClass(inst.editorId '_backcolor''mceMenuButton');
            
bcml.hide();
        }

        if (!
ds.enabled) {
            
// Handle External Toolbar
            
if (inst.toolbarElement) {
                
delta += inst.toolbarElement.offsetHeight;

                
cell tableElm.tBodies[0].insertRow(0).insertCell(-1);
                
cell.className 'mceToolbarTop';
                
cell.nowrap true;

                
ds.oldToolbarParent inst.toolbarElement.parentNode;
                
ds.toolbarHolder document.createTextNode('...');

                
cell.appendChild(ds.oldToolbarParent.replaceChild(ds.toolbarHolderinst.toolbarElement));
            }

            
ds.parents = [];

            
vp tinyMCE.getViewPort(cw);
            
ds.scrollX vp.left;
            
ds.scrollY vp.top;

            
// Opera has a bug restoring scrollbars
            
if (!tinyMCE.isOpera)
                
tinyMCE.addCSSClass(cd.body'mceFullscreen');

            
tinyMCE.getParentNode(tableElm.parentNode, function (n) {
                if (
n.nodeName == 'BODY')
                    return 
true;

                if (
n.nodeType == 1)
                    
tinyMCE.addCSSClass(n'mceFullscreenPos');

                return 
false;
            });

            if (
re)
                
re.style.display 'none';

            
vp tinyMCE.getViewPort(cw);

            
ds.oldWidth iframe.style.width iframe.style.width iframe.offsetWidth;
            
ds.oldHeight iframe.style.height iframe.style.height iframe.offsetHeight;
            
ds.oldTWidth tableElm.style.width tableElm.style.width tableElm.offsetWidth;
            
ds.oldTHeight tableElm.style.height tableElm.style.height tableElm.offsetHeight;

            
// Handle % width
            
if (ds.oldWidth && ds.oldWidth.indexOf)
                
ds.oldTWidth ds.oldWidth.indexOf('%') != -ds.oldWidth ds.oldTWidth;

            if (!
blo && tinyMCE.isRealIE) {
                
blo tinyMCE.createTag(document'iframe', {id 'mce_fullscreen_blocker'src 'about:blank'frameBorder 0width vp.widthheight vp.heightstyle 'display: block; position: absolute; left: 0; top: 0; z-index: 999; margin: 0; padding: 0;'});
                
document.body.appendChild(blo);
            }

            
tableElm.style.position 'absolute';
            
tableElm.style.zIndex 1000;
            
tableElm.style.left tableElm.style.top '0';

            
tableElm.style.width vp.width 'px';
            
tableElm.style.height vp.height 'px';

            if (
tinyMCE.isRealIE) {
                
iframe.style.width vp.width 'px';
                
iframe.style.height vp.height 'px';

                
// Calc new width/height based on overflow
                
iframe.parentNode.clientWidth - (tableElm.offsetWidth vp.width);
                
iframe.parentNode.clientHeight - (tableElm.offsetHeight vp.height);
            } else {
                
iframe.parentNode.clientWidth;
                
iframe.parentNode.clientHeight;
            }

            
iframe.style.width "px";
            
iframe.style.height = (h+delta) + "px";

            
tinyMCE.switchClass(inst.editorId '_fullscreen''mceButtonSelected');
            
ds.enabled true;

            
inst.useCSS false;
        } else {
            
// Handle External Toolbar
            
if (inst.toolbarElement) {
                
row inst.toolbarElement.parentNode.parentNode;

                
row.parentNode.removeChild(row);

                
ds.oldToolbarParent.replaceChild(inst.toolbarElementds.toolbarHolder);

                
ds.oldToolbarParent null;
                
ds.toolbarHolder null;
            }

            if (
blo)
                
blo.parentNode.removeChild(blo);

            
si 0;
            
tinyMCE.getParentNode(tableElm.parentNode, function (n) {
                if (
n.nodeName == 'BODY')
                    return 
true;

                if (
n.nodeType == 1)
                    
tinyMCE.removeCSSClass(n'mceFullscreenPos');
            });

            if (
re && tinyMCE.getParam("theme_advanced_resizing"false))
                
re.style.display 'block';

            
tableElm.style.position 'static';
            
tableElm.style.zIndex '';
            
tableElm.style.width '';
            
tableElm.style.height '';

            
tableElm.style.width ds.oldTWidth ds.oldTWidth '';
            
tableElm.style.height ds.oldTHeight ds.oldTHeight '';

            
iframe.style.width ds.oldWidth ds.oldWidth '';
            
iframe.style.height ds.oldHeight ds.oldHeight '';

            
tinyMCE.switchClass(inst.editorId '_fullscreen''mceButtonNormal');
            
ds.enabled false;

            
tinyMCE.removeCSSClass(cd.body'mceFullscreen');
            
cw.scrollTo(ds.scrollXds.scrollY);

            
inst.useCSS false;
        }
    },

    
handleNodeChange : function(editor_idnodeundo_indexundo_levelsvisual_aidany_selection) {
        if (
tinyMCE.getParam('fullscreen_is_enabled'))
            
tinyMCE.switchClass(editor_id '_fullscreen''mceButtonSelected');

        return 
true;
    }
};

tinyMCE.addPlugin("fullscreen"TinyMCE_FullScreenPlugin);
?>
Онлайн: 0
Реклама