Exemplo n.º 1
0
    private int GuessStyleIndex(OGSkin skin, OGWidgetType widgetType, OGStyleType styleType)
    {
        int bestGuess = 0;

        if (skin)
        {
            for (int i = 0; i < skin.styles.Length; i++)
            {
                if (skin.styles[i].name == widgetType.ToString() && styleType == OGStyleType.Basic)
                {
                    bestGuess = i;
                    break;
                }
                else if (skin.styles[i].name.Contains(widgetType.ToString()))
                {
                    bestGuess = i;

                    if (skin.styles[i].name.Contains(styleType.ToString()))
                    {
                        break;
                    }
                }
            }
        }

        return(bestGuess);
    }
Exemplo n.º 2
0
    private void SortStyles(OGSkin skin)
    {
        List <OGStyle> tempList = new List <OGStyle> (skin.styles);

        tempList.Sort(CompareNames);

        skin.styles = tempList.ToArray();
    }
Exemplo n.º 3
0
    private void RemoveStyle(int i)
    {
        OGSkin         skin     = (OGSkin)target;
        List <OGStyle> tempList = new List <OGStyle> (skin.styles);

        tempList.RemoveAt(i);

        skin.styles = tempList.ToArray();
    }
Exemplo n.º 4
0
    public void Refresh(OGSkin skin)
    {
        if (!skin)
        {
            return;
        }

        OGStyle newStyle;

        if (basic != null)
        {
            newStyle = skin.GetStyle(basic.name);
            if (newStyle != null)
            {
                basic = newStyle;
            }
        }

        if (hover != null)
        {
            newStyle = skin.GetStyle(hover.name);
            if (newStyle != null)
            {
                hover = newStyle;
            }
        }

        if (active != null)
        {
            newStyle = skin.GetStyle(active.name);
            if (newStyle != null)
            {
                active = newStyle;
            }
        }

        if (ticked != null)
        {
            newStyle = skin.GetStyle(ticked.name);
            if (newStyle != null)
            {
                ticked = newStyle;
            }
        }

        if (thumb != null)
        {
            newStyle = skin.GetStyle(thumb.name);
            if (newStyle != null)
            {
                thumb = newStyle;
            }
        }
    }
Exemplo n.º 5
0
    private void SortStyles(OGSkin skin, OGStyle focus)
    {
        SortStyles(skin);

        for (int i = 0; i < skin.styles.Length; i++)
        {
            if (skin.styles[i] == focus)
            {
                currentStyle = i;
            }
        }
    }
Exemplo n.º 6
0
    private string[] GetStyles(OGSkin skin)
    {
        List <string> tempList = new List <string>();

        if (skin)
        {
            foreach (OGStyle style in skin.styles)
            {
                tempList.Add(style.name);
            }
        }

        return(tempList.ToArray());
    }
Exemplo n.º 7
0
    private int GetStyleIndex(OGSkin skin, OGStyle style)
    {
        if (skin != null && style != null)
        {
            for (int i = 0; i < skin.styles.Length; i++)
            {
                if (skin.styles[i].name == style.name)
                {
                    return(i);
                }
            }
        }

        return(0);
    }
Exemplo n.º 8
0
    private string[] GetFonts(OGSkin skin)
    {
        List <string> tempList = new List <string>();

        if (skin != null)
        {
            foreach (OGFont font in skin.fonts)
            {
                if (font != null)
                {
                    tempList.Add(font.name);
                }
            }
        }

        return(tempList.ToArray());
    }
Exemplo n.º 9
0
    private string[] GetStyles(bool includeCancel)
    {
        OGSkin        skin     = (OGSkin)target;
        List <string> tempList = new List <string>();

        if (includeCancel)
        {
            tempList.Add("...");
        }

        foreach (OGStyle style in skin.styles)
        {
            tempList.Add(style.name);
        }

        return(tempList.ToArray());
    }
Exemplo n.º 10
0
    public void ApplyDefaultStyles()
    {
        if (!root)
        {
            root = OGRoot.GetInstance();
        }

        OGSkin skin = root.skin;

        if (!skin)
        {
            Debug.LogWarning("OpenGUI | No OGSkin attached to OGRoot");
        }
        else
        {
            skin.ApplyDefaultStyles(this);
        }
    }
