diff options
| author | ARC <arjunrc@gmail.com> | 2015-05-13 14:58:25 -0400 |
|---|---|---|
| committer | ARC <arjunrc@gmail.com> | 2015-05-13 14:58:25 -0400 |
| commit | 73968ba1b3c3b5efeb92f70969e40d143eebf3d8 (patch) | |
| tree | 25f9d358356645c89c212f014f622d5c831e81d0 /plugins/org.apache.cordova.statusbar/src/windows/StatusBarProxy.js | |
| parent | 1bef6ad92cafa215e3927d0a4d0a29147d52fe56 (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.js | 100 |
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); |
