ImageLoader changed to Config with setting colors
This commit is contained in:
parent
2496966d05
commit
9000aed4d4
@ -45,7 +45,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Battery.cs" />
|
<Compile Include="Battery.cs" />
|
||||||
<Compile Include="BatteryGraph.cs" />
|
<Compile Include="BatteryGraph.cs" />
|
||||||
<Compile Include="ImageLoader.cs" />
|
<Compile Include="Config.cs" />
|
||||||
<Compile Include="WidgetForm.cs">
|
<Compile Include="WidgetForm.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -6,10 +6,11 @@ using BatteryWidget.Properties;
|
|||||||
|
|
||||||
namespace BatteryWidget {
|
namespace BatteryWidget {
|
||||||
|
|
||||||
public static class ImageLoader {
|
public static class Config {
|
||||||
|
|
||||||
private const int IMAGES_COUNT = 5;
|
private const int IMAGES_COUNT = 5;
|
||||||
private const string PATH = "res";
|
private const string PATH = "res";
|
||||||
|
private const string CONFIG = "config";
|
||||||
|
|
||||||
public enum Name {
|
public enum Name {
|
||||||
Gray,
|
Gray,
|
||||||
@ -19,6 +20,8 @@ namespace BatteryWidget {
|
|||||||
Power
|
Power
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Color warningStateColor, normalStateColor, powerStateColor;
|
||||||
|
|
||||||
private static Image[] cache = new Image[(int) Name.Power + 1];
|
private static Image[] cache = new Image[(int) Name.Power + 1];
|
||||||
|
|
||||||
public static Image get(Name name) {
|
public static Image get(Name name) {
|
||||||
@ -42,11 +45,33 @@ namespace BatteryWidget {
|
|||||||
return img;
|
return img;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Read config with colors
|
||||||
|
/// </summary>
|
||||||
|
public static void initColors() {
|
||||||
|
try {
|
||||||
|
using (var reader = new StreamReader(PATH + Path.DirectorySeparatorChar + CONFIG)) {
|
||||||
|
warningStateColor = readColor(reader);
|
||||||
|
normalStateColor = readColor(reader);
|
||||||
|
powerStateColor = readColor(reader);
|
||||||
|
}
|
||||||
|
} catch (Exception) {
|
||||||
|
warningStateColor = Color.Red;
|
||||||
|
normalStateColor = Color.DarkGreen;
|
||||||
|
powerStateColor = Color.Black;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static Image loadImage(string name) {
|
private static Image loadImage(string name) {
|
||||||
string filename = PATH + Path.DirectorySeparatorChar + name + ".png";
|
string filename = PATH + Path.DirectorySeparatorChar + name + ".png";
|
||||||
using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read)) {
|
using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read)) {
|
||||||
return new Bitmap(fs);
|
return new Bitmap(fs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Color readColor(StreamReader reader) {
|
||||||
|
string line = reader.ReadLine();
|
||||||
|
return ColorTranslator.FromHtml(line);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -25,8 +25,10 @@ namespace BatteryWidget {
|
|||||||
public WidgetForm() {
|
public WidgetForm() {
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
imageLabel.Image = ImageLoader.get(ImageLoader.Name.Green);
|
Config.initColors();
|
||||||
grayImage = ImageLoader.get(ImageLoader.Name.Gray);
|
|
||||||
|
imageLabel.Image = Config.get(Config.Name.Green);
|
||||||
|
grayImage = Config.get(Config.Name.Gray);
|
||||||
|
|
||||||
graph = new BatteryGraph();
|
graph = new BatteryGraph();
|
||||||
|
|
||||||
@ -156,12 +158,12 @@ namespace BatteryWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Image powerStateImage() {
|
private Image powerStateImage() {
|
||||||
imageLabel.BackColor = Color.Black;
|
imageLabel.BackColor = Config.powerStateColor;
|
||||||
return ImageLoader.get(ImageLoader.Name.Power);
|
return Config.get(Config.Name.Power);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Image normalStateImage(int percent) {
|
private Image normalStateImage(int percent) {
|
||||||
imageLabel.BackColor = Color.DarkGreen;
|
imageLabel.BackColor = Config.normalStateColor;
|
||||||
|
|
||||||
Bitmap bmp = new Bitmap(selectImage(percent));
|
Bitmap bmp = new Bitmap(selectImage(percent));
|
||||||
|
|
||||||
@ -178,19 +180,19 @@ namespace BatteryWidget {
|
|||||||
private Image warningStateImage() {
|
private Image warningStateImage() {
|
||||||
updateInfoTimer.Interval = 800;
|
updateInfoTimer.Interval = 800;
|
||||||
if (imageLabel.Image.Equals(grayImage)) {
|
if (imageLabel.Image.Equals(grayImage)) {
|
||||||
imageLabel.BackColor = Color.DarkGreen;
|
imageLabel.BackColor = Config.normalStateColor;
|
||||||
return ImageLoader.get(ImageLoader.Name.Red);
|
return Config.get(Config.Name.Red);
|
||||||
}
|
}
|
||||||
imageLabel.BackColor = Color.Red;
|
imageLabel.BackColor = Config.warningStateColor;
|
||||||
return grayImage;
|
return grayImage;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Image selectImage(int percent) {
|
private Image selectImage(int percent) {
|
||||||
if (percent < 30)
|
if (percent < 30)
|
||||||
return ImageLoader.get(ImageLoader.Name.Red);
|
return Config.get(Config.Name.Red);
|
||||||
else if (percent < 70)
|
else if (percent < 70)
|
||||||
return ImageLoader.get(ImageLoader.Name.Yellow);
|
return Config.get(Config.Name.Yellow);
|
||||||
return ImageLoader.get(ImageLoader.Name.Green);
|
return Config.get(Config.Name.Green);
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user