Skip to content

Commit

Permalink
Merge pull request #3 from microsoft/user/hamiltonia/sdkupdates
Browse files Browse the repository at this point in the history
Prepare for latest SDK drop (1.0.200212001-prerelease)
  • Loading branch information
hamiltonia committed Feb 12, 2020
2 parents 5143898 + 23ebe7b commit 298c075
Show file tree
Hide file tree
Showing 21 changed files with 330 additions and 171 deletions.
38 changes: 23 additions & 15 deletions Samples/UIExtAdvSample/App.cpp
Expand Up @@ -39,22 +39,22 @@ App::App()

void App::OnActivated(IActivatedEventArgs const& e)
{
XboxGameBarUIExtensionActivatedEventArgs uiExtArgs{ nullptr };
if (e.Kind() == ActivationKind::Protocol)
{
auto protocolArgs = e.try_as<IProtocolActivatedEventArgs>();
if (protocolArgs)
{
XboxGameBarUIExtensionActivatedEventArgs uiExtArgs{ nullptr };
if (e.Kind() == ActivationKind::Protocol)
{
auto protocolArgs = e.try_as<IProtocolActivatedEventArgs>();
if (protocolArgs)
{
// If scheme name is ms-gamebaruiextension, Xbox Game Bar is activating us.
const wchar_t* scheme = protocolArgs.Uri().SchemeName().c_str();
if (0 != wcsstr(scheme, L"ms-gamebaruiextension"))
{
uiExtArgs = e.try_as<XboxGameBarUIExtensionActivatedEventArgs>();
}
}
}
if (uiExtArgs)
{
const wchar_t* scheme = protocolArgs.Uri().SchemeName().c_str();
if (0 != wcsstr(scheme, L"ms-gamebaruiextension"))
{
uiExtArgs = e.try_as<XboxGameBarUIExtensionActivatedEventArgs>();
}
}
}
if (uiExtArgs)
{
//
// If IsLaunchActivation is true, this is Game Bar's initial activation of us
// and we MUST create and hold onto XboxGameBarUIExtension.
Expand All @@ -80,6 +80,14 @@ void App::OnActivated(IActivatedEventArgs const& e)
rootFrame);
rootFrame.Navigate(xaml_typename<UIExtAdvSample::Extension1>(), m_uiExtension1);
}
else if (0 == appExtId.compare(L"Extension1Settings"))
{
m_uiExtension1Settings = XboxGameBarUIExtension(
uiExtArgs,
Window::Current().CoreWindow(),
rootFrame);
rootFrame.Navigate(xaml_typename<UIExtAdvSample::Extension1Settings>());
}
else if (0 == appExtId.compare(L"Extension2"))
{
m_uiExtension2 = XboxGameBarUIExtension(
Expand Down
7 changes: 4 additions & 3 deletions Samples/UIExtAdvSample/App.h
Expand Up @@ -8,14 +8,15 @@ namespace winrt::UIExtAdvSample::implementation
{
App();

void OnActivated(Windows::ApplicationModel::Activation::IActivatedEventArgs const& args);
void OnActivated(Windows::ApplicationModel::Activation::IActivatedEventArgs const& args);
void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs const&);
void OnSuspending(IInspectable const&, Windows::ApplicationModel::SuspendingEventArgs const&);
void OnNavigationFailed(IInspectable const&, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs const&);

private:
private:

Microsoft::Gaming::XboxGameBar::XboxGameBarUIExtension m_uiExtension1{ nullptr };
Microsoft::Gaming::XboxGameBar::XboxGameBarUIExtension m_uiExtension1{ nullptr };
Microsoft::Gaming::XboxGameBar::XboxGameBarUIExtension m_uiExtension1Settings{ nullptr };
Microsoft::Gaming::XboxGameBar::XboxGameBarUIExtension m_uiExtension2{ nullptr };
};
}
30 changes: 25 additions & 5 deletions Samples/UIExtAdvSample/Extension1.cpp
Expand Up @@ -19,9 +19,12 @@ namespace winrt::UIExtAdvSample::implementation
{
m_uiExtension = e.Parameter().as<XboxGameBarUIExtension>();
m_extensionControl = XboxGameBarExtensionControl(m_uiExtension);

// Hook up event that's fired when our settings button is clicked
m_settingsToken = m_uiExtension.SettingsClicked({ this, &Extension1::SettingsButton_Click });
}

IAsyncAction Extension1::ActivateAsyncAppExtIdButton_Click(IInspectable const& /*sender*/, RoutedEventArgs const& /*e*/)
IAsyncAction Extension1::ActivateAsyncAppExtIdButton_Click(IInspectable const& sender, RoutedEventArgs const& e)
{
hstring text = this->ActivateAsyncAppExtId().Text();
return m_extensionControl.ActivateAsync(text);
Expand Down Expand Up @@ -57,15 +60,15 @@ namespace winrt::UIExtAdvSample::implementation
}


IAsyncAction Extension1::MaximizeAsyncAppExtIdButton_Click(IInspectable const& sender, RoutedEventArgs const& e)
IAsyncAction Extension1::RestoreAsyncAppExtIdButton_Click(IInspectable const& sender, RoutedEventArgs const& e)
{
co_return co_await m_extensionControl.MaximizeAsync(this->ActivateAsyncAppExtId().Text());
co_return co_await m_extensionControl.RestoreAsync(this->ActivateAsyncAppExtId().Text());
}


IAsyncAction Extension1::MaximizeAsyncAppIdButton_Click(IInspectable const& sender, RoutedEventArgs const& e)
IAsyncAction Extension1::RestoreAsyncAppIdButton_Click(IInspectable const& sender, RoutedEventArgs const& e)
{
co_return co_await m_extensionControl.MaximizeAsync(
co_return co_await m_extensionControl.RestoreAsync(
this->ActivateAsyncAppId().Text(),
this->ActivateAsyncAppExtId().Text());
}
Expand All @@ -83,6 +86,23 @@ namespace winrt::UIExtAdvSample::implementation
this->ActivateAsyncAppId().Text(),
this->ActivateAsyncAppExtId().Text());
}

