From 799a5b059a40a51fdeb1dae7a0eb5bf8a79f5106 Mon Sep 17 00:00:00 2001 From: Jermolene Date: Fri, 1 Aug 2014 16:52:12 +0100 Subject: [PATCH] Move fullscreen button into core from plugin --- core/images/full-screen-button.tid | 19 ++++++++ core/language/en-GB/Buttons.multids | 2 + core/modules/startup/rootwidget.js | 9 ++++ core/modules/utils/dom/browser.js | 22 +++++++++ core/ui/PageControls/full-screen.tid | 13 +++++ core/wiki/config/PageControlButtons.multids | 9 ++-- editions/de-AT-DE/tiddlywiki.info | 1 - editions/empty/tiddlywiki.info | 1 - editions/fr-FR/tiddlywiki.info | 1 - editions/testcommonjs/tiddlywiki.info | 1 - .../tiddlers/system/download-empty.tid | 2 +- editions/tw5.com/tiddlywiki.info | 1 - editions/tw5tank/tiddlywiki.info | 1 - editions/tw5tiddlyweb/tiddlywiki.info | 1 - editions/zh-Hans/tiddlywiki.info | 1 - editions/zh-Hant/tiddlywiki.info | 1 - plugins/tiddlywiki/fullscreen/init.js | 48 ------------------- plugins/tiddlywiki/fullscreen/plugin.info | 6 --- 18 files changed, 72 insertions(+), 67 deletions(-) create mode 100644 core/images/full-screen-button.tid create mode 100644 core/ui/PageControls/full-screen.tid delete mode 100644 plugins/tiddlywiki/fullscreen/init.js delete mode 100644 plugins/tiddlywiki/fullscreen/plugin.info diff --git a/core/images/full-screen-button.tid b/core/images/full-screen-button.tid new file mode 100644 index 000000000..ca96994c1 --- /dev/null +++ b/core/images/full-screen-button.tid @@ -0,0 +1,19 @@ +title: $:/core/images/full-screen-button +tags: $:/tags/Image + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/language/en-GB/Buttons.multids b/core/language/en-GB/Buttons.multids index 9a0e12aec..8bad91846 100644 --- a/core/language/en-GB/Buttons.multids +++ b/core/language/en-GB/Buttons.multids @@ -24,6 +24,8 @@ Encryption/ClearPassword/Caption: clear password Encryption/ClearPassword/Hint: Clear the password and save this wiki without encryption Encryption/SetPassword/Caption: set password Encryption/SetPassword/Hint: Set a password for saving this wiki with encryption +FullScreen/Caption: full-screen +FullScreen/Hint: Enter or leave full-screen mode Info/Caption: info Info/Hint: Show information for this tiddler Home/Caption: home diff --git a/core/modules/startup/rootwidget.js b/core/modules/startup/rootwidget.js index 5df33a908..2cae33040 100644 --- a/core/modules/startup/rootwidget.js +++ b/core/modules/startup/rootwidget.js @@ -66,6 +66,15 @@ exports.startup = function() { downloadType: "text/plain" }); }); + var fullscreen = $tw.utils.getFullScreenApis(); + $tw.rootWidget.addEventListener("tw-full-screen",function(event) { + if(document[fullscreen._fullscreenElement]) { + document[fullscreen._exitFullscreen](); + } else { + document.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT); + } + }); + // If we're being viewed on a data: URI then give instructions for how to save if(document.location.protocol === "data:") { $tw.rootWidget.dispatchEvent({ diff --git a/core/modules/utils/dom/browser.js b/core/modules/utils/dom/browser.js index 8469fea0c..5c397a065 100644 --- a/core/modules/utils/dom/browser.js +++ b/core/modules/utils/dom/browser.js @@ -130,4 +130,26 @@ exports.convertEventName = function(eventName) { return newEventName; }; +/* +Return the names of the fullscreen APIs +*/ +exports.getFullScreenApis = function() { + var d = document, + db = d.body; + return { + "_requestFullscreen": db.webkitRequestFullscreen !== undefined ? "webkitRequestFullscreen" : + db.mozRequestFullScreen !== undefined ? "mozRequestFullScreen" : + db.msRequestFullscreen !== undefined ? "msRequestFullscreen" : + db.requestFullscreen !== undefined ? "requestFullscreen" : "", + "_exitFullscreen": d.webkitExitFullscreen !== undefined ? "webkitExitFullscreen" : + d.mozCancelFullScreen !== undefined ? "mozCancelFullScreen" : + d.msExitFullscreen !== undefined ? "msExitFullscreen" : + d.exitFullscreen !== undefined ? "exitFullscreen" : "", + "_fullscreenElement": d.webkitFullscreenElement !== undefined ? "webkitFullscreenElement" : + d.mozFullScreenElement !== undefined ? "mozFullScreenElement" : + d.msFullscreenElement !== undefined ? "msFullscreenElement" : + d.fullscreenElement !== undefined ? "fullscreenElement" : "" + }; +}; + })(); diff --git a/core/ui/PageControls/full-screen.tid b/core/ui/PageControls/full-screen.tid new file mode 100644 index 000000000..791b2e218 --- /dev/null +++ b/core/ui/PageControls/full-screen.tid @@ -0,0 +1,13 @@ +title: $:/core/ui/Buttons/full-screen +tags: $:/tags/PageControls +caption: {{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}} +description: {{$:/language/Buttons/FullScreen/Hint}} + +<$button message="tw-full-screen" title={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<>> +<$list filter="[prefix[yes]]"> +{{$:/core/images/full-screen-button}} + +<$list filter="[prefix[yes]]"> +<$text text={{$:/language/Buttons/FullScreen/Caption}}/> + + diff --git a/core/wiki/config/PageControlButtons.multids b/core/wiki/config/PageControlButtons.multids index 76bfbbfe7..14aca5da8 100644 --- a/core/wiki/config/PageControlButtons.multids +++ b/core/wiki/config/PageControlButtons.multids @@ -1,6 +1,9 @@ title: $:/config/PageControlButtons/Visibility/$:/ -core/ui/Buttons/encryption: hide -core/ui/Buttons/home: hide -core/ui/Buttons/permaview: hide core/ui/Buttons/close-all: hide +core/ui/Buttons/encryption: hide +core/ui/Buttons/full-screen: hide +core/ui/Buttons/home: hide +core/ui/Buttons/language: hide +core/ui/Buttons/more-page-actions: hide +core/ui/Buttons/permaview: hide diff --git a/editions/de-AT-DE/tiddlywiki.info b/editions/de-AT-DE/tiddlywiki.info index 6ac10e934..491fd43fe 100644 --- a/editions/de-AT-DE/tiddlywiki.info +++ b/editions/de-AT-DE/tiddlywiki.info @@ -1,6 +1,5 @@ { "plugins": [ - "tiddlywiki/fullscreen", "tiddlywiki/github-fork-ribbon" ], "themes": [ diff --git a/editions/empty/tiddlywiki.info b/editions/empty/tiddlywiki.info index 6a97b5666..7f28043c5 100644 --- a/editions/empty/tiddlywiki.info +++ b/editions/empty/tiddlywiki.info @@ -1,6 +1,5 @@ { "plugins": [ - "tiddlywiki/fullscreen" ], "themes": [ "tiddlywiki/vanilla", diff --git a/editions/fr-FR/tiddlywiki.info b/editions/fr-FR/tiddlywiki.info index f01cfe879..4ed881b2c 100644 --- a/editions/fr-FR/tiddlywiki.info +++ b/editions/fr-FR/tiddlywiki.info @@ -1,6 +1,5 @@ { "plugins": [ - "tiddlywiki/fullscreen" ], "themes": [ "tiddlywiki/vanilla", diff --git a/editions/testcommonjs/tiddlywiki.info b/editions/testcommonjs/tiddlywiki.info index e2c97c0ac..e84f1fb9e 100644 --- a/editions/testcommonjs/tiddlywiki.info +++ b/editions/testcommonjs/tiddlywiki.info @@ -1,6 +1,5 @@ { "plugins": [ - "tiddlywiki/fullscreen" ], "themes": [ "tiddlywiki/vanilla", diff --git a/editions/tw5.com/tiddlers/system/download-empty.tid b/editions/tw5.com/tiddlers/system/download-empty.tid index 280ac2a61..e34226189 100644 --- a/editions/tw5.com/tiddlers/system/download-empty.tid +++ b/editions/tw5.com/tiddlers/system/download-empty.tid @@ -1,7 +1,7 @@ title: $:/editions/tw5.com/download-empty \define saveTiddlerFilter() -[[$:/core]] [[$:/isEncrypted]] [[$:/plugins/tiddlywiki/fullscreen]] [[$:/themes/tiddlywiki/snowwhite]] [[$:/themes/tiddlywiki/vanilla]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] +[[$:/core]] [[$:/isEncrypted]] [[$:/themes/tiddlywiki/snowwhite]] [[$:/themes/tiddlywiki/vanilla]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] \end \define savingEmpty() yes diff --git a/editions/tw5.com/tiddlywiki.info b/editions/tw5.com/tiddlywiki.info index a882349f4..74eab359d 100644 --- a/editions/tw5.com/tiddlywiki.info +++ b/editions/tw5.com/tiddlywiki.info @@ -1,7 +1,6 @@ { "plugins": [ "tiddlywiki/cecily", - "tiddlywiki/fullscreen", "tiddlywiki/googleanalytics", "tiddlywiki/nodewebkitsaver", "tiddlywiki/github-fork-ribbon", diff --git a/editions/tw5tank/tiddlywiki.info b/editions/tw5tank/tiddlywiki.info index 2d7b074de..b8874c65b 100644 --- a/editions/tw5tank/tiddlywiki.info +++ b/editions/tw5tank/tiddlywiki.info @@ -1,6 +1,5 @@ { "plugins": [ - "tiddlywiki/fullscreen", "tiddlywiki/tiddlyweb" ], "themes": [ diff --git a/editions/tw5tiddlyweb/tiddlywiki.info b/editions/tw5tiddlyweb/tiddlywiki.info index 77a6cceb2..85caac4a0 100644 --- a/editions/tw5tiddlyweb/tiddlywiki.info +++ b/editions/tw5tiddlyweb/tiddlywiki.info @@ -1,6 +1,5 @@ { "plugins": [ - "tiddlywiki/fullscreen", "tiddlywiki/tiddlyweb" ], "themes": [ diff --git a/editions/zh-Hans/tiddlywiki.info b/editions/zh-Hans/tiddlywiki.info index e55145fb5..6e926f6d8 100644 --- a/editions/zh-Hans/tiddlywiki.info +++ b/editions/zh-Hans/tiddlywiki.info @@ -1,6 +1,5 @@ { "plugins": [ - "tiddlywiki/fullscreen" ], "themes": [ "tiddlywiki/vanilla", diff --git a/editions/zh-Hant/tiddlywiki.info b/editions/zh-Hant/tiddlywiki.info index b2950dce3..f65bfce72 100644 --- a/editions/zh-Hant/tiddlywiki.info +++ b/editions/zh-Hant/tiddlywiki.info @@ -1,6 +1,5 @@ { "plugins": [ - "tiddlywiki/fullscreen" ], "themes": [ "tiddlywiki/vanilla", diff --git a/plugins/tiddlywiki/fullscreen/init.js b/plugins/tiddlywiki/fullscreen/init.js deleted file mode 100644 index fdaa56297..000000000 --- a/plugins/tiddlywiki/fullscreen/init.js +++ /dev/null @@ -1,48 +0,0 @@ -/*\ -title: $:/plugins/tiddlywiki/fullscreen/init.js -type: application/javascript -module-type: startup - -Message handler for full screen mode - -\*/ -(function(){ - -/*jslint node: true, browser: true */ -/*global $tw: false, Element: false */ -"use strict"; - -// Export name and synchronous status -exports.name = "full-screen"; -exports.platforms = ["browser"]; -exports.after = ["startup"]; -exports.synchronous = true; - -exports.startup = function() { - var d = document, - db = d.body, - _requestFullscreen = db.webkitRequestFullscreen !== undefined ? "webkitRequestFullscreen" : - db.mozRequestFullScreen !== undefined ? "mozRequestFullScreen" : - db.msRequestFullscreen !== undefined ? "msRequestFullscreen" : - db.requestFullscreen !== undefined ? "requestFullscreen" : "", - _exitFullscreen = d.webkitExitFullscreen !== undefined ? "webkitExitFullscreen" : - d.mozCancelFullScreen !== undefined ? "mozCancelFullScreen" : - d.msExitFullscreen !== undefined ? "msExitFullscreen" : - d.exitFullscreen !== undefined ? "exitFullscreen" : "", - _fullscreenElement = d.webkitFullscreenElement !== undefined ? "webkitFullscreenElement" : - d.mozFullScreenElement !== undefined ? "mozFullScreenElement" : - d.msFullscreenElement !== undefined ? "msFullscreenElement" : - d.fullscreenElement !== undefined ? "fullscreenElement" : ""; - // Install the full screen handler - if(_requestFullscreen) { - $tw.rootWidget.addEventListener("tw-full-screen",function(event) { - if(document[_fullscreenElement]) { - document[_exitFullscreen](); - } else { - document.documentElement[_requestFullscreen](Element.ALLOW_KEYBOARD_INPUT); - } - }); - } -}; - -})(); diff --git a/plugins/tiddlywiki/fullscreen/plugin.info b/plugins/tiddlywiki/fullscreen/plugin.info deleted file mode 100644 index a0f5a32ae..000000000 --- a/plugins/tiddlywiki/fullscreen/plugin.info +++ /dev/null @@ -1,6 +0,0 @@ -{ - "title": "$:/plugins/tiddlywiki/fullscreen", - "description": "Adds support for HTML5 full screen mode", - "author": "JeremyRuston", - "core-version": ">=5.0.0" -}