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); }