TESVSnip.UI.RecordControls.TextElement.UpdateText C# (CSharp) Method

UpdateText() protected method

protected UpdateText ( ) : void
return void
        protected virtual void UpdateText()
        {
            var data = GetCurrentData();
            if (element == null || data == null || data.Array == null)
            {
                this.textBox.Text = "<error>";
            }
            else
            {
                bool fitTextBoxToWidth = false;
                var es = element;
                var tb = this.textBox;
                bool hasFlags = es.options.Length == 0 && es.flags.Length > 1;
                switch (element.type)
                {
                    case ElementValueType.UInt:
                        {
                            var value = TypeConverter.h2i(data);
                            if (_pyInterpreterCalc) value = PyInterpreter.ExecuteFunction<uint>(element, value, FunctionOperation.ForReading);
                            _pyInterpreterCalc = false;
                            this.textBox.Text = hasFlags || es.hexview ? "0x" + value.ToString("X8") : value.ToString(CultureInfo.InvariantCulture);
                            //var v = TypeConverter.h2i(data);
                            //this.textBox.Text = element.hexview ? "0x" + v.ToString("X8") : v.ToString();
                        }

                        break;
                    case ElementValueType.Int:
                        {
                            var value = TypeConverter.h2si(data);
                            if (_pyInterpreterCalc) value = PyInterpreter.ExecuteFunction<int>(element, value, FunctionOperation.ForReading);
                            _pyInterpreterCalc = false;
                            this.textBox.Text = hasFlags || es.hexview ? "0x" + value.ToString("X8") : value.ToString(CultureInfo.InvariantCulture);
                            //var v = TypeConverter.h2si(data);
                            //this.textBox.Text = hasFlags || es.hexview ? "0x" + v.ToString("X8") : v.ToString();
                        }

                        break;
                    case ElementValueType.FormID:
                        this.textBox.Text = TypeConverter.h2i(data).ToString("X8");
                        break;
                    case ElementValueType.Float:
                        {
                            var value = TypeConverter.h2f(data);
                            if (_pyInterpreterCalc)
                                value = PyInterpreter.ExecuteFunction<float>(element, value, FunctionOperation.ForReading);
                            _pyInterpreterCalc = false;
                            this.textBox.Text = value.ToString(CultureInfo.InvariantCulture);
                            //this.textBox.Text = TypeConverter.h2f(data).ToString();
                        }
                        break;
                    case ElementValueType.UShort:
                        {
                            var value = TypeConverter.h2s(data);
                            if (_pyInterpreterCalc) value = PyInterpreter.ExecuteFunction<ushort>(element, value, FunctionOperation.ForReading);
                            _pyInterpreterCalc = false;
                            this.textBox.Text = hasFlags || es.hexview ? "0x" + value.ToString("X4") : value.ToString(CultureInfo.InvariantCulture);
                            //var v = TypeConverter.h2s(data);
                            //this.textBox.Text = hasFlags || es.hexview ? "0x" + v.ToString("X4") : v.ToString();
                        }

                        break;
                    case ElementValueType.Short:
                        {
                            var value = TypeConverter.h2ss(data);
                            if (_pyInterpreterCalc) value = PyInterpreter.ExecuteFunction<short>(element, value, FunctionOperation.ForReading);
                            _pyInterpreterCalc = false;
                            this.textBox.Text = hasFlags || es.hexview ? "0x" + value.ToString("X4") : value.ToString(CultureInfo.InvariantCulture);
                            //var v = TypeConverter.h2ss(data);
                            //tb.Text = hasFlags || es.hexview ? "0x" + v.ToString("X4") : v.ToString();
                        }

                        break;
                    case ElementValueType.Byte:
                        {
                            var v = TypeConverter.h2b(data);
                            tb.Text = hasFlags || es.hexview ? "0x" + v.ToString("X2") : v.ToString();
                        }

                        break;
                    case ElementValueType.SByte:
                        {
                            var v = TypeConverter.h2sb(data);
                            tb.Text = hasFlags || es.hexview ? "0x" + v.ToString("X2") : v.ToString();
                        }

                        break;
                    case ElementValueType.String:
                        tb.Text = TypeConverter.GetZString(data);
                        fitTextBoxToWidth = true;
                        break;
                    case ElementValueType.BString:
                        tb.Text = TypeConverter.GetBString(data);
                        fitTextBoxToWidth = true;
                        break;
                    case ElementValueType.IString:
                        tb.Text = TypeConverter.GetIString(data);
                        fitTextBoxToWidth = true;
                        break;
                    case ElementValueType.LString:
                        {
                            uint id = TypeConverter.IsLikelyString(data) ? 0 : TypeConverter.h2i(data);
                            tb.Text = id.ToString("X8");
                        }

                        break;
                    case ElementValueType.Str4:
                        {
                            tb.Text = (data.Count >= 4) ? Encoding.Instance.GetString(data.Array, data.Offset, 4) : string.Empty;
                            tb.MaxLength = 4;
                        }

                        break;
                    default:
                        {
                            tb.Text = "<Error>";
                            tb.Enabled = false;
                        }

                        break;
                }

                if (fitTextBoxToWidth)
                {
                    this.lblText.Left = ((Width - this.lblText.Width - 50) / 50) * 50;
                    this.lblText.Anchor = AnchorStyles.Right | AnchorStyles.Top;
                    this.textBox.Width = this.lblText.Left - 20 - this.textBox.Left;
                    this.textBox.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
                }
            }
        }