EditorWindow - is it possible to create a list like the Hierarchy pane?

Hi everyone, I have a script that I’m using to round up all objects that have a specific script attached to them. once I have that list I’d like to display them just like objects are displayed in the hierarchy pane, whereby they are able to be clicked on and edited etc, only in my own editor window. Is this kind of thing possible? Better yet, would I be able to create a list, and have certain options open up in the same editor window once I’ve selected them?

On a side note, is there a way to start a new column in an editor window? for example, having two buttons next to each other rather than on top of one another?

ok, I’ve solved the problem of multiple sub windows using GUILayout.BeginArea, GUILayout.EndArea, and GUIlayout rectangles. you can sample it for yourself here;

using UnityEngine;
using UnityEditor;
public class MyWindow : EditorWindow {	
    string myString = "Hello World";
    bool groupEnabled;
    bool myBool = true;
    float myFloat = 1.23f;

// Add menu named "My Window" to the Window menu
[MenuItem ("Window/My Window")]
static void Init () {
    // Get existing open window or if none, make a new one:
    MyWindow window = (MyWindow)EditorWindow.GetWindow (typeof (MyWindow));
}

void OnGUI () {
    GUILayout.Label ("Base Settings", EditorStyles.boldLabel);
	GUILayout.BeginArea (new Rect (10,10,400,600)); // you only need to do this once unless you want to show the same window twice
		myString = EditorGUILayout.TextField ("Text Field", myString);		
		groupEnabled = EditorGUILayout.BeginToggleGroup ("Optional Settings", groupEnabled);
		myBool = EditorGUILayout.Toggle ("Toggle", myBool);
		myFloat = EditorGUILayout.Slider ("Slider", myFloat, -3, 3);
		EditorGUILayout.EndToggleGroup ();
	GUILayout.EndArea ();
	
	GUILayout.BeginArea (new Rect (410,10,400,600)); // you only need to do this once unless you want to show the same window twice
		myString = EditorGUILayout.TextField ("Text Field", myString);		
		groupEnabled = EditorGUILayout.BeginToggleGroup ("Optional Settings", groupEnabled);
		myBool = EditorGUILayout.Toggle ("Toggle", myBool);
		myFloat = EditorGUILayout.Slider ("Slider", myFloat, -3, 3);
		EditorGUILayout.EndToggleGroup ();
	GUILayout.EndArea ();
}

}