IAsyncAction Extension1::TryResizeWindowAsync_Click(IInspectable const& sender, RoutedEventArgs const& e)
{
Windows::Foundation::Size size;
size.Height = _wtof(this->WindowHeightBox().Text().c_str());
size.Width = _wtof(this->WindowWidthBox().Text().c_str());
auto result = co_await m_uiExtension.TryResizeWindowAsync(size);
co_return;
}

Windows::Foundation::IAsyncAction Extension1::SettingsButton_Click(
winrt::Windows::Foundation::IInspectable const& sender,
winrt::Windows::Foundation::IInspectable const& e)
{
get_strong();
co_await m_uiExtension.ActivateSettingsAsync();
}
}


10 changes: 8 additions & 2 deletions Samples/UIExtAdvSample/Extension1.h
Expand Up @@ -12,17 +12,23 @@ namespace winrt::UIExtAdvSample::implementation

virtual void OnNavigatedTo(winrt::Windows::UI::Xaml::Navigation::NavigationEventArgs e);

// Click handlers from our XAML events
Windows::Foundation::IAsyncAction ActivateAsyncAppExtIdButton_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::RoutedEventArgs const& e);
Windows::Foundation::IAsyncAction ActivateAsyncAppIdButton_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::RoutedEventArgs const& e);
Windows::Foundation::IAsyncAction ActivateWithUriAsyncButton_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::RoutedEventArgs const& e);
Windows::Foundation::IAsyncAction MinimizeAsyncAppIdButton_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::RoutedEventArgs const& e);
Windows::Foundation::IAsyncAction MinimizeAsyncAppExtIdButton_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::RoutedEventArgs const& e);
Windows::Foundation::IAsyncAction MaximizeAsyncAppExtIdButton_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::RoutedEventArgs const& e);
Windows::Foundation::IAsyncAction MaximizeAsyncAppIdButton_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::RoutedEventArgs const& e);
Windows::Foundation::IAsyncAction RestoreAsyncAppExtIdButton_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::RoutedEventArgs const& e);
Windows::Foundation::IAsyncAction RestoreAsyncAppIdButton_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::RoutedEventArgs const& e);
Windows::Foundation::IAsyncAction CloseAsyncAppExtIdButton_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::RoutedEventArgs const& e);
Windows::Foundation::IAsyncAction CloseAsyncAppIdButton_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::RoutedEventArgs const& e);
Windows::Foundation::IAsyncAction TryResizeWindowAsync_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::RoutedEventArgs const& e);

