protected Rect DrawModeIcon(Rect position, SOBaseVariable baseVariable)
    {
        SOTextureResourceManager.Resource iconMode =
            (baseVariable.Mode == SOVariableMode.Constant ? SOTextureResourceManager.Resource.IconConstant : SOTextureResourceManager.Resource.IconRuntime);

        DrawIcon(position, iconMode, baseVariable.Mode.ToString());

        position.x += iconSize;
        return(position);
    }
    protected void  DrawIcon(Rect position, SOTextureResourceManager.Resource resource, string tooltip = "", bool shouldDrawBackground = true)
    {
        if (shouldDrawBackground)
        {
            DrawIconBackground(position);
        }

        Texture icon = SOTextureResourceManager.GetTexture(resource);

        if (!string.IsNullOrEmpty(tooltip))
        {
            GUI.Box(position, new GUIContent(string.Empty, icon, tooltip));
        }
        else
        {
            GUI.DrawTexture(position, icon, ScaleMode.ScaleToFit, true, 1.0f);
        }
    }