Exemplo n.º 11
0
	private Vector3[] CalcBorderLines ( Rect controlRect, OGSkin skin ) {
		Vector3[] lines = new Vector3[8];
		float width = skin.styles[currentStyle].coordinates.width * 2;
		float height = skin.styles[currentStyle].coordinates.height * 2;
		
		// Left
		lines[0] = new Vector3 ( controlRect.x + skin.styles[currentStyle].border.left * width / skin.styles[currentStyle].coordinates.width, controlRect.y, 0 );
		lines[1] = lines[0] + new Vector3 ( 0, controlRect.height, 0 );
		
		// Right
		lines[2] = new Vector3 ( controlRect.x + width - skin.styles[currentStyle].border.right * width / skin.styles[currentStyle].coordinates.width, controlRect.y, 0 );
		lines[3] = lines[2] + new Vector3 ( 0, controlRect.height, 0 );
		
		// Top
		lines[4] = new Vector3 ( controlRect.x, controlRect.y + skin.styles[currentStyle].border.top * height / skin.styles[currentStyle].coordinates.height, 0 );
		lines[5] = lines[4] + new Vector3 ( controlRect.width, 0, 0 );
		
		// Bottom
		lines[6] = new Vector3 ( controlRect.x, controlRect.y + height - skin.styles[currentStyle].border.bottom * height / skin.styles[currentStyle].coordinates.height, 0 );
		lines[7] = lines[6] + new Vector3 ( controlRect.width, 0, 0 );
		
		return lines;
	}
Exemplo n.º 12
0
    private Vector3[] CalcBorderLines(Rect controlRect, OGSkin skin)
    {
        Vector3[] lines  = new Vector3[8];
        float     width  = skin.styles[currentStyle].coordinates.width * 2;
        float     height = skin.styles[currentStyle].coordinates.height * 2;

        // Left
        lines[0] = new Vector3(controlRect.x + skin.styles[currentStyle].border.left * width / skin.styles[currentStyle].coordinates.width, controlRect.y, 0);
        lines[1] = lines[0] + new Vector3(0, controlRect.height, 0);

        // Right
        lines[2] = new Vector3(controlRect.x + width - skin.styles[currentStyle].border.right * width / skin.styles[currentStyle].coordinates.width, controlRect.y, 0);
        lines[3] = lines[2] + new Vector3(0, controlRect.height, 0);

        // Top
        lines[4] = new Vector3(controlRect.x, controlRect.y + skin.styles[currentStyle].border.top * height / skin.styles[currentStyle].coordinates.height, 0);
        lines[5] = lines[4] + new Vector3(controlRect.width, 0, 0);

        // Bottom
        lines[6] = new Vector3(controlRect.x, controlRect.y + height - skin.styles[currentStyle].border.bottom * height / skin.styles[currentStyle].coordinates.height, 0);
        lines[7] = lines[6] + new Vector3(controlRect.width, 0, 0);

        return(lines);
    }
Exemplo n.º 13
0
    private void AddStyle(string n)
    {
        OGSkin skin = (OGSkin)target;

        for (int i = 0; i < skin.styles.Length; i++)
        {
            if (n == skin.styles[i].name)
            {
                Debug.LogWarning("OpenGUI: There is already a style by name '" + n + "'");
                return;
            }
        }

        List <OGStyle> tempList = new List <OGStyle> (skin.styles);
        OGStyle        newStyle = new OGStyle();

        newStyle.name = n;

        tempList.Add(newStyle);

        skin.styles = tempList.ToArray();

        SortStyles(skin, newStyle);
    }
Exemplo n.º 14
0
 //////////////////
 // Calculations
 //////////////////
 // Convert to enum
 public OGWidgetType ToEnum()
 {
     return(OGSkin.GetWidgetEnum(this));
 }
Exemplo n.º 15
0
	private string[] GetStyles ( OGSkin skin ) {
		List< string > tempList = new List< string >();
		
		if ( skin ) {
			foreach ( OGStyle style in skin.styles ) {
				tempList.Add ( style.name );
			}
		}
		
		return tempList.ToArray();
	}
