示例#1
0
        private void InitializeDial()
        {
            radialController = RadialController.CreateForCurrentView();

            // Set rotation resolution to 1 degree of sensitivity.
            radialController.RotationResolutionInDegrees = 36;

            // create new dial menu item
            //ToggleMenuItem =
            //    RadialControllerMenuItem.CreateFromFontGlyph("Toggle Light", "\xE793", "Segoe MDL2 Assets");
            //radialController.Menu.Items.Add(ToggleMenuItem);

            BrightnessMenuItem =
                RadialControllerMenuItem.CreateFromFontGlyph("Brightness", "\xE706", "Segoe MDL2 Assets");
            radialController.Menu.Items.Add(BrightnessMenuItem);

            ColorMenuItem =
                RadialControllerMenuItem.CreateFromFontGlyph("Color", "\xE790", "Segoe MDL2 Assets");
            radialController.Menu.Items.Add(ColorMenuItem);

            // clear all default item
            RadialControllerConfiguration config = RadialControllerConfiguration.GetForCurrentView();

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

            // bind dial menu item to CurrentTool Enum
            //ToggleMenuItem.Invoked += (sender, args) => thisTool = CurrentTool.ToggleItem;
            BrightnessMenuItem.Invoked += (sender, args) => thisTool = CurrentTool.BrightnessItem;
            ColorMenuItem.Invoked      += (sender, args) => thisTool = CurrentTool.ColorItem;

            // subscribe click and rotation of the dial
            radialController.ButtonClicked   += (sender, args) => { RadialController_ButtonClicked(sender, args); };
            radialController.RotationChanged += (sender, args) => { RadialController_RotationChanged(sender, args); };
        }
        public MainPage()
        {
            this.InitializeComponent();
            UpdatePreview();
            highlightedItem = RValue;
            myCanvas.InkPresenter.InputDeviceTypes = Windows.UI.Core.CoreInputDeviceTypes.Pen | Windows.UI.Core.CoreInputDeviceTypes.Touch;

            RValue.ValueChanged += Slider_ValueChanged;
            GValue.ValueChanged += Slider_ValueChanged;
            BValue.ValueChanged += Slider_ValueChanged;

            //Hide our custom tool's UI until it is activated
            ToolPanel.Visibility = Visibility.Collapsed;

            // Create a reference to the RadialController.
            myController = RadialController.CreateForCurrentView();

            // Create a menu item for the custom tool.

            //RadialControllerMenuItem myItem =
            //  RadialControllerMenuItem.CreateFromKnownIcon("Background", RadialControllerMenuKnownIcon.InkColor);

            RadialControllerMenuItem myItem =
                RadialControllerMenuItem.CreateFromFontGlyph("Background", "\xE7B5", "Segoe MDL2 Assets");


            //Add the custom tool's menu item to the menu
            myController.Menu.Items.Add(myItem);

            //Create a handler for when the menu item is selected
            myItem.Invoked += MyItem_Invoked;

            //Create handlers for button and rotational input
            myController.RotationChanged += MyController_RotationChanged;
            myController.ButtonClicked   += MyController_ButtonClicked;

            myController.ButtonPressed  += MyController_ButtonPressed;
            myController.ButtonReleased += MyController_ButtonReleased;

            //Remove Scroll/Zoom/Undo tools as app doesn't support them
            RadialControllerConfiguration config = RadialControllerConfiguration.GetForCurrentView();

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

            //Query user's handedness for on-screen UI
            Windows.UI.ViewManagement.UISettings settings = new Windows.UI.ViewManagement.UISettings();
            isRightHanded = (settings.HandPreference == Windows.UI.ViewManagement.HandPreference.RightHanded);

            //Create handlers for when RadialController provides an on-screen position
            myController.ScreenContactStarted   += MyController_ScreenContactStarted;
            myController.ScreenContactContinued += MyController_ScreenContactContinued;
            myController.ScreenContactEnded     += MyController_ScreenContactEnded;

            //Create handlers for when RadialController focus changes
            myController.ControlAcquired += MyController_ControlAcquired;
            myController.ControlLost     += MyController_ControlLost;
        }
示例#3
0
        private void AddItemsFromFont()
        {
            // Using custom font
            string fontFilePath = GetSharedFilePath("Symbols.ttf");

            radialController.Menu.Items.Add(RadialControllerMenuItem.CreateFromFontGlyph("Custom Font Icon", "\xe102", "Symbols", new Uri(fontFilePath)));

            // Using system font
            radialController.Menu.Items.Add(RadialControllerMenuItem.CreateFromFontGlyph("System Font Icon", "\xD83D\xDC31\x200D\xD83D\xDC64", "Segoe UI Emoji"));
        }
