Updated Branches: refs/heads/master e7c216683 -> 1d2c0adf1
[Windows8][CB-4450] Implemented splash-screen for Windows8 Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen/commit/1d2c0adf Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen/tree/1d2c0adf Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen/diff/1d2c0adf Branch: refs/heads/master Commit: 1d2c0adf177ead221c542d2d6ccbe3ffa3a2cd51 Parents: e7c2166 Author: purplecabbage <[email protected]> Authored: Thu Aug 1 16:34:03 2013 -0700 Committer: purplecabbage <[email protected]> Committed: Thu Aug 1 16:34:03 2013 -0700 ---------------------------------------------------------------------- plugin.xml | 7 +++ www/windows8/SplashScreenProxy.js | 104 +++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen/blob/1d2c0adf/plugin.xml ---------------------------------------------------------------------- diff --git a/plugin.xml b/plugin.xml index 6cce13f..315d5b1 100644 --- a/plugin.xml +++ b/plugin.xml @@ -70,4 +70,11 @@ </platform> + <!-- windows8 --> + <platform name="windows8"> + <js-module src="www/windows8/SplashScreenProxy.js" name="SplashScreenProxy"> + <merges target="" /> + </js-module> + </platform> + </plugin> http://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen/blob/1d2c0adf/www/windows8/SplashScreenProxy.js ---------------------------------------------------------------------- diff --git a/www/windows8/SplashScreenProxy.js b/www/windows8/SplashScreenProxy.js new file mode 100644 index 0000000..aa592c1 --- /dev/null +++ b/www/windows8/SplashScreenProxy.js @@ -0,0 +1,104 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +/*global Windows:true */ + + var cordova = require('cordova'), + channel = require('cordova/channel'); + +/* This is the actual implementation part that returns the result on Windows 8 +*/ + + var position = { x: 0, y: 0, width: 0, height: 0 }; // defined by evt.detail.splashScreen.imageLocation + var splash = null; // + var localSplash; // the image to display + var localSplashImage; + var bgColor = "#464646"; + + function onResize(evt) { + if (splash) { + position = splash.imageLocation; + updateImageLocation(); + } + } + + function updateImageLocation() { + localSplash.style.width = window.innerWidth + "px"; + localSplash.style.height = window.innerHeight + "px"; + localSplash.style.top = "0px"; + localSplash.style.left = "0px"; + + localSplashImage.style.top = position.y + "px"; + localSplashImage.style.left = position.x + "px"; + localSplashImage.style.height = position.height + "px"; + localSplashImage.style.width = position.width + "px"; + } + + var SplashScreen = { + setBGColor:function(cssBGColor) { + bgColor = cssBGColor; + if (localSplash) { + localSplash.style.backgroundColor = bgColor; + } + }, + show:function(){ + window.addEventListener("resize", onResize, false); + localSplash = document.createElement("div"); + localSplash.style.backgroundColor = bgColor;; + localSplash.style.position = "absolute"; + + var img = localSplashImage = document.createElement("img"); + img.src = "img/splashscreen.png"; + img.style.position = "absolute"; + + updateImageLocation(); + + localSplash.appendChild(localSplashImage); + document.body.appendChild(localSplash); + }, + hide:function(){ + window.removeEventListener("resize", onResize, false); + document.body.removeChild(localSplash); + localSplash = null; + } + } + + module.exports = SplashScreen; + +function activated(evt) { + if (evt.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) { + splash = evt.detail.splashScreen; + position = evt.detail.splashScreen.imageLocation; + SplashScreen.show(); + } +} + + + + +channel.onCordovaReady.subscribe(function (evt) { + document.addEventListener("DOMContentLoaded", function (evt) { + WinJS.Application.addEventListener("activated", activated, false); + }, false); +}); + +require("cordova/commandProxy").add("SplashScreen",SplashScreen); +
