예제 #1
0
파일: PanelBase.cs 프로젝트: Alexof/BOB
        /// <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;
        }