Exemplo n.º 16
0
    override public void OnInspectorGUI()
    {
        serializedObject.Update();

        OGSkin skin = (OGSkin)target;

        if (skin == null)
        {
            EditorGUILayout.LabelField("Skin is null for some reason");
            return;
        }

        if (skin.styles == null)
        {
            EditorGUILayout.LabelField("Skin styles are null for some reason");
            return;
        }

        if (currentStyle >= skin.styles.Length)
        {
            currentStyle = skin.styles.Length - 1;
        }

        Object  tempObj = null;
        OGStyle s       = null;

        if (skin.styles.Length > 0)
        {
            s = skin.styles[currentStyle];
        }

        // Set defaults
        if (setDefaultsMode)
        {
            EditorGUILayout.BeginHorizontal();

            EditorGUILayout.LabelField("Manage defaults", EditorStyles.boldLabel);

            // Reset
            GUI.backgroundColor = Color.red;
            if (GUILayout.Button("Reset", GUILayout.Width(50)))
            {
                skin.ResetDefaults();
            }

            EditorGUILayout.EndHorizontal();

            EditorGUILayout.LabelField("Set the default widget styles");

            GUILayout.Space(10);

            // Back
            GUI.backgroundColor = Color.white;
            if (GUILayout.Button("Back to inspector", GUILayout.Height(30)))
            {
                setDefaultsMode = false;
            }

            // Auto detect
            bool autoDetect = false;
            if (GUILayout.Button("Autodetect"))
            {
                autoDetect = true;
            }

            GUILayout.Space(10);

            foreach (OGDefault d in skin.GetAllDefaults())
            {
                EditorGUILayout.LabelField(d.widgetType.ToString(), EditorStyles.boldLabel, GUILayout.Width(100));

                EditorGUILayout.BeginVertical();

                foreach (OGStyleType styleType in System.Enum.GetValues(typeof(OGStyleType)) as OGStyleType[])
                {
                    if (OGSkin.IsStyleUsed(styleType, d.widgetType))
                    {
                        string  stateName = styleType.ToString();
                        OGStyle style     = d.styleSet.GetStyle(styleType);
                        int     styleIndex;

                        if (autoDetect)
                        {
                            styleIndex = GuessStyleIndex(skin, d.widgetType, styleType);
                        }
                        else
                        {
                            styleIndex = GetStyleIndex(skin, style);
                        }

                        EditorGUILayout.BeginHorizontal();
                        EditorGUILayout.LabelField(stateName, GUILayout.Width(80));
                        styleIndex = EditorGUILayout.Popup(styleIndex, GetStyles(skin));
                        EditorGUILayout.EndHorizontal();
                        d.styleSet.SetStyle(styleType, skin.styles [styleIndex]);
                    }
                }

                EditorGUILayout.EndVertical();

                GUILayout.Space(20);
            }

            // Back
            GUI.backgroundColor = Color.white;
            if (GUILayout.Button("Back to inspector", GUILayout.Height(30)))
            {
                setDefaultsMode = false;
            }

            // Adjust UV
        }
        else if (uvMode)
        {
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Style", EditorStyles.boldLabel, GUILayout.Width(50));
            currentStyle = EditorGUILayout.Popup(currentStyle, GetStyles(false), GUILayout.Width(100));
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.Space();

            EditorGUILayout.LabelField("Edit widget UV coordinates");

            EditorGUILayout.Space();

            // Atlas
            Texture uvAtlasTex = skin.atlas.mainTexture;

            s.coordinates.x      = Mathf.Floor(s.coordinates.x);
            s.coordinates.y      = Mathf.Floor(s.coordinates.y);
            s.coordinates.width  = Mathf.Floor(s.coordinates.width);
            s.coordinates.height = Mathf.Floor(s.coordinates.height);

            s.coordinates.x = Mathf.Clamp(s.coordinates.x, 0, uvAtlasTex.width - s.coordinates.width);
            s.coordinates.y = Mathf.Clamp(s.coordinates.y, 0, uvAtlasTex.height - s.coordinates.height);

            s.coordinates = EditorGUILayout.RectField(s.coordinates);

            EditorGUILayout.Space();

            uvScale = EditorGUILayout.Slider("Zoom", uvScale, 1, 10);

            EditorGUILayout.Space();

            uvScrollPosition = GUILayout.BeginScrollView(uvScrollPosition, GUILayout.Height(Mathf.Clamp(uvAtlasTex.height * uvScale, uvAtlasTex.height, 300) + 20));

            Rect      uvControlRect = EditorGUILayout.GetControlRect(false, uvAtlasTex.height * uvScale, GUILayout.Width(uvAtlasTex.width * uvScale));
            Vector3[] uvBorderLines = CalcUVBorderLines(uvControlRect, s, uvAtlasTex);

            GUI.DrawTexture(uvControlRect, uvAtlasTex, ScaleMode.ScaleToFit, true);

            Handles.color = Color.green;

            Handles.DrawLine(uvBorderLines[0], uvBorderLines[1]);
            Handles.DrawLine(uvBorderLines[2], uvBorderLines[3]);
            Handles.DrawLine(uvBorderLines[4], uvBorderLines[5]);
            Handles.DrawLine(uvBorderLines[6], uvBorderLines[7]);

            Handles.color = Color.white;

            GUILayout.EndScrollView();

            EditorGUILayout.Space();

            // Back
            GUI.backgroundColor = Color.white;
            if (GUILayout.Button("Back to inspector", GUILayout.Height(30)))
            {
                uvMode = false;
            }

            // Edit style
        }
        else
        {
            // Null check
            if (skin.styles.Length > 0)
            {
                // Style
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("Style", EditorStyles.boldLabel, GUILayout.Width(50));
                currentStyle = EditorGUILayout.Popup(currentStyle, GetStyles(false), GUILayout.Width(100));

                EditorGUILayout.Space();

                // ^ Preview
                if (skin.atlas != null && skin.atlas.mainTexture != null)
                {
                    GUI.color = tintColor;

                    Rect newCoords = new Rect(
                        s.coordinates.x / skin.atlas.mainTexture.width,
                        s.coordinates.y / skin.atlas.mainTexture.height,
                        s.coordinates.width / skin.atlas.mainTexture.width,
                        s.coordinates.height / skin.atlas.mainTexture.height
                        );

                    Rect      controlRect = EditorGUILayout.GetControlRect(false, s.coordinates.height * 2, GUILayout.Width(s.coordinates.width * 2));
                    Vector3[] borderLines = CalcBorderLines(controlRect, skin);
                    Texture   previewTex  = skin.atlas.mainTexture;

                    GUI.DrawTextureWithTexCoords(controlRect, previewTex, newCoords, true);

                    GUI.color = Color.white;

                    Handles.DrawLine(borderLines[0], borderLines[1]);
                    Handles.DrawLine(borderLines[2], borderLines[3]);
                    Handles.DrawLine(borderLines[4], borderLines[5]);
                    Handles.DrawLine(borderLines[6], borderLines[7]);
                }

                EditorGUILayout.EndHorizontal();

                GUILayout.Space(20);

                // ^ Name
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("Name", GUILayout.Width(100));
                s.name = EditorGUILayout.TextField(s.name);
                EditorGUILayout.EndHorizontal();

                // ^ Coordinates
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("Coordinates", GUILayout.Width(100));
                s.coordinates = EditorGUILayout.RectField(s.coordinates);
                if (GUILayout.Button("Edit", GUILayout.Width(40), GUILayout.Height(30)))
                {
                    uvMode = true;
                }
                EditorGUILayout.EndHorizontal();

                // ^ Border
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("Border", GUILayout.Width(100));

                EditorGUILayout.BeginVertical();
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.Space();
                s.border.top = EditorGUILayout.FloatField(s.border.top, GUILayout.Width(30));
                EditorGUILayout.Space();
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.BeginHorizontal();
                s.border.left = EditorGUILayout.FloatField(s.border.left, GUILayout.Width(30));
                EditorGUILayout.Space();
                s.border.right = EditorGUILayout.FloatField(s.border.right, GUILayout.Width(30));
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.Space();
                s.border.bottom = EditorGUILayout.FloatField(s.border.bottom, GUILayout.Width(30));
                EditorGUILayout.Space();
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.EndVertical();

                EditorGUILayout.EndHorizontal();

                // ^ Color
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("Color", GUILayout.Width(100));
                s.color = EditorGUILayout.ColorField(s.color);

                tintColor = s.color;

                EditorGUILayout.EndHorizontal();

                // ^ Text
                EditorGUILayout.Space();

                showText = EditorGUILayout.Foldout(showText, "Text");

                if (s.text != null && showText)
                {
                    // ^^ Font
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField("Font", GUILayout.Width(100));
                    if (s.text.fontIndex >= skin.fonts.Length)
                    {
                        s.text.fontIndex = skin.fonts.Length - 1;
                    }
                    else if (s.text.fontIndex < 0)
                    {
                        s.text.fontIndex = 0;
                    }
                    s.text.fontIndex = EditorGUILayout.Popup(s.text.fontIndex, GetFonts(skin));
                    s.text.font      = skin.fonts[s.text.fontIndex];
                    EditorGUILayout.EndHorizontal();

                    // ^^ Size
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField("Size", GUILayout.Width(100));
                    s.text.fontSize = EditorGUILayout.IntField(s.text.fontSize);
                    EditorGUILayout.EndHorizontal();

                    // ^^ Colour
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField("Color", GUILayout.Width(100));
                    s.text.fontColor = EditorGUILayout.ColorField(s.text.fontColor);
                    EditorGUILayout.EndHorizontal();

                    // ^^ Alignment
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField("Alignment", GUILayout.Width(100));
                    s.text.alignment = (TextAnchor)EditorGUILayout.Popup((int)s.text.alignment, GetAnchors());
                    EditorGUILayout.EndHorizontal();

                    // ^^ Word wrap
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField("Word wrap", GUILayout.Width(100));
                    s.text.wordWrap = EditorGUILayout.Toggle(s.text.wordWrap);
                    EditorGUILayout.EndHorizontal();

                    // ^^ Padding
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField("Padding", GUILayout.Width(100));

                    EditorGUILayout.BeginVertical();
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.Space();
                    s.text.padding.top = (int)EditorGUILayout.FloatField(s.text.padding.top, GUILayout.Width(30));
                    EditorGUILayout.Space();
                    EditorGUILayout.EndHorizontal();
                    EditorGUILayout.BeginHorizontal();
                    s.text.padding.left = (int)EditorGUILayout.FloatField(s.text.padding.left, GUILayout.Width(30));
                    EditorGUILayout.Space();
                    s.text.padding.right = (int)EditorGUILayout.FloatField(s.text.padding.right, GUILayout.Width(30));
                    EditorGUILayout.EndHorizontal();
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.Space();
                    s.text.padding.bottom = (int)EditorGUILayout.FloatField(s.text.padding.bottom, GUILayout.Width(30));
                    EditorGUILayout.Space();
                    EditorGUILayout.EndHorizontal();
                    EditorGUILayout.EndVertical();

                    EditorGUILayout.EndHorizontal();

                    // ^^ Line height
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField("Line height", GUILayout.Width(100));
                    s.text.lineHeight = EditorGUILayout.FloatField(s.text.lineHeight);
                    EditorGUILayout.EndHorizontal();

                    // ^^ Spacing
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField("Spacing", GUILayout.Width(100));
                    s.text.spacing = EditorGUILayout.FloatField(s.text.spacing);
                    EditorGUILayout.EndHorizontal();
                }

                GUILayout.Space(20);
            }

            // Fonts
            EditorGUILayout.LabelField("Fonts", EditorStyles.boldLabel);
            List <OGFont> tmpList;

            if (skin.fonts.Length < 1)
            {
                skin.fonts = new OGFont[1];
            }

            for (int i = 0; i < skin.fonts.Length; i++)
            {
                EditorGUILayout.BeginHorizontal();

                EditorGUILayout.LabelField(i.ToString(), GUILayout.Width(30));

                tempObj       = (Object)skin.fonts[i];
                tempObj       = EditorGUILayout.ObjectField(tempObj, typeof(OGFont), false);
                skin.fonts[i] = (OGFont)tempObj;

                GUI.backgroundColor = Color.red;
                if (GUILayout.Button("x", GUILayout.Width(30), GUILayout.Height(14)))
                {
                    tmpList = new List <OGFont> (skin.fonts);

                    tmpList.RemoveAt(i);

                    skin.fonts = tmpList.ToArray();
                }
                GUI.backgroundColor = Color.white;

                EditorGUILayout.EndHorizontal();
            }

            EditorGUILayout.BeginHorizontal();

            GUI.backgroundColor = Color.green;
            if (GUILayout.Button("+", GUILayout.Width(30), GUILayout.Height(14)))
            {
                tmpList = new List <OGFont> (skin.fonts);

                tmpList.Add(null);

                skin.fonts = tmpList.ToArray();
            }
            GUI.backgroundColor = Color.white;

            EditorGUILayout.EndHorizontal();

            EditorGUILayout.Space();

            // Font shader
            EditorGUILayout.LabelField("Font shader", EditorStyles.boldLabel);
            tempObj         = (Object)skin.fontShader;
            tempObj         = EditorGUILayout.ObjectField(tempObj, typeof(Shader), false);
            skin.fontShader = (Shader)tempObj;

            EditorGUILayout.Space();

            // Atlas
            EditorGUILayout.LabelField("Atlas", EditorStyles.boldLabel);
            tempObj    = (Object)skin.atlas;
            tempObj    = EditorGUILayout.ObjectField(tempObj, typeof(Material), false);
            skin.atlas = (Material)tempObj;

            EditorGUILayout.Space();

            // Delete mode
            if (deleteMode)
            {
                EditorGUILayout.LabelField("Delete style", EditorStyles.boldLabel);

                EditorGUILayout.BeginHorizontal();

                EditorGUILayout.LabelField("Are you sure?");

                // Cancel
                if (GUILayout.Button("Cancel"))
                {
                    deleteMode = false;
                }

                GUI.backgroundColor = Color.red;
                if (GUILayout.Button("Delete"))
                {
                    deleteMode = false;
                    RemoveStyle(currentStyle);
                }
                GUI.backgroundColor = Color.white;

                EditorGUILayout.EndHorizontal();

                // Add mode
            }
            else if (addMode)
            {
                EditorGUILayout.LabelField("Add style", EditorStyles.boldLabel);

                EditorGUILayout.BeginHorizontal();

                // Select
                addStyleName = EditorGUILayout.TextField(addStyleName);

                // Cancel
                if (GUILayout.Button("Cancel"))
                {
                    addMode = false;
                }

                GUI.backgroundColor = Color.green;
                if (GUILayout.Button("Create"))
                {
                    addMode = false;
                    AddStyle(addStyleName);
                }
                GUI.backgroundColor = Color.white;

                EditorGUILayout.EndHorizontal();

                // Else
            }
            else
            {
                EditorGUILayout.LabelField("Operations", EditorStyles.boldLabel);

                EditorGUILayout.BeginHorizontal();

                // Add Style
                GUI.backgroundColor = Color.green;
                if (GUILayout.Button("Add style"))
                {
                    addStyleName = "";
                    addMode      = true;
                }

                // Delete style
                GUI.backgroundColor = Color.red;
                if (GUILayout.Button("Delete style"))
                {
                    deleteMode = true;
                }

                EditorGUILayout.EndHorizontal();

                // Manage defaults
                GUI.backgroundColor = Color.white;
                if (GUILayout.Button("Sort styles"))
                {
                    SortStyles(skin);
                }
                else if (GUILayout.Button("Manage defaults", GUILayout.Height(30)))
                {
                    setDefaultsMode = true;
                }
            }

            EditorGUILayout.Space();

            if (GUI.changed)
            {
                SavePrefab();
            }
        }
    }
