This commit is contained in:
Phyxion
2019-09-13 15:34:42 +02:00
committed by GitHub
parent d92d88d905
commit 22a229eda1
55 changed files with 8818 additions and 9312 deletions
+86 -119
View File
@@ -1,132 +1,99 @@
/*
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 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) 2009-2010 Michael Möller <mmoeller@openhardwaremonitor.org>
*/
// 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 System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Windows.Forms;
using OpenHardwareMonitor.Hardware;
namespace OpenHardwareMonitor.GUI {
public partial class ParameterForm : Form {
private IReadOnlyList<IParameter> parameters;
private BindingList<ParameterRow> parameterRows;
public ParameterForm() {
InitializeComponent();
}
public IReadOnlyList<IParameter> Parameters {
get {
return parameters;
}
set {
parameters = value;
parameterRows = new BindingList<ParameterRow>();
foreach (IParameter parameter in parameters)
parameterRows.Add(new ParameterRow(parameter));
bindingSource.DataSource = parameterRows;
}
}
private class ParameterRow : INotifyPropertyChanged {
public IParameter parameter;
private float value;
public bool isDefault;
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(String propertyName) {
if (PropertyChanged != null) {
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
public ParameterRow(IParameter parameter){
this.parameter = parameter;
this.value = parameter.Value;
this.isDefault = parameter.IsDefault;
}
public string Name {
get { return parameter.Name; }
}
public float Value {
get { return value; }
set {
this.isDefault = false;
this.value = value;
NotifyPropertyChanged("Default");
NotifyPropertyChanged("Value");
}
}
public bool Default {
get { return isDefault; }
set {
isDefault = value;
if (value)
this.value = parameter.DefaultValue;
NotifyPropertyChanged("Default");
NotifyPropertyChanged("Value");
}
}
}
private void dataGridView_RowEnter(object sender,
DataGridViewCellEventArgs e)
namespace OpenHardwareMonitor.GUI
{
public partial class ParameterForm : Form
{
if (e.RowIndex >= 0 && e.RowIndex < parameters.Count)
descriptionLabel.Text = parameters[e.RowIndex].Description;
else
descriptionLabel.Text = "";
}
private IReadOnlyList<IParameter> _parameters;
private BindingList<ParameterRow> _parameterRows;
private void dataGridView_CellValidating(object sender,
DataGridViewCellValidatingEventArgs e)
{
float value;
if (e.ColumnIndex == 2 &&
!float.TryParse(e.FormattedValue.ToString(), out value)) {
dataGridView.Rows[e.RowIndex].Cells[0].ErrorText =
"Invalid value";
e.Cancel = true;
}
}
private void dataGridView_CellEndEdit(object sender,
DataGridViewCellEventArgs e) {
dataGridView.Rows[e.RowIndex].Cells[0].ErrorText = "";
}
private void okButton_Click(object sender, EventArgs e) {
foreach (ParameterRow row in parameterRows) {
if (row.Default) {
row.parameter.IsDefault = true;
} else {
row.parameter.Value = row.Value;
public ParameterForm()
{
InitializeComponent();
}
}
}
private void dataGridView_CurrentCellDirtyStateChanged(object sender,
EventArgs e) {
if (dataGridView.CurrentCell is DataGridViewCheckBoxCell ||
dataGridView.CurrentCell is DataGridViewComboBoxCell)
{
dataGridView.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
public IReadOnlyList<IParameter> Parameters
{
get
{
return _parameters;
}
set
{
_parameters = value;
_parameterRows = new BindingList<ParameterRow>();
foreach (IParameter parameter in _parameters)
_parameterRows.Add(new ParameterRow(parameter));
bindingSource.DataSource = _parameterRows;
}
}
private class ParameterRow : INotifyPropertyChanged
{
public readonly IParameter Parameter;
public event PropertyChangedEventHandler PropertyChanged;
public ParameterRow(IParameter parameter)
{
Parameter = parameter;
Value = parameter.Value;
Default = parameter.IsDefault;
}
public float Value { get; }
public bool Default { get; }
}
private void DataGridView_RowEnter(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0 && e.RowIndex < _parameters.Count)
descriptionLabel.Text = _parameters[e.RowIndex].Description;
else
descriptionLabel.Text = "";
}
private void DataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
if (e.ColumnIndex == 2 && !float.TryParse(e.FormattedValue.ToString(), out float _))
{
dataGridView.Rows[e.RowIndex].Cells[0].ErrorText = "Invalid value";
e.Cancel = true;
}
}
private void DataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
dataGridView.Rows[e.RowIndex].Cells[0].ErrorText = "";
}
private void OkButton_Click(object sender, EventArgs e)
{
foreach (ParameterRow row in _parameterRows)
{
if (row.Default)
row.Parameter.IsDefault = true;
else
row.Parameter.Value = row.Value;
}
}
private void DataGridView_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dataGridView.CurrentCell is DataGridViewCheckBoxCell || dataGridView.CurrentCell is DataGridViewComboBoxCell)
dataGridView.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
}
}