private static void OnValueDlgClose(object dialog) { m_parentTemplate = null; AMM_AddValueDialog dlg = dialog as AMM_AddValueDialog; dlg.onAddClick -= OnAddValueClick; dlg.onClose -= OnValueDlgClose; }
public static void AddValueDialog(AMM_BaseTemplate parent) { m_parentTemplate = parent; AMM_AddValueDialog dialog = EditorWindow.CreateInstance <AMM_AddValueDialog>(); dialog.onAddClick += OnAddValueClick; dialog.onClose += OnValueDlgClose; dialog.titleContent.text = "Add Value"; dialog.ShowAuxWindow(); }
public void AddPropertiesToXml(XmlDocument doc, XmlElement parent, AMM_BaseTemplate template) { foreach (string key in template.Properties.Keys) { foreach (AMM_PropertyTemplate p in template.Properties[key]) { XmlElement n = doc.CreateElement(key); AddAttributesToXml(doc, n, p); AddPropertiesToXml(doc, n, p); parent.AppendChild(n); } } }
public void AddAttributesToXml(XmlDocument doc, XmlElement parent, AMM_BaseTemplate template) { foreach (string key in template.Values.Keys) { string k = key; if (key.Contains("android:")) { k = key.Replace("android:", "android___"); } else if (key.Contains("tools:")) { k = key.Replace("tools:", "tools___"); } XmlAttribute attr = doc.CreateAttribute(k); attr.Value = template.Values[key]; parent.Attributes.Append(attr); } }
public static void DrawPropertiesInternal(AMM_BaseTemplate parent) { foreach (string key in parent.Properties.Keys) { foreach (AMM_PropertyTemplate property in parent.Properties[key]) { if (parent is AMM_ActivityTemplate) { AMM_ActivityTemplate activity = parent as AMM_ActivityTemplate; if (activity.IsLauncherProperty(property)) { continue; } } EditorGUILayout.Space(); EditorGUILayout.BeginVertical(GUI.skin.box, GUILayout.Height(27.0f)); EditorGUILayout.BeginHorizontal(); if (property.Values.ContainsKey("android:name")) { property.IsOpen = EditorGUILayout.Foldout(property.IsOpen, "[" + property.Tag + "] " + property.Values["android:name"]); } else { if (key.Equals("intent-filter")) { property.IsOpen = EditorGUILayout.Foldout(property.IsOpen, "[" + property.Tag + "] " + property.GetIntentFilterName(property)); } else { property.IsOpen = EditorGUILayout.Foldout(property.IsOpen, "[" + property.Tag + "]"); } } if (GUILayout.Button("X", EditorStyles.miniButton, GUILayout.Width(20.0f))) { parent.RemoveProperty(property); return; } EditorGUILayout.EndHorizontal(); if (property.IsOpen) { EditorGUILayout.BeginVertical(); foreach (string k in property.Values.Keys) { EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(k); string input = property.Values[k]; EditorGUI.BeginChangeCheck(); if (k.Equals("android:name")) { input = GUILayout.TextField(property.Values[k]); } else { input = GUILayout.TextField(property.Values[k]); } if (EditorGUI.EndChangeCheck()) { property.SetValue(k, input); return; } if (GUILayout.Button("X", EditorStyles.miniButton, GUILayout.Width(20.0f))) { property.RemoveValue(k); return; } EditorGUILayout.EndHorizontal(); } DrawProperties(property); EditorGUILayout.Space(); EditorGUILayout.EndVertical(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if (GUILayout.Button("Add Value", GUILayout.Width(100.0f))) { AddValueDialog(property); } if (GUILayout.Button("Add Property", GUILayout.Width(100.0f))) { AddPropertyDialog(property); } EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); } EditorGUILayout.EndVertical(); } } }
public static void DrawProperties(AMM_BaseTemplate parent) { using (new SA_GuiHorizontalSpaceIgnoreIndent(15)) { DrawPropertiesInternal(parent); } }