/// <summary> /// Constructor. /// </summary> internal BOBPanelBase() { // Basic behaviour. autoLayout = false; canFocus = true; isInteractive = true; // Appearance. backgroundSprite = "MenuPanel2"; opacity = PanelOpacity; // Size. size = new Vector2(PanelWidth, PanelHeight); // Drag bar. UIDragHandle dragHandle = AddUIComponent <UIDragHandle>(); dragHandle.width = this.width - 50f; dragHandle.height = this.height; dragHandle.relativePosition = Vector3.zero; dragHandle.target = this; // Close button. UIButton closeButton = AddUIComponent <UIButton>(); closeButton.relativePosition = new Vector2(width - 35, 2); closeButton.normalBgSprite = "buttonclose"; closeButton.hoveredBgSprite = "buttonclosehover"; closeButton.pressedBgSprite = "buttonclosepressed"; closeButton.eventClick += (component, clickEvent) => CloseEvent(); // Name filter. nameFilter = UIControls.SmallLabelledTextField(this, width - 200f - Margin, TitleHeight + Margin, Translations.Translate("BOB_FIL_NAME")); // Event handlers for name filter textbox. nameFilter.eventTextChanged += (control, text) => LoadedList(); nameFilter.eventTextSubmitted += (control, text) => LoadedList(); // Vanilla filter. hideVanilla = UIControls.LabelledCheckBox((UIComponent)(object)this, nameFilter.relativePosition.x, nameFilter.relativePosition.y + nameFilter.height + (Margin / 2f), Translations.Translate("BOB_PNL_HDV"), 12f, 0.7f); hideVanilla.isChecked = ModSettings.hideVanilla; hideVanilla.eventCheckChanged += VanillaCheckChanged; // Mode label. modeLabel = UIControls.AddLabel(this, Margin, ToggleHeaderY, Translations.Translate("BOB_PNL_MOD"), textScale: 0.8f); // Tree/Prop checkboxes. propCheck = IconToggleCheck(this, Margin, ToggleY, "BOB-PropsSmall", "BOB_PNL_PRP"); treeCheck = IconToggleCheck(this, Margin + ToggleSize, ToggleY, "BOB-TreesSmall", "BOB_PNL_TRE"); propCheck.isChecked = !InitialTreeCheckedState; treeCheck.isChecked = InitialTreeCheckedState; propCheck.eventCheckChanged += PropCheckChanged; treeCheck.eventCheckChanged += TreeCheckChanged; }