private async void Widget_GameBarDisplayModeChanged(XboxGameBarWidget sender, object args) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { if (iWidget.GameBarDisplayMode == XboxGameBarDisplayMode.PinnedOnly) { // Pinned mode switch to camera mode SwitchToCameraMode(); if (!SettingOpacityOverride) { // Apply requested system opacity then iImageCamera.Opacity = iWidget.RequestedOpacity; } else { // Apply custom widget defined opacity then iImageCamera.Opacity = SettingOpacity / 100; } } else if (iWidget.GameBarDisplayMode == XboxGameBarDisplayMode.Foreground) { SwitchToSettingsMode(); // No opacity in Game Bar Foreground mode iImageCamera.Opacity = 1.0; } ApplyAlignment(); }); }
protected override void OnNavigatedTo(NavigationEventArgs e) { if (e.Parameter != null) { List <object> lists = (List <object>)e.Parameter; ViewModel.NoteText = lists[0].ToString(); ViewModel.TaskID = Convert.ToInt32(lists[1]); ViewModel.TaskHeader = lists[2].ToString(); ViewModel.SelectedList = (ListModel)lists[3]; widget = (XboxGameBarWidget)lists[4]; ViewModel.Widget = widget; } if (widget != null) { widget.SettingsClicked += Widget_SettingsClicked; widget.RequestedOpacityChanged += Widget_RequestedOpacityChanged; widget.GameBarDisplayModeChanged += Widget_GameBarDisplayModeChanged; Widget_RequestedOpacityChanged(widget, null); Widget_GameBarDisplayModeChanged(widget, null); } base.OnNavigatedTo(e); }
private async void Widget_FavoritedChanged(XboxGameBarWidget sender, object args) { await FavoritedTextBlock.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { SetFavoritedState(); }); }
private void OnXboxGameBarActivated(XboxGameBarWidgetActivatedEventArgs xbox) { Analytics.TrackEvent("Unicord_LaunchForGameBar"); if (xbox.IsLaunchActivation) { var name = xbox.Uri.LocalPath; var frame = new Frame(); frame.NavigationFailed += OnNavigationFailed; Window.Current.Content = frame; Logger.Log(xbox.Uri.LocalPath); if (name == "unicord-friendslist") { _friendsListWidget = new XboxGameBarWidget(xbox, Window.Current.CoreWindow, frame); Window.Current.Closed += OnFrendsListWidgetClosed; frame.Navigate(typeof(GameBarMainPage), new GameBarPageParameters(_friendsListWidget, typeof(GameBarFriendsPage), xbox.Uri)); } if (name == "unicord-channel") { _chatListWidget = new XboxGameBarWidget(xbox, Window.Current.CoreWindow, frame); Window.Current.Closed += OnChatListWidgetClosed; frame.Navigate(typeof(GameBarMainPage), new GameBarPageParameters(_chatListWidget, typeof(GameBarChannelListPage), xbox.Uri)); } } }
protected override void OnNavigatedTo(NavigationEventArgs e) { widget = e.Parameter as XboxGameBarWidget; if (widget != null) { widget.MaxWindowSize = new Size(1500, 1500); widget.MinWindowSize = new Size(200, 100); widget.HorizontalResizeSupported = true; widget.VerticalResizeSupported = true; widget.SettingsSupported = true; widget.SettingsClicked += Widget_SettingsClicked; } SetVisualState(VisualState.InitialProfileLoad); eventAggregator.Subscribe(this); AppState.Data.ScheduleProfileUpdates(); UpdateFromProfile(); timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(1) }; timer.Tick += timer_Tick; timer.Start(); }
/// <summary> /// The Game Bar Widget activations happen as a Protocol Activation /// with its URI scheme being "ms-gamebarwidget". /// /// If it is the desired kind and equals to the string mentioned above we'll cast /// the received arguments to XboxGameBarWidgetActivatedEventArgs type, initialize the communication /// between Xbox Game Bar and the Widget, then navigate to the desired page on our current window. /// </summary> /// <param name="args"></param> protected override void OnActivated(IActivatedEventArgs args) { XboxGameBarWidgetActivatedEventArgs widgetArgs = null; if (args.Kind == ActivationKind.Protocol) { var protocolArgs = args as IProtocolActivatedEventArgs; string protocolScheme = protocolArgs.Uri.Scheme; if (protocolScheme.Equals("ms-gamebarwidget")) { widgetArgs = args as XboxGameBarWidgetActivatedEventArgs; } } if (widgetArgs != null) { if (widgetArgs.IsLaunchActivation) { var rootFrame = new Frame(); rootFrame.NavigationFailed += OnNavigationFailed; Window.Current.Content = rootFrame; ytgbw = new XboxGameBarWidget(widgetArgs, Window.Current.CoreWindow, rootFrame); rootFrame.Navigate(typeof(MainPage)); Window.Current.Closed += WidgetWindow_Closed; Window.Current.Activate(); } } }
private async void Widget_RequestedThemeChanged(XboxGameBarWidget sender, object args) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { RequestedTheme = iWidget.RequestedTheme; }); }
private async void Widget_VisibleChanged(XboxGameBarWidget sender, object args) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() => { if (iWidget.Visible) { if (iCameraPreview.CameraHelper == null || iCameraStopped == true) { // Initialize the CameraPreview control and subscribe to the events iCameraPreview.PreviewFailed += CameraPreviewControl_PreviewFailed; iErrorMessage.Text = "Starting camera..."; await iCameraPreview.StartAsync(); iErrorMessage.Text = "Camera started."; iCameraPreview.CameraHelper.FrameArrived += CameraPreviewControl_FrameArrived; iRect = SettingCroppingRect; iCameraStopped = false; } else { iErrorMessage.Text = "Camera already started."; } } else { // Sadly this is not called when locking the screen with Win+L and our widget is pinned iCameraPreview.PreviewFailed -= CameraPreviewControl_PreviewFailed; iCameraPreview.CameraHelper.FrameArrived -= CameraPreviewControl_FrameArrived; iCameraPreview.Stop(); iErrorMessage.Text = "Stopping camera..."; await iCameraPreview.CameraHelper.CleanUpAsync(); iErrorMessage.Text = "Camera stopped."; iCameraStopped = true; } }); }
private void WidgetSettingsWindowClosed(object sender, Windows.UI.Core.CoreWindowEventArgs e) { // Unregister events Window.Current.Closed -= WidgetSettingsWindowClosed; // Cleanup game bar objects _widget = null; }
/// <summary> /// Invoked when application execution is being suspended. Normally we /// wouldn't know if the app was being terminated or just suspended at this /// point. However, the app will never be suspended if Game Bar has an /// active widget connection to it, so if you see this call it's safe to /// cleanup any widget related objects. Keep in mind if all widgets are closed /// and you have a foreground window for your app, this could still result in /// suspend or terminate. Regardless, it should always be safe to cleanup /// your widget related objects. /// </summary> /// <param name="sender">The source of the suspend request.</param> /// <param name="e">Details about the suspend request.</param> private void OnSuspending(object sender, SuspendingEventArgs e) { var deferral = e.SuspendingOperation.GetDeferral(); widget1 = null; deferral.Complete(); }
/// <summary> /// Invoked when application execution is being suspended. Application state is saved /// without knowing whether the application will be terminated or resumed with the contents /// of memory still intact. /// </summary> /// <param name="sender">The source of the suspend request.</param> /// <param name="e">Details about the suspend request.</param> private void OnSuspending(object sender, SuspendingEventArgs e) { var deferral = e.SuspendingOperation.GetDeferral(); widget = null; //TODO: Save application state and stop any background activity deferral.Complete(); }
private async void Widget_RequestedThemeChanged(XboxGameBarWidget sender, object args) { await RequestedThemeTextBlock.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { SetRequestedThemeState(); SetBackgroundColor(); }); }
private async void Widget_RequestedOpacityChanged(XboxGameBarWidget sender, object args) { await BackgroundGrid.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // adjust the opacity of your background as appropriate widget = sender; BackgroundGrid.Opacity = widget.RequestedOpacity; }); }
private async void Widget_SettingsClicked(XboxGameBarWidget sender, object args) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { drawCrosshair(); }); await widget.ActivateSettingsAsync(); }
/// <summary> /// Wird aufgerufen, wenn die Ausführung der Anwendung angehalten wird. Der Anwendungszustand wird gespeichert, /// ohne zu wissen, ob die Anwendung beendet oder fortgesetzt wird und die Speicherinhalte dabei /// unbeschädigt bleiben. /// </summary> /// <param name="sender">Die Quelle der Anhalteanforderung.</param> /// <param name="e">Details zur Anhalteanforderung.</param> private void OnSuspending(object sender, SuspendingEventArgs e) { var deferral = e.SuspendingOperation.GetDeferral(); this.widgetBrowser = null; this.widgetBrowserSettings = null; deferral.Complete(); }
private void WidgetMainWindowClosed(object sender, Windows.UI.Core.CoreWindowEventArgs e) { // Unregister events Window.Current.Closed -= WidgetMainWindowClosed; _widget.SettingsClicked -= Widget_SettingsClicked; // Cleanup game bar objects _widget = null; _widgetControl = null; }
protected override void OnNavigatedTo(NavigationEventArgs e) { widget = e.Parameter as XboxGameBarWidget; if (widget != null) { widget.RequestedOpacityChanged += Widget_RequestedOpacityChanged; widget.RequestedThemeChanged += Widget_RequestedThemeChanged; } }
private void OnSuspending(object sender, SuspendingEventArgs e) { Debug.WriteLine("OnSuspending"); var deferral = e.SuspendingOperation.GetDeferral(); widgetMainSettings = null; widgetMain = null; //TODO: Save application state and stop any background activity deferral.Complete(); }
private async void Widget_RequestedOpacityChanged(XboxGameBarWidget sender, object args) { if (!opacityOverride.HasValue) { await RequestedOpacityTextBlock.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { SetRequestedOpacityState(); SetBackgroundOpacity(); }); } }
private void HandleGameBarWidgetActivation(IActivatedEventArgs args) { Log.Info("HandleGameBarWidgetActivation"); var widgetArgs = args as XboxGameBarWidgetActivatedEventArgs; if (widgetArgs == null || !widgetArgs.IsLaunchActivation) { return; } Log.Info("Game bar widget activation for {widgetExtensionId}", widgetArgs.AppExtensionId); var widgetRootFrame = new Frame(); widgetRootFrame.NavigationFailed += OnNavigationFailed; Window.Current.Content = widgetRootFrame; if (widgetArgs.AppExtensionId == "WidgetMain") { widgetMain = new XboxGameBarWidget( widgetArgs, Window.Current.CoreWindow, widgetRootFrame ); Window.Current.Closed += WidgetMainWindow_Closed; widgetMain.VisibleChanged += AnyWidget_VisibleChanged; if (AppState.Data.TokenData.IsValid()) { widgetRootFrame.Navigate(typeof(WidgetMainView), widgetMain); } else { widgetRootFrame.Navigate(typeof(WidgetNotAuthedView), widgetMain); } } else if (widgetArgs.AppExtensionId == "WidgetMainSettings") { widgetMainSettings = new XboxGameBarWidget( widgetArgs, Window.Current.CoreWindow, widgetRootFrame ); Window.Current.Closed += WidgetMainSettingsWindow_Closed; widgetMainSettings.VisibleChanged += AnyWidget_VisibleChanged; widgetRootFrame.Navigate(typeof(WidgetSettingsView), widgetMainSettings); } Window.Current.Activate(); }
protected override void OnActivated(IActivatedEventArgs args) { XboxGameBarWidgetActivatedEventArgs widgetArgs = null; if (args.Kind == ActivationKind.Protocol) { var protocolArgs = args as IProtocolActivatedEventArgs; string scheme = protocolArgs.Uri.Scheme; if (scheme.Equals("ms-gamebarwidget")) { widgetArgs = args as XboxGameBarWidgetActivatedEventArgs; } } if (widgetArgs != null) { if (widgetArgs.IsLaunchActivation) { var rootFrame = new Frame(); rootFrame.NavigationFailed += OnNavigationFailed; Window.Current.Content = rootFrame; if (widgetArgs.AppExtensionId == "Crosshair") { crosshair = new XboxGameBarWidget( widgetArgs, Window.Current.CoreWindow, rootFrame); rootFrame.Navigate(typeof(Crosshair), crosshair); Window.Current.Closed += CrosshairWindow_Closed; } else if (widgetArgs.AppExtensionId == "Settings") { settings = new XboxGameBarWidget( widgetArgs, Window.Current.CoreWindow, rootFrame); rootFrame.Navigate(typeof(Settings)); Window.Current.Closed += SettingsWindow_Closed; } else { return; } Window.Current.Activate(); } } }
protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); switch (e.Parameter) { case null: return; case XboxGameBarWidget widget: _widget = widget; Window.Current.Closed += WidgetSettingsWindowClosed; break; } }
private async void Widget_GameBarDisplayModeChanged(XboxGameBarWidget sender, object args) { await NewListGrid.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { //If the widget is pinned and the overlay isn't on, hide the New List grid. if (sender.GameBarDisplayMode == XboxGameBarDisplayMode.PinnedOnly && sender.Pinned) { NewListGrid.Height = 0; } else { NewListGrid.Height = 40; } }); }
protected override void OnNavigatedTo(NavigationEventArgs e) { widget = e.Parameter as XboxGameBarWidget; ViewModel.Widget = widget; //Hook up events for when the ui is updated. if (widget != null) { widget.SettingsClicked += Widget_SettingsClicked; widget.RequestedOpacityChanged += Widget_RequestedOpacityChanged; widget.GameBarDisplayModeChanged += Widget_GameBarDisplayModeChanged; Widget_RequestedOpacityChanged(widget, null); Widget_GameBarDisplayModeChanged(widget, null); } }
protected override void OnNavigatedTo(NavigationEventArgs e) { iWidget = e.Parameter as XboxGameBarWidget; // Hook up the settings clicked event iWidget.SettingsClicked += Widget_SettingsClicked; iWidget.GameBarDisplayModeChanged += Widget_GameBarDisplayModeChanged; iWidget.VisibleChanged += Widget_VisibleChanged; iWidget.RequestedThemeChanged += Widget_RequestedThemeChanged; // Create a software bitmap source and set it to the Xaml Image control source. iSoftwareBitmapSource = new SoftwareBitmapSource(); iImageCameraPreview.Source = iSoftwareBitmapSource; iImageCamera.Source = iSoftwareBitmapSource; // Not working for some reason, could be because it not available when only one camera on your system //iCameraPreview.IsFrameSourceGroupButtonVisible = true; }
private async void Widget_GameBarDisplayModeChanged(XboxGameBarWidget sender, object args) { //Need to adjust Disabled visual stype await NoteTextBox.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { if (sender.GameBarDisplayMode == XboxGameBarDisplayMode.PinnedOnly && sender.Pinned) { NoteTextBox.IsEnabled = false; HeaderTextBox.IsEnabled = false; } else { NoteTextBox.IsEnabled = true; HeaderTextBox.IsEnabled = true; } }); }
protected override void OnNavigatedTo(NavigationEventArgs e) { widget = e.Parameter as XboxGameBarWidget; gameBarWebAuth = new XboxGameBarWebAuthenticationBroker(widget); if (widget == null) { Debug.WriteLine("Widget parameter is null"); return; } Debug.WriteLine("WidgetMainView OnNavigatedTo setting widget settings"); widget.MaxWindowSize = new Size(1500, 1500); widget.MinWindowSize = new Size(200, 100); widget.HorizontalResizeSupported = true; widget.VerticalResizeSupported = true; }
private async void Widget_SettingsClicked(XboxGameBarWidget sender, object args) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { // Toggle bitween settings mode and camera mode if (iGridSettings.Visibility == Visibility.Visible) { iGridSettings.Visibility = Visibility.Collapsed; iGridCamera.Visibility = Visibility.Visible; } else { iGridSettings.Visibility = Visibility.Visible; iGridCamera.Visibility = Visibility.Collapsed; } }); }
protected override void OnNavigatedTo(NavigationEventArgs e) { widget = e.Parameter as XboxGameBarWidget; widgetControl = new XboxGameBarWidgetControl(widget); if (widget != null) { Windows.Foundation.Size size; size.Height = 160; size.Width = 160 * clocks.Count; widget.TryResizeWindowAsync(size); } // Hook up events for when the ui is updated. widget.SettingsClicked += Widget_SettingsClicked; widget.RequestedOpacityChanged += Widget_RequestedOpacityChanged; SetBackgroundOpacity(); }
protected override void OnNavigatedTo(NavigationEventArgs e) { widget = e.Parameter as XboxGameBarWidget; widgetControl = new XboxGameBarWidgetControl(widget); gameBarWebAuth = new XboxGameBarWebAuthenticationBroker(widget); widgetDarkThemeBrush = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 38, 38, 38)); widgetLightThemeBrush = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 219, 219, 219)); // Hook up events for when the ui is updated. widget.SettingsClicked += Widget_SettingsClicked; widget.PinnedChanged += Widget_PinnedChanged; widget.FavoritedChanged += Widget_FavoritedChanged; widget.RequestedOpacityChanged += Widget_RequestedOpacityChanged; widget.RequestedThemeChanged += Widget_RequestedThemeChanged; widget.VisibleChanged += Widget_VisibleChanged; widget.WindowStateChanged += Widget_WindowStateChanged; widget.GameBarDisplayModeChanged += Widget_GameBarDisplayModeChanged; SetPinnedStateTextBox(); SetFavoritedState(); SetRequestedOpacityState(); SetRequestedThemeState(); OutputVisibleState(); OutputWindowState(); OutputGameBarDisplayMode(); SetBackgroundColor(); SetBackgroundOpacity(); HorizontalResizeSupportedCheckBox.IsChecked = widget.HorizontalResizeSupported; VerticalResizeSupportedCheckBox.IsChecked = widget.VerticalResizeSupported; PinningSupportedCheckBox.IsChecked = widget.PinningSupported; SettingsSupportedCheckBox.IsChecked = widget.SettingsSupported; MinWindowHeightBox.Text = widget.MinWindowSize.Height.ToString(); MinWindowWidthBox.Text = widget.MinWindowSize.Width.ToString(); MaxWindowHeightBox.Text = widget.MaxWindowSize.Height.ToString(); MaxWindowWidthBox.Text = widget.MaxWindowSize.Width.ToString(); }