Merge master into feature/GraphingCalculator branch (#660)
This commit is contained in:
@@ -27,6 +27,9 @@ using namespace Windows::UI::Xaml::Navigation;
|
||||
DEPENDENCY_PROPERTY_INITIALIZATION(OverflowTextBlock, IsActive);
|
||||
DEPENDENCY_PROPERTY_INITIALIZATION(OverflowTextBlock, TextStyle);
|
||||
DEPENDENCY_PROPERTY_INITIALIZATION(OverflowTextBlock, TokensUpdated);
|
||||
DEPENDENCY_PROPERTY_INITIALIZATION(OverflowTextBlock, ColumnWidth);
|
||||
DEPENDENCY_PROPERTY_INITIALIZATION(OverflowTextBlock, ColumnHeight);
|
||||
DEPENDENCY_PROPERTY_INITIALIZATION(OverflowTextBlock, ScrollButtonFontSize);
|
||||
|
||||
void OverflowTextBlock::OnApplyTemplate()
|
||||
{
|
||||
@@ -64,6 +67,12 @@ void OverflowTextBlock::OnApplyTemplate()
|
||||
m_itemsControl = safe_cast<ItemsControl ^>(uiElement);
|
||||
}
|
||||
|
||||
uiElement = GetTemplateChild("EditableToken");
|
||||
if (uiElement != nullptr)
|
||||
{
|
||||
m_editableToken = safe_cast<TextBlock ^>(uiElement);
|
||||
}
|
||||
|
||||
UpdateAllState();
|
||||
}
|
||||
|
||||
@@ -144,13 +153,25 @@ void OverflowTextBlock::OnScrollClick(_In_ Object ^ sender, _In_ RoutedEventArgs
|
||||
|
||||
void OverflowTextBlock::UpdateScrollButtons()
|
||||
{
|
||||
if (m_itemsControl == nullptr || m_expressionContainer == nullptr)
|
||||
if (m_expressionContainer == nullptr)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
double editableTokenWidth = 0;
|
||||
if (m_editableToken != nullptr && m_editableToken->Visibility == ::Visibility::Visible)
|
||||
{
|
||||
editableTokenWidth = m_editableToken->ActualWidth;
|
||||
}
|
||||
|
||||
double itemsControlWidth = 0;
|
||||
if (m_itemsControl != nullptr && m_itemsControl->Visibility == ::Visibility::Visible)
|
||||
{
|
||||
itemsControlWidth = m_itemsControl->ActualWidth;
|
||||
}
|
||||
|
||||
// When the width is smaller than the container, don't show any
|
||||
if (m_itemsControl->ActualWidth <= m_expressionContainer->ActualWidth)
|
||||
if (itemsControlWidth + editableTokenWidth <= m_expressionContainer->ActualWidth)
|
||||
{
|
||||
ShowHideScrollButtons(::Visibility::Collapsed, ::Visibility::Collapsed);
|
||||
}
|
||||
@@ -161,7 +182,7 @@ void OverflowTextBlock::UpdateScrollButtons()
|
||||
{
|
||||
ShowHideScrollButtons(::Visibility::Visible, ::Visibility::Visible);
|
||||
}
|
||||
// Width is larger than the container and left most part of the number is shown. Should be able to scroll left.
|
||||
// Width is larger than the container and left most part of the number is shown. Should be able to scroll right.
|
||||
else if (m_expressionContainer->HorizontalOffset == 0)
|
||||
{
|
||||
ShowHideScrollButtons(::Visibility::Collapsed, ::Visibility::Visible);
|
||||
|
@@ -18,10 +18,14 @@ namespace CalculatorApp
|
||||
}
|
||||
|
||||
DEPENDENCY_PROPERTY_OWNER(OverflowTextBlock);
|
||||
|
||||
DEPENDENCY_PROPERTY_WITH_CALLBACK(bool, TokensUpdated);
|
||||
DEPENDENCY_PROPERTY(bool, IsActive);
|
||||
DEPENDENCY_PROPERTY(Windows::UI::Xaml::Style ^, TextStyle);
|
||||
DEPENDENCY_PROPERTY(double, ColumnWidth);
|
||||
DEPENDENCY_PROPERTY(double, ColumnHeight);
|
||||
DEPENDENCY_PROPERTY(double, ScrollButtonFontSize);
|
||||
|
||||
void OnTokensUpdatedPropertyChanged(bool oldValue, bool newValue);
|
||||
void UpdateScrollButtons();
|
||||
void UnregisterEventHandlers();
|
||||
|
||||
@@ -34,7 +38,6 @@ namespace CalculatorApp
|
||||
void OnPointerEntered(_In_ Platform::Object ^ sender, _In_ Windows::UI::Xaml::Input::PointerRoutedEventArgs ^ e);
|
||||
void OnPointerExited(_In_ Platform::Object ^ sender, _In_ Windows::UI::Xaml::Input::PointerRoutedEventArgs ^ e);
|
||||
void ShowHideScrollButtons(Windows::UI::Xaml::Visibility vLeft, Windows::UI::Xaml::Visibility vRight);
|
||||
void OnTokensUpdatedPropertyChanged(bool oldValue, bool newValue);
|
||||
void OnViewChanged(_In_opt_ Platform::Object ^ sender, _In_opt_ Windows::UI::Xaml::Controls::ScrollViewerViewChangedEventArgs ^ args);
|
||||
|
||||
void UpdateVisualState();
|
||||
@@ -47,6 +50,7 @@ namespace CalculatorApp
|
||||
bool m_scrollingLeft;
|
||||
bool m_scrollingRight;
|
||||
bool m_isAccessibilityViewControl;
|
||||
Windows::UI::Xaml::Controls::TextBlock ^ m_editableToken;
|
||||
Windows::UI::Xaml::Controls::ItemsControl ^ m_itemsControl;
|
||||
Windows::UI::Xaml::Controls::ScrollViewer ^ m_expressionContainer;
|
||||
Windows::UI::Xaml::Controls::Button ^ m_scrollLeft;
|
||||
|
Reference in New Issue
Block a user