summaryrefslogtreecommitdiff
path: root/plugins/org.apache.cordova.statusbar/src/windows/StatusBarProxy.js
diff options
context:
space:
mode:
authorARC <arjunrc@gmail.com>2015-05-13 14:58:25 -0400
committerARC <arjunrc@gmail.com>2015-05-13 14:58:25 -0400
commit73968ba1b3c3b5efeb92f70969e40d143eebf3d8 (patch)
tree25f9d358356645c89c212f014f622d5c831e81d0 /plugins/org.apache.cordova.statusbar/src/windows/StatusBarProxy.js
parent1bef6ad92cafa215e3927d0a4d0a29147d52fe56 (diff)
Added plugin directory as well to make sure you have all you need to compile (hopefully)
Diffstat (limited to 'plugins/org.apache.cordova.statusbar/src/windows/StatusBarProxy.js')
-rw-r--r--plugins/org.apache.cordova.statusbar/src/windows/StatusBarProxy.js100
1 files changed, 100 insertions, 0 deletions
diff --git a/plugins/org.apache.cordova.statusbar/src/windows/StatusBarProxy.js b/plugins/org.apache.cordova.statusbar/src/windows/StatusBarProxy.js
new file mode 100644
index 00000000..57700999
--- /dev/null
+++ b/plugins/org.apache.cordova.statusbar/src/windows/StatusBarProxy.js
@@ -0,0 +1,100 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+ var isSupported = true; // we assume
+
+function getViewStatusBar() {
+ if(isSupported) {
+ var ViewMan = Windows.UI.ViewManagement; // quick alias to save char
+ if( ViewMan.StatusBar &&
+ ViewMan.StatusBar.getForCurrentView ) {
+ return ViewMan.StatusBar.getForCurrentView();
+ }
+ else {
+ isSupported = false; // so we won't check again
+ }
+ }
+ return null;
+}
+
+function hexToRgb(hex) {
+ // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF")
+ var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
+ hex = hex.replace(shorthandRegex, function (m, r, g, b) {
+ return r + r + g + g + b + b;
+ });
+
+ var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
+ return result ? {
+ r: parseInt(result[1], 16),
+ g: parseInt(result[2], 16),
+ b: parseInt(result[3], 16)
+ } : null;
+}
+
+module.exports = {
+ _ready: function(win, fail) {
+ win(statusBar.occludedRect.height !== 0);
+ },
+
+ overlaysWebView: function () {
+ // not supported
+ },
+
+ styleDefault: function () {
+ // dark text ( to be used on a light background )
+ getViewStatusBar().foregroundColor = { a: 0, r: 0, g: 0, b: 0 };
+ },
+
+ styleLightContent: function () {
+ // light text ( to be used on a dark background )
+ getViewStatusBar().foregroundColor = { a: 0, r: 255, g: 255, b: 255 };
+ },
+
+ styleBlackTranslucent: function () {
+ // #88000000 ? Apple says to use lightContent instead
+ return this.styleLightContent();
+ },
+
+ styleBlackOpaque: function () {
+ // #FF000000 ? Apple says to use lightContent instead
+ return this.styleLightContent();
+ },
+
+ backgroundColorByHexString: function (win, fail, args) {
+ var rgb = hexToRgb(args[0]);
+ var statusBar = getViewStatusBar();
+ if(statusBar) {
+ statusBar.backgroundColor = { a: 0, r: rgb.r, g: rgb.g, b: rgb.b };
+ statusBar.backgroundOpacity = 1;
+ }
+ },
+
+ show: function (win, fail) {
+ getViewStatusBar().showAsync().done(win, fail);
+ },
+
+ hide: function (win, fail) {
+ getViewStatusBar().hideAsync().done(win, fail);
+ }
+};
+
+require("cordova/exec/proxy").add("StatusBar", module.exports);