// Settings click handler for ui extension settings click event
Windows::Foundation::IAsyncAction SettingsButton_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::Foundation::IInspectable const& e);

private:
winrt::event_token m_settingsToken{};

Microsoft::Gaming::XboxGameBar::XboxGameBarUIExtension m_uiExtension{ nullptr };
Microsoft::Gaming::XboxGameBar::XboxGameBarExtensionControl m_extensionControl{ nullptr };
Expand Down
90 changes: 54 additions & 36 deletions Samples/UIExtAdvSample/Extension1.xaml
Expand Up @@ -7,41 +7,59 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">

<StackPanel Orientation="Vertical" Padding="10">
<Grid Padding="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="AppId: " VerticalAlignment="Center" />
<TextBox Grid.Column="1" x:Name="ActivateAsyncAppId" />
</Grid>
<Grid Padding="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="AppExtensionId: " VerticalAlignment="Center" />
<TextBox Grid.Column="1" x:Name="ActivateAsyncAppExtId" />
</Grid>
<StackPanel Orientation="Vertical" HorizontalAlignment="Left" Padding="2">
<Button x:Name="ActivateAsyncAppExtIdButton" Click="ActivateAsyncAppExtIdButton_Click" Margin="0,2">ActivateAsync(appExtensionId)</Button>
<Button x:Name="ActivateAsyncAppIdButton" Click="ActivateAsyncAppIdButton_Click" Margin="0,2">ActivateAsync(appId, appExtensionId)</Button>
<Button x:Name="MinimizeAsyncAppExtIdButton" Click="MinimizeAsyncAppExtIdButton_Click" Margin="0,2">MinimizeAsync(appExtensionId)</Button>
<Button x:Name="MinimizeAsyncAppIdButton" Click="MinimizeAsyncAppIdButton_Click" Margin="0,2">MinimizeAsync(appId, appExtensionId)</Button>
<Button x:Name="MaximizeAsyncAppExtIdButton" Click="MaximizeAsyncAppExtIdButton_Click" Margin="0,2">MaximizeAsync(appExtensionId)</Button>
<Button x:Name="MaximizeAsyncAppIdButton" Click="MaximizeAsyncAppIdButton_Click" Margin="0,2">MaximizeAsync(appId, appExtensionId)</Button>
<Button x:Name="CloseAsyncAppExtIdButton" Click="CloseAsyncAppExtIdButton_Click" Margin="0,2">CloseAsync(appExtensionId)</Button>
<Button x:Name="CloseAsyncAppIdButton" Click="CloseAsyncAppIdButton_Click" Margin="0,2">CloseAsync(appId, appExtensionId)</Button>
<ScrollViewer VerticalScrollBarVisibility="Visible"
HorizontalScrollBarVisibility="Auto">
<StackPanel Orientation="Vertical" Padding="10">
<Grid Padding="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="AppId: " VerticalAlignment="Center" />
<TextBox Grid.Column="1" x:Name="ActivateAsyncAppId" Text="App"/>
</Grid>
<Grid Padding="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="AppExtensionId: " VerticalAlignment="Center" />
<TextBox Grid.Column="1" x:Name="ActivateAsyncAppExtId" Text="Extension2"/>
</Grid>
<StackPanel Orientation="Vertical" HorizontalAlignment="Left" Padding="2">
<Button x:Name="ActivateAsyncAppExtIdButton" Click="ActivateAsyncAppExtIdButton_Click" Margin="0,2">ActivateAsync(appExtensionId)</Button>
<Button x:Name="ActivateAsyncAppIdButton" Click="ActivateAsyncAppIdButton_Click" Margin="0,2">ActivateAsync(appId, appExtensionId)</Button>
<Button x:Name="MinimizeAsyncAppExtIdButton" Click="MinimizeAsyncAppExtIdButton_Click" Margin="0,2">MinimizeAsync(appExtensionId)</Button>
<Button x:Name="MinimizeAsyncAppIdButton" Click="MinimizeAsyncAppIdButton_Click" Margin="0,2">MinimizeAsync(appId, appExtensionId)</Button>
<Button x:Name="RestoreAsyncAppExtIdButton" Click="RestoreAsyncAppExtIdButton_Click" Margin="0,2">RestoreAsync(appExtensionId)</Button>
<Button x:Name="RestoreAsyncAppIdButton" Click="RestoreAsyncAppIdButton_Click" Margin="0,2">RestoreAsync(appId, appExtensionId)</Button>
<Button x:Name="CloseAsyncAppExtIdButton" Click="CloseAsyncAppExtIdButton_Click" Margin="0,2">CloseAsync(appExtensionId)</Button>
<Button x:Name="CloseAsyncAppIdButton" Click="CloseAsyncAppIdButton_Click" Margin="0,2">CloseAsync(appId, appExtensionId)</Button>
</StackPanel>
<Grid Padding="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Uri: " VerticalAlignment="Center" />
<TextBox Grid.Column="1" x:Name="ActivateAsyncUri" VerticalAlignment="Center" Text="ms-gamebar:activate/UIExtAdvSample_8wekyb3d8bbwe_App_Extension2/?var=value"/>
</Grid>
<Button x:Name="ActivateWithUriAsyncButton" Click="ActivateWithUriAsyncButton_Click" Margin="0,2">ActivateWithUriAsync(uri)</Button>
<Grid Padding="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0" Text="Window Width: " VerticalAlignment="Center" />
<TextBox Grid.Column="1" Grid.Row="0" x:Name="WindowWidthBox" VerticalAlignment="Center" Text="800"/>
<TextBlock Grid.Column="0" Grid.Row="1" Text="Window Height: " VerticalAlignment="Center" />
<TextBox Grid.Column="1" Grid.Row="1" x:Name="WindowHeightBox" VerticalAlignment="Center" Text="800"/>
</Grid>
<Button x:Name="TryResizeWindowAsync" Click="TryResizeWindowAsync_Click" Margin="0,2">TryResizeWindowAsync</Button>
</StackPanel>
<Grid Padding="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Uri: " VerticalAlignment="Center" />
<TextBox Grid.Column="1" x:Name="ActivateAsyncUri" VerticalAlignment="Center" />
</Grid>
<Button x:Name="ActivateWithUriAsyncButton" Click="ActivateWithUriAsyncButton_Click" Margin="0,2">ActivateWithUriAsync(uri)</Button>
</StackPanel>
</ScrollViewer>
</Page>
21 changes: 21 additions & 0 deletions Samples/UIExtAdvSample/Extension1Settings.cpp
@@ -0,0 +1,21 @@
#include "pch.h"
#include "Extension1Settings.h"
#if __has_include("Extension1Settings.g.cpp")
#include "Extension1Settings.g.cpp"
#endif

