mirror of
https://github.com/apache/cordova-plugin-statusbar.git
synced 2025-01-31 10:35:41 +08:00
Added Windows Phone support
This commit is contained in:
parent
7b648411cd
commit
d7498d31ed
20
plugin.xml
20
plugin.xml
@ -44,4 +44,24 @@
|
|||||||
|
|
||||||
</platform>
|
</platform>
|
||||||
|
|
||||||
|
<!-- wp7 -->
|
||||||
|
<platform name="wp7">
|
||||||
|
<config-file target="config.xml" parent="/*">
|
||||||
|
<feature name="StatusBar">
|
||||||
|
<param name="wp-package" value="StatusBar"/>
|
||||||
|
</feature>
|
||||||
|
</config-file>
|
||||||
|
<source-file src="src/wp/StatusBar.cs" />
|
||||||
|
</platform>
|
||||||
|
|
||||||
|
<!-- wp8 -->
|
||||||
|
<platform name="wp8">
|
||||||
|
<config-file target="config.xml" parent="/*">
|
||||||
|
<feature name="StatusBar">
|
||||||
|
<param name="wp-package" value="StatusBar"/>
|
||||||
|
</feature>
|
||||||
|
</config-file>
|
||||||
|
<source-file src="src/wp/StatusBar.cs" />
|
||||||
|
</platform>
|
||||||
|
|
||||||
</plugin>
|
</plugin>
|
||||||
|
142
src/wp/StatusBar.cs
Normal file
142
src/wp/StatusBar.cs
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
/*
|
||||||
|
Licensed 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
using Microsoft.Phone.Shell;
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Media;
|
||||||
|
using System.Windows.Threading;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* http://www.idev101.com/code/User_Interface/StatusBar.html
|
||||||
|
* https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/Bars.html
|
||||||
|
* https://developer.apple.com/library/ios/documentation/uikit/reference/UIApplication_Class/Reference/Reference.html#//apple_ref/c/econst/UIStatusBarStyleDefault
|
||||||
|
* */
|
||||||
|
|
||||||
|
|
||||||
|
namespace WPCordovaClassLib.Cordova.Commands
|
||||||
|
{
|
||||||
|
public class StatusBar : BaseCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
// returns an argb value, if the hex is only rgb, it will be full opacity
|
||||||
|
protected Color ColorFromHex(string hexString)
|
||||||
|
{
|
||||||
|
string cleanHex = hexString.Replace("#", "").Replace("0x", "");
|
||||||
|
// turn #FFF into #FFFFFF
|
||||||
|
if (cleanHex.Length == 3)
|
||||||
|
{
|
||||||
|
cleanHex = "" + cleanHex[0] + cleanHex[0] + cleanHex[1] + cleanHex[1] + cleanHex[2] + cleanHex[2];
|
||||||
|
}
|
||||||
|
// add an alpha 100% if it is missing
|
||||||
|
if (cleanHex.Length == 6)
|
||||||
|
{
|
||||||
|
cleanHex = "FF" + cleanHex;
|
||||||
|
}
|
||||||
|
int argb = Int32.Parse(cleanHex, NumberStyles.HexNumber);
|
||||||
|
Color clr = Color.FromArgb((byte)((argb & 0xff000000) >> 0x18),
|
||||||
|
(byte)((argb & 0xff0000) >> 0x10),
|
||||||
|
(byte)((argb & 0xff00) >> 8),
|
||||||
|
(byte)(argb & 0xff));
|
||||||
|
return clr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void _ready(string options)
|
||||||
|
{
|
||||||
|
Deployment.Current.Dispatcher.BeginInvoke(() =>
|
||||||
|
{
|
||||||
|
bool isVis = SystemTray.IsVisible;
|
||||||
|
// TODO: pass this to JS
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void overlaysWebView(string options)
|
||||||
|
{ //exec(null, null, "StatusBar", "overlaysWebView", [doOverlay]);
|
||||||
|
// string arg = JSON.JsonHelper.Deserialize<string[]>(options)[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
public void styleDefault(string options)
|
||||||
|
{ //exec(null, null, "StatusBar", "styleDefault", []);
|
||||||
|
Deployment.Current.Dispatcher.BeginInvoke(() =>
|
||||||
|
{
|
||||||
|
SystemTray.Opacity = 1.0d;
|
||||||
|
SystemTray.ForegroundColor = (Color)Application.Current.Resources["PhoneForegroundColor"];
|
||||||
|
SystemTray.BackgroundColor = (Color)Application.Current.Resources["PhoneChromeColor"];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void styleLightContent(string options)
|
||||||
|
{ //exec(null, null, "StatusBar", "styleLightContent", []);
|
||||||
|
Deployment.Current.Dispatcher.BeginInvoke(() =>
|
||||||
|
{
|
||||||
|
SystemTray.Opacity = 1.0d;
|
||||||
|
SystemTray.ForegroundColor = SystemColors.ControlLightColor;
|
||||||
|
SystemTray.BackgroundColor = SystemColors.ControlDarkColor;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void styleBlackTranslucent(string options)
|
||||||
|
{ //exec(null, null, "StatusBar", "styleBlackTranslucent", []);
|
||||||
|
styleLightContent(options);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void styleBlackOpaque(string options)
|
||||||
|
{ //exec(null, null, "StatusBar", "styleBlackOpaque", []);
|
||||||
|
styleLightContent(options);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void backgroundColorByName(string options)
|
||||||
|
{ //exec(null, null, "StatusBar", "backgroundColorByName", [colorname]);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void backgroundColorByHexString(string options)
|
||||||
|
{ //exec(null, null, "StatusBar", "backgroundColorByHexString", [hexString]);
|
||||||
|
string argb = JSON.JsonHelper.Deserialize<string[]>(options)[0];
|
||||||
|
|
||||||
|
Color clr = ColorFromHex(argb);
|
||||||
|
|
||||||
|
Deployment.Current.Dispatcher.BeginInvoke(() =>
|
||||||
|
{
|
||||||
|
SystemTray.Opacity = clr.A / 255.0d;
|
||||||
|
SystemTray.BackgroundColor = clr;
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void hide(string options)
|
||||||
|
{ //exec(null, null, "StatusBar", "hide", []);
|
||||||
|
Deployment.Current.Dispatcher.BeginInvoke(() =>
|
||||||
|
{
|
||||||
|
SystemTray.IsVisible = false;
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void show(string options)
|
||||||
|
{ //exec(null, null, "StatusBar", "show", []);
|
||||||
|
Deployment.Current.Dispatcher.BeginInvoke(() =>
|
||||||
|
{
|
||||||
|
SystemTray.IsVisible = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user