Exemplo n.º 17
0
	private string[] GetFonts ( OGSkin skin ) {
		List< string > tempList = new List< string >();
		
		if ( skin != null ) {
			foreach ( OGFont font in skin.fonts ) {
				if ( font != null ) {
					tempList.Add ( font.name );
				}
			}
		}
		
		return tempList.ToArray();
	}
Exemplo n.º 18
0
	private void SortStyles ( OGSkin skin ) {
		List< OGStyle > tempList = new List< OGStyle > ( skin.styles );
				
		tempList.Sort ( CompareNames );
		
		skin.styles = tempList.ToArray ();
	}
Exemplo n.º 19
0
	private int GuessStyleIndex ( OGSkin skin, OGWidgetType widgetType, OGStyleType styleType ) {
		int bestGuess = 0;
		
		if ( skin ) {
			for ( int i = 0; i < skin.styles.Length; i++ ) {
				if ( skin.styles[i].name == widgetType.ToString() && styleType == OGStyleType.Basic ) {
					bestGuess = i;
					break;

				} else if ( skin.styles[i].name.Contains ( widgetType.ToString() ) ) {
					bestGuess = i;
					
					if ( skin.styles[i].name.Contains ( styleType.ToString() ) ) {
						break;
					}
				}
			}
		}
	
		return bestGuess;
	}
