├── .gitattributes
├── .gitignore
├── App.config
├── OpenHardwareMonitorLib
├── App.config
├── Collections
│ ├── IReadOnlyArray.cs
│ ├── ListSet.cs
│ ├── Pair.cs
│ ├── ReadOnlyArray.cs
│ └── RingCollection.cs
├── External
│ ├── Aga.Controls.dll
│ ├── Aga.Controls
│ │ ├── Aga.Controls.csproj
│ │ ├── Aga.Controls.sln
│ │ ├── BitmapHelper.cs
│ │ ├── GifDecoder.cs
│ │ ├── NumericTextBox.cs
│ │ ├── PerformanceAnalyzer.cs
│ │ ├── Properties
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ └── Resources.resx
│ │ ├── ResourceHelper.cs
│ │ ├── Resources
│ │ │ ├── DVSplit.cur
│ │ │ ├── Folder.bmp
│ │ │ ├── FolderClosed.bmp
│ │ │ ├── Leaf.bmp
│ │ │ ├── check.bmp
│ │ │ ├── loading_icon
│ │ │ ├── minus.bmp
│ │ │ ├── plus.bmp
│ │ │ ├── uncheck.bmp
│ │ │ └── unknown.bmp
│ │ ├── StringCollectionEditor.cs
│ │ ├── TextHelper.cs
│ │ ├── Threading
│ │ │ ├── AbortableThreadPool.cs
│ │ │ ├── WorkItem.cs
│ │ │ └── WorkItemStatus.cs
│ │ ├── TimeCounter.cs
│ │ ├── Tree
│ │ │ ├── AutoRowHeightLayout.cs
│ │ │ ├── ClassDiagram.cd
│ │ │ ├── ColumnCollection.cs
│ │ │ ├── DrawContext.cs
│ │ │ ├── DropNodeValidatingEventArgs.cs
│ │ │ ├── DropPosition.cs
│ │ │ ├── EditorContext.cs
│ │ │ ├── Enums.cs
│ │ │ ├── FixedRowHeightLayout.cs
│ │ │ ├── IRowLayout.cs
│ │ │ ├── IToolTipProvider.cs
│ │ │ ├── ITreeModel.cs
│ │ │ ├── IncrementalSearch.cs
│ │ │ ├── Input
│ │ │ │ ├── ClickColumnState.cs
│ │ │ │ ├── ColumnState.cs
│ │ │ │ ├── InputState.cs
│ │ │ │ ├── InputWithControl.cs
│ │ │ │ ├── InputWithShift.cs
│ │ │ │ ├── NormalInputState.cs
│ │ │ │ ├── ReorderColumnState.cs
│ │ │ │ └── ResizeColumnState.cs
│ │ │ ├── ListModel.cs
│ │ │ ├── NativeMethods.cs
│ │ │ ├── Node.cs
│ │ │ ├── NodeControlInfo.cs
│ │ │ ├── NodeControls
│ │ │ │ ├── BaseTextControl.cs
│ │ │ │ ├── BindableControl.cs
│ │ │ │ ├── ClassDiagram.cd
│ │ │ │ ├── DrawEventArgs.cs
│ │ │ │ ├── EditEventArgs.cs
│ │ │ │ ├── EditableControl.cs
│ │ │ │ ├── ExpandingIcon.cs
│ │ │ │ ├── InteractiveControl.cs
│ │ │ │ ├── LabelEventArgs.cs
│ │ │ │ ├── NodeCheckBox.cs
│ │ │ │ ├── NodeComboBox.cs
│ │ │ │ ├── NodeControl.cs
│ │ │ │ ├── NodeControlValueEventArgs.cs
│ │ │ │ ├── NodeControlsCollection.cs
│ │ │ │ ├── NodeDecimalTextBox.cs
│ │ │ │ ├── NodeEventArgs.cs
│ │ │ │ ├── NodeIcon.cs
│ │ │ │ ├── NodeIntegerTextBox.cs
│ │ │ │ ├── NodeNumericUpDown.cs
│ │ │ │ ├── NodePlusMinus.cs
│ │ │ │ ├── NodeStateIcon.cs
│ │ │ │ └── NodeTextBox.cs
│ │ │ ├── SortedTreeModel.cs
│ │ │ ├── TreeColumn.cs
│ │ │ ├── TreeColumnCollection.cs
│ │ │ ├── TreeColumnEventArgs.cs
│ │ │ ├── TreeListAdapter.cs
│ │ │ ├── TreeModel.cs
│ │ │ ├── TreeModelBase.cs
│ │ │ ├── TreeModelEventArgs.cs
│ │ │ ├── TreeNodeAdv.cs
│ │ │ ├── TreeNodeAdvMouseEventArgs.cs
│ │ │ ├── TreePath.cs
│ │ │ ├── TreePathEventArgs.cs
│ │ │ ├── TreeViewAdv.Designer.cs
│ │ │ ├── TreeViewAdv.Draw.cs
│ │ │ ├── TreeViewAdv.Editor.cs
│ │ │ ├── TreeViewAdv.Input.cs
│ │ │ ├── TreeViewAdv.Properties.cs
│ │ │ ├── TreeViewAdv.cs
│ │ │ ├── TreeViewAdv.resx
│ │ │ ├── TreeViewAdvCancelEventArgs.cs
│ │ │ ├── TreeViewAdvEventArgs.cs
│ │ │ └── TreeViewRowDrawEventArgs.cs
│ │ └── license.txt
│ ├── OxyPlot.WindowsForms.dll
│ ├── OxyPlot.dll
│ ├── OxyPlot
│ │ ├── GlobalAssemblyInfo.cs
│ │ ├── OxyPlot.WindowsForms
│ │ │ ├── GraphicsRenderContext.cs
│ │ │ ├── HashSet.cs
│ │ │ ├── Helpers
│ │ │ │ └── ConverterExtensions.cs
│ │ │ ├── NamespaceDoc.cs
│ │ │ ├── OxyPlot.WindowsForms.csproj
│ │ │ ├── Plot.cs
│ │ │ ├── PlotControl.cs
│ │ │ ├── PngExporter.cs
│ │ │ └── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ ├── OxyPlot.sln
│ │ └── OxyPlot
│ │ │ ├── Annotations
│ │ │ ├── Annotation.cs
│ │ │ ├── AnnotationLayer.cs
│ │ │ ├── ArrowAnnotation.cs
│ │ │ ├── EllipseAnnotation.cs
│ │ │ ├── ImageAnnotation.cs
│ │ │ ├── LineAnnotation.cs
│ │ │ ├── LineAnnotationType.cs
│ │ │ ├── PolygonAnnotation.cs
│ │ │ ├── RectangleAnnotation.cs
│ │ │ ├── TextAnnotation.cs
│ │ │ ├── TextualAnnotation.cs
│ │ │ └── TileMapAnnotation.cs
│ │ │ ├── Axes
│ │ │ ├── AngleAxis.cs
│ │ │ ├── Axis.cs
│ │ │ ├── AxisChangeTypes.cs
│ │ │ ├── AxisChangedEventArgs.cs
│ │ │ ├── AxisLayer.cs
│ │ │ ├── AxisPosition.cs
│ │ │ ├── CategoryAxis.cs
│ │ │ ├── ColorAxis.cs
│ │ │ ├── DateTimeAxis.cs
│ │ │ ├── DateTimeIntervalType.cs
│ │ │ ├── LinearAxis.cs
│ │ │ ├── LogarithmicAxis.cs
│ │ │ ├── MagnitudeAxis.cs
│ │ │ ├── RangeAxis.cs
│ │ │ ├── TickStyle.cs
│ │ │ ├── TimeAxis.cs
│ │ │ └── TimeSpanAxis.cs
│ │ │ ├── ClassDiagrams
│ │ │ ├── PlotModel.cd
│ │ │ ├── Reporting.cd
│ │ │ └── Series.cd
│ │ │ ├── Foundation
│ │ │ ├── ArrayHelper.cs
│ │ │ ├── CanonicalSplineHelper.cs
│ │ │ ├── CodeGenerator
│ │ │ │ ├── CodeGenerationAttribute.cs
│ │ │ │ ├── CodeGenerator.cs
│ │ │ │ ├── CodeGeneratorStringExtensions.cs
│ │ │ │ └── ICodeGenerating.cs
│ │ │ ├── CohenSutherlandClipping.cs
│ │ │ ├── Color.cs
│ │ │ ├── Colors.cs
│ │ │ ├── Conrec.cs
│ │ │ ├── DataPoint.cs
│ │ │ ├── DataPointConverter.cs
│ │ │ ├── DoubleExtensions.cs
│ │ │ ├── FontWeights.cs
│ │ │ ├── FractionHelper.cs
│ │ │ ├── HorizontalAlignment.cs
│ │ │ ├── IDataPoint.cs
│ │ │ ├── IDataPointProvider.cs
│ │ │ ├── LineStyle.cs
│ │ │ ├── LineStyleHelper.cs
│ │ │ ├── ListFiller.cs
│ │ │ ├── MarkerType.cs
│ │ │ ├── OxyColor.cs
│ │ │ ├── OxyColorConverter.cs
│ │ │ ├── OxyColors.cs
│ │ │ ├── OxyImage.cs
│ │ │ ├── OxyPalette.cs
│ │ │ ├── OxyPalettes.cs
│ │ │ ├── OxyPen.cs
│ │ │ ├── OxyPenLineJoin.cs
│ │ │ ├── OxyRect.cs
│ │ │ ├── OxySize.cs
│ │ │ ├── OxyThickness.cs
│ │ │ ├── Pen.cs
│ │ │ ├── PlotLength.cs
│ │ │ ├── PlotLengthUnit.cs
│ │ │ ├── PngEncoder.cs
│ │ │ ├── Point.cs
│ │ │ ├── Rectangle.cs
│ │ │ ├── ReflectionHelper.cs
│ │ │ ├── ScreenPoint.cs
│ │ │ ├── ScreenPointHelper.cs
│ │ │ ├── ScreenVector.cs
│ │ │ ├── Size.cs
│ │ │ ├── StreamExtensions.cs
│ │ │ ├── StringHelper.cs
│ │ │ ├── SutherlandHodgmanClipping.cs
│ │ │ ├── VerticalAlignment.cs
│ │ │ └── XmlWriterBase.cs
│ │ │ ├── LibraryDoc.cs
│ │ │ ├── LinqBridge.cs
│ │ │ ├── Manipulators
│ │ │ ├── CursorType.cs
│ │ │ ├── IPlotControl.cs
│ │ │ ├── ManipulationEventArgs.cs
│ │ │ ├── ManipulatorBase.cs
│ │ │ ├── PanManipulator.cs
│ │ │ ├── ResetManipulator.cs
│ │ │ ├── TrackerHitResult.cs
│ │ │ ├── TrackerManipulator.cs
│ │ │ ├── ZoomManipulator.cs
│ │ │ ├── ZoomRectangleManipulator.cs
│ │ │ └── ZoomStepManipulator.cs
│ │ │ ├── MouseActions
│ │ │ ├── MouseAction.cs
│ │ │ └── SliderAction.cs
│ │ │ ├── NamespaceDoc.cs
│ │ │ ├── OxyPlot.csproj
│ │ │ ├── PlotModel
│ │ │ ├── HitTestResult.cs
│ │ │ ├── OxyMouseButton.cs
│ │ │ ├── OxyMouseEventArgs.cs
│ │ │ ├── PlotElement.cs
│ │ │ ├── PlotModel.Legends.cs
│ │ │ ├── PlotModel.MouseEvents.cs
│ │ │ ├── PlotModel.Rendering.cs
│ │ │ ├── PlotModel.cs
│ │ │ ├── SelectablePlotElement.cs
│ │ │ └── UIPlotElement.cs
│ │ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ │ ├── Render
│ │ │ ├── AngleAxisRenderer.cs
│ │ │ ├── AxisRenderer.cs
│ │ │ ├── AxisRendererBase.cs
│ │ │ ├── HorizontalAndVerticalAxisRenderer.cs
│ │ │ ├── IRenderContext.cs
│ │ │ ├── MagnitudeAxisRenderer.cs
│ │ │ ├── MathRenderingExtensions.cs
│ │ │ ├── PlotRenderer.cs
│ │ │ ├── RenderContextBase.cs
│ │ │ ├── RenderingExtensions.cs
│ │ │ └── VerticalAxisRenderer.cs
│ │ │ ├── Reporting
│ │ │ ├── NamespaceDoc.cs
│ │ │ ├── Report
│ │ │ │ ├── Content.cs
│ │ │ │ ├── Drawing.cs
│ │ │ │ ├── DrawingFigure.cs
│ │ │ │ ├── Equation.cs
│ │ │ │ ├── Figure.cs
│ │ │ │ ├── Header.cs
│ │ │ │ ├── HeaderHelper.cs
│ │ │ │ ├── Image.cs
│ │ │ │ ├── ItemsTable.cs
│ │ │ │ ├── ItemsTableField.cs
│ │ │ │ ├── Paragraph.cs
│ │ │ │ ├── ParagraphStyle.cs
│ │ │ │ ├── Plot.cs
│ │ │ │ ├── PlotFigure.cs
│ │ │ │ ├── PropertyTable.cs
│ │ │ │ ├── Report.cs
│ │ │ │ ├── ReportItem.cs
│ │ │ │ ├── ReportSection.cs
│ │ │ │ ├── ReportStyle.cs
│ │ │ │ ├── Table.cs
│ │ │ │ ├── TableColumn.cs
│ │ │ │ └── TableOfContents.cs
│ │ │ └── ReportWriters
│ │ │ │ ├── HtmlReportWriter.cs
│ │ │ │ ├── IReportWriter.cs
│ │ │ │ ├── StringExtensions.cs
│ │ │ │ ├── TextReportWriter.cs
│ │ │ │ └── WikiReportWriter.cs
│ │ │ ├── Series
│ │ │ ├── AreaSeries.cs
│ │ │ ├── BarSeries
│ │ │ │ ├── BarItem.cs
│ │ │ │ ├── BarItemBase.cs
│ │ │ │ ├── BarSeries.cs
│ │ │ │ ├── BarSeriesBase.cs
│ │ │ │ ├── BarSeriesBase{T}.cs
│ │ │ │ ├── CategorizedItem.cs
│ │ │ │ ├── CategorizedSeries.cs
│ │ │ │ ├── ColumnItem.cs
│ │ │ │ ├── ColumnSeries.cs
│ │ │ │ ├── ErrorColumnItem.cs
│ │ │ │ ├── ErrorColumnSeries.cs
│ │ │ │ ├── IStackableSeries.cs
│ │ │ │ ├── IntervalBarItem.cs
│ │ │ │ ├── IntervalBarSeries.cs
│ │ │ │ ├── LabelPlacement.cs
│ │ │ │ ├── RectangleBarItem.cs
│ │ │ │ ├── RectangleBarSeries.cs
│ │ │ │ ├── TornadoBarItem.cs
│ │ │ │ └── TornadoBarSeries.cs
│ │ │ ├── BoxPlotItem.cs
│ │ │ ├── BoxPlotSeries.cs
│ │ │ ├── CandleStickSeries.cs
│ │ │ ├── ContourSeries.cs
│ │ │ ├── DataPointSeries.cs
│ │ │ ├── FunctionSeries.cs
│ │ │ ├── HeatMapSeries.cs
│ │ │ ├── HighLowItem.cs
│ │ │ ├── HighLowSeries.cs
│ │ │ ├── ITrackableSeries.cs
│ │ │ ├── ItemsSeries.cs
│ │ │ ├── LineLegendPosition.cs
│ │ │ ├── LineSeries.cs
│ │ │ ├── PieSeries.cs
│ │ │ ├── PieSlice.cs
│ │ │ ├── PlotSeriesBase.cs
│ │ │ ├── ScatterPoint.cs
│ │ │ ├── ScatterSeries.cs
│ │ │ ├── Series.cs
│ │ │ ├── StairStepSeries.cs
│ │ │ ├── StemSeries.cs
│ │ │ ├── TwoColorLineSeries.cs
│ │ │ └── XYAxisSeries.cs
│ │ │ └── Svg
│ │ │ ├── NativeMethods.cs
│ │ │ ├── SvgExporter.cs
│ │ │ ├── SvgRenderContext.cs
│ │ │ └── SvgWriter.cs
│ └── WinRing0
│ │ ├── COPYRIGHT.txt
│ │ ├── MAKEFILE
│ │ ├── OlsIoctl.h
│ │ ├── OpenLibSys.c
│ │ ├── OpenLibSys.h
│ │ ├── OpenLibSys.rc
│ │ └── SOURCES
├── GUI
│ ├── AboutBox.Designer.cs
│ ├── AboutBox.cs
│ ├── AboutBox.resx
│ ├── CrashForm.Designer.cs
│ ├── CrashForm.cs
│ ├── CrashForm.resx
│ ├── Gadget.cs
│ ├── GadgetWindow.cs
│ ├── HardwareNode.cs
│ ├── HardwareTypeImage.cs
│ ├── MainForm.Designer.cs
│ ├── MainForm.cs
│ ├── MainForm.resx
│ ├── Node.cs
│ ├── NotifyIconAdv.cs
│ ├── ParameterForm.Designer.cs
│ ├── ParameterForm.cs
│ ├── ParameterForm.resx
│ ├── PlotPanel.cs
│ ├── PortForm.Designer.cs
│ ├── PortForm.cs
│ ├── PortForm.resx
│ ├── ReportForm.Designer.cs
│ ├── ReportForm.cs
│ ├── ReportForm.resx
│ ├── SensorGadget.cs
│ ├── SensorNode.cs
│ ├── SensorNotifyIcon.cs
│ ├── ShowDesktop.cs
│ ├── SplitContainerAdv.cs
│ ├── StartupManager.cs
│ ├── SystemTray.cs
│ ├── TaskScheduler.cs
│ ├── TreeModel.cs
│ ├── TypeNode.cs
│ ├── UnitManager.cs
│ ├── UpdateVisitor.cs
│ ├── UserOption.cs
│ └── UserRadioGroup.cs
├── Hardware
│ ├── ATI
│ │ ├── ADL.cs
│ │ ├── ATIGPU.cs
│ │ └── ATIGroup.cs
│ ├── CPU
│ │ ├── AMD0FCPU.cs
│ │ ├── AMD10CPU.cs
│ │ ├── AMDCPU.cs
│ │ ├── CPUGroup.cs
│ │ ├── CPUID.cs
│ │ ├── CPULoad.cs
│ │ ├── GenericCPU.cs
│ │ └── IntelCPU.cs
│ ├── Computer.cs
│ ├── Control.cs
│ ├── FirmwareTable.cs
│ ├── HDD
│ │ ├── AbstractHarddrive.cs
│ │ ├── DebugSmart.cs
│ │ ├── DriveAttributeValue.cs
│ │ ├── DriveThresholdValue.cs
│ │ ├── HDDGeneric.cs
│ │ ├── HarddriveGroup.cs
│ │ ├── ISmart.cs
│ │ ├── NamePrefixAttribute.cs
│ │ ├── RequireSmartAttribute.cs
│ │ ├── SSDIndilinx.cs
│ │ ├── SSDIntel.cs
│ │ ├── SSDMicron.cs
│ │ ├── SSDPlextor.cs
│ │ ├── SSDSamsung.cs
│ │ ├── SSDSandforce.cs
│ │ ├── SmartAttribute.cs
│ │ ├── SmartNames.cs
│ │ └── WindowsSmart.cs
│ ├── Hardware.cs
│ ├── Heatmaster
│ │ ├── Heatmaster.cs
│ │ └── HeatmasterGroup.cs
│ ├── HexStringArray.cs
│ ├── IComputer.cs
│ ├── IControl.cs
│ ├── IElement.cs
│ ├── IGroup.cs
│ ├── IHardware.cs
│ ├── IOControlCode.cs
│ ├── IParameter.cs
│ ├── ISensor.cs
│ ├── ISettings.cs
│ ├── IVisitor.cs
│ ├── Identifier.cs
│ ├── KernelDriver.cs
│ ├── LPC
│ │ ├── Chip.cs
│ │ ├── F718XX.cs
│ │ ├── ISuperIO.cs
│ │ ├── IT87XX.cs
│ │ ├── LMSensors.cs
│ │ ├── LPCIO.cs
│ │ ├── LPCPort.cs
│ │ ├── NCT677X.cs
│ │ └── W836XX.cs
│ ├── Mainboard
│ │ ├── GigabyteTAMG.cs
│ │ ├── Identification.cs
│ │ ├── Mainboard.cs
│ │ ├── MainboardGroup.cs
│ │ ├── Manufacturer.cs
│ │ ├── Model.cs
│ │ └── SuperIOHardware.cs
│ ├── Nvidia
│ │ ├── NVAPI.cs
│ │ ├── NvidiaGPU.cs
│ │ └── NvidiaGroup.cs
│ ├── Opcode.cs
│ ├── OperatingSystem.cs
│ ├── PInvokeDelegateFactory.cs
│ ├── Parameter.cs
│ ├── RAM
│ │ ├── GenericRAM.cs
│ │ └── RAMGroup.cs
│ ├── Ring0.cs
│ ├── SMBIOS.cs
│ ├── Sensor.cs
│ ├── SensorVisitor.cs
│ ├── TBalancer
│ │ ├── FTD2XX.cs
│ │ ├── TBalancer.cs
│ │ └── TBalancerGroup.cs
│ ├── ThreadAffinity.cs
│ ├── WinRing0.sys
│ └── WinRing0x64.sys
├── Licenses
│ └── License.html
├── OpenHardwareMonitor.sln
├── OpenHardwareMonitorLib.csproj
├── Program.cs
├── Properties
│ └── AssemblyInfo.cs
├── Resources
│ ├── Web
│ │ ├── css
│ │ │ ├── custom-theme
│ │ │ │ ├── images
│ │ │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png
│ │ │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png
│ │ │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png
│ │ │ │ │ ├── ui-bg_glass_75_dadada_1x400.png
│ │ │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png
│ │ │ │ │ ├── ui-bg_glass_75_ffffff_1x400.png
│ │ │ │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png
│ │ │ │ │ ├── ui-bg_inset-soft_95_fef1ec_1x100.png
│ │ │ │ │ ├── ui-icons_222222_256x240.png
│ │ │ │ │ ├── ui-icons_2e83ff_256x240.png
│ │ │ │ │ ├── ui-icons_454545_256x240.png
│ │ │ │ │ ├── ui-icons_888888_256x240.png
│ │ │ │ │ └── ui-icons_cd0a0a_256x240.png
│ │ │ │ └── jquery-ui-1.8.16.custom.css
│ │ │ ├── jquery.treeTable.css
│ │ │ └── ohm_web.css
│ │ ├── images
│ │ │ ├── toggle-collapse-dark.png
│ │ │ ├── toggle-collapse-light.png
│ │ │ ├── toggle-expand-dark.png
│ │ │ ├── toggle-expand-light.png
│ │ │ └── transparent.png
│ │ ├── index.html
│ │ └── js
│ │ │ ├── jquery-1.7.2.js
│ │ │ ├── jquery-1.7.2.min.js
│ │ │ ├── jquery-ui-1.8.16.custom.min.js
│ │ │ ├── jquery.tmpl.js
│ │ │ ├── jquery.tmpl.min.js
│ │ │ ├── jquery.treeTable.min.js
│ │ │ ├── knockout-2.1.0.js
│ │ │ ├── knockout-2.1.0.min.js
│ │ │ ├── knockout.mapping-latest.js
│ │ │ ├── knockout.mapping-latest.min.js
│ │ │ └── ohm_web.js
│ ├── app.manifest
│ ├── ati.png
│ ├── barback.png
│ ├── barblue.png
│ ├── bigng.png
│ ├── chip.png
│ ├── clock.png
│ ├── computer.png
│ ├── control.png
│ ├── cpu.png
│ ├── data.png
│ ├── factor.png
│ ├── fan.png
│ ├── flow.png
│ ├── gadget.png
│ ├── gadget.xcf
│ ├── hdd.png
│ ├── icon.ico
│ ├── icon.xcf
│ ├── level.png
│ ├── load.png
│ ├── mainboard.png
│ ├── nvidia.png
│ ├── power.png
│ ├── ram.png
│ ├── smallicon.ico
│ ├── temperature.png
│ └── voltage.png
├── Utilities
│ ├── EmbeddedResources.cs
│ ├── HttpServer.cs
│ ├── IconFactory.cs
│ ├── Logger.cs
│ └── PersistentSettings.cs
└── WMI
│ ├── Hardware.cs
│ ├── IWmiObject.cs
│ ├── Sensor.cs
│ └── WmiProvider.cs
├── Program.cs
├── Properties
└── AssemblyInfo.cs
├── README.md
├── READY
├── HOW-TO.txt
├── TempProber.exe
├── TempProberPayload.cmd
└── ohm.dll
├── TempProber.csproj
└── TempProber.sln
/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/Collections/IReadOnlyArray.cs:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | This Source Code Form is subject to the terms of the Mozilla Public
4 | License, v. 2.0. If a copy of the MPL was not distributed with this
5 | file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 |
7 | Copyright (C) 2009-2010 Michael Möller
8 |
9 | */
10 |
11 | using System;
12 | using System.Collections.Generic;
13 |
14 | namespace OpenHardwareMonitor.Collections {
15 |
16 | public interface IReadOnlyArray : IEnumerable {
17 |
18 | T this[int index] { get; }
19 |
20 | int Length { get; }
21 |
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/Collections/ListSet.cs:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | This Source Code Form is subject to the terms of the Mozilla Public
4 | License, v. 2.0. If a copy of the MPL was not distributed with this
5 | file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 |
7 | Copyright (C) 2009-2013 Michael Möller
8 |
9 | */
10 |
11 | using System.Collections;
12 | using System.Collections.Generic;
13 |
14 | namespace OpenHardwareMonitor.Collections {
15 |
16 | public class ListSet : IEnumerable {
17 |
18 | private readonly List list = new List();
19 |
20 | public bool Add(T item) {
21 | if (list.Contains(item))
22 | return false;
23 |
24 | list.Add(item);
25 | return true;
26 | }
27 |
28 | public bool Remove(T item) {
29 | if (!list.Contains(item))
30 | return false;
31 |
32 | list.Remove(item);
33 | return true;
34 | }
35 |
36 | public bool Contains(T item) {
37 | return list.Contains(item);
38 | }
39 |
40 | public T[] ToArray() {
41 | return list.ToArray();
42 | }
43 |
44 | public IEnumerator GetEnumerator() {
45 | return list.GetEnumerator();
46 | }
47 |
48 | IEnumerator IEnumerable.GetEnumerator() {
49 | return list.GetEnumerator();
50 | }
51 |
52 | public int Count {
53 | get {
54 | return list.Count;
55 | }
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/Collections/Pair.cs:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | This Source Code Form is subject to the terms of the Mozilla Public
4 | License, v. 2.0. If a copy of the MPL was not distributed with this
5 | file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 |
7 | Copyright (C) 2011 Michael Möller
8 |
9 | */
10 |
11 | using System;
12 | using System.Collections.Generic;
13 |
14 | namespace OpenHardwareMonitor.Collections {
15 |
16 | public struct Pair {
17 | private F first;
18 | private S second;
19 |
20 | public Pair(F first, S second) {
21 | this.first = first;
22 | this.second = second;
23 | }
24 |
25 | public F First {
26 | get { return first; }
27 | set { first = value; }
28 | }
29 |
30 | public S Second {
31 | get { return second; }
32 | set { second = value; }
33 | }
34 |
35 | public override int GetHashCode() {
36 | return (first != null ? first.GetHashCode() : 0) ^
37 | (second != null ? second.GetHashCode() : 0);
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/Collections/ReadOnlyArray.cs:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | This Source Code Form is subject to the terms of the Mozilla Public
4 | License, v. 2.0. If a copy of the MPL was not distributed with this
5 | file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 |
7 | Copyright (C) 2009-2010 Michael Möller
8 |
9 | */
10 |
11 | using System.Collections;
12 | using System.Collections.Generic;
13 |
14 | namespace OpenHardwareMonitor.Collections {
15 |
16 | public class ReadOnlyArray : IReadOnlyArray {
17 |
18 | private readonly T[] array;
19 |
20 | public ReadOnlyArray(T[] array) {
21 | this.array = array;
22 | }
23 |
24 | public T this[int index] {
25 | get { return array[index]; }
26 | }
27 |
28 | public int Length { get { return array.Length; } }
29 |
30 | public IEnumerator GetEnumerator() {
31 | return ((IEnumerable)array).GetEnumerator();
32 | }
33 |
34 | IEnumerator IEnumerable.GetEnumerator() {
35 | return array.GetEnumerator();
36 | }
37 |
38 | public static implicit operator ReadOnlyArray(T[] array) {
39 | return new ReadOnlyArray(array);
40 | }
41 |
42 | public T[] ToArray() {
43 | return (T[])array.Clone();
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MikeLierman/TempProber/d89ad4fd48d49c2263ab07daab677b2955e38514/OpenHardwareMonitorLib/External/Aga.Controls.dll
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Aga.Controls.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 11.00
3 | # Visual Studio 2010
4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aga.Controls", "Aga.Controls.csproj", "{E73BB233-D88B-44A7-A98F-D71EE158381D}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|Any CPU = Debug|Any CPU
9 | Release|Any CPU = Release|Any CPU
10 | EndGlobalSection
11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
12 | {E73BB233-D88B-44A7-A98F-D71EE158381D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
13 | {E73BB233-D88B-44A7-A98F-D71EE158381D}.Debug|Any CPU.Build.0 = Debug|Any CPU
14 | {E73BB233-D88B-44A7-A98F-D71EE158381D}.Release|Any CPU.ActiveCfg = Release|Any CPU
15 | {E73BB233-D88B-44A7-A98F-D71EE158381D}.Release|Any CPU.Build.0 = Release|Any CPU
16 | EndGlobalSection
17 | GlobalSection(SolutionProperties) = preSolution
18 | HideSolutionNode = FALSE
19 | EndGlobalSection
20 | EndGlobal
21 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/BitmapHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Drawing;
5 | using System.Runtime.InteropServices;
6 | using System.Drawing.Imaging;
7 |
8 | namespace Aga.Controls
9 | {
10 | public static class BitmapHelper
11 | {
12 | [StructLayout(LayoutKind.Sequential)]
13 | private struct PixelData
14 | {
15 | public byte B;
16 | public byte G;
17 | public byte R;
18 | public byte A;
19 | }
20 |
21 | public static void SetAlphaChanelValue(Bitmap image, byte value)
22 | {
23 | if (image == null)
24 | throw new ArgumentNullException("image");
25 | if (image.PixelFormat != PixelFormat.Format32bppArgb)
26 | throw new ArgumentException("Wrong PixelFormat");
27 |
28 | BitmapData bitmapData = image.LockBits(new Rectangle(0, 0, image.Width, image.Height),
29 | ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
30 | unsafe
31 | {
32 | PixelData* pPixel = (PixelData*)bitmapData.Scan0;
33 | for (int i = 0; i < bitmapData.Height; i++)
34 | {
35 | for (int j = 0; j < bitmapData.Width; j++)
36 | {
37 | pPixel->A = value;
38 | pPixel++;
39 | }
40 | pPixel += bitmapData.Stride - (bitmapData.Width * 4);
41 | }
42 | }
43 | image.UnlockBits(bitmapData);
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 | using System;
5 | using System.Security.Permissions;
6 |
7 | [assembly: ComVisible(false)]
8 | [assembly: CLSCompliant(false)]
9 | [assembly: SecurityPermission(SecurityAction.RequestMinimum, Execution = true)]
10 |
11 | [assembly: AssemblyTitle("Aga.Controls")]
12 | [assembly: AssemblyCopyright("Copyright © Andrey Gliznetsov 2006 - 2009")]
13 | [assembly: AssemblyDescription("http://sourceforge.net/projects/treeviewadv/")]
14 |
15 | [assembly: AssemblyVersion("1.7.0.0")]
16 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/ResourceHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Reflection;
4 | using System.Windows.Forms;
5 | using System.Collections.Generic;
6 | using System.Text;
7 |
8 | namespace Aga.Controls
9 | {
10 | public static class ResourceHelper
11 | {
12 | // VSpilt Cursor with Innerline (symbolisize hidden column)
13 | private static Cursor _dVSplitCursor = GetCursor(Properties.Resources.DVSplit);
14 | public static Cursor DVSplitCursor
15 | {
16 | get { return _dVSplitCursor; }
17 | }
18 |
19 | private static GifDecoder _loadingIcon = GetGifDecoder(Properties.Resources.loading_icon);
20 | public static GifDecoder LoadingIcon
21 | {
22 | get { return _loadingIcon; }
23 | }
24 |
25 | ///
26 | /// Help function to convert byte[] from resource into Cursor Type
27 | ///
28 | ///
29 | ///
30 | private static Cursor GetCursor(byte[] data)
31 | {
32 | using (MemoryStream s = new MemoryStream(data))
33 | return new Cursor(s);
34 | }
35 |
36 | ///
37 | /// Help function to convert byte[] from resource into GifDecoder Type
38 | ///
39 | ///
40 | ///
41 | private static GifDecoder GetGifDecoder(byte[] data)
42 | {
43 | using(MemoryStream ms = new MemoryStream(data))
44 | return new GifDecoder(ms, true);
45 | }
46 |
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Resources/DVSplit.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MikeLierman/TempProber/d89ad4fd48d49c2263ab07daab677b2955e38514/OpenHardwareMonitorLib/External/Aga.Controls/Resources/DVSplit.cur
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Resources/Folder.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MikeLierman/TempProber/d89ad4fd48d49c2263ab07daab677b2955e38514/OpenHardwareMonitorLib/External/Aga.Controls/Resources/Folder.bmp
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Resources/FolderClosed.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MikeLierman/TempProber/d89ad4fd48d49c2263ab07daab677b2955e38514/OpenHardwareMonitorLib/External/Aga.Controls/Resources/FolderClosed.bmp
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Resources/Leaf.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MikeLierman/TempProber/d89ad4fd48d49c2263ab07daab677b2955e38514/OpenHardwareMonitorLib/External/Aga.Controls/Resources/Leaf.bmp
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Resources/check.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MikeLierman/TempProber/d89ad4fd48d49c2263ab07daab677b2955e38514/OpenHardwareMonitorLib/External/Aga.Controls/Resources/check.bmp
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Resources/loading_icon:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MikeLierman/TempProber/d89ad4fd48d49c2263ab07daab677b2955e38514/OpenHardwareMonitorLib/External/Aga.Controls/Resources/loading_icon
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Resources/minus.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MikeLierman/TempProber/d89ad4fd48d49c2263ab07daab677b2955e38514/OpenHardwareMonitorLib/External/Aga.Controls/Resources/minus.bmp
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Resources/plus.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MikeLierman/TempProber/d89ad4fd48d49c2263ab07daab677b2955e38514/OpenHardwareMonitorLib/External/Aga.Controls/Resources/plus.bmp
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Resources/uncheck.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MikeLierman/TempProber/d89ad4fd48d49c2263ab07daab677b2955e38514/OpenHardwareMonitorLib/External/Aga.Controls/Resources/uncheck.bmp
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Resources/unknown.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MikeLierman/TempProber/d89ad4fd48d49c2263ab07daab677b2955e38514/OpenHardwareMonitorLib/External/Aga.Controls/Resources/unknown.bmp
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/StringCollectionEditor.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.ComponentModel.Design;
5 |
6 | namespace Aga.Controls
7 | {
8 | public class StringCollectionEditor : CollectionEditor
9 | {
10 | public StringCollectionEditor(Type type): base(type)
11 | {
12 | }
13 |
14 | protected override Type CreateCollectionItemType()
15 | {
16 | return typeof(string);
17 | }
18 |
19 | protected override object CreateInstance(Type itemType)
20 | {
21 | return "";
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/TextHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Windows.Forms;
5 | using System.Drawing;
6 |
7 | namespace Aga.Controls
8 | {
9 | public static class TextHelper
10 | {
11 | public static StringAlignment TranslateAligment(HorizontalAlignment alignment)
12 | {
13 | if (alignment == HorizontalAlignment.Left)
14 | return StringAlignment.Near;
15 | else if (alignment == HorizontalAlignment.Right)
16 | return StringAlignment.Far;
17 | else
18 | return StringAlignment.Center;
19 | }
20 |
21 | public static TextFormatFlags TranslateAligmentToFlag(HorizontalAlignment alignment)
22 | {
23 | if (alignment == HorizontalAlignment.Left)
24 | return TextFormatFlags.Left;
25 | else if (alignment == HorizontalAlignment.Right)
26 | return TextFormatFlags.Right;
27 | else
28 | return TextFormatFlags.HorizontalCenter;
29 | }
30 |
31 | public static TextFormatFlags TranslateTrimmingToFlag(StringTrimming trimming)
32 | {
33 | if (trimming == StringTrimming.EllipsisCharacter)
34 | return TextFormatFlags.EndEllipsis;
35 | else if (trimming == StringTrimming.EllipsisPath)
36 | return TextFormatFlags.PathEllipsis;
37 | if (trimming == StringTrimming.EllipsisWord)
38 | return TextFormatFlags.WordEllipsis;
39 | if (trimming == StringTrimming.Word)
40 | return TextFormatFlags.WordBreak;
41 | else
42 | return TextFormatFlags.Default;
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Threading/WorkItem.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Threading;
5 |
6 | namespace Aga.Controls.Threading
7 | {
8 | public sealed class WorkItem
9 | {
10 | private WaitCallback _callback;
11 | private object _state;
12 | private ExecutionContext _ctx;
13 |
14 | internal WorkItem(WaitCallback wc, object state, ExecutionContext ctx)
15 | {
16 | _callback = wc;
17 | _state = state;
18 | _ctx = ctx;
19 | }
20 |
21 | internal WaitCallback Callback
22 | {
23 | get
24 | {
25 | return _callback;
26 | }
27 | }
28 |
29 | internal object State
30 | {
31 | get
32 | {
33 | return _state;
34 | }
35 | }
36 |
37 | internal ExecutionContext Context
38 | {
39 | get
40 | {
41 | return _ctx;
42 | }
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Threading/WorkItemStatus.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Aga.Controls.Threading
6 | {
7 | public enum WorkItemStatus
8 | {
9 | Completed,
10 | Queued,
11 | Executing,
12 | Aborted
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/TimeCounter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Runtime.InteropServices;
5 | using System.Diagnostics.CodeAnalysis;
6 |
7 | namespace Aga.Controls
8 | {
9 | ///
10 | /// High resolution timer, used to test performance
11 | ///
12 | public static class TimeCounter
13 | {
14 | private static Int64 _start;
15 |
16 | ///
17 | /// Start time counting
18 | ///
19 | public static void Start()
20 | {
21 | _start = 0;
22 | QueryPerformanceCounter(ref _start);
23 | }
24 |
25 | public static Int64 GetStartValue()
26 | {
27 | Int64 t = 0;
28 | QueryPerformanceCounter(ref t);
29 | return t;
30 | }
31 |
32 | ///
33 | /// Finish time counting
34 | ///
35 | /// time in seconds elapsed from Start till Finish
36 | public static double Finish()
37 | {
38 | return Finish(_start);
39 | }
40 |
41 | public static double Finish(Int64 start)
42 | {
43 | Int64 finish = 0;
44 | QueryPerformanceCounter(ref finish);
45 |
46 | Int64 freq = 0;
47 | QueryPerformanceFrequency(ref freq);
48 | return (finish - start) / (double)freq;
49 | }
50 |
51 | [DllImport("Kernel32.dll")]
52 | [return: MarshalAs(UnmanagedType.Bool)]
53 | static extern bool QueryPerformanceCounter(ref Int64 performanceCount);
54 |
55 | [DllImport("Kernel32.dll")]
56 | [return: MarshalAs(UnmanagedType.Bool)]
57 | static extern bool QueryPerformanceFrequency(ref Int64 frequency);
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Tree/ColumnCollection.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Collections.ObjectModel;
5 |
6 | namespace Aga.Controls.Tree
7 | {
8 | /*internal class ColumnCollection: Collection
9 | {
10 | public int TotalWidth
11 | {
12 | get
13 | {
14 | int res = 0;
15 | foreach (Column c in Items)
16 | res += c.Width;
17 | return res;
18 | }
19 | }
20 | }*/
21 | }
22 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Tree/DrawContext.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Drawing;
5 | using Aga.Controls.Tree.NodeControls;
6 |
7 | namespace Aga.Controls.Tree
8 | {
9 | public struct DrawContext
10 | {
11 | private Graphics _graphics;
12 | public Graphics Graphics
13 | {
14 | get { return _graphics; }
15 | set { _graphics = value; }
16 | }
17 |
18 | private Rectangle _bounds;
19 | public Rectangle Bounds
20 | {
21 | get { return _bounds; }
22 | set { _bounds = value; }
23 | }
24 |
25 | private Font _font;
26 | public Font Font
27 | {
28 | get { return _font; }
29 | set { _font = value; }
30 | }
31 |
32 | private DrawSelectionMode _drawSelection;
33 | public DrawSelectionMode DrawSelection
34 | {
35 | get { return _drawSelection; }
36 | set { _drawSelection = value; }
37 | }
38 |
39 | private bool _drawFocus;
40 | public bool DrawFocus
41 | {
42 | get { return _drawFocus; }
43 | set { _drawFocus = value; }
44 | }
45 |
46 | private NodeControl _currentEditorOwner;
47 | public NodeControl CurrentEditorOwner
48 | {
49 | get { return _currentEditorOwner; }
50 | set { _currentEditorOwner = value; }
51 | }
52 |
53 | private bool _enabled;
54 | public bool Enabled
55 | {
56 | get { return _enabled; }
57 | set { _enabled = value; }
58 | }
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Tree/DropNodeValidatingEventArgs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Drawing;
3 |
4 | namespace Aga.Controls.Tree
5 | {
6 | public class DropNodeValidatingEventArgs: EventArgs
7 | {
8 | Point _point;
9 | TreeNodeAdv _node;
10 |
11 | public DropNodeValidatingEventArgs(Point point, TreeNodeAdv node)
12 | {
13 | _point = point;
14 | _node = node;
15 | }
16 |
17 | public Point Point
18 | {
19 | get { return _point; }
20 | }
21 |
22 | public TreeNodeAdv Node
23 | {
24 | get { return _node; }
25 | set { _node = value; }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Tree/DropPosition.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Aga.Controls.Tree
6 | {
7 | public struct DropPosition
8 | {
9 | private TreeNodeAdv _node;
10 | public TreeNodeAdv Node
11 | {
12 | get { return _node; }
13 | set { _node = value; }
14 | }
15 |
16 | private NodePosition _position;
17 | public NodePosition Position
18 | {
19 | get { return _position; }
20 | set { _position = value; }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Tree/EditorContext.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Windows.Forms;
5 | using System.Drawing;
6 | using Aga.Controls.Tree.NodeControls;
7 |
8 | namespace Aga.Controls.Tree
9 | {
10 | public struct EditorContext
11 | {
12 | private TreeNodeAdv _currentNode;
13 | public TreeNodeAdv CurrentNode
14 | {
15 | get { return _currentNode; }
16 | set { _currentNode = value; }
17 | }
18 |
19 | private Control _editor;
20 | public Control Editor
21 | {
22 | get { return _editor; }
23 | set { _editor = value; }
24 | }
25 |
26 | private NodeControl _owner;
27 | public NodeControl Owner
28 | {
29 | get { return _owner; }
30 | set { _owner = value; }
31 | }
32 |
33 | private Rectangle _bounds;
34 | public Rectangle Bounds
35 | {
36 | get { return _bounds; }
37 | set { _bounds = value; }
38 | }
39 |
40 | private DrawContext _drawContext;
41 | public DrawContext DrawContext
42 | {
43 | get { return _drawContext; }
44 | set { _drawContext = value; }
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Tree/Enums.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Aga.Controls.Tree
6 | {
7 | public enum DrawSelectionMode
8 | {
9 | None, Active, Inactive, FullRowSelect
10 | }
11 |
12 | public enum TreeSelectionMode
13 | {
14 | Single, Multi, MultiSameParent
15 | }
16 |
17 | public enum NodePosition
18 | {
19 | Inside, Before, After
20 | }
21 |
22 | public enum VerticalAlignment
23 | {
24 | Top, Bottom, Center
25 | }
26 |
27 | public enum IncrementalSearchMode
28 | {
29 | None, Standard, Continuous
30 | }
31 |
32 | [Flags]
33 | public enum GridLineStyle
34 | {
35 | None = 0,
36 | Horizontal = 1,
37 | Vertical = 2,
38 | HorizontalAndVertical = 3
39 | }
40 |
41 | public enum ImageScaleMode
42 | {
43 | ///
44 | /// Don't scale
45 | ///
46 | Clip,
47 | ///
48 | /// Scales image to fit the display rectangle, aspect ratio is not fixed.
49 | ///
50 | Fit,
51 | ///
52 | /// Scales image down if it is larger than display rectangle, taking aspect ratio into account
53 | ///
54 | ScaleDown,
55 | ///
56 | /// Scales image up if it is smaller than display rectangle, taking aspect ratio into account
57 | ///
58 | ScaleUp,
59 | ///
60 | /// Scales image to match the display rectangle, taking aspect ratio into account
61 | ///
62 | AlwaysScale,
63 |
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Tree/FixedRowHeightLayout.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Drawing;
5 |
6 | namespace Aga.Controls.Tree
7 | {
8 | internal class FixedRowHeightLayout : IRowLayout
9 | {
10 | private TreeViewAdv _treeView;
11 |
12 | public FixedRowHeightLayout(TreeViewAdv treeView, int rowHeight)
13 | {
14 | _treeView = treeView;
15 | PreferredRowHeight = rowHeight;
16 | }
17 |
18 | private int _rowHeight;
19 | public int PreferredRowHeight
20 | {
21 | get { return _rowHeight; }
22 | set { _rowHeight = value; }
23 | }
24 |
25 | public Rectangle GetRowBounds(int rowNo)
26 | {
27 | return new Rectangle(0, rowNo * _rowHeight, 0, _rowHeight);
28 | }
29 |
30 | public int PageRowCount
31 | {
32 | get
33 | {
34 | return Math.Max((_treeView.DisplayRectangle.Height - _treeView.ColumnHeaderHeight) / _rowHeight, 0);
35 | }
36 | }
37 |
38 | public int CurrentPageSize
39 | {
40 | get
41 | {
42 | return PageRowCount;
43 | }
44 | }
45 |
46 | public int GetRowAt(Point point)
47 | {
48 | point = new Point(point.X, point.Y + (_treeView.FirstVisibleRow * _rowHeight) - _treeView.ColumnHeaderHeight);
49 | return point.Y / _rowHeight;
50 | }
51 |
52 | public int GetFirstRow(int lastPageRow)
53 | {
54 | return Math.Max(0, lastPageRow - PageRowCount + 1);
55 | }
56 |
57 | public void ClearCache()
58 | {
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Tree/IRowLayout.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Drawing;
5 |
6 | namespace Aga.Controls.Tree
7 | {
8 | internal interface IRowLayout
9 | {
10 | int PreferredRowHeight
11 | {
12 | get;
13 | set;
14 | }
15 |
16 | int PageRowCount
17 | {
18 | get;
19 | }
20 |
21 | int CurrentPageSize
22 | {
23 | get;
24 | }
25 |
26 | Rectangle GetRowBounds(int rowNo);
27 |
28 | int GetRowAt(Point point);
29 |
30 | int GetFirstRow(int lastPageRow);
31 |
32 | void ClearCache();
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Tree/IToolTipProvider.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using Aga.Controls.Tree.NodeControls;
5 |
6 | namespace Aga.Controls.Tree
7 | {
8 | public interface IToolTipProvider
9 | {
10 | string GetToolTip(TreeNodeAdv node, NodeControl nodeControl);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Tree/ITreeModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Collections;
5 |
6 | namespace Aga.Controls.Tree
7 | {
8 | public interface ITreeModel
9 | {
10 | IEnumerable GetChildren(TreePath treePath);
11 | bool IsLeaf(TreePath treePath);
12 |
13 | event EventHandler NodesChanged;
14 | event EventHandler NodesInserted;
15 | event EventHandler NodesRemoved;
16 | event EventHandler StructureChanged;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Tree/Input/ClickColumnState.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Windows.Forms;
5 | using System.Drawing;
6 |
7 | namespace Aga.Controls.Tree
8 | {
9 | internal class ClickColumnState : ColumnState
10 | {
11 | private Point _location;
12 |
13 | public ClickColumnState(TreeViewAdv tree, TreeColumn column, Point location)
14 | : base(tree, column)
15 | {
16 | _location = location;
17 | }
18 |
19 | public override void KeyDown(KeyEventArgs args)
20 | {
21 | }
22 |
23 | public override void MouseDown(TreeNodeAdvMouseEventArgs args)
24 | {
25 | }
26 |
27 | public override bool MouseMove(MouseEventArgs args)
28 | {
29 | if (TreeViewAdv.Dist(_location, args.Location) > TreeViewAdv.ItemDragSensivity
30 | && Tree.AllowColumnReorder)
31 | {
32 | Tree.Input = new ReorderColumnState(Tree, Column, args.Location);
33 | Tree.UpdateView();
34 | }
35 | return true;
36 | }
37 |
38 | public override void MouseUp(TreeNodeAdvMouseEventArgs args)
39 | {
40 | Tree.ChangeInput();
41 | Tree.UpdateView();
42 | Tree.OnColumnClicked(Column);
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Tree/Input/ColumnState.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Aga.Controls.Tree
6 | {
7 | internal abstract class ColumnState : InputState
8 | {
9 | private TreeColumn _column;
10 | public TreeColumn Column
11 | {
12 | get { return _column; }
13 | }
14 |
15 | public ColumnState(TreeViewAdv tree, TreeColumn column)
16 | : base(tree)
17 | {
18 | _column = column;
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Tree/Input/InputState.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 | namespace Aga.Controls.Tree
4 | {
5 | internal abstract class InputState
6 | {
7 | private TreeViewAdv _tree;
8 |
9 | public TreeViewAdv Tree
10 | {
11 | get { return _tree; }
12 | }
13 |
14 | public InputState(TreeViewAdv tree)
15 | {
16 | _tree = tree;
17 | }
18 |
19 | public abstract void KeyDown(System.Windows.Forms.KeyEventArgs args);
20 | public abstract void MouseDown(TreeNodeAdvMouseEventArgs args);
21 | public abstract void MouseUp(TreeNodeAdvMouseEventArgs args);
22 |
23 | ///
24 | /// handle OnMouseMove event
25 | ///
26 | ///
27 | /// true if event was handled and should be dispatched
28 | public virtual bool MouseMove(MouseEventArgs args)
29 | {
30 | return false;
31 | }
32 |
33 | public virtual void MouseDoubleClick(TreeNodeAdvMouseEventArgs args)
34 | {
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Tree/Input/InputWithControl.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Aga.Controls.Tree
6 | {
7 | internal class InputWithControl: NormalInputState
8 | {
9 | public InputWithControl(TreeViewAdv tree): base(tree)
10 | {
11 | }
12 |
13 | protected override void DoMouseOperation(TreeNodeAdvMouseEventArgs args)
14 | {
15 | if (Tree.SelectionMode == TreeSelectionMode.Single)
16 | {
17 | base.DoMouseOperation(args);
18 | }
19 | else if (CanSelect(args.Node))
20 | {
21 | args.Node.IsSelected = !args.Node.IsSelected;
22 | Tree.SelectionStart = args.Node;
23 | }
24 | }
25 |
26 | protected override void MouseDownAtEmptySpace(TreeNodeAdvMouseEventArgs args)
27 | {
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Tree/Input/InputWithShift.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Aga.Controls.Tree
6 | {
7 | internal class InputWithShift: NormalInputState
8 | {
9 | public InputWithShift(TreeViewAdv tree): base(tree)
10 | {
11 | }
12 |
13 | protected override void FocusRow(TreeNodeAdv node)
14 | {
15 | Tree.SuspendSelectionEvent = true;
16 | try
17 | {
18 | if (Tree.SelectionMode == TreeSelectionMode.Single || Tree.SelectionStart == null)
19 | base.FocusRow(node);
20 | else if (CanSelect(node))
21 | {
22 | SelectAllFromStart(node);
23 | Tree.CurrentNode = node;
24 | Tree.ScrollTo(node);
25 | }
26 | }
27 | finally
28 | {
29 | Tree.SuspendSelectionEvent = false;
30 | }
31 | }
32 |
33 | protected override void DoMouseOperation(TreeNodeAdvMouseEventArgs args)
34 | {
35 | if (Tree.SelectionMode == TreeSelectionMode.Single || Tree.SelectionStart == null)
36 | {
37 | base.DoMouseOperation(args);
38 | }
39 | else if (CanSelect(args.Node))
40 | {
41 | Tree.SuspendSelectionEvent = true;
42 | try
43 | {
44 | SelectAllFromStart(args.Node);
45 | }
46 | finally
47 | {
48 | Tree.SuspendSelectionEvent = false;
49 | }
50 | }
51 | }
52 |
53 | protected override void MouseDownAtEmptySpace(TreeNodeAdvMouseEventArgs args)
54 | {
55 | }
56 |
57 | private void SelectAllFromStart(TreeNodeAdv node)
58 | {
59 | Tree.ClearSelectionInternal();
60 | int a = node.Row;
61 | int b = Tree.SelectionStart.Row;
62 | for (int i = Math.Min(a, b); i <= Math.Max(a, b); i++)
63 | {
64 | if (Tree.SelectionMode == TreeSelectionMode.Multi || Tree.RowMap[i].Parent == node.Parent)
65 | Tree.RowMap[i].IsSelected = true;
66 | }
67 | }
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Tree/Input/ResizeColumnState.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Windows.Forms;
5 | using System.Security.Permissions;
6 | using System.Drawing;
7 |
8 | namespace Aga.Controls.Tree
9 | {
10 | internal class ResizeColumnState: ColumnState
11 | {
12 | private Point _initLocation;
13 | private int _initWidth;
14 |
15 | public ResizeColumnState(TreeViewAdv tree, TreeColumn column, Point p)
16 | : base(tree, column)
17 | {
18 | _initLocation = p;
19 | _initWidth = column.Width;
20 | }
21 |
22 | public override void KeyDown(KeyEventArgs args)
23 | {
24 | args.Handled = true;
25 | if (args.KeyCode == Keys.Escape)
26 | FinishResize();
27 | }
28 |
29 | public override void MouseDown(TreeNodeAdvMouseEventArgs args)
30 | {
31 | }
32 |
33 | public override void MouseUp(TreeNodeAdvMouseEventArgs args)
34 | {
35 | FinishResize();
36 | }
37 |
38 | private void FinishResize()
39 | {
40 | Tree.ChangeInput();
41 | Tree.FullUpdate();
42 | Tree.OnColumnWidthChanged(Column);
43 | }
44 |
45 | public override bool MouseMove(MouseEventArgs args)
46 | {
47 | Column.Width = _initWidth + args.Location.X - _initLocation.X;
48 | Tree.UpdateView();
49 | return true;
50 | }
51 |
52 | public override void MouseDoubleClick(TreeNodeAdvMouseEventArgs args)
53 | {
54 | Tree.AutoSizeColumn(Column);
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/OpenHardwareMonitorLib/External/Aga.Controls/Tree/ListModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Collections;
5 |
6 | namespace Aga.Controls.Tree
7 | {
8 | public class ListModel : TreeModelBase
9 | {
10 | private IList _list;
11 |
12 | public int Count
13 | {
14 | get { return _list.Count; }
15 | }
16 |
17 | public ListModel()
18 | {
19 | _list = new List