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