Exemple #1
0
        IWidget SetupUi()
        {
            var styleSystem = uiManager.UIStyle;

            var mapX = new TextField(styleSystem);

            mapX.Anchor = AnchoredRect.CreateCentered(100);
            mapX.Content.Document.DocumentModified += (_, _) => navModel.MapXText = mapX.Text;

            var mapY = new TextField(styleSystem);

            mapY.Anchor = AnchoredRect.CreateCentered(100);
            mapY.Content.Document.DocumentModified += (_, _) => navModel.MapYText = mapY.Text;

            var button = new Button(styleSystem, "Go!");

            button.ActionPerformed   += (_, _) => navModel.TryNavigate(GameRendering);
            navModel.PropertyChanged += (_, _) => button.Enabled = navModel.Valid;

            var rotateLeftButton = new Button(styleSystem, "Left");

            rotateLeftButton.ActionPerformed         +=
                (_, _) => GameRendering.RotationSteps = (GameRendering.RotationSteps + 1) % 4;

            var rotateRightButton = new Button(styleSystem, "Right");

            rotateRightButton.ActionPerformed        +=
                (_, _) => GameRendering.RotationSteps = (GameRendering.RotationSteps - 1) % 4;

            var hbox = new BoxGroup(styleSystem, Orientation.Horizontal, 5);

            hbox.Anchor = AnchoredRect.CreateBottomLeftAnchored();
            hbox.AddStyleClass("opaque-root");
            hbox.Add(new Label(styleSystem, "Move to: X: "));
            hbox.Add(mapX);
            hbox.Add(new Label(styleSystem, "Y: "));
            hbox.Add(mapY);
            hbox.Add(button);
            hbox.Add(rotateLeftButton);
            hbox.Add(rotateRightButton);

            group = new Group(styleSystem);
            group.Add(hbox);
            group.Focusable     = true;
            group.MouseDragged += OnMouseDragged;
            group.MouseDown    += OnMouseDragStarted;
            group.MouseUp      += OnMouseDragFinished;
            group.KeyReleased  += Root_KeyReleased;
            group.MouseMoved   += OnMouseMoved;
            group.Focused       = true;
            group.Anchor        = AnchoredRect.Full;
            return(group);
        }