Exemple #1
0
        private void cbProperty_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (internalchg)
            {
                return;
            }
            if (cbProperty.SelectedIndex == -1)
            {
                return;
            }

            XWNTItem xi  = wrapper[lvWants.SelectedItems[0].Text];
            string   key = XWNTItem.ValidKeys[cbProperty.SelectedIndex];

            // Disallow duplicate keys
            if (wrapper[key] != null)
            {
                internalchg = true;
                cbProperty.SelectedIndex = XWNTItem.ValidKeys.IndexOf(xi.Key);
                internalchg = false;
                return;
            }

            lvWants.SelectedItems[0].Text = xi.Key = key;

            // Initialise value to a sane value for this key
            switch (key)
            {
            case "integerOperator": setCbValue(XWNTItem.ValidIntegerOperators, XWNTItem.ValidIntegerOperators[0]); break;

            case "integerType": setCbValue(XWNTItem.ValidIntegerTypes, XWNTItem.ValidIntegerTypes[0]); break;

            case "level": setCbValue(XWNTItem.ValidLevels, XWNTItem.ValidLevels[0]); break;

            case "objectType": setCbValue(XWNTItem.ValidObjectTypes, XWNTItem.ValidObjectTypes[0]); break;

            default:
                switch (XWNTItem.StypeForKey(XWNTItem.ValidKeys[cbProperty.SelectedIndex]))
                {
                case "AnyBoolean": setCbValue(new List <string>(new string[] { Boolean.FalseString, Boolean.TrueString, }), Boolean.FalseString); break;

                case "AnyString": setTbValue(""); break;

                default: setTbValue(XWNTItem.IsUint32Long(XWNTItem.ValidKeys[cbProperty.SelectedIndex]) ? "0x00000000" : "0"); break;
                }
                break;
            }
        }
Exemple #2
0
        private void tbValue_TextChanged(object sender, EventArgs e)
        {
            if (internalchg)
            {
                return;
            }
            internalchg = true;
            XWNTItem xi = wrapper[lvWants.SelectedItems[0].Text];

            try
            {
                switch (xi.Stype)
                {
                case "AnySint32":
                    try
                    {
                        int sint = Convert.ToInt32(tbValue.Text, tbValue.Text.Trim().ToLower().StartsWith("0x") ? 16 : 10);
                        xi.Value = sint.ToString();
                    }
                    catch { tbValue.Text = xi.Value; tbValue.SelectAll(); }
                    break;

                case "AnyUint32":
                    try
                    {
                        uint u = Convert.ToUInt32(tbValue.Text, tbValue.Text.Trim().ToLower().StartsWith("0x") || XWNTItem.IsUint32Long(xi.Key) ? 16 : 10);
                        if (XWNTItem.IsUint32Long(xi.Key))
                        {
                            xi.Value = "0x" + u.ToString("x").PadLeft(8, '0');
                        }
                        else
                        {
                            xi.Value = u.ToString();
                        }
                    }
                    catch { tbValue.Text = xi.Value; tbValue.SelectAll(); }
                    break;

                default:
                    xi.Value = tbValue.Text;
                    break;
                }
            }
            finally { lvWants.SelectedItems[0].SubItems[2].Text = xi.Value; internalchg = false; }
        }