Example #1
0
 public EditableText()
 {
     this.backgroundSprt = new UISprite(9);
     base.RootUIElement.AddChildLast(this.backgroundSprt);
     this.backgroundSprt.ShaderType = ShaderType.Texture;
     this.backgroundSprt.Image      = new ImageAsset(SystemImageAsset.EditableTextBackgroundNormal);
     this.backgroundNinePatchMargin = AssetManager.GetNinePatchMargin(SystemImageAsset.EditableTextBackgroundNormal);
     this.textSprt = new UISprite(1);
     base.RootUIElement.AddChildLast(this.textSprt);
     this.textSprt.ShaderType = ShaderType.TextTexture;
     this.DefaultText         = "Please input the text.";
     this.DefaultFont         = UISystem.DefaultFont;
     this.DefaultTextColor    = new UIColor(0.75f, 0.75f, 0.75f, 0.75f);
     this.Text                = "";
     this.Font                = this.DefaultFont;
     this.TextColor           = TextRenderHelper.DefaultTextColor;
     this.TextShadow          = null;
     this.HorizontalAlignment = HorizontalAlignment.Left;
     this.VerticalAlignment   = VerticalAlignment.Middle;
     this.LineBreak           = LineBreak.Character;
     this.TextTrimming        = TextTrimming.EllipsisCharacter;
     this.LineGap             = 0f;
     this.Width               = 360f;
     this.Height              = 56f;
     this.PriorityHit         = true;
     this.TextInputMode       = (TextInputMode)0;
     this.updateFlags         = (EditableText.UpdateFlags.Background | EditableText.UpdateFlags.Text);
 }
Example #2
0
 protected internal override void Render()
 {
     if (this.Width != 0f && this.Height != 0f)
     {
         this.UpdateBackgroundSprite();
         this.UpdateTextSprite();
     }
     this.updateFlags = (EditableText.UpdateFlags) 0;
     base.Render();
 }
Example #3
0
 private void UpdateBackgroundSprite()
 {
     if ((this.updateFlags & EditableText.UpdateFlags.Background) == EditableText.UpdateFlags.Background)
     {
         UISpriteUnit unit = this.backgroundSprt.GetUnit(0);
         unit.Width  = this.Width;
         unit.Height = this.Height;
         UISpriteUtility.SetupNinePatch(this.backgroundSprt, this.Width, this.Height, 0f, 0f, this.backgroundNinePatchMargin);
         this.updateFlags &= ~EditableText.UpdateFlags.Background;
     }
 }
Example #4
0
 private void UpdateTextSprite()
 {
     if ((this.updateFlags & EditableText.UpdateFlags.Text) == EditableText.UpdateFlags.Text)
     {
         UISpriteUnit unit = this.textSprt.GetUnit(0);
         unit.X      = 10f;
         unit.Y      = 4f;
         unit.Width  = this.Width - 20f;
         unit.Height = this.Height - 8f;
         TextRenderHelper textRenderHelper = new TextRenderHelper();
         textRenderHelper.HorizontalAlignment = this.HorizontalAlignment;
         textRenderHelper.VerticalAlignment   = this.VerticalAlignment;
         textRenderHelper.LineBreak           = this.LineBreak;
         textRenderHelper.TextTrimming        = this.TextTrimming;
         textRenderHelper.LineGap             = this.LineGap;
         if (string.IsNullOrEmpty(this.Text))
         {
             unit.Color               = this.DefaultTextColor;
             textRenderHelper.Font    = this.DefaultFont;
             this.textSprt.ShaderType = ShaderType.TextTexture;
             if (this.textSprt.Image != null)
             {
                 this.textSprt.Image.Dispose();
             }
             this.textSprt.Image = textRenderHelper.DrawText(ref this.defaultText, (int)unit.Width, (int)unit.Height);
         }
         else
         {
             string text;
             if (this.TextInputMode == (TextInputMode)2)
             {
                 text = new string('*', this.Text.Length);
             }
             else
             {
                 text = this.Text;
             }
             unit.Color               = this.TextColor;
             textRenderHelper.Font    = this.Font;
             this.textSprt.ShaderType = ShaderType.TextTexture;
             if (this.textSprt.Image != null)
             {
                 this.textSprt.Image.Dispose();
             }
             this.textSprt.Image = textRenderHelper.DrawText(ref text, (int)unit.Width, (int)unit.Height);
         }
         if (this.TextShadow != null)
         {
             this.textSprt.InternalShaderType = InternalShaderType.TextureAlphaShadow;
             this.textSprt.ShaderUniforms["u_ShadowColor"] = new float[]
             {
                 this.TextShadow.Color.R,
                 this.TextShadow.Color.G,
                 this.TextShadow.Color.B,
                 this.TextShadow.Color.A
             };
             this.textSprt.ShaderUniforms["u_ShadowOffset"] = new float[]
             {
                 this.TextShadow.HorizontalOffset / (float)this.textSprt.Image.Width,
                 this.TextShadow.VerticalOffset / (float)this.textSprt.Image.Height
             };
         }
         this.updateFlags &= ~EditableText.UpdateFlags.Text;
     }
 }