Пример #1
0
    public void AddLinkLabel(string referPanelKey)
    {
        if (prefInputLabel)
        {
            // gen new label
            LinkLabel label = Instantiate(prefLinkLabel, transform).GetComponent <LinkLabel>();
            label.Init(GetParent(), referPanelKey);
            lLabels.Add(label);

            // refresh canvas
            CanvasMgr.Instance.RefreshCanvas();
        }
    }
Пример #2
0
        public LoginWindow(Manager manager, LoginScreen screen) : base(manager)
        {
            this.screen = screen;

            // Events

            // Listen for valid response from auth server
            screen.Client.Events.Network.Auth.InitReceived.AddHandler(OnInit);

            // Listen for failed login response from auth server
            screen.Client.Events.Network.Auth.FailedLogin.AddHandler(OnFailedLogin);

            // Setup the window
            CaptionVisible   = false;
            Caption.Text     = "Welcome to Bricklayer!";
            Description.Text =
                "An open source, fully moddable and customizable 2D\nbuilding game.";
            Movable         = false;
            Resizable       = false;
            Width           = 450;
            Height          = 218;
            TopPanel.Height = 72;
            Shadow          = true;
            Center();

            // Text boxes
            txtUsername = new TextBox(Manager);
            txtUsername.Init();
            txtUsername.Width       = ClientWidth / 2 - 16;
            txtUsername.Left        = 8;
            txtUsername.Top         = TopPanel.Bottom + 8;
            txtUsername.Placeholder = "Username";
            txtUsername.Text        = screen.Client.IO.Config.Client.Username;
            Add(txtUsername);

            txtPassword = new TextBox(Manager);
            txtPassword.Init();
            txtPassword.Width       = txtUsername.Width;
            txtPassword.Left        = txtUsername.Left;
            txtPassword.Top         = txtUsername.Bottom + 8;
            txtPassword.Placeholder = "Password";
            txtPassword.Text        = screen.Client.IO.GetPassword();
            txtPassword.Mode        = TextBoxMode.Password;
            Add(txtPassword);

            chkRemember = new CheckBox(Manager);
            chkRemember.Init();
            chkRemember.Width   = txtUsername.Width;
            chkRemember.Left    = txtUsername.Right + 16;
            chkRemember.Top     = txtPassword.Top + 3;
            chkRemember.Text    = "Remember Me";
            chkRemember.Checked = screen.Client.IO.Config.Client.RememberMe;
            Add(chkRemember);

            // Sign in buttons
            btnLoginAccount = new Button(Manager);
            btnLoginAccount.Init();
            btnLoginAccount.Width  = txtUsername.Width;
            btnLoginAccount.Left   = txtUsername.Left;
            btnLoginAccount.Top    = 8;
            btnLoginAccount.Click += LoginAccountClick;
            btnLoginAccount.Text   = "Sign in";
            BottomPanel.Add(btnLoginAccount);

            btnLoginGuest         = new Button(Manager);
            btnLoginGuest.Enabled = false;
            btnLoginGuest.Init();
            btnLoginGuest.Width = btnLoginAccount.Width;
            btnLoginGuest.Left  = btnLoginAccount.Right + 16;
            btnLoginGuest.Top   = btnLoginAccount.Top;
            btnLoginGuest.Text  = "Try as Guest";
            BottomPanel.Add(btnLoginGuest);

            // Links
            lnkForgot = new LinkLabel(Manager);
            lnkForgot.Init();
            lnkForgot.Width     = txtUsername.Width;
            lnkForgot.Alignment = Alignment.MiddleCenter;
            lnkForgot.Left      = txtUsername.Left;
            lnkForgot.Top       = btnLoginAccount.Bottom + 8;
            lnkForgot.Text      = "Forgot Password?";
            lnkForgot.URL       = Constants.Strings.ForgotPasswordURL;
            lnkForgot.ToolTip   = new ToolTip(Manager)
            {
                Text = "A new browser window will be opened."
            };
            BottomPanel.Add(lnkForgot);

            lnkCreateAccount = new LinkLabel(Manager);
            lnkCreateAccount.Init();
            lnkCreateAccount.Width     = txtUsername.Width;
            lnkCreateAccount.Alignment = Alignment.MiddleCenter;
            lnkCreateAccount.Left      = btnLoginGuest.Left;
            lnkCreateAccount.Top       = lnkForgot.Top;
            lnkCreateAccount.Text      = "Create an account";
            lnkCreateAccount.URL       = Constants.Strings.CreateAccountURL;
            BottomPanel.Add(lnkCreateAccount);

            // Color selector
            bodyClr = new ColorPicker(Manager)
            {
                Left = txtUsername.Right + 16, Top = txtUsername.Top, Width = txtUsername.Width - 18 - 8, Saturation = 210, Value = 250
            };
            bodyClr.Init();
            bodyClr.ValueChanged += (sender, args) =>
            {
                BodyImg.Color = bodyClr.SelectedColor;
                // TODO: Update value in the game class
            };
            Add(bodyClr);

            BodyImg = new ImageBox(Manager)
            {
                Left = bodyClr.Right + 8, Top = bodyClr.Top, Width = 18, Height = 18, Image = screen.Client.Content["entity.body"]
            };
            BodyImg.Init();
            Add(BodyImg);

            SmileyImg = new ImageBox(Manager)
            {
                Left = BodyImg.Left, Top = BodyImg.Top, Width = 18, Height = 18, Image = screen.Client.Content["entity.smileys"], SourceRect = new Rectangle(0, 0, 18, 18)
            };
            SmileyImg.Init();
            SmileyImg.ToolTip.Text = "I love this color!";
            Add(SmileyImg);

            bodyClr.Hue = screen.Client.IO.Config.Client.Color;

            BottomPanel.Height = lnkForgot.Bottom + 28;
            BottomPanel.Top    = Height - BottomPanel.Height;
        }