mirror of
https://github.com/Microsoft/calculator.git
synced 2025-07-30 11:38:26 -07:00
GraphControl: refactoring and optimizations (#831)
* GraphControl cleaning * replace textbox value after submission * rebase * rebase * rebase * Add filters * rebase! * rebase
This commit is contained in:
parent
da38b5a015
commit
534139d67d
33 changed files with 1169 additions and 1393 deletions
69
src/CalcViewModel/GraphingCalculator/VariableViewModel.h
Normal file
69
src/CalcViewModel/GraphingCalculator/VariableViewModel.h
Normal file
|
@ -0,0 +1,69 @@
|
|||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT License.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "../Common/Utils.h"
|
||||
#include "EquationViewModel.h"
|
||||
|
||||
namespace CalculatorApp::ViewModel
|
||||
{
|
||||
public
|
||||
value struct VariableChangedEventArgs sealed
|
||||
{
|
||||
Platform::String ^ variableName;
|
||||
double newValue;
|
||||
};
|
||||
|
||||
[Windows::UI::Xaml::Data::Bindable] public ref class VariableViewModel sealed : public Windows::UI::Xaml::Data::INotifyPropertyChanged
|
||||
{
|
||||
public:
|
||||
VariableViewModel(Platform::String ^ name, double value)
|
||||
: m_Name(name)
|
||||
, m_Value(value)
|
||||
, m_SliderSettingsVisible(false)
|
||||
, m_Min(0.0)
|
||||
, m_Step(0.1)
|
||||
, m_Max(2.0)
|
||||
{
|
||||
}
|
||||
|
||||
OBSERVABLE_OBJECT();
|
||||
OBSERVABLE_PROPERTY_R(Platform::String ^, Name);
|
||||
OBSERVABLE_PROPERTY_RW(double, Min);
|
||||
OBSERVABLE_PROPERTY_RW(double, Step);
|
||||
OBSERVABLE_PROPERTY_RW(double, Max);
|
||||
OBSERVABLE_PROPERTY_RW(bool, SliderSettingsVisible);
|
||||
|
||||
event Windows::Foundation::EventHandler<VariableChangedEventArgs> ^ VariableUpdated;
|
||||
|
||||
property double Value
|
||||
{
|
||||
double get()
|
||||
{
|
||||
return m_Value;
|
||||
}
|
||||
void set(double value)
|
||||
{
|
||||
if (value < Min)
|
||||
{
|
||||
value = Min;
|
||||
}
|
||||
else if (value > Max)
|
||||
{
|
||||
value = Max;
|
||||
}
|
||||
|
||||
if (Value != value)
|
||||
{
|
||||
m_Value = value;
|
||||
VariableUpdated(this, VariableChangedEventArgs{ Name, value });
|
||||
RaisePropertyChanged(L"Value");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
double m_Value;
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue