Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update HNav based on API Review #2196

Merged
merged 6 commits into from
Apr 4, 2020
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions dev/Generated/NavigationView.properties.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1148,7 +1148,7 @@ void NavigationViewProperties::BackRequested(winrt::event_token const& token)
m_backRequestedEventSource.remove(token);
}

winrt::event_token NavigationViewProperties::Collapsed(winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewCollapsedEventArgs> const& value)
winrt::event_token NavigationViewProperties::Collapsed(winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewItemCollapsedEventArgs> const& value)
{
return m_collapsedEventSource.add(value);
}
Expand All @@ -1168,7 +1168,7 @@ void NavigationViewProperties::DisplayModeChanged(winrt::event_token const& toke
m_displayModeChangedEventSource.remove(token);
}

winrt::event_token NavigationViewProperties::Expanding(winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewExpandingEventArgs> const& value)
winrt::event_token NavigationViewProperties::Expanding(winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewItemExpandingEventArgs> const& value)
{
return m_expandingEventSource.add(value);
}
Expand Down
8 changes: 4 additions & 4 deletions dev/Generated/NavigationView.properties.h
Original file line number Diff line number Diff line change
Expand Up @@ -188,11 +188,11 @@ class NavigationViewProperties

winrt::event_token BackRequested(winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewBackRequestedEventArgs> const& value);
void BackRequested(winrt::event_token const& token);
winrt::event_token Collapsed(winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewCollapsedEventArgs> const& value);
winrt::event_token Collapsed(winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewItemCollapsedEventArgs> const& value);
void Collapsed(winrt::event_token const& token);
winrt::event_token DisplayModeChanged(winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewDisplayModeChangedEventArgs> const& value);
void DisplayModeChanged(winrt::event_token const& token);
winrt::event_token Expanding(winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewExpandingEventArgs> const& value);
winrt::event_token Expanding(winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewItemExpandingEventArgs> const& value);
void Expanding(winrt::event_token const& token);
winrt::event_token ItemInvoked(winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewItemInvokedEventArgs> const& value);
void ItemInvoked(winrt::event_token const& token);
Expand All @@ -208,9 +208,9 @@ class NavigationViewProperties
void SelectionChanged(winrt::event_token const& token);

event_source<winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewBackRequestedEventArgs>> m_backRequestedEventSource;
event_source<winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewCollapsedEventArgs>> m_collapsedEventSource;
event_source<winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewItemCollapsedEventArgs>> m_collapsedEventSource;
event_source<winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewDisplayModeChangedEventArgs>> m_displayModeChangedEventSource;
event_source<winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewExpandingEventArgs>> m_expandingEventSource;
event_source<winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewItemExpandingEventArgs>> m_expandingEventSource;
event_source<winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewItemInvokedEventArgs>> m_itemInvokedEventSource;
event_source<winrt::TypedEventHandler<winrt::NavigationView, winrt::IInspectable>> m_paneClosedEventSource;
event_source<winrt::TypedEventHandler<winrt::NavigationView, winrt::NavigationViewPaneClosingEventArgs>> m_paneClosingEventSource;
Expand Down
50 changes: 11 additions & 39 deletions dev/NavigationView/NavigationView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
#include "ElementFactoryGetArgs.h"
#include "ElementFactoryRecycleArgs.h"
#include <ItemsRepeater.common.h>
#include "NavigationViewExpandingEventArgs.h"
#include "NavigationViewCollapsedEventArgs.h"
#include "NavigationViewItemExpandingEventArgs.h"
#include "NavigationViewItemCollapsedEventArgs.h"

