/// <summary>
        /// Occurs when header GUI is rendered and for GUI event handling.
        /// </summary>
        /// <remarks>
        /// <para>This means that your <see cref="OnFixedHeaderGUI"/> implementation might
        /// be called several times per frame (one call per event).</para>
        /// <para>The default implementation allows users to:</para>
        /// <list type="bullet">
        ///     <item>Rename brush</item>
        ///     <item>Mark brush as "static"</item>
        ///     <item>Mark brush as "smooth"</item>
        ///     <item>Hide brush</item>
        ///     <item>Set layer and tag for painted tiles</item>
        ///     <item>Categorize brush</item>
        /// </list>
        /// </remarks>
        public override void OnFixedHeaderGUI()
        {
            GUILayout.Space(6);

            GUILayout.BeginHorizontal();
            {
                GUILayout.Space(90);

                EditorGUIUtility.labelWidth = 80;
                this.DrawTilesetNameField();

                GUILayout.Label(
                    TileLang.PluralText(
                        /* 0: quantity of brushes */
                        "Contains 1 brush",
                        "Contains {0} brushes",
                        this.tilesetRecord.BrushRecords.Count
                        ),
                    RotorzEditorStyles.Instance.LabelMiddleLeft
                    );

                Rect menuPosition = GUILayoutUtility.GetRect(GUIContent.none, RotorzEditorStyles.Instance.LabelMiddleLeft, GUILayout.Width(45));
                this.DrawMenuButton(new Rect(menuPosition.x, 2, 44, 26), TileLang.Text("Tileset Menu"));

                this.DrawHelpButton();
            }
            GUILayout.EndHorizontal();

            EditorGUIUtility.labelWidth = 125;

            ExtraEditorGUI.SeparatorLight(marginTop: 7, marginBottom: 0, thickness: 3);

            this.DrawTabs();
        }