public CustomProperty clone() { CustomProperty result = new CustomProperty(name, value, type, description); return(result); }
private void buttonOK_Click(object sender, EventArgs e) { if (cbbName.Text.Length == 0) { MessageBox.Show("Please enter a Property Name."); return; } CustomProperty cp = new CustomProperty(); cp.name = cbbName.Text; cp.description = textBox2.Text; if (rdbFreeText.Checked) { cp.type = typeof(string); cp.value = txbFreetext.Text; } if (rdbBoolean.Checked) { cp.type = typeof(bool); cp.value = cbbBoolean.SelectedItem.ToString().Equals("true"); } if (rdbVector2.Checked) { cp.type = typeof(Vector2); Regex r = new Regex(@"^\d+(\.)?\d*$"); if (r.IsMatch(txbX.Text) && r.IsMatch(txbY.Text)) { float x = float.Parse(txbX.Text); float y = float.Parse(txbY.Text); cp.value = new Vector2(x, y); } else { MessageBox.Show("Please enter valid numeric value."); return; } } if (rdbColor.Checked) { cp.type = typeof(Color); byte R = byte.Parse(numUDR.Value.ToString()); byte G = byte.Parse(numUDG.Value.ToString()); byte B = byte.Parse(numUDB.Value.ToString()); cp.value = new Color(R, G, B); } if (rdbItem.Checked) { cp.type = typeof(Item); cp.value = null; } if (cbxToAllSelected.Checked)//add to all selected items { foreach (Item item in Editor.Instance.SelectedItems) { if (cbxAddMode.Checked) { item.CustomProperties[cp.name] = cp.clone(); } else { if (item.CustomProperties.ContainsKey(cp.name) == false) { item.CustomProperties[cp.name] = cp.clone(); } } } } else//add to selected { if (customproperties.ContainsKey(cbbName.Text)) { MessageBox.Show("A Custom Property with that name already exists."); return; } customproperties[cp.name] = cp; } updateControls(); MainForm.Instance.propertyGrid1.Refresh(); }
private void buttonOK_Click(object sender, EventArgs e) { if (txbPropName.Text.Length == 0) { MessageBox.Show("Please enter a Property Name."); return; } CustomProperty cp = new CustomProperty(); cp.name = (String)txbPropName.Text.Clone(); cp.description = (String)txbDescription.Text.Clone(); if (rdbFreeText.Checked) { cp.type = typeof(string); cp.value = txbFreetext.Text; } if (rdbBoolean.Checked) { cp.type = typeof(bool); cp.value = cbbBoolean.SelectedItem.ToString().Equals("true"); } if (rdbVector2.Checked) { cp.type = typeof(Vector2); Regex r = new Regex(@"^\d+(\.)?\d*$"); if (r.IsMatch(txbX.Text) && r.IsMatch(txbY.Text)) { float x = float.Parse(txbX.Text); float y = float.Parse(txbY.Text); cp.value = new Vector2(x, y); } else { MessageBox.Show("Please enter valid numeric value."); return; } } if (rdbColor.Checked) { cp.type = typeof(Color); byte R = byte.Parse(numUDR.Value.ToString()); byte G = byte.Parse(numUDG.Value.ToString()); byte B = byte.Parse(numUDB.Value.ToString()); cp.value = new Color(R, G, B); } if (rdbItem.Checked) { cp.type = typeof(Item); cp.value = null; } if (cbxToAllSelected.Checked)//to all selected items { foreach (CustomPropertyGroup group in Editor.Instance.CustomPropertyGroups.Values) { if (cbxAddMode.Checked) { group.customproperties[cp.name] = cp.clone(); } else { if (group.customproperties.ContainsKey(cp.name) == false) { group.customproperties[cp.name] = cp.clone(); } } } } else//to selected { if (customproperties.ContainsKey(txbPropName.Text) && MessageBox.Show("A Custom Property with that name already exists.\nAre you sure to overwrite property \"" + txbPropName.Text + "\" from selected items(s)", "Confirm overwrite", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { return; } customproperties[cp.name] = cp.clone(); } updatePropertyEditControls(); MainForm.Instance.propertyGrid1.Refresh(); }
private void btnAddCake_Click(object sender, EventArgs e) { if (Editor.Instance.CustomPropertyGroups.ContainsKey(cbbGroup.Text)) { CustomPropertyGroup group = Editor.Instance.CustomPropertyGroups[cbbGroup.Text]; foreach (CustomProperty prop in group.customproperties.Values) { CustomProperty cp = new CustomProperty(); cp.name = (String)prop.name.Clone(); cp.description = (String)prop.description.Clone(); cp.type = prop.type; if (prop.type == typeof(Vector2)) { Regex r = new Regex(@"^\d+(\.)?\d*$"); float x = ((Vector2)(prop.value)).X; float y = ((Vector2)(prop.value)).Y; cp.value = new Vector2(x, y); } else if (prop.type == typeof(Color)) { byte R = ((Color)(prop.value)).R; byte G = ((Color)(prop.value)).G; byte B = ((Color)(prop.value)).B; cp.value = new Color(R, G, B); } else { cp.value = prop.value; } if (cbxToAllSelected.Checked)//add to all selected items { foreach (Item item in Editor.Instance.SelectedItems) { if (cbxAddMode.Checked) { item.CustomProperties[cp.name] = cp.clone(); } else { if (item.CustomProperties.ContainsKey(cp.name) == false) { item.CustomProperties[cp.name] = cp.clone(); } } } } else//add to selected { if (customproperties.ContainsKey(cp.name) && cbxAddMode.Checked == false) { continue; } customproperties[cp.name] = cp.clone(); } } updateControls(); MainForm.Instance.propertyGrid1.Refresh(); } else { MessageBox.Show("A Custom Property Group with name \"" + cbbGroup.Text + "\" doesn't exists."); } }