Esempio n. 1
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            _compositor = ElementCompositionPreview.GetElementVisual(this)?.Compositor;

            // User the events on the ink presenter
            _inkPresenter = MyInkCanvas.InkPresenter;
            _inkPresenter.InputDeviceTypes = CoreInputDeviceTypes.Mouse | CoreInputDeviceTypes.Pen |
                                             CoreInputDeviceTypes.Touch;
            _inkPresenter.StrokesCollected += InkPresenter_StrokesCollected;
            _inkPresenter.StrokesErased    += InkPresenter_StrokesErased;
            _inkPresenter.UnprocessedInput.PointerPressed += UnprocessedInput_PointerPressed;
            _inkPresenter.InputProcessingConfiguration.RightDragAction = InkInputRightDragAction.LeaveUnprocessed;

            // Radial controller used for recognition
            if (RadialController.IsSupported())
            {
                App.RadialController.ButtonPressed += RadialController_ButtonPressed;

                // Supress menu of controller
                _radialConfiguration = RadialControllerConfiguration.GetForCurrentView();
                _radialConfiguration.ActiveControllerWhenMenuIsSuppressed = App.RadialController;
                _radialConfiguration.IsMenuSuppressed = true;
            }

            // When using Cortana perform app protocol recognition
            App.ProtocolSubject.Subscribe(dataEventArgs => App_Protocol(dataEventArgs));

            ImageAnimationSetup();
        }
