diff -r 346c88efed21 -r 5e2f62d02dcd wp/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wp/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.js Tue Jun 09 03:35:32 2015 +0200 @@ -0,0 +1,76 @@ +/* global tinymce */ +/** + * WP Fullscreen (Distraction-Free Writing) TinyMCE plugin + */ +tinymce.PluginManager.add( 'wpfullscreen', function( editor ) { + var settings = editor.settings; + + function fullscreenOn() { + settings.wp_fullscreen = true; + editor.dom.addClass( editor.getDoc().documentElement, 'wp-fullscreen' ); + // Start auto-resizing + editor.execCommand( 'wpAutoResizeOn' ); + } + + function fullscreenOff() { + settings.wp_fullscreen = false; + editor.dom.removeClass( editor.getDoc().documentElement, 'wp-fullscreen' ); + // Stop auto-resizing + editor.execCommand( 'wpAutoResizeOff' ); + } + + // For use from outside the editor. + editor.addCommand( 'wpFullScreenOn', fullscreenOn ); + editor.addCommand( 'wpFullScreenOff', fullscreenOff ); + + function getExtAPI() { + return ( typeof wp !== 'undefined' && wp.editor && wp.editor.fullscreen ); + } + + // Toggle DFW mode. For use from inside the editor. + function toggleFullscreen() { + var fullscreen = getExtAPI(); + + if ( fullscreen ) { + if ( editor.getParam('wp_fullscreen') ) { + fullscreen.off(); + } else { + fullscreen.on(); + } + } + } + + editor.addCommand( 'wpFullScreen', toggleFullscreen ); + + editor.on( 'keydown', function( event ) { + var fullscreen; + + // Turn fullscreen off when Esc is pressed. + if ( event.keyCode === 27 && ( fullscreen = getExtAPI() ) && fullscreen.settings.visible ) { + fullscreen.off(); + } + }); + + editor.on( 'init', function() { + // Set the editor when initializing from whitin DFW + if ( editor.getParam('wp_fullscreen') ) { + fullscreenOn(); + } + }); + + // Register buttons + editor.addButton( 'wp_fullscreen', { + tooltip: 'Distraction-free writing mode', + shortcut: 'Alt+Shift+W', + onclick: toggleFullscreen, + classes: 'wp-fullscreen btn widget' // This overwrites all classes on the container! + }); + + editor.addMenuItem( 'wp_fullscreen', { + text: 'Distraction-free writing mode', + icon: 'wp_fullscreen', + shortcut: 'Alt+Shift+W', + context: 'view', + onclick: toggleFullscreen + }); +});