using namespace winrt;
using namespace Windows::UI::Xaml;

namespace winrt::UIExtAdvSample::implementation
{
Extension1Settings::Extension1Settings()
{
InitializeComponent();
}

void Extension1Settings::ClickHandler(IInspectable const&, RoutedEventArgs const&)
{
Button().Content(box_value(L"Clicked"));
}
}
20 changes: 20 additions & 0 deletions Samples/UIExtAdvSample/Extension1Settings.h
@@ -0,0 +1,20 @@
#pragma once

#include "Extension1Settings.g.h"

namespace winrt::UIExtAdvSample::implementation
{
struct Extension1Settings : Extension1SettingsT<Extension1Settings>
{
Extension1Settings();

void ClickHandler(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args);
};
}

namespace winrt::UIExtAdvSample::factory_implementation
{
struct Extension1Settings : Extension1SettingsT<Extension1Settings, implementation::Extension1Settings>
{
};
}
8 changes: 8 additions & 0 deletions Samples/UIExtAdvSample/Extension1Settings.idl
@@ -0,0 +1,8 @@
namespace UIExtAdvSample
{
[default_interface]
runtimeclass Extension1Settings : Windows.UI.Xaml.Controls.Page
{
Extension1Settings();
}
}
13 changes: 13 additions & 0 deletions Samples/UIExtAdvSample/Extension1Settings.xaml
@@ -0,0 +1,13 @@
<Page
x:Class="UIExtAdvSample.Extension1Settings"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:UIExtAdvSample"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">

<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button x:Name="Button" Click="ClickHandler">Click Me</Button>
</StackPanel>
</Page>

0 comments on commit 298c075

Please sign in to comment.