示例#4
0
        private void AddFontGlyphItems()
        {
            // Using system font
            menuItems.Add(RadialControllerMenuItem.CreateFromFontGlyph("Item4", "\x2764", "Segoe UI Emoji"));
            sliders.Add(slider4);
            toggles.Add(toggle4);

            // Using custom font
            menuItems.Add(RadialControllerMenuItem.CreateFromFontGlyph("Item5", "\ue102", "Symbols", new Uri("ms-appx:///Assets/Symbols.ttf")));
            sliders.Add(slider5);
            toggles.Add(toggle5);
        }
示例#5
0
        public MediaPlayerPagePage()
        {
            InitializeComponent();

            mpe.PosterSource = new BitmapImage(new Uri(DefaultPoster));
            mpe.Source       = MediaSource.CreateFromUri(new Uri(DefaultSource));

            _controller = RadialController.CreateForCurrentView();
            _controller.RotationResolutionInDegrees = 5;
            _controller.UseAutomaticHapticFeedback  = false;

            var myItem = RadialControllerMenuItem.CreateFromFontGlyph("El Bruno - Playback", "\xE714", "Segoe MDL2 Assets");

            _controller.Menu.Items.Add(myItem);
            _controller.ButtonClicked   += ControllerButtonClicked;
            _controller.RotationChanged += ControllerRotationChanged;
        }
示例#6
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[] { });
            }
        }
示例#7
0
        private void BuildDialMenu()
        {
            menuItems.Clear();
            dial.Menu.Items.Clear();
            RadialControllerMenuItem briItem = RadialControllerMenuItem.CreateFromFontGlyph(BrightnessText, "", SegoeAssetFont);

            briItem.Invoked += (s, e) =>
            {
                lightMode = LightMode.Brightness;
            };
            RadialControllerMenuItem tempItem = RadialControllerMenuItem.CreateFromFontGlyph(TemperatureText, "", SegoeAssetFont);

            tempItem.Invoked += (s, e) =>
            {
                lightMode = LightMode.Temperature;
            };
            RadialControllerMenuItem colorItem = RadialControllerMenuItem.CreateFromKnownIcon(ColorText, RadialControllerMenuKnownIcon.InkColor);

            colorItem.Invoked += (s, e) =>
            {
                lightMode = LightMode.Color;
            };
            menuItems.Add(briItem);
            menuItems.Add(tempItem);
            menuItems.Add(colorItem);

            for (int i = 0; i < HueHelper.Lights.Count; i++)
            {
                var    internalI = i;
                string light     = HueHelper.Lights[i];
                RadialControllerMenuItem lightItem = RadialControllerMenuItem.CreateFromFontGlyph(light, "", SegoeAssetFont);
                lightItem.Invoked += (s, e) =>
                {
                    if (LightComboBox.Items.Count >= internalI + 1)
                    {
                        LightComboBox.SelectedIndex = internalI;
                    }
                };
                menuItems.Add(lightItem);
            }
            foreach (var item in menuItems)
            {
                dial.Menu.Items.Add(item);
            }
            dialConfig.SetDefaultMenuItems(new List <RadialControllerSystemMenuItemKind>());
        }
示例#8
0
        public MapPagePage()
        {
            locationService = new LocationService();
            Center          = new Geopoint(defaultPosition);
            ZoomLevel       = DefaultZoomLevel;
            InitializeComponent();

            _controller = RadialController.CreateForCurrentView();
            _controller.RotationResolutionInDegrees = 0.2;
            _controller.UseAutomaticHapticFeedback  = false;

            var myItem = RadialControllerMenuItem.CreateFromFontGlyph("El Bruno - Maps", "\xE128", "Segoe MDL2 Assets");

            _controller.Menu.Items.Add(myItem);
            _controller.ButtonClicked   += ControllerButtonClicked;
            _controller.RotationChanged += ControllerRotationChangedAsync;
        }
