예제 #1
0
        public Actor BuildButton(LayoutGroup group, string buttonLabelText, Action onPressCallback, int height = 48)
        {
            var scene       = group.actor.scene;
            var buttonActor = scene.AddActor("Button");

            buttonActor.transform.SetParent(group.actor);
            new BoundingRect(buttonActor, 0, height);
            new NinepatchRenderer(buttonActor, this.style.buttonDefault);
            new Hoverable(buttonActor);
            new Clickable(buttonActor);
            new CallbackOnClick(buttonActor, onPressCallback);
            new ButtonNinepatchHandler(buttonActor, this.style.buttonHover, this.style.buttonPress);
            new LayoutElement(buttonActor).StretchHorizontally();
            new LayoutGroup(buttonActor, Orientation.Vertical).SetMarginSize(new Point(5, 5));
            var buttonLabelActor = scene.AddActor("Button Label");

            buttonLabelActor.transform.SetParent(buttonActor);
            new BoundingRect(buttonLabelActor, Point.Zero);
            var buttonLabelElement = new LayoutElement(buttonLabelActor);

            buttonLabelElement.StretchHorizontally();
            buttonLabelElement.StretchVertically();
            new BoundedTextRenderer(buttonLabelActor, buttonLabelText, this.style.uiElementFont, Color.White, Alignment.Center);

            buttonActor.transform.LocalDepth      = new Depth(-1);
            buttonLabelActor.transform.LocalDepth = new Depth(-1);

            return(buttonActor);
        }