# HG changeset patch # User moel.mich # Date 1280255891 0 # Node ID eda3e3458cf4de17cb5d4013d5fd5f1ee2ef3bc3 # Parent 119693c3b7d1948d59911eb1817058413c9326a3 Refactoring and fine tuning for Linux GUI. diff -r 119693c3b7d1 -r eda3e3458cf4 GUI/MainForm.Designer.cs --- a/GUI/MainForm.Designer.cs Sat Jul 24 20:15:49 2010 +0000 +++ b/GUI/MainForm.Designer.cs Tue Jul 27 18:38:11 2010 +0000 @@ -440,7 +440,7 @@ // 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; diff -r 119693c3b7d1 -r eda3e3458cf4 GUI/MainForm.cs --- a/GUI/MainForm.cs Sat Jul 24 20:15:49 2010 +0000 +++ b/GUI/MainForm.cs Tue Jul 27 18:38:11 2010 +0000 @@ -77,6 +77,15 @@ // 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 @@ } 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(); + })); } } } diff -r 119693c3b7d1 -r eda3e3458cf4 GUI/PlotPanel.cs --- a/GUI/PlotPanel.cs Sat Jul 24 20:15:49 2010 +0000 +++ b/GUI/PlotPanel.cs Tue Jul 27 18:38:11 2010 +0000 @@ -86,12 +86,12 @@ float? minTempNullable = null; float? maxTempNullable = null; foreach (ISensor sensor in temperatures) { - IEnumerable 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 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 @@ float maxTime = 5; if (temperatures.Count > 0) { - IEnumerator enumerator = - temperatures[0].Plot.GetEnumerator(); + IEnumerator enumerator = + temperatures[0].Values.GetEnumerator(); if (enumerator.MoveNext()) { maxTime = (float)(now - enumerator.Current.Time).TotalMinutes; } @@ -193,13 +193,13 @@ float deltaTime = timeGrid[timeGrid.Count - 1]; foreach (ISensor sensor in temperatures) { using (Pen pen = new Pen(colors[sensor])) { - IEnumerable graph = sensor.Plot; + IEnumerable 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; diff -r 119693c3b7d1 -r eda3e3458cf4 GUI/ResetMinMaxVisitor.cs --- a/GUI/ResetMinMaxVisitor.cs Sat Jul 24 20:15:49 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 . - 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) { } - } -} diff -r 119693c3b7d1 -r eda3e3458cf4 Hardware/ISensor.cs --- a/Hardware/ISensor.cs Sat Jul 24 20:15:49 2010 +0000 +++ b/Hardware/ISensor.cs Tue Jul 27 18:38:11 2010 +0000 @@ -51,9 +51,17 @@ 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 @@ void ResetMin(); void ResetMax(); - IEnumerable Plot { get; } + IEnumerable Values { get; } } } diff -r 119693c3b7d1 -r eda3e3458cf4 Hardware/Sensor.cs --- a/Hardware/Sensor.cs Sat Jul 24 20:15:49 2010 +0000 +++ b/Hardware/Sensor.cs Tue Jul 27 18:38:11 2010 +0000 @@ -53,8 +53,8 @@ private float? value; private float? min; private float? max; - private Queue entries = - new Queue(MAX_MINUTES * 15); + private Queue values = + new Queue(MAX_MINUTES * 15); private float sum = 0; private int count = 0; @@ -138,15 +138,15 @@ 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,22 +171,9 @@ max = null; } - public IEnumerable 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 Values { + get { return values; } + } public void Accept(IVisitor visitor) { visitor.VisitSensor(this); diff -r 119693c3b7d1 -r eda3e3458cf4 OpenHardwareMonitor.csproj --- a/OpenHardwareMonitor.csproj Sat Jul 24 20:15:49 2010 +0000 +++ b/OpenHardwareMonitor.csproj Tue Jul 27 18:38:11 2010 +0000 @@ -83,7 +83,7 @@ ParameterForm.cs - + Component