예제 #1
0
        public override void DoWindowContents(Rect inRect)
        {
            const float categoryPadding      = 10f;
            const float categoryInset        = 30f;
            const float radioLabelInset      = 40f;
            const float mainListingSpacing   = 6f;
            const float subListingSpacing    = 6f;
            const float subListingLabelWidth = 100f;
            const float subListingRowHeight  = 30f;
            const float checkboxListingWidth = 280f;
            const float listingColumnSpacing = 17f;

            var btnSize      = new Vector2(140f, 40f);
            var buttonYStart = inRect.height - btnSize.y;


            //кнопки
            var ev = Event.current;

            if (Widgets.ButtonText(new Rect(inRect.width - btnSize.x * 3, buttonYStart, btnSize.x, btnSize.y), "OCity_LoginForm_BtnEnter".Translate()) ||
                ev.isKey && ev.type == EventType.keyDown && ev.keyCode == KeyCode.Return)
            {
                var msgError = SessionClientController.Login(InputAddr, InputLogin, InputPassword);
                if (msgError == null)
                {
                    StorageData.GlobalData.LastIP.Value        = InputAddr;
                    StorageData.GlobalData.LastLoginName.Value = InputLogin;
                    HugsLibController.SettingsManager.SaveChanges();
                    //Loger.Log("login " + StorageData.GlobalData.LastIP.Value);
                    Close();
                }
            }

            if (Widgets.ButtonText(new Rect(inRect.width - btnSize.x * 2, buttonYStart, btnSize.x, btnSize.y), "OCity_LoginForm_Register".Translate()))
            {
                Close();
                Find.WindowStack.Add(new Dialog_Registration());
            }

            if (Widgets.ButtonText(new Rect(inRect.width - btnSize.x, buttonYStart, btnSize.x, btnSize.y), "OCity_LoginForm_Close".Translate()))
            {
                Close();
            }

            //заголовок
            var mainListing = new Listing_Standard();

            mainListing.verticalSpacing = mainListingSpacing;
            mainListing.Begin(inRect);
            Text.Font = GameFont.Medium;
            mainListing.Label("OCity_LoginForm_LabelEnter".Translate());

            Text.Font = GameFont.Small;
            mainListing.GapLine();
            mainListing.Gap();

            var iresct = mainListing.GetRect(20f);

            //что к чему
            ListableOption item = new ListableOption_WebLink("Что к чему".NeedTranslate(), () =>
            {
                var textForm = new Dialog_TextOut(Dialog_MainOnlineCity.AboutGeneralText);
                Find.WindowStack.Add(textForm);
            }, Dialog_MainOnlineCity.IconForums);

            item.DrawOption(new Vector2(iresct.x, iresct.y), iresct.width);

            //поля ввода
            var textEditSize = new Vector2(150f, 25f);

            TextInput(mainListing, "OCity_LoginForm_Server".Translate(),
                      (sub, rect) =>
            {
                InputAddr = GUI.TextField(new Rect(rect.x, rect.y, textEditSize.x, textEditSize.y), InputAddr, 100);
            });

            TextInput(mainListing, "OCity_LoginForm_Login".Translate(),
                      (sub, rect) =>
            {
                InputLogin = GUI.TextField(new Rect(rect.x, rect.y, textEditSize.x, textEditSize.y), InputLogin, 100);
            });

            TextInput(mainListing, "OCity_LoginForm_Pass".Translate(),
                      (sub, rect) =>
            {
                GUI.SetNextControlName("StartTextField");
                InputPassword = GUI.PasswordField(new Rect(rect.x, rect.y, textEditSize.x, textEditSize.y), InputPassword, "*"[0], 100);
            });

            if (NeedFockus)
            {
                NeedFockus = false;
                GUI.FocusControl("StartTextField");
            }

            mainListing.End();
            //Text.Anchor = TextAnchor.UpperLeft;
        }