mirror of
https://github.com/openhardwaremonitor/openhardwaremonitor
synced 2025-09-04 16:25:12 +00:00
Refactoring and fine tuning for Linux GUI.
This commit is contained in:
2
GUI/MainForm.Designer.cs
generated
2
GUI/MainForm.Designer.cs
generated
@@ -440,7 +440,7 @@ namespace OpenHardwareMonitor.GUI {
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(418, 596);
|
||||
this.ClientSize = new System.Drawing.Size(418, 554);
|
||||
this.Controls.Add(this.splitContainer);
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Menu = this.mainMenu;
|
||||
|
@@ -77,6 +77,15 @@ namespace OpenHardwareMonitor.GUI {
|
||||
// set the DockStyle here, to avoid conflicts with the MainMenu
|
||||
this.splitContainer.Dock = DockStyle.Fill;
|
||||
|
||||
int p = (int)System.Environment.OSVersion.Platform;
|
||||
if ((p == 4) || (p == 128)) {
|
||||
splitContainer.BorderStyle = BorderStyle.None;
|
||||
splitContainer.Border3DStyle = Border3DStyle.Adjust;
|
||||
splitContainer.SplitterWidth = 4;
|
||||
treeView.BorderStyle = BorderStyle.Fixed3D;
|
||||
plotPanel.BorderStyle = BorderStyle.Fixed3D;
|
||||
}
|
||||
|
||||
this.Font = SystemFonts.MessageBoxFont;
|
||||
treeView.Font = SystemFonts.MessageBoxFont;
|
||||
plotPanel.Font = SystemFonts.MessageBoxFont;
|
||||
@@ -459,8 +468,10 @@ namespace OpenHardwareMonitor.GUI {
|
||||
}
|
||||
|
||||
private void resetMinMaxMenuItem_Click(object sender, EventArgs e) {
|
||||
IVisitor visitor = new ResetMinMaxVisitor();
|
||||
computer.Accept(visitor);
|
||||
computer.Accept(new SensorVisitor(delegate(ISensor sensor) {
|
||||
sensor.ResetMin();
|
||||
sensor.ResetMax();
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -86,12 +86,12 @@ namespace OpenHardwareMonitor.GUI {
|
||||
float? minTempNullable = null;
|
||||
float? maxTempNullable = null;
|
||||
foreach (ISensor sensor in temperatures) {
|
||||
IEnumerable<ISensorEntry> graph = sensor.Plot;
|
||||
foreach (ISensorEntry entry in graph) {
|
||||
if (!minTempNullable.HasValue || minTempNullable > entry.Value)
|
||||
minTempNullable = entry.Value;
|
||||
if (!maxTempNullable.HasValue || maxTempNullable < entry.Value)
|
||||
maxTempNullable = entry.Value;
|
||||
IEnumerable<SensorValue> values = sensor.Values;
|
||||
foreach (SensorValue value in values) {
|
||||
if (!minTempNullable.HasValue || minTempNullable > value.Value)
|
||||
minTempNullable = value.Value;
|
||||
if (!maxTempNullable.HasValue || maxTempNullable < value.Value)
|
||||
maxTempNullable = value.Value;
|
||||
}
|
||||
}
|
||||
if (!minTempNullable.HasValue) {
|
||||
@@ -125,8 +125,8 @@ namespace OpenHardwareMonitor.GUI {
|
||||
|
||||
float maxTime = 5;
|
||||
if (temperatures.Count > 0) {
|
||||
IEnumerator<ISensorEntry> enumerator =
|
||||
temperatures[0].Plot.GetEnumerator();
|
||||
IEnumerator<SensorValue> enumerator =
|
||||
temperatures[0].Values.GetEnumerator();
|
||||
if (enumerator.MoveNext()) {
|
||||
maxTime = (float)(now - enumerator.Current.Time).TotalMinutes;
|
||||
}
|
||||
@@ -193,13 +193,13 @@ namespace OpenHardwareMonitor.GUI {
|
||||
float deltaTime = timeGrid[timeGrid.Count - 1];
|
||||
foreach (ISensor sensor in temperatures) {
|
||||
using (Pen pen = new Pen(colors[sensor])) {
|
||||
IEnumerable<ISensorEntry> graph = sensor.Plot;
|
||||
IEnumerable<SensorValue> values = sensor.Values;
|
||||
PointF last = new PointF();
|
||||
bool first = true;
|
||||
foreach (ISensorEntry entry in graph) {
|
||||
foreach (SensorValue value in values) {
|
||||
PointF point = new PointF(
|
||||
x0 + w - w * (float)(now - entry.Time).TotalMinutes / deltaTime,
|
||||
y0 + h - h * (entry.Value - tempGrid[0]) / deltaTemp);
|
||||
x0 + w - w * (float)(now - value.Time).TotalMinutes / deltaTime,
|
||||
y0 + h - h * (value.Value - tempGrid[0]) / deltaTemp);
|
||||
if (!first)
|
||||
g.DrawLine(pen, last, point);
|
||||
last = point;
|
||||
|
@@ -1,59 +0,0 @@
|
||||
/*
|
||||
|
||||
Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
||||
The contents of this file are subject to the Mozilla Public License Version
|
||||
1.1 (the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.mozilla.org/MPL/
|
||||
|
||||
Software distributed under the License is distributed on an "AS IS" basis,
|
||||
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
for the specific language governing rights and limitations under the License.
|
||||
|
||||
The Original Code is the Open Hardware Monitor code.
|
||||
|
||||
The Initial Developer of the Original Code is
|
||||
Michael Möller <m.moeller@gmx.ch>.
|
||||
Portions created by the Initial Developer are Copyright (C) 2009-2010
|
||||
the Initial Developer. All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
|
||||
Alternatively, the contents of this file may be used under the terms of
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
of those above. If you wish to allow use of your version of this file only
|
||||
under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
use your version of this file under the terms of the MPL, indicate your
|
||||
decision by deleting the provisions above and replace them with the notice
|
||||
and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
the provisions above, a recipient may use your version of this file under
|
||||
the terms of any one of the MPL, the GPL or the LGPL.
|
||||
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using OpenHardwareMonitor.Hardware;
|
||||
|
||||
namespace OpenHardwareMonitor.GUI {
|
||||
public class ResetMinMaxVisitor : IVisitor {
|
||||
public void VisitComputer(IComputer computer) {
|
||||
computer.Traverse(this);
|
||||
}
|
||||
|
||||
public void VisitHardware(IHardware hardware) {
|
||||
hardware.Traverse(this);
|
||||
}
|
||||
|
||||
public void VisitSensor(ISensor sensor) {
|
||||
sensor.ResetMin();
|
||||
sensor.ResetMax();
|
||||
}
|
||||
|
||||
public void VisitParameter(IParameter parameter) { }
|
||||
}
|
||||
}
|
@@ -51,9 +51,17 @@ namespace OpenHardwareMonitor.Hardware {
|
||||
Control
|
||||
}
|
||||
|
||||
public interface ISensorEntry {
|
||||
float Value { get; }
|
||||
DateTime Time { get; }
|
||||
public struct SensorValue {
|
||||
private float value;
|
||||
private DateTime time;
|
||||
|
||||
public SensorValue(float value, DateTime time) {
|
||||
this.value = value;
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
public float Value { get { return value; } }
|
||||
public DateTime Time { get { return time; } }
|
||||
}
|
||||
|
||||
public interface ISensor : IElement {
|
||||
@@ -77,7 +85,7 @@ namespace OpenHardwareMonitor.Hardware {
|
||||
void ResetMin();
|
||||
void ResetMax();
|
||||
|
||||
IEnumerable<ISensorEntry> Plot { get; }
|
||||
IEnumerable<SensorValue> Values { get; }
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -53,8 +53,8 @@ namespace OpenHardwareMonitor.Hardware {
|
||||
private float? value;
|
||||
private float? min;
|
||||
private float? max;
|
||||
private Queue<ISensorEntry> entries =
|
||||
new Queue<ISensorEntry>(MAX_MINUTES * 15);
|
||||
private Queue<SensorValue> values =
|
||||
new Queue<SensorValue>(MAX_MINUTES * 15);
|
||||
|
||||
private float sum = 0;
|
||||
private int count = 0;
|
||||
@@ -138,15 +138,15 @@ namespace OpenHardwareMonitor.Hardware {
|
||||
return value;
|
||||
}
|
||||
set {
|
||||
while (entries.Count > 0 &&
|
||||
(DateTime.Now - entries.Peek().Time).TotalMinutes > MAX_MINUTES)
|
||||
entries.Dequeue();
|
||||
while (values.Count > 0 &&
|
||||
(DateTime.Now - values.Peek().Time).TotalMinutes > MAX_MINUTES)
|
||||
values.Dequeue();
|
||||
|
||||
if (value.HasValue) {
|
||||
sum += value.Value;
|
||||
count++;
|
||||
if (count == 4) {
|
||||
entries.Enqueue(new Entry(sum / count, DateTime.Now));
|
||||
values.Enqueue(new SensorValue(sum / count, DateTime.Now));
|
||||
sum = 0;
|
||||
count = 0;
|
||||
}
|
||||
@@ -171,21 +171,8 @@ namespace OpenHardwareMonitor.Hardware {
|
||||
max = null;
|
||||
}
|
||||
|
||||
public IEnumerable<ISensorEntry> Plot {
|
||||
get { return entries; }
|
||||
}
|
||||
|
||||
public struct Entry : ISensorEntry {
|
||||
private float value;
|
||||
private DateTime time;
|
||||
|
||||
public Entry(float value, DateTime time) {
|
||||
this.value = value;
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
public float Value { get { return value; } }
|
||||
public DateTime Time { get { return time; } }
|
||||
public IEnumerable<SensorValue> Values {
|
||||
get { return values; }
|
||||
}
|
||||
|
||||
public void Accept(IVisitor visitor) {
|
||||
|
@@ -83,7 +83,7 @@
|
||||
<Compile Include="GUI\ParameterForm.Designer.cs">
|
||||
<DependentUpon>ParameterForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="GUI\ResetMinMaxVisitor.cs" />
|
||||
<Compile Include="Hardware\SensorVisitor.cs" />
|
||||
<Compile Include="GUI\SensorNotifyIcon.cs" />
|
||||
<Compile Include="GUI\SplitContainerAdv.cs">
|
||||
<SubType>Component</SubType>
|
||||
|
Reference in New Issue
Block a user