public static SubWindow CreateSubWindow(System.Object container, bool defaultOpen, SubWindowStyle style, System.Type customDrawerType) { if (customDrawerType == null) { return(null); } if (subWindowClass == null) { GetSubWinodwStyleClasses(); } else if (!subWindowClass.ContainsKey(style)) { GetSubWinodwStyleClasses(); } if (subWindowClass == null || !subWindowClass.ContainsKey(style)) { return(null); } System.Type type = subWindowClass[style]; SubWindowCustomDrawer drawer = (SubWindowCustomDrawer)System.Activator.CreateInstance(customDrawerType); if (drawer == null) { return(null); } drawer.SetContainer(container); return((SubWindow)System.Activator.CreateInstance(type, defaultOpen, drawer)); }
public SubWindowObjectDrawer(SubWindowCustomDrawer drawer) { this.m_ObjDrawer = drawer; if (m_ObjDrawer == null) { return; } string id = GetID(false); if (EditorPrefsEx.HasKey(id)) { var obj = EditorPrefsEx.GetObject(id, drawer.GetType()); if (obj != null) { drawer = (SubWindowCustomDrawer)obj; drawer.SetContainer(this.m_ObjDrawer.Container); this.m_ObjDrawer = drawer; } } }
internal static string GetDrawerID(SubWindowCustomDrawer drawer, bool dynamic) { string result = null; if (drawer == null) { return(result); } result = "__CLASS__" + drawer.GetType().FullName; if (dynamic) { if (drawer.Title != null && !string.IsNullOrEmpty(drawer.Title.text)) { result += "." + drawer.GetHashCode(); } else { result += ".UnKnown"; } } return(result); }
public SubWindow(bool defaultOpen, SubWindowCustomDrawer drawer) { this.DefaultOpen = defaultOpen; this.m_Drawer = new SubWindowObjectDrawer(drawer); this.m_Drawer.Init(); }