GUI/TypeNode.cs
author sl
Sun, 03 Feb 2013 18:01:50 +0100
changeset 391 ca4c0e7ae75d
parent 340 600962f8a298
permissions -rw-r--r--
Converted project to VisualStudio 2012.
Adding SoundGraphDisplay and SensorFrontView classes.
They were respectively based on SystemTray and SensorNotifyIcon.
SoundGraphDisplay is now able to load iMONDisplay.dll providing it lives on your PATH.
Adding option to sensor context menu for adding it into FrontView.
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
}