OSDN Git Service

refactored
[tdcgexplorer/tso2mqo.git] / FormMaterial.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.ComponentModel;\r
4 using System.Data;\r
5 using System.Drawing;\r
6 using System.IO;\r
7 using System.Text;\r
8 using System.Windows.Forms;\r
9 \r
10 namespace Tso2MqoGui\r
11 {\r
12     public partial class FormMaterial : Form\r
13     {\r
14         public Dictionary<string, MaterialInfo>    materials;\r
15 \r
16         public FormMaterial()\r
17         {\r
18             InitializeComponent();\r
19             DialogResult    = DialogResult.Cancel;\r
20         }\r
21 \r
22         private void FormMaterial_Load(object sender, EventArgs e)\r
23         {\r
24             foreach(MaterialInfo i in materials.Values)\r
25             {\r
26                 ListViewItem    item= lvMaterials.Items.Add(i.Name);\r
27                 item.Tag            = i;\r
28                 item.SubItems.Add(i.diffuse == null ? "" : i.diffuse);\r
29                 item.SubItems.Add(i.shadow  == null ? "" : i.shadow);\r
30                 item.SubItems.Add(i.shader  == null ? "" : i.shader);\r
31             }\r
32         }\r
33 \r
34         private void bOk_Click(object sender, EventArgs e)\r
35         {\r
36             // 正しく情報が設定されているかをチェックする\r
37             foreach(ListViewItem i in lvMaterials.Items)\r
38             {\r
39                 if(i.SubItems[1].Text == ""\r
40                 || i.SubItems[2].Text == ""\r
41                 || i.SubItems[3].Text == ""\r
42                 || !File.Exists(i.SubItems[1].Text)\r
43                 || !File.Exists(i.SubItems[2].Text)\r
44                 || !File.Exists(i.SubItems[3].Text))\r
45                 {\r
46                     MessageBox.Show("マテリアルの情報が正しく設定されていないか、ファイルが存在しません");\r
47                     i.Selected  = true;\r
48                     return;\r
49                 }\r
50             }\r
51 \r
52 \r
53             DialogResult    = DialogResult.OK;\r
54             Hide();\r
55         }\r
56 \r
57         private void bCancel_Click(object sender, EventArgs e)\r
58         {\r
59             DialogResult    = DialogResult.Cancel;\r
60             Hide();\r
61         }\r
62 \r
63         private void lvMaterials_SelectedIndexChanged(object sender, EventArgs e)\r
64         {\r
65             if(lvMaterials.SelectedItems.Count > 0)\r
66             {\r
67                 MaterialInfo    mi  = lvMaterials.SelectedItems[0].Tag as MaterialInfo;\r
68                 pgMaterial.SelectedObject   = mi;\r
69             } else\r
70             {\r
71                 pgMaterial.SelectedObject   = null;\r
72             }\r
73         }\r
74 \r
75         private void pgMaterial_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)\r
76         {\r
77             if(lvMaterials.SelectedItems.Count > 0)\r
78             {\r
79                 ListViewItem    item= lvMaterials.SelectedItems[0];\r
80 \r
81                 switch(e.ChangedItem.PropertyDescriptor.Name)\r
82                 {\r
83                 case "DiffuseTexture":  item.SubItems[1].Text= e.ChangedItem.Value.ToString(); break;\r
84                 case "ShadowTexture":   item.SubItems[2].Text= e.ChangedItem.Value.ToString(); break;\r
85                 case "ShaderFile":      item.SubItems[3].Text= e.ChangedItem.Value.ToString(); break;\r
86                 }\r
87             }\r
88         }\r
89     }\r
90 }\r