Update color picker (#668)

This commit is contained in:
Pepe Rivera
2019-09-25 10:48:56 -07:00
committed by GitHub
parent b2dd55a64f
commit 7864fe6413
22 changed files with 599 additions and 489 deletions

View File

@@ -1,7 +1,5 @@
#include "pch.h"
#include "EquationInputArea.xaml.h"
#include "CalcViewModel/Common/KeyboardShortcutManager.h"
#include "Controls/EquationTextBox.h"
using namespace CalculatorApp;
using namespace CalculatorApp::Common;
@@ -13,25 +11,14 @@ using namespace Windows::System;
using namespace Windows::UI;
using namespace Windows::UI::ViewManagement;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Input;
using namespace GraphControl;
namespace
{
const Color accentColor = (ref new UISettings())->GetColorValue(UIColorType::Accent);
const Color lineColors[] = {
accentColor,
Colors::DarkOrange,
Colors::MediumPurple,
Colors::ForestGreen,
Colors::BlueViolet,
Colors::DarkRed,
Colors::LightGoldenrodYellow,
Colors::DarkOliveGreen
};
const size_t lineColorsSize = std::size(lineColors);
StringReference EquationsPropertyName(L"Equations");
}
@@ -65,8 +52,6 @@ void EquationInputArea::AddEquationButton_Click(Object^ sender, RoutedEventArgs^
void EquationInputArea::AddNewEquation()
{
auto eq = ref new EquationViewModel();
eq->LineColor = GetNextLineColor();
Equations->Append(eq);
}
@@ -85,15 +70,9 @@ void EquationInputArea::InputTextBox_Submitted(Object ^ sender, RoutedEventArgs
auto tb = static_cast<EquationTextBox^>(sender);
auto eq = static_cast<EquationViewModel^>(tb->DataContext);
eq->Expression = tb->GetEquationText();
FocusManager::TryMoveFocus(::FocusNavigationDirection::Left);
}
Color EquationInputArea::GetNextLineColor()
{
m_lastLineColorIndex = (m_lastLineColorIndex + 1) % lineColorsSize;
return lineColors[m_lastLineColorIndex];
}
void EquationInputArea::EquationTextBox_RemoveButtonClicked(Object^ sender, RoutedEventArgs^ e)
{
auto tb = static_cast<EquationTextBox^>(sender);
@@ -104,3 +83,15 @@ void EquationInputArea::EquationTextBox_RemoveButtonClicked(Object^ sender, Rout
Equations->RemoveAt(index);
}
}
void EquationInputArea::EquationTextBoxLoaded(Object ^ sender, RoutedEventArgs ^ e)
{
auto tb = static_cast<EquationTextBox ^>(sender);
auto eq = static_cast<EquationViewModel ^>(tb->DataContext);
auto colorChooser = static_cast<EquationStylePanelControl ^>(tb->ColorChooserFlyout->Content);
m_lastLineColorIndex = (m_lastLineColorIndex + 1) % colorChooser->AvailableColors->Size;
eq->LineColor = colorChooser->AvailableColors->GetAt(m_lastLineColorIndex);
}