moel@1
|
1 |
/*
|
moel@1
|
2 |
|
moel@344
|
3 |
This Source Code Form is subject to the terms of the Mozilla Public
|
moel@344
|
4 |
License, v. 2.0. If a copy of the MPL was not distributed with this
|
moel@344
|
5 |
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
moel@1
|
6 |
|
moel@344
|
7 |
Copyright (C) 2009-2012 Michael Möller <mmoeller@openhardwaremonitor.org>
|
moel@344
|
8 |
|
moel@1
|
9 |
*/
|
moel@1
|
10 |
|
moel@1
|
11 |
using System;
|
moel@1
|
12 |
using System.Collections.Generic;
|
moel@1
|
13 |
using OpenHardwareMonitor.Hardware;
|
moel@1
|
14 |
|
moel@1
|
15 |
namespace OpenHardwareMonitor.GUI {
|
moel@1
|
16 |
public class TypeNode : Node {
|
moel@1
|
17 |
|
moel@1
|
18 |
private SensorType sensorType;
|
moel@1
|
19 |
|
moel@1
|
20 |
public TypeNode(SensorType sensorType) : base() {
|
moel@1
|
21 |
this.sensorType = sensorType;
|
moel@1
|
22 |
|
moel@1
|
23 |
switch (sensorType) {
|
moel@1
|
24 |
case SensorType.Voltage:
|
moel@1
|
25 |
this.Image = Utilities.EmbeddedResources.GetImage("voltage.png");
|
moel@1
|
26 |
this.Text = "Voltages";
|
moel@1
|
27 |
break;
|
moel@1
|
28 |
case SensorType.Clock:
|
moel@1
|
29 |
this.Image = Utilities.EmbeddedResources.GetImage("clock.png");
|
moel@1
|
30 |
this.Text = "Clocks";
|
moel@1
|
31 |
break;
|
moel@24
|
32 |
case SensorType.Load:
|
moel@24
|
33 |
this.Image = Utilities.EmbeddedResources.GetImage("load.png");
|
moel@24
|
34 |
this.Text = "Load";
|
moel@24
|
35 |
break;
|
moel@1
|
36 |
case SensorType.Temperature:
|
moel@1
|
37 |
this.Image = Utilities.EmbeddedResources.GetImage("temperature.png");
|
moel@1
|
38 |
this.Text = "Temperatures";
|
moel@1
|
39 |
break;
|
moel@1
|
40 |
case SensorType.Fan:
|
moel@1
|
41 |
this.Image = Utilities.EmbeddedResources.GetImage("fan.png");
|
moel@1
|
42 |
this.Text = "Fans";
|
moel@1
|
43 |
break;
|
moel@57
|
44 |
case SensorType.Flow:
|
moel@57
|
45 |
this.Image = Utilities.EmbeddedResources.GetImage("flow.png");
|
moel@57
|
46 |
this.Text = "Flows";
|
moel@57
|
47 |
break;
|
moel@118
|
48 |
case SensorType.Control:
|
moel@118
|
49 |
this.Image = Utilities.EmbeddedResources.GetImage("control.png");
|
moel@118
|
50 |
this.Text = "Controls";
|
moel@118
|
51 |
break;
|
moel@217
|
52 |
case SensorType.Level:
|
moel@217
|
53 |
this.Image = Utilities.EmbeddedResources.GetImage("level.png");
|
moel@217
|
54 |
this.Text = "Levels";
|
moel@217
|
55 |
break;
|
moel@317
|
56 |
case SensorType.Power:
|
moel@317
|
57 |
this.Image = Utilities.EmbeddedResources.GetImage("power.png");
|
moel@317
|
58 |
this.Text = "Powers";
|
moel@317
|
59 |
break;
|
moel@324
|
60 |
case SensorType.Data:
|
moel@324
|
61 |
this.Image = Utilities.EmbeddedResources.GetImage("data.png");
|
moel@324
|
62 |
this.Text = "Data";
|
moel@324
|
63 |
break;
|
moel@340
|
64 |
case SensorType.Factor:
|
moel@340
|
65 |
this.Image = Utilities.EmbeddedResources.GetImage("factor.png");
|
moel@340
|
66 |
this.Text = "Factors";
|
moel@340
|
67 |
break;
|
moel@1
|
68 |
}
|
moel@111
|
69 |
|
moel@111
|
70 |
NodeAdded += new NodeEventHandler(TypeNode_NodeAdded);
|
moel@111
|
71 |
NodeRemoved += new NodeEventHandler(TypeNode_NodeRemoved);
|
moel@111
|
72 |
}
|
moel@111
|
73 |
|
moel@111
|
74 |
private void TypeNode_NodeRemoved(Node node) {
|
moel@111
|
75 |
node.IsVisibleChanged -= new NodeEventHandler(node_IsVisibleChanged);
|
moel@111
|
76 |
node_IsVisibleChanged(null);
|
moel@111
|
77 |
}
|
moel@111
|
78 |
|
moel@111
|
79 |
private void TypeNode_NodeAdded(Node node) {
|
moel@111
|
80 |
node.IsVisibleChanged += new NodeEventHandler(node_IsVisibleChanged);
|
moel@111
|
81 |
node_IsVisibleChanged(null);
|
moel@111
|
82 |
}
|
moel@111
|
83 |
|
moel@111
|
84 |
private void node_IsVisibleChanged(Node node) {
|
moel@111
|
85 |
foreach (Node n in Nodes)
|
moel@111
|
86 |
if (n.IsVisible) {
|
moel@111
|
87 |
this.IsVisible = true;
|
moel@111
|
88 |
return;
|
moel@111
|
89 |
}
|
moel@111
|
90 |
this.IsVisible = false;
|
moel@1
|
91 |
}
|
moel@1
|
92 |
|
moel@1
|
93 |
public SensorType SensorType {
|
moel@1
|
94 |
get { return sensorType; }
|
moel@1
|
95 |
}
|
moel@1
|
96 |
}
|
moel@1
|
97 |
}
|