static constexpr auto c_togglePaneButtonName = L"TogglePaneButton"sv;
static constexpr auto c_paneTitleHolderFrameworkElement = L"PaneTitleHolder"sv;
Expand Down Expand Up @@ -2434,44 +2434,14 @@ winrt::IInspectable NavigationView::MenuItemFromContainer(winrt::DependencyObjec
{
if (container)
{
if (IsTopNavigationView())
if (auto const nvib = container.try_as<winrt::NavigationViewItemBase>())
{
// Search topnav first, if not found, search overflow
if (auto ir = m_topNavRepeater.get())
{
if (auto element = container.try_as<winrt::UIElement>())
{
auto index = ir.GetElementIndex(element);
if (index != -1)
{
return GetItemFromIndex(ir, index);
}
}
}

if (auto ir = m_topNavRepeaterOverflowView.get())
if (auto const parentRepeater = GetParentItemsRepeaterForContainer(nvib))
{
if (auto element = container.try_as<winrt::UIElement>())
auto containerIndex = parentRepeater.GetElementIndex(nvib);
if (containerIndex >= 0)
{
auto index = ir.GetElementIndex(element);
if (index != -1)
{
return GetItemFromIndex(ir, index);
}
}
}
}
else
{
if (auto ir = m_leftNavRepeater.get())
{
if (auto element = container.try_as<winrt::UIElement>())
{
int index = ir.GetElementIndex(element);
if (index != -1)
{
return GetItemFromIndex(ir, index);
}
return GetItemFromIndex(parentRepeater, containerIndex);
}
}
}
Expand Down Expand Up @@ -4840,15 +4810,17 @@ void NavigationView::CollapseAllMenuItemsUnderRepeater(const winrt::ItemsRepeate

void NavigationView::RaiseExpandingEvent(const winrt::NavigationViewItemBase& container)
{
auto eventArgs = winrt::make_self<NavigationViewExpandingEventArgs>();
auto eventArgs = winrt::make_self<NavigationViewItemExpandingEventArgs>();
eventArgs->ExpandingItemContainer(container);
eventArgs->NavigationView(*this);
m_expandingEventSource(*this, *eventArgs);
}

void NavigationView::RaiseCollapsedEvent(const winrt::NavigationViewItemBase& container)
{
auto eventArgs = winrt::make_self<NavigationViewCollapsedEventArgs>();
auto eventArgs = winrt::make_self<NavigationViewItemCollapsedEventArgs>();
eventArgs->CollapsedItemContainer(container);
eventArgs->NavigationView(*this);
m_collapsedEventSource(*this, *eventArgs);
}

Expand Down
10 changes: 6 additions & 4 deletions dev/NavigationView/NavigationView.idl
Original file line number Diff line number Diff line change
Expand Up @@ -113,16 +113,18 @@ runtimeclass NavigationViewBackRequestedEventArgs

[WUXC_VERSION_PREVIEW]
[webhosthidden]
runtimeclass NavigationViewExpandingEventArgs
runtimeclass NavigationViewItemExpandingEventArgs
{
NavigationViewItemBase ExpandingItemContainer { get; };
Object ExpandingItem{ get; };
}

[WUXC_VERSION_PREVIEW]
[webhosthidden]
runtimeclass NavigationViewCollapsedEventArgs
runtimeclass NavigationViewItemCollapsedEventArgs
{
NavigationViewItemBase CollapsedItemContainer { get; };
Object CollapsedItem{ get; };
}

[WUXC_VERSION_RS5]
Expand Down Expand Up @@ -287,8 +289,8 @@ unsealed runtimeclass NavigationView : Windows.UI.Xaml.Controls.ContentControl

[WUXC_VERSION_PREVIEW]
{
event Windows.Foundation.TypedEventHandler<NavigationView, NavigationViewExpandingEventArgs> Expanding;
event Windows.Foundation.TypedEventHandler<NavigationView, NavigationViewCollapsedEventArgs> Collapsed;
event Windows.Foundation.TypedEventHandler<NavigationView, NavigationViewItemExpandingEventArgs> Expanding;
event Windows.Foundation.TypedEventHandler<NavigationView, NavigationViewItemCollapsedEventArgs> Collapsed;

void Expand(NavigationViewItem item);
void Collapse(NavigationViewItem item);
Expand Down
8 changes: 4 additions & 4 deletions dev/NavigationView/NavigationView.vcxitems
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
<ClCompile Include="$(MSBuildThisFileDirectory)..\Generated\NavigationViewItemPresenter.properties.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\Generated\NavigationViewTemplateSettings.properties.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)NavigationViewAutomationPeer.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)NavigationViewCollapsedEventArgs.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)NavigationViewExpandingEventArgs.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)NavigationViewItemCollapsedEventArgs.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)NavigationViewItemExpandingEventArgs.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)NavigationViewItemsFactory.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)NavigationViewItemPresenter.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)NavigationViewTemplateSettings.cpp" />
Expand All @@ -42,8 +42,8 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(MSBuildThisFileDirectory)NavigationViewAutomationPeer.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)NavigationViewCollapsedEventArgs.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)NavigationViewExpandingEventArgs.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)NavigationViewItemCollapsedEventArgs.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)NavigationViewItemExpandingEventArgs.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)NavigationViewHelper.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)NavigationViewItemRevokers.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)NavigationViewItemsFactory.h" />
Expand Down
16 changes: 0 additions & 16 deletions dev/NavigationView/NavigationViewCollapsedEventArgs.cpp

