Select the equation when the EquationTextBox has focus and during analysis (#1067)
* Select equation on focus * PR comment
This commit is contained in:
@@ -98,21 +98,28 @@ void EquationInputArea::AddNewEquation()
|
||||
void EquationInputArea::EquationTextBox_GotFocus(Object ^ sender, RoutedEventArgs ^ e)
|
||||
{
|
||||
KeyboardShortcutManager::HonorShortcuts(false);
|
||||
|
||||
auto eq = GetViewModelFromEquationTextBox(sender);
|
||||
if (eq != nullptr)
|
||||
{
|
||||
eq->GraphEquation->IsSelected = true;
|
||||
}
|
||||
}
|
||||
|
||||
void EquationInputArea::EquationTextBox_LostFocus(Object ^ sender, RoutedEventArgs ^ e)
|
||||
{
|
||||
KeyboardShortcutManager::HonorShortcuts(true);
|
||||
|
||||
auto eq = GetViewModelFromEquationTextBox(sender);
|
||||
if (eq != nullptr)
|
||||
{
|
||||
eq->GraphEquation->IsSelected = false;
|
||||
}
|
||||
}
|
||||
|
||||
void EquationInputArea::EquationTextBox_Submitted(Object ^ sender, MathRichEditBoxSubmission ^ submission)
|
||||
{
|
||||
auto tb = static_cast<EquationTextBox ^>(sender);
|
||||
if (tb == nullptr)
|
||||
{
|
||||
return;
|
||||
}
|
||||
auto eq = static_cast<EquationViewModel ^>(tb->DataContext);
|
||||
auto eq = GetViewModelFromEquationTextBox(sender);
|
||||
if (eq == nullptr)
|
||||
{
|
||||
return;
|
||||
@@ -176,8 +183,7 @@ void EquationInputArea::FocusEquationTextBox(EquationViewModel ^ equation)
|
||||
|
||||
void EquationInputArea::EquationTextBox_RemoveButtonClicked(Object ^ sender, RoutedEventArgs ^ e)
|
||||
{
|
||||
auto tb = static_cast<EquationTextBox ^>(sender);
|
||||
auto eq = static_cast<EquationViewModel ^>(tb->DataContext);
|
||||
auto eq = GetViewModelFromEquationTextBox(sender);
|
||||
unsigned int index;
|
||||
|
||||
if (Equations->IndexOf(eq, &index))
|
||||
@@ -206,15 +212,12 @@ void EquationInputArea::EquationTextBox_RemoveButtonClicked(Object ^ sender, Rou
|
||||
|
||||
void EquationInputArea::EquationTextBox_KeyGraphFeaturesButtonClicked(Object ^ sender, RoutedEventArgs ^ e)
|
||||
{
|
||||
auto tb = static_cast<EquationTextBox ^>(sender);
|
||||
auto eq = static_cast<EquationViewModel ^>(tb->DataContext);
|
||||
KeyGraphFeaturesRequested(this, eq);
|
||||
KeyGraphFeaturesRequested(this, GetViewModelFromEquationTextBox(sender));
|
||||
}
|
||||
|
||||
void EquationInputArea::EquationTextBox_EquationButtonClicked(Object ^ sender, RoutedEventArgs ^ e)
|
||||
{
|
||||
auto tb = static_cast<EquationTextBox ^>(sender);
|
||||
auto eq = static_cast<EquationViewModel ^>(tb->DataContext);
|
||||
auto eq = GetViewModelFromEquationTextBox(sender);
|
||||
eq->IsLineEnabled = !eq->IsLineEnabled;
|
||||
}
|
||||
|
||||
@@ -410,8 +413,21 @@ void EquationInputArea::VariableAreaTapped(Object ^ sender, TappedRoutedEventArg
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void EquationInputArea::EquationTextBox_EquationFormatRequested(Object ^ sender, MathRichEditBoxFormatRequest ^ e)
|
||||
{
|
||||
EquationFormatRequested(sender, e);
|
||||
}
|
||||
|
||||
EquationViewModel ^ EquationInputArea::GetViewModelFromEquationTextBox(Object ^ sender)
|
||||
{
|
||||
auto tb = static_cast<EquationTextBox ^>(sender);
|
||||
if (tb == nullptr)
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto eq = static_cast<EquationViewModel ^>(tb->DataContext);
|
||||
|
||||
return eq;
|
||||
}
|
||||
|
@@ -15,17 +15,18 @@
|
||||
|
||||
namespace CalculatorApp
|
||||
{
|
||||
public ref class EquationInputArea sealed : public Windows::UI::Xaml::Data::INotifyPropertyChanged
|
||||
{
|
||||
public:
|
||||
EquationInputArea();
|
||||
public
|
||||
ref class EquationInputArea sealed : public Windows::UI::Xaml::Data::INotifyPropertyChanged
|
||||
{
|
||||
public:
|
||||
EquationInputArea();
|
||||
|
||||
OBSERVABLE_OBJECT_CALLBACK(OnPropertyChanged);
|
||||
OBSERVABLE_PROPERTY_RW(Windows::Foundation::Collections::IObservableVector<ViewModel::EquationViewModel ^> ^, Equations);
|
||||
OBSERVABLE_PROPERTY_RW(Windows::Foundation::Collections::IObservableVector<ViewModel::VariableViewModel ^> ^, Variables);
|
||||
OBSERVABLE_PROPERTY_RW(Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Media::SolidColorBrush ^> ^, AvailableColors);
|
||||
event Windows::Foundation::EventHandler<ViewModel::EquationViewModel^>^ KeyGraphFeaturesRequested;
|
||||
event Windows::Foundation::EventHandler<CalculatorApp::Controls::MathRichEditBoxFormatRequest^> ^ EquationFormatRequested;
|
||||
event Windows::Foundation::EventHandler<ViewModel::EquationViewModel ^> ^ KeyGraphFeaturesRequested;
|
||||
event Windows::Foundation::EventHandler<CalculatorApp::Controls::MathRichEditBoxFormatRequest ^> ^ EquationFormatRequested;
|
||||
|
||||
public:
|
||||
static Windows::UI::Xaml::Visibility ManageEditVariablesButtonVisibility(unsigned int numberOfVariables);
|
||||
@@ -37,20 +38,20 @@ namespace CalculatorApp
|
||||
^ ToSolidColorBrush(Windows::UI::Color color) { return ref new Windows::UI::Xaml::Media::SolidColorBrush(color); }
|
||||
|
||||
private:
|
||||
void OnPropertyChanged(Platform::String^ propertyName);
|
||||
void OnPropertyChanged(Platform::String ^ propertyName);
|
||||
void OnEquationsPropertyChanged();
|
||||
|
||||
void AddNewEquation();
|
||||
|
||||
void EquationTextBox_GotFocus(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
|
||||
void EquationTextBox_LostFocus(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
|
||||
void EquationTextBox_GotFocus(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e);
|
||||
void EquationTextBox_LostFocus(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e);
|
||||
void EquationTextBox_Submitted(Platform::Object ^ sender, CalculatorApp::Controls::MathRichEditBoxSubmission ^ e);
|
||||
|
||||
void OnHighContrastChanged(Windows::UI::ViewManagement::AccessibilitySettings ^ sender, Platform::Object ^ args);
|
||||
void ReloadAvailableColors(bool isHighContrast);
|
||||
void FocusEquationTextBox(ViewModel::EquationViewModel ^ equation);
|
||||
|
||||
void EquationTextBox_RemoveButtonClicked(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
|
||||
void EquationTextBox_RemoveButtonClicked(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e);
|
||||
void EquationTextBox_KeyGraphFeaturesButtonClicked(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e);
|
||||
void EquationTextBox_EquationButtonClicked(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e);
|
||||
void EquationTextBox_Loaded(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e);
|
||||
@@ -65,6 +66,8 @@ namespace CalculatorApp
|
||||
void VariableAreaTapped(Platform::Object ^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs ^ e);
|
||||
void EquationTextBox_EquationFormatRequested(Platform::Object ^ sender, CalculatorApp::Controls::MathRichEditBoxFormatRequest ^ e);
|
||||
|
||||
CalculatorApp::ViewModel::EquationViewModel ^ GetViewModelFromEquationTextBox(Platform::Object ^ sender);
|
||||
|
||||
Windows::UI::ViewManagement::AccessibilitySettings ^ m_accessibilitySettings;
|
||||
int m_lastLineColorIndex;
|
||||
int m_lastFunctionLabelIndex;
|
||||
|
@@ -420,12 +420,14 @@ void GraphingCalculator::OnEquationKeyGraphFeaturesRequested(Object ^ sender, Eq
|
||||
auto keyGraphFeatureInfo = GraphingControl->AnalyzeEquation(equationViewModel->GraphEquation);
|
||||
equationViewModel->PopulateKeyGraphFeatures(keyGraphFeatureInfo);
|
||||
IsKeyGraphFeaturesVisible = true;
|
||||
equationViewModel->GraphEquation->IsSelected = true;
|
||||
}
|
||||
}
|
||||
|
||||
void GraphingCalculator::OnKeyGraphFeaturesClosed(Object ^ sender, RoutedEventArgs ^ e)
|
||||
{
|
||||
IsKeyGraphFeaturesVisible = false;
|
||||
ViewModel->SelectedEquation->GraphEquation->IsSelected = false;
|
||||
}
|
||||
|
||||
Visibility GraphingCalculator::ShouldDisplayPanel(bool isSmallState, bool isEquationModeActivated, bool isGraphPanel)
|
||||
|
Reference in New Issue
Block a user