Editor menu helper that adds a menu item to open the Hammer Texture Browser. It finds or opens a dock widget named "OG Texture Browser", prefers opening near the Asset Browser if present, and raises the tab.
using Editor;
public static class HammerTexBrowserEditorMenu
{
[Menu( "Editor", "Hammer Texture Browser/Texture Browser" )]
public static void OpenTextureBrowser()
{
var dockManager = GetTargetDockManager();
var existing = dockManager.FindDockWidget( "OG Texture Browser" );
if ( existing is not null && existing.IsValid )
{
dockManager.SetDockState( "OG Texture Browser", true );
dockManager.RaiseDock( "OG Texture Browser" );
return;
}
var assetBrowser = dockManager.FindDockWidget( "Asset Browser" );
var area = assetBrowser is null ? DockArea.Bottom : DockArea.Center;
dockManager.OpenDock( "OG Texture Browser", area, assetBrowser );
dockManager.RaiseDock( "OG Texture Browser" );
}
private static DockManager GetTargetDockManager()
{
if ( Application.FocusWidget?.GetWindow() is DockWindow dockWindow )
{
var assetBrowser = dockWindow.DockManager.FindDockWidget( "Asset Browser" );
if ( assetBrowser is not null && assetBrowser.IsValid )
return dockWindow.DockManager;
}
return EditorWindow.DockManager;
}
}