示例#9
0
        public MainPage()
        {
            this.InitializeComponent();
            // Create a reference to the RadialController.
            var controller = RadialController.CreateForCurrentView();

            // Create the items for the menu
            var itemResize = RadialControllerMenuItem.CreateFromFontGlyph("Resize", "\xE8B9", "Segoe MDL2 Assets");
            var itemRotate = RadialControllerMenuItem.CreateFromFontGlyph("Rotate", "\xE7AD", "Segoe MDL2 Assets");
            var itemMoveX  = RadialControllerMenuItem.CreateFromFontGlyph("MoveX", "\xE8AB", "Segoe MDL2 Assets");
            var itemMoveY  = RadialControllerMenuItem.CreateFromFontGlyph("MoveY", "\xE8CB", "Segoe MDL2 Assets");
            var itemColor  = RadialControllerMenuItem.CreateFromFontGlyph("Color", "\xE7E6", "Segoe MDL2 Assets");

            // Add the items to the menu
            controller.Menu.Items.Add(itemResize);
            controller.Menu.Items.Add(itemRotate);
            controller.Menu.Items.Add(itemMoveX);
            controller.Menu.Items.Add(itemMoveY);
            controller.Menu.Items.Add(itemColor);

            // Select the correct tool when the item is selected
            itemResize.Invoked += (s, e) => _currentTool = CurrentTool.Resize;
            itemRotate.Invoked += (s, e) => _currentTool = CurrentTool.Rotate;
            itemMoveX.Invoked  += (s, e) => _currentTool = CurrentTool.MoveX;
            itemMoveY.Invoked  += (s, e) => _currentTool = CurrentTool.MoveY;
            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 });
            config.ActiveControllerWhenMenuIsSuppressed = controller;
            config.IsMenuSuppressed               = true;
            controller.ButtonHolding             += (s, e) => _isButtonHolding = true;
            controller.ButtonReleased            += (s, e) => _isButtonHolding = false;
            controller.UseAutomaticHapticFeedback = false;
            ToolText.Text = _currentTool.ToString();
        }
示例#10
0
        // Configure RadialController menu and custom tool.
        private void InitializeController(object sender, RoutedEventArgs args)
        {
            // Create a reference to the RadialController.
            radialController = RadialController.CreateForCurrentView();
            // Set rotation resolution to 1 degree of sensitivity.
            radialController.RotationResolutionInDegrees = 1;

            // Create the custom menu items.
            // Here, we use a font glyph for our custom tool.
            radialControllerMenuItem =
                RadialControllerMenuItem.CreateFromFontGlyph("SampleTool", "\xE1E3", "Segoe MDL2 Assets");

            // Add the item to the RadialController menu.
            radialController.Menu.Items.Add(radialControllerMenuItem);

            // Remove built-in tools to declutter the menu.
            // NOTE: The Surface Dial menu must have at least one menu item.
            // If all built-in tools are removed before you add a custom
            // tool, the default tools are restored and your tool is appended
            // to the default collection.
            radialControllerConfig =
                RadialControllerConfiguration.GetForCurrentView();
            radialControllerConfig.SetDefaultMenuItems(
                new RadialControllerSystemMenuItemKind[] { });

            // Declare input handlers for the RadialController.
            // NOTE: These events are only fired when a custom tool is active.
            radialController.ButtonClicked += (clicksender, clickargs) =>
            { RadialController_ButtonClicked(clicksender, clickargs); };
            radialController.RotationChanged += (rotationsender, rotationargs) =>
            { RadialController_RotationChanged(rotationsender, rotationargs); };

            // Begin "Step 6: Customize the device haptics"
            //radialController.ControlAcquired += (hapticssender, hapticsargs) =>
            //{ RadialController_ControlAcquired(hapticssender, hapticsargs); };
            // End "Step 6: Customize the device haptics"
        }
示例#11
0
        public MainPage()
        {
            this.InitializeComponent();

            //Create a reference to the RadialController.
            myController = RadialController.CreateForCurrentView();
            myController.RotationResolutionInDegrees = 5;
            myController.UseAutomaticHapticFeedback  = false;

            //Create menu items for the custom tool.
            volumeItem   = RadialControllerMenuItem.CreateFromFontGlyph("Volume", "\xE767", "Segoe MDL2 Assets");
            playbackItem = RadialControllerMenuItem.CreateFromFontGlyph("Playback", "\xE714", "Segoe MDL2 Assets");

            volumeItem.Invoked   += VolumeItem_Invoked;
            playbackItem.Invoked += PlaybackItem_Invoked;

            //Add the custom tool's menu item to the menu
            myController.Menu.Items.Add(volumeItem);
            myController.Menu.Items.Add(playbackItem);

            //Create handlers for button and rotational input
            myController.RotationChanged += MyController_RotationChanged;
            myController.ButtonClicked   += MyController_ButtonClicked;

            //Remove system's built-in tools
            config = RadialControllerConfiguration.GetForCurrentView();
            config.SetDefaultMenuItems(new RadialControllerSystemMenuItemKind[] { });

            //Set up menu suppression targets
            config.ActiveControllerWhenMenuIsSuppressed = myController;
            myController.ButtonHolding += MyController_ButtonHolding;

            myPlayer.CurrentStateChanged += MyPlayer_CurrentStateChanged;

            //Select the first tool
            myPlayer.Loaded += MyPlayer_Loaded;
        }
 private void AddItemsFromFont()
 {
     // Using system font
     radialController.Menu.Items.Add(RadialControllerMenuItem.CreateFromFontGlyph("System Font Icon", "\xD83D\xDC31\x200D\xD83D\xDC64", "Segoe UI Emoji"));
 }