public void Initialize(PopupMenu oldPopupMenu, Selectable defaultSelectable, SubmitAction resetAction, ButtonWithHotkeyImageElement resetButton, IModLayoutManager layout, IModInputHandler inputHandler) { _inputHandler = inputHandler; var fields = typeof(PopupMenu).GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).ToList(); fields.ForEach(field => field.SetValue(this, field.GetValue(oldPopupMenu))); _selectOnActivate = defaultSelectable; _resetAction = resetAction; _resetButton = resetButton; _initialized = false; Layout = layout; InitializeMenu(); }
public ModLayoutButton(Button button, IModMenu menu) : base(button, menu) { var scale = button.transform.localScale; Object.Destroy(Button.GetComponentInChildren <Text>(true).gameObject); var layoutObject = new GameObject("LayoutGroup", typeof(RectTransform)); layoutObject.transform.SetParent(button.transform); var target = layoutObject.AddComponent <Image>(); target.raycastTarget = true; target.color = Color.clear; var layoutGroup = layoutObject.AddComponent <HorizontalLayoutGroup>(); Initialize(menu); layoutGroup.childControlWidth = false; layoutGroup.childControlHeight = false; layoutGroup.childForceExpandHeight = false; layoutGroup.childForceExpandWidth = false; var styleManager = Object.FindObjectOfType <UIStyleManager>(); var styleApplier = ModUIStyleApplier.ReplaceStyleApplier(Button.gameObject); Layout = new ModLayoutManager(layoutGroup, styleManager, styleApplier, scale); }