Esempio n. 2
0
        private async void InitializeRadialController()
        {
            if (!ApiInformation.IsTypePresent(typeof(RadialController).FullName))
            {
                return;
            }

            if (RadialController.IsSupported())
            {
                myController = RadialController.CreateForCurrentView();
            }

            if (myController == null)
            {
                return;
            }

            myController.RotationResolutionInDegrees = 1;
            myController.UseAutomaticHapticFeedback  = false;

            await VM.InitializeTask;

            if (!isLoaded)
            {
                return;
            }

            RandomAccessStreamReference icon = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/StoreLogo.png"));

            // Create a menu item for the custom tool.
            myController.Menu.Items.Clear();

            if (VM.SupportsDimming)
            {
                myController.Menu.Items.Add(RadialControllerMenuItem.CreateFromIcon("Brightness", RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/Brightness.png"))));
            }
            if (VM.SupportsColor)
            {
                myController.Menu.Items.Add(RadialControllerMenuItem.CreateFromIcon("Saturation", RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/Saturation.png"))));
                myController.Menu.Items.Add(RadialControllerMenuItem.CreateFromIcon("Hue", RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/HueIcon.png"))));
            }

            var config = RadialControllerConfiguration.GetForCurrentView();

            config.SetDefaultMenuItems(new RadialControllerSystemMenuItemKind[] { });


            supportsHaptics               = ApiInformation.IsTypePresent("Windows.Devices.Haptics.SimpleHapticsController");
            myController.ButtonClicked   += MyController_ButtonClicked;
            myController.RotationChanged += MyController_RotationChanged;

            SurfaceDialTip.Visibility = Visibility.Visible;
        }
Esempio n. 3
0
        public SettingsPage()
        {
            InitializeComponent();

            _coreTitleBar.ExtendViewIntoTitleBar = true;
            Window.Current.SetTitleBar(GrdTitle);

            if (!RadialController.IsSupported())
            {
                ToggleVibrate.IsEnabled    = false;
                BtnWheelSettings.IsEnabled = false;
            }
        }
        protected override void OnNavigatedFrom(NavigationEventArgs e)
        {
            if (RadialController.IsSupported())
            {
                _radialConfiguration.IsMenuSuppressed = false;

                _radialController.RotationChanged      -= RadialController_RotationChanged;
                _radialController.ScreenContactStarted -= RadialController_ScreenContactStarted;
                _radialController.ScreenContactEnded   -= RadialController_ScreenContactEnded;
                _radialController.ButtonPressed        -= RadialController_ButtonPressed;
                _radialController.ButtonReleased       -= RadialController_ButtonReleased;
            }

            _effect.Dispose();
            _canvasBitmap.Dispose();
            _canvasRenderTarget.Dispose();
        }
Esempio n. 5
0
        public void RegisterSurfaceDial()
        {
            if (RadialController.IsSupported())
            {
                _diaoController = RadialController.CreateForCurrentView();
                _diaoController.UseAutomaticHapticFeedback  = Settings.EnableVibrateForSurfaceDial;
                _diaoController.RotationResolutionInDegrees = 1;

                // Opacity Tool
                DiaoToolOpacity = RadialControllerMenuItem.CreateFromFontGlyph(Utils.GetResource("Tracing.Core/Resources/SurfaceDialMenu/Opacity"), "\xE71C", "Segoe MDL2 Assets");
                _diaoController.Menu.Items.Add(DiaoToolOpacity);
                DiaoToolOpacity.Invoked += (sender, args) =>
                {
                    OpacityInvoked?.Invoke(sender, args);
                };

                // Undo Tool
                DiaoToolUndoRedo = RadialControllerMenuItem.CreateFromFontGlyph(Utils.GetResource("Tracing.Core/Resources/SurfaceDialMenu/Undo"), "\xE10E", "Segoe MDL2 Assets");
                _diaoController.Menu.Items.Add(DiaoToolUndoRedo);
                DiaoToolUndoRedo.Invoked += (sender, args) =>
                {
                    UndoRedoInvoked?.Invoke(sender, args);
                };

                // Zoom Tool
                DiaoToolZoom = RadialControllerMenuItem.CreateFromKnownIcon(Utils.GetResource("Tracing.Core/Resources/SurfaceDialMenu/Zoom"), RadialControllerMenuKnownIcon.Zoom);
                _diaoController.Menu.Items.Add(DiaoToolZoom);
                DiaoToolZoom.Invoked += (sender, args) =>
                {
                    ZoomInvoked?.Invoke(sender, args);
                };

                // AlignmentGrid Tool
                DiaoToolAlignmentGrid = RadialControllerMenuItem.CreateFromFontGlyph(Utils.GetResource("Tracing.Core/Resources/SurfaceDialMenu/AlignmentGrid"), "\xE80A", "Segoe MDL2 Assets");
                _diaoController.Menu.Items.Add(DiaoToolAlignmentGrid);
                DiaoToolAlignmentGrid.Invoked += (sender, args) =>
                {
                    AlignmentGridInvoked?.Invoke(sender, args);
                };

                _diaoController.RotationChanged += DiaoController_RotationChanged;

                DiaoConfig = RadialControllerConfiguration.GetForCurrentView();
                DiaoConfig.SetDefaultMenuItems(new RadialControllerSystemMenuItemKind[] { });
            }
        }
Esempio n. 6
0
        public MainPage()
        {
            this.InitializeComponent();

            colourShower = new ShowColourHue();

            // Create a reference to the RadialController.
            var supported = RadialController.IsSupported();

            if (!supported)
            {
                return;
            }
            var controller = RadialController.CreateForCurrentView();

            // Create the icons for the dial menu
            var iconBright = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/bright.png"));
            var iconColor  = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/Color.png"));

            // Create the items for the menu
            var itemBright = RadialControllerMenuItem.CreateFromIcon("Bright", iconBright);
            var itemColor  = RadialControllerMenuItem.CreateFromIcon("Color", iconColor);

            // Add the items to the menu
            controller.Menu.Items.Add(itemBright);
            controller.Menu.Items.Add(itemColor);

            // Select the correct tool when the item is selected
            itemBright.Invoked += (s, e) => _currentTool = CurrentTool.Bright;
            itemColor.Invoked  += (s, e) => _currentTool = CurrentTool.Color;

            // Get all named colors and create brushes from them
            _namedBrushes = typeof(Colors).GetRuntimeProperties().Select(c => new SolidColorBrush((Color)c.GetValue(null))).ToList();

            controller.RotationChanged += ControllerRotationChanged;

            // Leave only the Volume default item - Zoom and Undo won't be used
            RadialControllerConfiguration config = RadialControllerConfiguration.GetForCurrentView();

            config.SetDefaultMenuItems(new[] { RadialControllerSystemMenuItemKind.Volume });
        }
        /// <summary>
        /// TODO: 3. Dial Control
        /// </summary>
        private void SetupDialControl()
        {
            if (RadialController.IsSupported())
            {
                // Singleton instance for the app using RadialController.CreateForCurrentView();
                _radialController = App.RadialController;

                // Suppress the current menu from the dial
                _radialConfiguration = RadialControllerConfiguration.GetForCurrentView();
                _radialConfiguration.ActiveControllerWhenMenuIsSuppressed = App.RadialController;
                _radialConfiguration.IsMenuSuppressed = true;

                _radialController.RotationResolutionInDegrees = _normalMovement;
                _radialController.ButtonHolding        += RadialController_ButtonHolding;
                _radialController.RotationChanged      += RadialController_RotationChanged;
                _radialController.ScreenContactStarted += RadialController_ScreenContactStarted;
                _radialController.ScreenContactEnded   += RadialController_ScreenContactEnded;
                _radialController.ButtonPressed        += RadialController_ButtonPressed;
                _radialController.ButtonReleased       += RadialController_ButtonReleased;
            }
        }