public override void OnGUI() { GUIToolBar(); HomeScroll = GUILayout.BeginScrollView(HomeScroll); ShowIndexDoc(); EditorGUI.BeginChangeCheck(); { PackStorageDir = OnGUIUtility.OpenFolderPannel(packageKey); LocalLibDir = OnGUIUtility.OpenFolderPannel(localKey); OnGUIUtility.Vision.GUIEnabled(false); var pluginlistPath = PathTools.RelativeAssetPath(this.GetType(), DocDir); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("RemotePlugins:", pluginlistPath + "/plugins.json"); OnGUIUtility.Vision.GUIEnabled(true); var newEdit = GUILayout.Toggle(EditRemotePlugins, "Edit", GUI.skin.button, GUILayout.Width(80)); if (!newEdit && EditRemotePlugins != newEdit) { if (EditorUtility.DisplayDialog("cancel", "This will cancel unsaved changes ", "ok", "cancel")) { ReadRemotePluginsFile(); EditRemotePlugins = newEdit; } } else { EditRemotePlugins = newEdit; } EditorGUILayout.EndHorizontal(); } if (EditorGUI.EndChangeCheck()) { ReadPackageFold(); } if (EditRemotePlugins) { GUIRemotePlugins(); GUILayout.EndScrollView(); return; } //CheckDocs(); //ShowDoc if (OnGUIUtility.Foldout("Packages(" + PackagePlugins.Plugins.Count + ")", EditorStyles.boldLabel)) { ShowPackages(); OnGUIUtility.Layout.Line(); } if (OnGUIUtility.Foldout("Local(" + LocalPlugins.Plugins.Count + ")", EditorStyles.boldLabel)) { ShowLocalPlugins(); OnGUIUtility.Layout.Line(); } if (OnGUIUtility.Foldout("Remote(" + remoteplugins.Plugins.Count + ")", EditorStyles.boldLabel)) { ShowRemotePlugins(); OnGUIUtility.Layout.Line(); } GUILayout.EndScrollView(); }
public override void OnEnable(SeanLibManager drawer) { base.OnEnable(drawer); //Load Doc var docAsset = AssetDatabase.LoadAssetAtPath <TextAsset>(PathTools.RelativeAssetPath(this.GetType(), DocDir + "/Index.md")); if (docAsset) { doc = new MarkDownDoc(DocDir, docAsset.text, true); } PackStorageDir = EditorUserSettings.GetConfigValue(packageKey); LocalLibDir = EditorUserSettings.GetConfigValue(localKey); ReadRemotePluginsFile(); ReadPackageFold(); ReadLocalPlugin(); RemotePlistEditor.OnEnable((info, index) => { OnGUIUtility.Vision.BeginBackGroundColor(index % 2 == 0 ? OnGUIUtility.Colors.dark : OnGUIUtility.Colors.light); { EditorGUILayout.BeginVertical(); if (OnGUIUtility.Foldout(info.Name, Styles.PackageTitle, GUILayout.ExpandWidth(true))) { info.Name = EditorGUILayout.DelayedTextField("Name", info.Name); info.URL = EditorGUILayout.TextField("URL", info.URL); info.version = (PluginVersion)EditorGUILayout.EnumPopup("Version", info.version); } EditorGUILayout.EndVertical(); } OnGUIUtility.Vision.EndBackGroundColor(); return(info); }, () => { return(new PluginInfo()); }, 1, "+Plugin"); }
private static void DrawData(MarkDownData data, Action <string> PageChange, Action <string> DocChange, Action Repaint) { var doc = data.doc; switch (data.type) { case KeyType.foldin: data.doc.InFoldout = true; data.doc.CurrentFoldout = OnGUIUtility.Foldout(data.keyValue, doc.Styles.Foldout, GUILayout.ExpandWidth(true), GUILayout.Height(EditorGUIUtility.singleLineHeight * 1.3f)); // OnGUIUtility.EditorPrefsFoldoutGroup(data.keyValue); OnGUIUtility.Layout.IndentBegin(2); break; case KeyType.foldout: data.doc.InFoldout = false; OnGUIUtility.Layout.IndentEnd(2); break; } if (data.doc.InFoldout && !data.doc.CurrentFoldout) { return; } switch (data.type) { case KeyType.text: Rect position = GUILayoutUtility.GetRect(EditorGUIUtility.TrTextContent(data.Data), doc.Styles.Font, GUILayout.ExpandHeight(true)); OnGUIUtility.Layout.IndentDisable(); EditorGUI.SelectableLabel(position, data.Data, doc.Styles.Font); OnGUIUtility.Layout.IndentEnable(); break; case KeyType.code: OnGUIUtility.Vision.BeginBackGroundColor(ColorPalette.Get(doc.ColorSetting, "Area_BackGround", EditorGUIUtility.isProSkin ? Color.white : Color.black)); EditorGUILayout.TextArea(data.Data, doc.Styles.Area); OnGUIUtility.Vision.EndBackGroundColor(); break; case KeyType.qa: OnGUIUtility.Vision.BeginBackGroundColor(ColorPalette.Get(doc.ColorSetting, "Area_BackGround", EditorGUIUtility.isProSkin ? Color.white : Color.black)); EditorGUILayout.SelectableLabel(RichTextHelper.Color(data.keyValue, Color.green), doc.Styles.Font, GUILayout.ExpandWidth(true), GUILayout.Height(EditorGUIUtility.singleLineHeight)); EditorGUILayout.TextArea(data.Data, doc.Styles.Area); OnGUIUtility.Vision.EndBackGroundColor(); break; case KeyType.font: GUIStyle fontstyle = data.keyValue == "B" ? doc.Styles.FontB : data.keyValue == "I" ? doc.Styles.FontI : data.keyValue == "BI" ? doc.Styles.FontBI : doc.Styles.Font; EditorGUILayout.SelectableLabel(data.Data, fontstyle, GUILayout.Height(EditorGUIUtility.singleLineHeight)); break; case KeyType.title: int size = int.Parse(data.keyValue); GUIStyle style = EditorStyles.boldLabel; switch (size) { case 1: style = doc.Styles.Title3; break; case 2: style = doc.Styles.Title2; break; case 3: style = doc.Styles.Title1; break; } EditorGUILayout.SelectableLabel(data.Data, style, GUILayout.Height(EditorGUIUtility.singleLineHeight * size * 1.3f), GUILayout.MinWidth(500)); if (size == 3) { OnGUIUtility.Layout.Line(); } break; case KeyType.link: if (GUILayout.Button(data.Data, doc.Styles.Link)) { EditorGUIUtility.systemCopyBuffer = data.Data; Application.OpenURL(data.Data); } if (Event.current.type == EventType.Repaint) { var last = GUILayoutUtility.GetLastRect(); EditorGUIUtility.AddCursorRect(last, MouseCursor.Link); } break; case KeyType.image: if (data.texture) { int w = data.texture.width; int h = data.texture.height; if (w > 1024) { h = (int)((float)h / w * 1024f); w = 1024; } if (h > 1024) { w = (int)((float)w / h * 1024f); h = 1024; } GUILayout.Box("", GUILayout.Width(w), GUILayout.Height(h)); if (Event.current.type == EventType.Repaint) { Rect rect = GUILayoutUtility.GetLastRect(); GUI.DrawTexture(rect, data.texture); } } else if (data.gifDrawer != null && Repaint != null) { data.gifDrawer.OnGUI(Repaint); } break; case KeyType.separator: OnGUIUtility.Layout.Line(); break; case KeyType.page: if (GUILayout.Button("▶" + data.Data, doc.Styles.Page, GUILayout.ExpandWidth(false), GUILayout.Height(EditorGUIUtility.singleLineHeight * 1.3f))) { PageChange?.Invoke(data.Data); } break; case KeyType.doc: if (GUILayout.Button("▶" + data.Data, doc.Styles.Doc, GUILayout.ExpandWidth(false), GUILayout.Height(EditorGUIUtility.singleLineHeight * 1.3f))) { DocChange?.Invoke(data.Data); } break; case KeyType.table: GUILayout.BeginHorizontal(); foreach (var item in data.subdatas) { //OnGUIUtility.Debug.ButtonTest(); DrawData(item, PageChange, DocChange, Repaint); //OnGUIUtility.Debug.DrawLastRect(Color.white); } GUILayout.EndHorizontal(); break; } }
public override void OnGUI() { base.OnGUI(); //CheckDoc MarkDownDoc doc = null; if (string.IsNullOrEmpty(CurrentDocName)) { if (Docs.TryGetValue("Index", out doc)) { CurrentDocName = "Index"; } } else { doc = Docs[CurrentDocName]; if (Event.current.type == EventType.Layout) { if (DocPages.Count > 0) { var oldDoc = Docs[DocPages.Peek()]; if (oldDoc.datas.Count > 0) { oldDoc.Release(); } } if (doc.datas.Count == 0) { doc.Load(); } else { if (AutoRefresh && doc.RawDoc.text != doc.rawDoc) { doc.Release(); doc.rawDoc = doc.RawDoc.text; doc.Load(); } } } } //DrawDoc if (doc != null) { //ToolBar ToolBar(); //DocContent EditorGUI.DrawRect(DrawRect, ColorPalette.Get(ColorSettings, "BackGround", Color.white)); v = GUILayout.BeginScrollView(v); { if (searched != null) { if (Event.current.type == EventType.Repaint) { EditorGUI.DrawRect(searched.drawRect, ColorPalette.Get(ColorSettings, "HightLight", Color.white)); } if (Search.Current.IsNullOrEmpty()) { searched = null; } } EditorMarkDownDrawer.DrawDoc(doc, changePage, changeDoc, window.Repaint); } GUILayout.EndScrollView(); if (Event.current.type == EventType.Repaint) { DrawRect = GUILayoutUtility.GetLastRect(); } } else { EditorGUILayout.SelectableLabel("Can't find Index.md Document at :" + PathTools.RelativeAssetPath(this.GetType(), RelativePath)); EditorGUILayout.SelectableLabel("First you should create default page"); if (GUILayout.Button("CreateReadMe")) { if (EditorUtility.DisplayDialog("CreateIndex.md", "After create .md file,you have to reopen this editorwindow.", "OK", "Cancel")) { //Template string[] assets = AssetDatabase.FindAssets("TMP_ReadMe"); TextAsset text = AssetDatabase.LoadAssetAtPath <TextAsset>(AssetDatabase.GUIDToAssetPath(assets[0])); // var DirRoot = PathTools.RelativeAssetPath(this.GetType(), RelativePath); var FileDirRoot = Directory.GetParent(DirRoot).FullName + @"\" + Path.GetFileName(DirRoot); if (!Directory.Exists(FileDirRoot)) { Directory.CreateDirectory(FileDirRoot); } FileTools.WriteAllText(FileDirRoot + "/Index.md", text.text); AssetDatabase.Refresh(); window.Close(); } } } //PingDocScript if (EditScript) { GUILayout.BeginHorizontal(); { AutoRefresh = GUILayout.Toggle(AutoRefresh, "自动刷新"); OnGUIUtility.ScriptField("Editor Script", this.GetType()); } GUILayout.EndHorizontal(); } }
public override void OnGUI() { base.OnGUI(); Title("ScriptField"); v = GUILayout.BeginScrollView(v); OnGUIUtility.ScriptField("this Script", GetType()); Title("EditorPrefsFoldoutGroup"); if (OnGUIUtility.EditorPrefsFoldoutGroup("FoldoutGroup")) { GUILayout.Label("FoldoutContent"); GUILayout.Label("FoldoutContent"); GUILayout.Label("FoldoutContent"); } Title("ObjectPopupWindow"); if (GUILayout.Button("ObjectPopupWindow.Show")) { ObjectPopupWindow.Show(this); } Title("SelectWindow"); if (GUILayout.Button("SelectWindow<T>.Show")) { SelectWindow <string> .Show(strlist, "1"); } if (SelectWindow <string> .CanPick("1")) { var t = SelectWindow <string> .GetPick(); Debug.Log(t); } Title("OnGUIUtility.Search"); var s = search.OnToolbarGUI(); Title("OnGUIUtility.Zone_Divide2Horizontal"); zone_Horizon.OnGUILayout(window.Repaint, () => { GUILayout.Button("1"); GUILayout.Button("1"); GUILayout.Button("1"); GUILayout.Button("1"); OnGUIUtility.Debug.HolderBox(); }, () => { SubZone_Horizon.OnGUILayout(window.Repaint, () => { GUILayout.Button("2"); GUILayout.Button("2"); OnGUIUtility.Debug.HolderBox(); GUILayout.Button("2"); SubZOne_Vertical.OnGUILayout(window.Repaint, () => { GUILayout.Button("3"); GUILayout.Button("3"); OnGUIUtility.Debug.HolderBox(); GUILayout.Button("3"); }, () => { GUILayout.Button("3"); OnGUIUtility.Debug.HolderBox(); GUILayout.Button("3"); }); }, () => { GUILayout.Button("2"); OnGUIUtility.Debug.HolderBox(); GUILayout.Button("2"); }); }); EditorGUILayout.MinMaxSlider("111", ref min, ref max, 0, 100); Title("SeanlibEditor.Styles"); GUILayout.Button("SeanLibEditor.styles.Area", SeanLibEditor.styles.ExtendArea, GUILayout.Width(200)); GUILayout.Button("SeanLibEditor.styles.Group", SeanLibEditor.styles.ExtendGroup, GUILayout.Width(200)); GUILayout.Button("SeanLibEditor.styles.Title", SeanLibEditor.styles.Title, GUILayout.Width(200)); GUILayout.EndScrollView(); Title("GUIGifDrawer.OnGUI"); gifDrawer.OnGUI(this.window.Repaint); gifDrawer1.OnGUI(this.window.Repaint); }