protected override void DrawContent(ref Rect contentRect)
        {
            using (new GUILayout.VerticalScope())
            {
                // TOOLBAR
                using (new GUILayout.HorizontalScope(EditorStyles.toolbar))
                {
                    if (GUILayout.Button(_createContent, EditorStyles.toolbarDropDown))
                    {
                        var customMenuRect = new Rect(Event.current.mousePosition.x, Event.current.mousePosition.y, 0, 0);
                        EditorUtility.DisplayCustomMenu(customMenuRect, _createPopupItems, -1, CreatePacket, null);
                    }

                    GUILayout.Space(5);

                    if (GUILayout.Button(_openContent, EditorStyles.toolbarButton))
                    {
                        OpenPacket();
                    }

                    if (GUILayout.Button(_saveContent, EditorStyles.toolbarButton))
                    {
                        SavePacket();
                    }

                    if (contentRect.width > 470)
                    {
                        if (CurrentPacket != null)
                        {
                            GUILayout.Space(5);

                            if (GUILayout.Button(_generateCodeContent, EditorStyles.toolbarButton))
                            {
                                GenerateSharpCode();
                            }
                        }
                    }

                    GUILayout.FlexibleSpace();

                    if (CurrentPacket != null)
                    {
                        GUILayout.Label($"Name: {PacketName}");
                    }
                }

                if (CurrentPacket != null)
                {
                    _scrollPosition = EditorGUILayout.BeginScrollView(_scrollPosition);
                    _packetDrawer.DrawLayout(CurrentPacket);

                    EditorGUILayout.EndScrollView();
                }
                else
                {
                    EditorGUILayout.LabelField(_infoContent, OSCEditorStyles.CenterLabel, GUILayout.Height(contentRect.height));
                }
            }
        }
        protected override void DrawContent(Rect contentRect)
        {
            EditorGUILayout.BeginVertical();
            EditorGUILayout.BeginHorizontal(EditorStyles.toolbar);

            if (GUILayout.Button(_createContent, EditorStyles.toolbarDropDown))
            {
                var customMenuRect = new Rect(Event.current.mousePosition.x, Event.current.mousePosition.y, 0, 0);

                EditorUtility.DisplayCustomMenu(customMenuRect, _createPoputItems, -1, CreatePacket, null);
            }

            GUILayout.Space(5);

            var openButton     = GUILayout.Button(_openContent, EditorStyles.toolbarButton);
            var saveButton     = GUILayout.Button(_saveContent, EditorStyles.toolbarButton);
            var generateButton = false;

            if (_currentPacket != null)
            {
                GUILayout.Space(5);

                generateButton = GUILayout.Button(_generateCodeContent, EditorStyles.toolbarButton);
            }

            GUILayout.FlexibleSpace();

            if (_currentPacket != null)
            {
                GUILayout.Label(string.Format("Name: {0}", PacketName));
            }

            EditorGUILayout.EndHorizontal();

            if (_currentPacket != null && _currentPacket != null)
            {
                _scrollPosition = EditorGUILayout.BeginScrollView(_scrollPosition);
                _packetDrawer.DrawLayout(_currentPacket);

                EditorGUILayout.EndScrollView();
            }
            else
            {
                EditorGUILayout.LabelField(_infoContent, OSCEditorStyles.CenterLabel, GUILayout.Height(contentRect.height));
            }

            EditorGUILayout.EndVertical();

            if (openButton)
            {
                OpenCurrentDebugPacket();
            }
            if (saveButton)
            {
                SaveCurrentDebugPacket();
            }
            if (generateButton)
            {
                GenerateCurrendDebugCode();
            }
        }