private void BtnAdd_Click(object sender, EventArgs e) { if (Manager.ObjectSet == null) { return; } bool name_collision = true; int new_element_name_index = LBObjects.Items.Count; string new_element_name = ""; while (name_collision == true) { new_element_name = "obj" + new_element_name_index; name_collision = false; foreach (object item in LBObjects.Items) { if (new_element_name.CompareTo(item) == 0) { name_collision = true; ++new_element_name_index; continue; } } } Rectangle selection = SurfaceTexture.GetSelection(); ObjectSetElementData new_element = new ObjectSetElementData { ElementName = new_element_name, OffsetU = selection.X, OffsetV = selection.Y, Size = new SSize(selection.Width, selection.Height) }; Manager.ObjectSet.Elements.Add(new_element); LBObjects.Items.Add(new_element_name); LBObjects.SelectedIndex = LBObjects.Items.Count - 1; }
public void LoadFromFile(string FileName) { XmlDocument doc = new XmlDocument(); doc.Load(FileName); XmlElement xml_root = (XmlElement)doc.FirstChild; XmlElement xml_object_set_info = (XmlElement)xml_root.FirstChild; ObjectSet = new ObjectSetData { ObjectSetName = xml_object_set_info.GetAttribute("Name"), TextureFileName = xml_object_set_info.GetAttribute("Texture") }; XmlElement xml_object_set = (XmlElement)xml_object_set_info.NextSibling; if (xml_object_set == null) { return; } ObjectSet.Elements = new List <ObjectSetElementData>(); XmlElement xml_element = (XmlElement)xml_object_set.FirstChild; while (xml_element != null) { ObjectSetElementData new_element = new ObjectSetElementData { ElementName = xml_element.GetAttribute("Name"), OffsetU = Convert.ToInt32(xml_element.GetAttribute("OffsetU")), OffsetV = Convert.ToInt32(xml_element.GetAttribute("OffsetV")), Size = new SSize( Convert.ToInt32(xml_element.GetAttribute("Width")), Convert.ToInt32(xml_element.GetAttribute("Height"))) }; ObjectSet.Elements.Add(new_element); xml_element = (XmlElement)xml_element.NextSibling; } }
private void LBObjects_SelectedIndexChanged(object sender, EventArgs e) { if (LBObjects.SelectedIndex == -1) { return; } ObjectSetElementData element = Manager.ObjectSet.Elements[LBObjects.SelectedIndex]; TBObjectName.Text = element.ElementName; TBOffsetU.Text = element.OffsetU.ToString(); TBOffsetV.Text = element.OffsetV.ToString(); TBWidth.Text = element.Size.Width.ToString(); TBHeight.Text = element.Size.Height.ToString(); SurfaceObject.DrawingRectangle = new Rectangle(element.OffsetU, element.OffsetV, element.Size.Width, element.Size.Height); SurfaceObject.Invalidate(); }
private void BtnUpdate_Click(object sender, EventArgs e) { if (Manager.ObjectSet == null) { return; } if (Manager.ObjectSet.Elements.Count == 0) { return; } ObjectSetElementData element = Manager.ObjectSet.Elements[LBObjects.SelectedIndex]; element.ElementName = TBObjectName.Text; try { element.OffsetU = Convert.ToInt32(TBOffsetU.Text); element.OffsetV = Convert.ToInt32(TBOffsetV.Text); } catch (System.FormatException error) { MessageBox.Show(error.Message + "\n( 오프셋은 숫자만 입력하실 수 있습니다. )", "값 오류", MessageBoxButtons.OK, MessageBoxIcon.Error); } try { element.Size = new SSize(Convert.ToInt32(TBWidth.Text), Convert.ToInt32(TBHeight.Text)); } catch (System.FormatException error) { MessageBox.Show(error.Message + "\n( 크기는 숫자만 입력하실 수 있습니다. )", "값 오류", MessageBoxButtons.OK, MessageBoxIcon.Error); } LBObjects.Items[LBObjects.SelectedIndex] = TBObjectName.Text; }