private void DrawToolbar(ref Rect contentRect) { #if UNITY_2019_3_OR_NEWER var toolbarSize = 22; #else var toolbarSize = 18; #endif contentRect.y += toolbarSize; contentRect.height -= toolbarSize; GUILayout.BeginArea(new Rect(0, 0, contentRect.width, toolbarSize)); EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(EditorStyles.toolbar); var clearButton = GUILayout.Button(_clearContent, EditorStyles.toolbarButton, GUILayout.Height(45f)); GUILayout.Space(5f); ShowReceived = GUILayout.Toggle(ShowReceived, _recevedContent, EditorStyles.toolbarButton); ShowTransmitted = GUILayout.Toggle(ShowTransmitted, _transmittedContent, EditorStyles.toolbarButton); GUILayout.FlexibleSpace(); GUILayout.Space(5f); _filterDrawer.Draw(); GUILayout.Space(5f); TrackLast = GUILayout.Toggle(TrackLast, _trackLastContent, EditorStyles.toolbarButton); GUILayout.Space(5f); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); GUILayout.EndArea(); if (clearButton) { OSCWindowConsole.Clear(); SelectedMessage = null; } }
private void DrawToolbar(Rect contentRect) { GUILayout.BeginArea(new Rect(0, 0, contentRect.width, 18)); EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(EditorStyles.toolbar); var clearButton = GUILayout.Button(_clearContent, EditorStyles.toolbarButton, GUILayout.Height(45f)); GUILayout.Space(5f); _showReceived = GUILayout.Toggle(_showReceived, _recevedContent, EditorStyles.toolbarButton); _showTransmitted = GUILayout.Toggle(_showTransmitted, _transmittedContent, EditorStyles.toolbarButton); GUILayout.FlexibleSpace(); GUILayout.Space(5f); //GUILayout.Label(_filterContent); _filterDrawer.Draw(); GUILayout.Space(5f); _trackLast = GUILayout.Toggle(_trackLast, _trackLastContent, EditorStyles.toolbarButton); GUILayout.Space(5f); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); GUILayout.EndArea(); if (clearButton) { OSCWindowConsole.Clear(); _selectedMessage = null; } }
protected override void DrawContent(Rect contentRect) { GUILayout.BeginArea(new Rect(0, 0, contentRect.width, 18)); EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(EditorStyles.toolbar); var clearButton = GUILayout.Button(_clearContent, EditorStyles.toolbarButton, GUILayout.Height(45f)); GUILayout.Space(5f); _showReceived = GUILayout.Toggle(_showReceived, _recevedContent, EditorStyles.toolbarButton); _showTransmitted = GUILayout.Toggle(_showTransmitted, _transmittedContent, EditorStyles.toolbarButton); GUILayout.Space(5f); _trackLast = GUILayout.Toggle(_trackLast, _trackLastContent, EditorStyles.toolbarButton); GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); GUILayout.EndArea(); contentRect.y += 18; contentRect.height -= 18; _lastContentRect = new Rect(contentRect); _consoleBuffer = OSCWindowConsole.GetConsoleBuffer(_showTransmitted, _showReceived); if (_trackLast) { if (_consoleBuffer.Length > 0) { _selectedMessage = _consoleBuffer[0]; } else { _selectedMessage = null; } } var viewRect = new Rect(contentRect); viewRect.height = _consoleBuffer.Length * _lineHeight; if (viewRect.height > contentRect.height) { viewRect.width -= 15f; } var itemRect = new Rect(0, viewRect.y, viewRect.width, _lineHeight); _scrollPosition = GUI.BeginScrollView(contentRect, _scrollPosition, viewRect); var drawed = false; for (var index = 0; index < _consoleBuffer.Length; index++) { var drawItem = !((itemRect.y + itemRect.height < _scrollPosition.y) || (itemRect.y > _scrollPosition.y + contentRect.height + itemRect.height)); if (drawItem) { drawed = true; var consoleMessage = _consoleBuffer[index]; var selected = _selectedMessage == consoleMessage; var color = GUI.color; DrawItem(itemRect, index, consoleMessage, selected); GUI.color = color; if (Event.current.type == EventType.MouseDown && itemRect.Contains(Event.current.mousePosition)) { if (Event.current.button == 0) { _trackLast = false; if (_selectedMessage != consoleMessage) { _selectedMessage = consoleMessage; _parentWindow.Repaint(); } Event.current.Use(); } else if (Event.current.button == 1) { ShowMessageGenericMenu(consoleMessage); Event.current.Use(); } } } else if (drawed) { break; } itemRect.y += itemRect.height; } GUI.EndScrollView(true); if (clearButton) { OSCWindowConsole.Clear(); _selectedMessage = null; } }