Skip to content

Commit 4cb2c7d

Browse files
committed
transparent icon for sensors; settings code clean
1 parent 7faf490 commit 4cb2c7d

5 files changed

Lines changed: 44 additions & 72 deletions

File tree

GUI/SensorNotifyIcon.cs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,21 @@ public class SensorNotifyIcon : IDisposable {
2626
private Font smallFont;
2727

2828
public SensorNotifyIcon(SystemTray sensorSystemTray, ISensor sensor,
29-
bool balloonTip, PersistentSettings settings, UnitManager unitManager)
30-
{
29+
PersistentSettings settings, UnitManager unitManager) {
30+
3131
this.unitManager = unitManager;
3232
this.sensor = sensor;
3333
this.notifyIcon = new NotifyIconAdv();
3434

35-
//Color defaultColor = Color.Black;
35+
//todo: set defaultColor depending on the taskbar color
36+
var defaultColor = Color.FromArgb(0xff, 0x00, 0xff, 0xff);
3637
//if (sensor.SensorType == SensorType.Load ||
3738
// sensor.SensorType == SensorType.Control ||
3839
// sensor.SensorType == SensorType.Level)
39-
//{
4040
// defaultColor = Color.FromArgb(0xff, 0x70, 0x8c, 0xf1);
41-
//}
41+
4242
Color = settings.GetValue(new Identifier(sensor.Identifier,
43-
"traycolor").ToString(), Color.FromArgb(0xff, 0x00, 0xff, 0xff));
43+
"traycolor").ToString(), defaultColor);
4444

4545
this.pen = new Pen(Color.FromArgb(96, Color.Black));
4646

