// Amplify Shader Editor - Visual Shader Editing Tool
|
|
// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
|
|
|
|
using System.Collections.Generic;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace AmplifyShaderEditor
|
|
{
|
|
|
|
public class ConsoleLogItem
|
|
{
|
|
public NodeMessageType ItemType;
|
|
public string ItemMessage;
|
|
public ConsoleLogItem( NodeMessageType itemType, string itemMessage )
|
|
{
|
|
ItemType = itemType;
|
|
ItemMessage = itemMessage;
|
|
}
|
|
}
|
|
|
|
public sealed class ConsoleLogWindow : MenuParent
|
|
{
|
|
const float ToolbarHeight = 32;
|
|
private List<ConsoleLogItem> m_messages = new List<ConsoleLogItem>();
|
|
|
|
public ConsoleLogWindow( AmplifyShaderEditorWindow parentWindow ) : base( parentWindow, 0, 0, 0, 128, string.Empty, MenuAnchor.BOTTOM_LEFT, MenuAutoSize.NONE )
|
|
{
|
|
m_isActive = false;
|
|
}
|
|
|
|
public void AddMessage( NodeMessageType itemType, string itemMessage )
|
|
{
|
|
//m_messages.Insert( 0, new ConsoleLogItem( itemType, itemMessage ) );
|
|
}
|
|
|
|
public override void Draw( Rect parentPosition, Vector2 mousePosition, int mouseButtonId, bool hasKeyboadFocus )
|
|
{
|
|
base.Draw( parentPosition, mousePosition, mouseButtonId, hasKeyboadFocus );
|
|
|
|
Rect toolbarArea = m_transformedArea;
|
|
|
|
toolbarArea.height = ToolbarHeight;
|
|
GUILayout.BeginArea( toolbarArea, m_content, m_style );
|
|
EditorGUILayout.BeginHorizontal();
|
|
{
|
|
if( GUILayout.Button( "Clear", GUILayout.MaxWidth( 50 ) ) )
|
|
{
|
|
m_messages.Clear();
|
|
}
|
|
}
|
|
EditorGUILayout.EndHorizontal();
|
|
GUILayout.EndArea();
|
|
|
|
m_transformedArea.y += ToolbarHeight;
|
|
m_transformedArea.height -= ToolbarHeight;
|
|
|
|
GUILayout.BeginArea( m_transformedArea, m_content, m_style );
|
|
{
|
|
EditorGUILayout.BeginVertical();
|
|
{
|
|
m_currentScrollPos = EditorGUILayout.BeginScrollView( m_currentScrollPos, GUILayout.Width( 0 ), GUILayout.Height( 0 ) );
|
|
{
|
|
int count = m_messages.Count;
|
|
for( int i = 0; i < count; i++ )
|
|
{
|
|
EditorGUILayout.LabelField( i + ": " + m_messages[ i ].ItemMessage );
|
|
}
|
|
}
|
|
EditorGUILayout.EndScrollView();
|
|
}
|
|
EditorGUILayout.EndVertical();
|
|
}
|
|
GUILayout.EndArea();
|
|
|
|
//if( Event.current.type == EventType.keyDown && Event.current.keyCode == KeyCode.Alpha1 )
|
|
//{
|
|
// UIUtils.ShowMessage( "Test Message " + m_messages.Count );
|
|
//}
|
|
|
|
}
|
|
|
|
public void ClearMessages()
|
|
{
|
|
m_messages.Clear();
|
|
}
|
|
|
|
public void Toggle()
|
|
{
|
|
//m_isActive = !m_isActive;
|
|
}
|
|
|
|
public override void Destroy()
|
|
{
|
|
base.Destroy();
|
|
m_messages.Clear();
|
|
m_messages = null;
|
|
}
|
|
}
|
|
}
|