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();
            });
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 private async void Widget_FavoritedChanged(XboxGameBarWidget sender, object args)
 {
     await FavoritedTextBlock.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
     {
         SetFavoritedState();
     });
 }
Esempio n. 4
0
        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));
                }
            }
        }
Esempio n. 5
0
        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();
        }
Esempio n. 6
0
        /// <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;
         }
     });
 }
Esempio n. 9
0
        private void WidgetSettingsWindowClosed(object sender, Windows.UI.Core.CoreWindowEventArgs e)
        {
            // Unregister events
            Window.Current.Closed -= WidgetSettingsWindowClosed;

            // Cleanup game bar objects
            _widget = null;
        }
Esempio n. 10
0
        /// <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();
        }
Esempio n. 11
0
        /// <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();
        }
Esempio n. 12
0
 private async void Widget_RequestedThemeChanged(XboxGameBarWidget sender, object args)
 {
     await RequestedThemeTextBlock.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
     {
         SetRequestedThemeState();
         SetBackgroundColor();
     });
 }
Esempio n. 13
0
 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;
     });
 }
Esempio n. 14
0
        private async void Widget_SettingsClicked(XboxGameBarWidget sender, object args)
        {
            await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
            {
                drawCrosshair();
            });

            await widget.ActivateSettingsAsync();
        }
Esempio n. 15
0
        /// <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();
        }
Esempio n. 16
0
        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;
        }
Esempio n. 17
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            widget = e.Parameter as XboxGameBarWidget;

            if (widget != null)
            {
                widget.RequestedOpacityChanged += Widget_RequestedOpacityChanged;
                widget.RequestedThemeChanged   += Widget_RequestedThemeChanged;
            }
        }
Esempio n. 18
0
        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();
        }
Esempio n. 19
0
 private async void Widget_RequestedOpacityChanged(XboxGameBarWidget sender, object args)
 {
     if (!opacityOverride.HasValue)
     {
         await RequestedOpacityTextBlock.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
         {
             SetRequestedOpacityState();
             SetBackgroundOpacity();
         });
     }
 }
Esempio n. 20
0
        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();
                }
            }
        }
Esempio n. 22
0
        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;
            }
        }
Esempio n. 23
0
 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;
         }
     });
 }
Esempio n. 24
0
        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;
        }
Esempio n. 26
0
 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;
         }
     });
 }
Esempio n. 29
0
        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();
        }
Esempio n. 30
0
        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();
        }