Files
ReLibreHardwareMonitor/GUI/TypeNode.cs
T
2019-09-13 15:34:42 +02:00

108 lines
3.9 KiB
C#

// Mozilla Public License 2.0
// If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
// Copyright (C) LibreHardwareMonitor and Contributors
// All Rights Reserved
using OpenHardwareMonitor.Hardware;
namespace OpenHardwareMonitor.GUI
{
public sealed class TypeNode : Node
{
public TypeNode(SensorType sensorType)
{
SensorType = sensorType;
switch (sensorType)
{
case SensorType.Voltage:
Image = Utilities.EmbeddedResources.GetImage("voltage.png");
Text = "Voltages";
break;
case SensorType.Clock:
Image = Utilities.EmbeddedResources.GetImage("clock.png");
Text = "Clocks";
break;
case SensorType.Load:
Image = Utilities.EmbeddedResources.GetImage("load.png");
Text = "Load";
break;
case SensorType.Temperature:
Image = Utilities.EmbeddedResources.GetImage("temperature.png");
Text = "Temperatures";
break;
case SensorType.Fan:
Image = Utilities.EmbeddedResources.GetImage("fan.png");
Text = "Fans";
break;
case SensorType.Flow:
Image = Utilities.EmbeddedResources.GetImage("flow.png");
Text = "Flows";
break;
case SensorType.Control:
Image = Utilities.EmbeddedResources.GetImage("control.png");
Text = "Controls";
break;
case SensorType.Level:
Image = Utilities.EmbeddedResources.GetImage("level.png");
Text = "Levels";
break;
case SensorType.Power:
Image = Utilities.EmbeddedResources.GetImage("power.png");
Text = "Powers";
break;
case SensorType.Data:
Image = Utilities.EmbeddedResources.GetImage("data.png");
Text = "Data";
break;
case SensorType.SmallData:
Image = Utilities.EmbeddedResources.GetImage("data.png");
Text = "Data";
break;
case SensorType.Factor:
Image = Utilities.EmbeddedResources.GetImage("factor.png");
Text = "Factors";
break;
case SensorType.Frequency:
Image = Utilities.EmbeddedResources.GetImage("clock.png");
Text = "Frequencies";
break;
case SensorType.Throughput:
Image = Utilities.EmbeddedResources.GetImage("throughput.png");
Text = "Throughput";
break;
}
NodeAdded += TypeNode_NodeAdded;
NodeRemoved += TypeNode_NodeRemoved;
}
private void TypeNode_NodeRemoved(Node node)
{
node.IsVisibleChanged -= Node_IsVisibleChanged;
Node_IsVisibleChanged(null);
}
private void TypeNode_NodeAdded(Node node)
{
node.IsVisibleChanged += Node_IsVisibleChanged;
Node_IsVisibleChanged(null);
}
private void Node_IsVisibleChanged(Node node)
{
foreach (Node n in Nodes)
{
if (n.IsVisible)
{
IsVisible = true;
return;
}
}
IsVisible = false;
}
public SensorType SensorType { get; }
}
}