private void OnMenuAdd(object type) { string typeString = (string)type; var current = UFSelection.ActiveControl; if (current == null) { if (typeString == "UFCanvas") { var canvas = new UFCanvas(); canvas.Name = "canvas"; canvas.Text = "canvas"; UFProject.Current.Controls.Add(canvas); } return; } else { var assembly = Assembly.GetAssembly(typeof(UFControl)); Type childType = assembly.GetType(typeString); if (childType != null) { UFControl child = Activator.CreateInstance(childType) as UFControl; child.Name = child.DefaultName; child.Text = child.DefaultName; current.Add(child); UFSelection.ActiveControl = child; } } }
void WindowCallback(int id) { UFControl current = this.drawList[id]; if (UFSelection.ActiveControl != current) { GUILayout.Space(-1); } GUILayout.BeginHorizontal(); if (UFSelection.ActiveControl != current) { GUILayout.Space(-3); } GUILayout.Space(current.Nest * 10); if (current.HasChild) { string text = (current.Foldout ? "\u25BC" : "\u25BA"); if (GUILayout.Button(text, EditorStyles.label, GUILayout.Width(13))) { current.Foldout = !current.Foldout; } } else { GUILayout.Label(" ", GUILayout.Width(13)); } GUILayout.Label(current.Name); GUIContent visibleContent = (current.IsHidden ? UFContent.Minus : UFContent.VisibleSwitch); if (GUILayout.Button(visibleContent, EditorStyles.label, GUILayout.Width(20))) { current.IsHidden = !current.IsHidden; } GUILayout.EndHorizontal(); if (GUI.changed) { UFStudio.RepaintAll(); } }
public void Add(UFControl child) { child.parent = this; this.childList.Add(child); }