2 using System.Collections.Generic;
\r
3 using System.ComponentModel;
\r
5 using System.Drawing;
\r
8 using System.Windows.Forms;
\r
10 namespace Tso2MqoGui
\r
12 public partial class FormMaterial : Form
\r
14 public Dictionary<string, MaterialInfo> materials;
\r
16 public FormMaterial()
\r
18 InitializeComponent();
\r
19 DialogResult = DialogResult.Cancel;
\r
22 private void FormMaterial_Load(object sender, EventArgs e)
\r
24 foreach (MaterialInfo mat_info in materials.Values)
\r
26 ListViewItem item = lvMaterials.Items.Add(mat_info.Name);
\r
27 item.Tag = mat_info;
\r
28 item.SubItems.Add(mat_info.ColorTexture ?? "");
\r
29 item.SubItems.Add(mat_info.ShadeTexture ?? "");
\r
30 item.SubItems.Add(mat_info.ShaderFile ?? "");
\r
34 private void bOk_Click(object sender, EventArgs e)
\r
36 string error_message = null;
\r
38 // 正しく情報が設定されているかをチェックする
\r
39 foreach (ListViewItem item in lvMaterials.Items)
\r
41 string material_name = item.Text;
\r
43 for (int i = 1; i < 4; i++)
\r
45 string column_name = lvMaterials.Columns[i].Text;
\r
46 string text = item.SubItems[i].Text;
\r
49 error_message = string.Format("マテリアル名 {0} の {1} を設定する必要があります。", material_name, column_name);
\r
50 else if (!File.Exists(text))
\r
51 error_message = string.Format("マテリアル名 {0} の {1} は存在しません。", material_name, column_name);
\r
53 if (error_message != null)
\r
55 MessageBox.Show(error_message);
\r
56 item.Selected = true;
\r
62 DialogResult = DialogResult.OK;
\r
66 private void bCancel_Click(object sender, EventArgs e)
\r
68 DialogResult = DialogResult.Cancel;
\r
72 private void lvMaterials_SelectedIndexChanged(object sender, EventArgs e)
\r
74 if (lvMaterials.SelectedItems.Count > 0)
\r
76 MaterialInfo mat_info = lvMaterials.SelectedItems[0].Tag as MaterialInfo;
\r
77 pgMaterial.SelectedObject = mat_info;
\r
81 pgMaterial.SelectedObject = null;
\r
85 private void pgMaterial_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
\r
87 if (lvMaterials.SelectedItems.Count > 0)
\r
89 ListViewItem item = lvMaterials.SelectedItems[0];
\r
91 switch (e.ChangedItem.PropertyDescriptor.Name)
\r
93 case "ColorTexture":
\r
94 item.SubItems[1].Text = e.ChangedItem.Value.ToString();
\r
96 case "ShadeTexture":
\r
97 item.SubItems[2].Text = e.ChangedItem.Value.ToString();
\r
100 item.SubItems[3].Text = e.ChangedItem.Value.ToString();
\r