void DrawToggle(int i, Editor value)
    {
        value.serializedObject.Update();

        Component component = value.target as Component;

        bool isVisible = IsVisible(value);

        SUI.GUIChanged(() =>
        {
            GUIContent content = SUI.Content(component);

            content.text = string.Format("{0} - {1}", i, component.GetType().Name);

            isVisible = SUI.Toggle(isVisible, content, "Radio", SUI.Height(SUI.LineHeight));
        },
                       () =>
        {
            SetVisible(value, isVisible);
        });

        value.serializedObject.ApplyModifiedProperties();

        editor.Repaint();

        Repaint();
    }
    void DrawValues(int k, int v, string text, string name, Texture texture)
    {
        // Space
        SUI.Space(SUI.VerticalSpace);

        bool isSelected = selected.Contains(prefabs[k, v]);

        // Horizontal
        SUI.Horizontal(() =>
        {
            texture = GetThumbnail(prefabs[k, v]);

            GUILayout.Box(texture, "Label", SUI.Width(SUI.LineHeight), SUI.Height(SUI.LineHeight));

            text = string.Format("{0} - {1}", v, prefabs[k, v].name);

            if (isSelected)
            {
                RemoveButton(text, prefabs[k, v]);
            }
            else
            {
                AddButton(text, prefabs[k, v]);
            }
        });
    }
 void DrawSelectedGUIContents()
 {
     if (selected.Count == 0)
     {
         GUILayout.Box(GUIContent.none, SUI.Width(imgWidth), SUI.Height(imgHeight));
     }
     else
     {
         DrawSelectedPreview();
     }
 }
 void DrawSelectedPreview()
 {
     for (int k = 0; k < prefabs.KeyCount; k++)
     {
         for (int v = 0; v < prefabs.Values[k].Count; v++)
         {
             if (selected.Contains(prefabs[k, v]))
             {
                 GUILayout.Box(GetPreview(prefabs[k, v]), "label", SUI.Width(imgWidth), SUI.Height(imgHeight));
             }
         }
     }
 }