Exemplo n.º 20
0
	public void Refresh ( OGSkin skin ) {
		if ( !skin ) { return; }
		
		OGStyle newStyle;
		       
		if ( basic != null ) {
			newStyle = skin.GetStyle ( basic.name );
			if ( newStyle != null ) { basic = newStyle; }
		}
		
		if ( hover != null ) {
			newStyle = skin.GetStyle ( hover.name );
			if ( newStyle != null ) { hover = newStyle; }
		}
		
		if ( active != null ) {
			newStyle = skin.GetStyle ( active.name );
			if ( newStyle != null ) { active = newStyle; }
		}

		if ( ticked != null ) {
			newStyle = skin.GetStyle ( ticked.name );
			if ( newStyle != null ) { ticked = newStyle; }
		}
		
		if ( thumb != null ) {
			newStyle = skin.GetStyle ( thumb.name );
			if ( newStyle != null ) { thumb = newStyle; }
		}
	}
Exemplo n.º 21
0
	private void SortStyles ( OGSkin skin, OGStyle focus ) {
		SortStyles ( skin );

		for ( int i = 0; i < skin.styles.Length; i++ ) {
			if ( skin.styles[i] == focus ) {
				currentStyle = i;
			}
		}
	}
Exemplo n.º 22
0
    override public void OnInspectorGUI()
    {
        OGWidget widget = (OGWidget)target;

        if (!widget || !widget.root)
        {
            return;
        }

        // Check for hidden widgets
        if (widget.hidden)
        {
            EditorGUILayout.LabelField("This widget is rubbish that somehow didn't get deleted.");

            // Kill!
            if (GUILayout.Button("Fix"))
            {
                DestroyImmediate(target as GameObject);
            }
        }
        else
        {
            // Default inspector
            DrawDefaultInspector();

            // OGCameraWindow, OGLineNode and OGTexture don't need styles
            if (target.GetType() != typeof(OGLineNode) && target.GetType() != typeof(OGTexture) && target.GetType() != typeof(OGCameraWindow))
            {
                EditorGUILayout.Space();

                EditorGUILayout.LabelField("Style", EditorStyles.boldLabel);

                foreach (OGStyleType styleType in System.Enum.GetValues(typeof(OGStyleType)) as OGStyleType[])
                {
                    if (OGSkin.IsStyleUsed(styleType, widget.ToEnum()))
                    {
                        // Styles
                        OGStyle wdStyle      = widget.styles.GetStyle(styleType);
                        int     wdStyleIndex = GetStyleIndex(widget, wdStyle);
                        EditorGUILayout.BeginHorizontal();

                        EditorGUILayout.LabelField(styleType.ToString());

                        wdStyleIndex = EditorGUILayout.Popup(wdStyleIndex, GetStyles(widget));
                        widget.styles.SetStyle(styleType, widget.root.skin.styles [wdStyleIndex]);

                        // ^ Edit
                        if (GUILayout.Button("Edit", GUILayout.Width(40)))
                        {
                            Selection.activeObject = widget.root.skin;
                            OGSkinInspector.SetCurrentStyle(wdStyleIndex);
                        }

                        EditorGUILayout.EndHorizontal();
                    }
                }

                EditorGUILayout.BeginHorizontal();

                // Get defaults
                if (GUILayout.Button("Apply default styles"))
                {
                    (target as OGWidget).ApplyDefaultStyles();
                }

                // ^ Edit
                if (GUILayout.Button("Edit", GUILayout.Width(40)))
                {
                    Selection.activeObject = widget.root.skin;
                    OGSkinInspector.SetDefaultsMode();
                }

                EditorGUILayout.EndHorizontal();
            }
        }
    }
Exemplo n.º 23
0
	private int GetStyleIndex ( OGSkin skin, OGStyle style ) {
		if ( skin != null && style != null ) {
			for ( int i = 0; i < skin.styles.Length; i++ ) {
				if ( skin.styles[i].name == style.name ) {
					return i;
				}
			}
		}
	
		return 0;
	}