This file was deleted.

16 changes: 0 additions & 16 deletions dev/NavigationView/NavigationViewExpandingEventArgs.cpp

This file was deleted.

17 changes: 0 additions & 17 deletions dev/NavigationView/NavigationViewExpandingEventArgs.h

This file was deleted.

30 changes: 30 additions & 0 deletions dev/NavigationView/NavigationViewItemCollapsedEventArgs.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.

#include "pch.h"
#include "common.h"
#include "NavigationViewItemCollapsedEventArgs.h"

winrt::NavigationViewItemBase NavigationViewItemCollapsedEventArgs::CollapsedItemContainer()
{
return m_collapsedItemContainer.get();
}

void NavigationViewItemCollapsedEventArgs::CollapsedItemContainer(winrt::NavigationViewItemBase const& value)
{
m_collapsedItemContainer.set(value);
}

winrt::IInspectable NavigationViewItemCollapsedEventArgs::CollapsedItem()
{
if (auto const nv = m_navigationView.get())
{
return nv.MenuItemFromContainer(m_collapsedItemContainer.get());
}
return nullptr;
}

void NavigationViewItemCollapsedEventArgs::NavigationView(winrt::NavigationView const& navigationView)
{
m_navigationView.set(navigationView);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,21 @@

#pragma once

#include "NavigationViewCollapsedEventArgs.g.h"
#include "NavigationViewItemCollapsedEventArgs.g.h"
#include "NavigationViewItemBase.h"

class NavigationViewCollapsedEventArgs :
public ReferenceTracker<NavigationViewCollapsedEventArgs, winrt::implementation::NavigationViewCollapsedEventArgsT, winrt::composing, winrt::composable>
class NavigationViewItemCollapsedEventArgs :
public ReferenceTracker<NavigationViewItemCollapsedEventArgs, winrt::implementation::NavigationViewItemCollapsedEventArgsT, winrt::composing, winrt::composable>
{
public:
winrt::NavigationViewItemBase CollapsedItemContainer();
void CollapsedItemContainer(winrt::NavigationViewItemBase const& value);

winrt::IInspectable CollapsedItem();

void NavigationView(const winrt::NavigationView& navigationView);

private:
tracker_ref<winrt::NavigationViewItemBase> m_collapsedItemContainer{ this };
tracker_ref<winrt::NavigationView> m_navigationView{ this };
};
31 changes: 31 additions & 0 deletions dev/NavigationView/NavigationViewItemExpandingEventArgs.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.

#include "pch.h"
#include "common.h"
#include "NavigationViewItemExpandingEventArgs.h"

winrt::NavigationViewItemBase NavigationViewItemExpandingEventArgs::ExpandingItemContainer()
{
return m_expandingItemContainer.get();
}

void NavigationViewItemExpandingEventArgs::ExpandingItemContainer(winrt::NavigationViewItemBase const& value)
{
m_expandingItemContainer.set(value);
}

winrt::IInspectable NavigationViewItemExpandingEventArgs::ExpandingItem()
{
if (auto const nv = m_navigationView.get())
{
return nv.MenuItemFromContainer(m_expandingItemContainer.get());
}
return nullptr;
}

void NavigationViewItemExpandingEventArgs::NavigationView(winrt::NavigationView const& navigationView)
{
m_navigationView.set(navigationView);
}

22 changes: 22 additions & 0 deletions dev/NavigationView/NavigationViewItemExpandingEventArgs.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.

#pragma once

#include "NavigationViewItemExpandingEventArgs.g.h"

class NavigationViewItemExpandingEventArgs :
public ReferenceTracker<NavigationViewItemExpandingEventArgs, winrt::implementation::NavigationViewItemExpandingEventArgsT, winrt::composing, winrt::composable>
{
public:
winrt::NavigationViewItemBase ExpandingItemContainer();
void ExpandingItemContainer(winrt::NavigationViewItemBase const& value);

winrt::IInspectable ExpandingItem();

void NavigationView(const winrt::NavigationView& navigationView);

private:
tracker_ref<winrt::NavigationViewItemBase> m_expandingItemContainer{ this };
tracker_ref<winrt::NavigationView> m_navigationView{ this };
};
Loading