private void LoadChildren() { try { DirectoryInfo[] lDirectoryInfoArray = directoryInfoSelf.GetDirectories("*", SearchOption.TopDirectoryOnly); if (lDirectoryInfoArray.Length > 0) { haveChildren = true; if (root.DirectoryInfoSelected.FullName.IndexOf(directoryInfoSelf.FullName) == 0) { isDisplayChildren = true; for (int i = 0; i < lDirectoryInfoArray.Length; i++) { UiDirectoryTree lViewDirectoryTree = new UiDirectoryTree(root, lDirectoryInfoArray[i]); childList.Add(lViewDirectoryTree); } } } } catch (Exception aExpection) { Logger.BreakDebug("Exception:" + aExpection); Logger.BreakDebug("FullName:" + directoryInfoSelf.FullName); } }
public void Awake() { uiDirectoryTree = new UiDirectoryTree(directoryInfoRecentList[0].Root, directoryInfoRecentList[0]); directoryInfoSelected = directoryInfoRecentList[0]; int position = uiDirectoryTree.GetItemPositionDisplay() - 2; float lHeightLine = GuiStyleSet.StyleList.toggleLine.CalcSize(new GUIContent("")).y; positionScrollDirectory.y = ( float )position * lHeightLine; }
private UiDirectoryTree(UiDirectoryTree aRoot, DirectoryInfo aDirectoryInfo) { isDisplayChildren = false; haveChildren = false; directoryInfoSelf = aDirectoryInfo; root = aRoot; childList = new List <UiDirectoryTree>(); LoadChildren(); }
// ルート用のコンストラクタ. public UiDirectoryTree(DirectoryInfo aDirectoryInfo, DirectoryInfo aDirectoryInfoCurrent) { isDisplayChildren = false; haveChildren = false; directoryInfoSelf = aDirectoryInfo; DirectoryInfoSelected = aDirectoryInfoCurrent; root = this; childList = new List <UiDirectoryTree>(); LoadChildren(); }
public void OnGUI() { Toggle(); if (isDisplayChildren == true) { if (haveChildren == true) { if (childList.Count == 0) { DirectoryInfo[] lDirectoryInfoArray = directoryInfoSelf.GetDirectories("*", SearchOption.TopDirectoryOnly); for (int i = 0; i < lDirectoryInfoArray.Length; i++) { UiDirectoryTree lViewDirectoryTree = new UiDirectoryTree(root, lDirectoryInfoArray[i]); childList.Add(lViewDirectoryTree); } } GUILayout.BeginHorizontal(); { GUILayout.Space(GuiStyleSet.StyleList.toggleOpenClose.fixedWidth + GuiStyleSet.StyleList.toggleOpenClose.margin.left + GuiStyleSet.StyleList.toggleOpenClose.margin.right); GUILayout.BeginVertical(); { for (int i = 0; i < childList.Count; i++) { childList[i].OnGUI(); } } GUILayout.EndVertical(); } GUILayout.EndHorizontal(); } } }