Switch to unified view

a b/compass-app/plugins/org.apache.cordova.splashscreen/www/windows8/SplashScreenProxy.js
1
/*
2
 *
3
 * Licensed to the Apache Software Foundation (ASF) under one
4
 * or more contributor license agreements.  See the NOTICE file
5
 * distributed with this work for additional information
6
 * regarding copyright ownership.  The ASF licenses this file
7
 * to you under the Apache License, Version 2.0 (the
8
 * "License"); you may not use this file except in compliance
9
 * with the License.  You may obtain a copy of the License at
10
 *
11
 *   http://www.apache.org/licenses/LICENSE-2.0
12
 *
13
 * Unless required by applicable law or agreed to in writing,
14
 * software distributed under the License is distributed on an
15
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
 * KIND, either express or implied.  See the License for the
17
 * specific language governing permissions and limitations
18
 * under the License.
19
 *
20
*/
21
22
/*jslint sloppy:true */
23
/*global Windows:true, require, module, window, document, WinJS */
24
25
var cordova = require('cordova'),
26
    channel = require('cordova/channel');
27
28
/* This is the actual implementation part that returns the result on Windows 8
29
*/
30
31
var position = { x: 0, y: 0, width: 0, height: 0 };  // defined by evt.detail.splashScreen.imageLocation
32
var splash = null; //
33
var localSplash; // the image to display
34
var localSplashImage;
35
var bgColor = "#464646";
36
37
38
39
function updateImageLocation() {
40
    localSplash.style.width = window.innerWidth + "px";
41
    localSplash.style.height = window.innerHeight + "px";
42
    localSplash.style.top = "0px";
43
    localSplash.style.left = "0px";
44
45
    localSplashImage.style.top = position.y + "px";
46
    localSplashImage.style.left = position.x + "px";
47
    localSplashImage.style.height = position.height + "px";
48
    localSplashImage.style.width = position.width + "px";
49
}
50
51
function onResize(evt) {
52
    if (splash) {
53
        position = splash.imageLocation;
54
        updateImageLocation();
55
    }
56
}
57
58
var SplashScreen = {
59
    setBGColor: function (cssBGColor) {
60
        bgColor = cssBGColor;
61
        if (localSplash) {
62
            localSplash.style.backgroundColor = bgColor;
63
        }
64
    },
65
    show: function () {
66
        window.addEventListener("resize", onResize, false);
67
        localSplash = document.createElement("div");
68
        localSplash.style.backgroundColor = bgColor;
69
        localSplash.style.position = "absolute";
70
71
        localSplashImage = document.createElement("img");
72
        localSplashImage.src = "img/splashscreen.png";
73
        localSplashImage.style.position = "absolute";
74
75
        updateImageLocation();
76
77
        localSplash.appendChild(localSplashImage);
78
        document.body.appendChild(localSplash);
79
    },
80
    hide: function () {
81
        window.removeEventListener("resize", onResize, false);
82
        document.body.removeChild(localSplash);
83
        localSplash = null;
84
    }
85
};
86
87
module.exports = SplashScreen;
88
89
function activated(evt) {
90
    if (evt.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) {
91
        splash = evt.detail.splashScreen;
92
        position = evt.detail.splashScreen.imageLocation;
93
    }
94
}
95
96
97
98
99
channel.onCordovaReady.subscribe(function (evt) {
100
    document.addEventListener("DOMContentLoaded", function (evt) {
101
        WinJS.Application.addEventListener("activated", activated, false);
102
    }, false);
103
});
104
105
require("cordova/windows8/commandProxy").add("SplashScreen", SplashScreen);
106