@@ -218,17 +218,17 @@ private Icon CreateTransparentIcon() {
218218
Marshal.Copy(Scan0, bytes, 0, numBytes);
219219
bitmap.UnlockBits(data);
220220

221-
//byte red, green, blue;
222-
//for (int i = 0; i < bytes.Length; i += 4) {
223-
// blue = bytes[i];
224-
// green = bytes[i + 1];
225-
// red = bytes[i + 2];
226-
227-
// bytes[i] = color.B;
228-
// bytes[i + 1] = color.G;
229-
// bytes[i + 2] = color.R;
230-
// bytes[i + 3] = (byte)(0.3 * red + 0.59 * green + 0.11 * blue);
231-
//}
221+
byte red, green, blue;
222+
for (int i = 0; i < bytes.Length; i += 4) {
223+
blue = bytes[i];
224+
green = bytes[i + 1];
225+
red = bytes[i + 2];
226+
227+
bytes[i] = color.B;
228+
bytes[i + 1] = color.G;
229+
bytes[i + 2] = color.R;
230+
bytes[i + 3] = (byte)(0.3 * red + 0.59 * green + 0.11 * blue);
231+
}
232232

233233
return IconFactory.Create(bytes, bitmap.Width, bitmap.Height,
234234
PixelFormat.Format32bppArgb);

GUI/SystemTray.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public void Add(ISensor sensor, bool balloonTip) {
9696
if (Contains(sensor)) {
9797
return;
9898
} else {
99-
list.Add(new SensorNotifyIcon(this, sensor, balloonTip, settings, unitManager));
99+
list.Add(new SensorNotifyIcon(this, sensor, settings, unitManager));
100100
UpdateMainIconVisibilty();
101101
settings.SetValue(new Identifier(sensor.Identifier, "tray").ToString(), true);
102102
}

Hardware/Computer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -392,8 +392,8 @@ public bool Contains(string name) {
392392

393393
public void SetValue(string name, string value) { }
394394

395-
public string GetValue(string name, string value) {
396-
return value;
395+
public string GetValue(string name, string defaultValue) {
396+
return defaultValue;
397397
}
398398

399399
public void Remove(string name) { }

Hardware/ISettings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ public interface ISettings {
55

66
void SetValue(string name, string value);
77

8-
string GetValue(string name, string value);
8+
string GetValue(string name, string defaultValue);
99

1010
void Remove(string name);
1111
}

Utilities/PersistentSettings.cs

Lines changed: 23 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
namespace OpenHardwareMonitor {
1010
public class PersistentSettings : ISettings {
1111

12-
private IDictionary<string, string> settings =
12+
private IDictionary<string, string> settings =
1313
new Dictionary<string, string>();
1414

1515
public void Load(string fileName) {
@@ -36,14 +36,14 @@ public void Load(string fileName) {
3636
XmlNodeList list = doc.GetElementsByTagName("appSettings");
3737
foreach (XmlNode node in list) {
3838
XmlNode parent = node.ParentNode;
39-
if (parent != null && parent.Name == "configuration" &&
39+
if (parent != null && parent.Name == "configuration" &&
4040
parent.ParentNode is XmlDocument) {
4141
foreach (XmlNode child in node.ChildNodes) {
4242
if (child.Name == "add") {
4343
XmlAttributeCollection attributes = child.Attributes;
4444
XmlAttribute keyAttribute = attributes["key"];
4545
XmlAttribute valueAttribute = attributes["value"];
46-
if (keyAttribute != null && valueAttribute != null &&
46+
if (keyAttribute != null && valueAttribute != null &&
4747
keyAttribute.Value != null) {
4848
settings.Add(keyAttribute.Value, valueAttribute.Value);
4949
}
@@ -86,7 +86,7 @@ public void Save(string fileName) {
8686
} catch { }
8787
}
8888

89-
using (var stream = new FileStream(fileName,
89+
using (var stream = new FileStream(fileName,
9090
FileMode.Create, FileAccess.Write))
9191
{
9292
stream.Write(file, 0, file.Length);
@@ -105,12 +105,8 @@ public void SetValue(string name, string value) {
105105
settings[name] = value;
106106
}
107107

108-
public string GetValue(string name, string value) {
109-
string result;
110-
if (settings.TryGetValue(name, out result))
111-
return result;
112-
else
113-
return value;
108+
public string GetValue(string name, string defaultValue) {
109+
return settings.TryGetValue(name, out var result) ? result : defaultValue;
114110
}
115111

116112
public void Remove(string name) {
@@ -121,66 +117,42 @@ public void SetValue(string name, int value) {
121117
settings[name] = value.ToString();
122118
}
123119

124-
public int GetValue(string name, int value) {
125-
string str;
126-
if (settings.TryGetValue(name, out str)) {
127-
int parsedValue;
128-
if (int.TryParse(str, out parsedValue))
129-
return parsedValue;
130-
else
131-
return value;
132-
} else {
133-
return value;
134-
}
120+
public int GetValue(string name, int defaultValue) {
121+
if (settings.TryGetValue(name, out var str) && int.TryParse(str, out var parsedValue))
122+
return parsedValue;
123+
return defaultValue;
135124
}
136125

137126
public void SetValue(string name, float value) {
138127
settings[name] = value.ToString(CultureInfo.InvariantCulture);
139128
}
140129

141-
public float GetValue(string name, float value) {
142-
string str;
143-
if (settings.TryGetValue(name, out str)) {
144-
float parsedValue;
145-
if (float.TryParse(str, NumberStyles.Float,
146-
CultureInfo.InvariantCulture, out parsedValue))
147-
return parsedValue;
148-
else
149-
return value;
150-
} else {
151-
return value;
152-
}
130+
public float GetValue(string name, float defaultValue) {
131+
if (settings.TryGetValue(name, out var str) && float.TryParse(str, NumberStyles.Float,
132+
CultureInfo.InvariantCulture, out var parsedValue))
133+
return parsedValue;
134+
return defaultValue;
153135
}
154136

155137
public void SetValue(string name, bool value) {
156138
settings[name] = value ? "true" : "false";
157139
}
158140

159-
public bool GetValue(string name, bool value) {
160-
string str;
161-
if (settings.TryGetValue(name, out str)) {
141+
public bool GetValue(string name, bool defaultValue) {
142+
if (settings.TryGetValue(name, out var str))
162143
return str == "true";
163-
} else {
164-
return value;
165-
}
144+
return defaultValue;
166145
}
167146

168147
public void SetValue(string name, Color color) {
169148
settings[name] = color.ToArgb().ToString("X8");
170149
}
171150

172-
public Color GetValue(string name, Color value) {
173-
string str;
174-
if (settings.TryGetValue(name, out str)) {
175-
int parsedValue;
176-
if (int.TryParse(str, NumberStyles.HexNumber,
177-
CultureInfo.InvariantCulture, out parsedValue))
178-
return Color.FromArgb(parsedValue);
179-
else
180-
return value;
181-
} else {
182-
return value;
183-
}
151+
public Color GetValue(string name, Color defaultValue) {
152+
if (settings.TryGetValue(name, out var str) && int.TryParse(str, NumberStyles.HexNumber,
153+
CultureInfo.InvariantCulture, out var parsedValue))
154+
return Color.FromArgb(parsedValue);
155+
return defaultValue;
184156
}
185157
}
186158
}

0 commit comments

Comments
 (0)