public override void OnInspectorGUI() { InstantGuiToggle script = (InstantGuiToggle)target; base.OnInspectorGUI(); //EditorGUILayout.Space(); script.guiElementProps = EditorGUILayout.Foldout(script.guiElementProps, "Toggle"); if (script.guiElementProps) { EditorGUI.indentLevel = 1; script.check = EditorGUILayout.Toggle("Checked", script.check); script.couldBeUnchecked = EditorGUILayout.Toggle("Could Be Unchecked", script.couldBeUnchecked); //uncheck toggles array EditorGUILayout.LabelField("Uncheck Toggles on Checked:"); script.uncheckToggles = InstantGuiInspector.DrawElementsArray(script.uncheckToggles); EditorGUI.indentLevel = 0; } InstantGuiInspector.DrawActivator("On Checked:", script.onChecked); InstantGuiInspector.DrawActivator("On Unchecked:", script.onUnchecked); }
public override void OnInspectorGUI() { InstantGuiButton script = (InstantGuiButton)target; base.OnInspectorGUI(); if (!script) { return; } //EditorGUILayout.Space(); InstantGuiInspector.DrawActivator("On Pressed:", script.onPressed); }
static public InstantGuiStyle DrawStyle(InstantGuiStyle style, bool drawDefaultPos) { int indent = EditorGUI.indentLevel; EditorGUI.indentLevel = 1; //EditorGUILayout.HelpBox("Style settings are not available in demo version.", MessageType.Info); DrawSubStyle(style.main, "Main"); DrawSubStyle(style.pointed, "Pointed"); DrawSubStyle(style.active, "Active"); DrawSubStyle(style.disabled, "Disabled"); EditorGUILayout.Space(); //texture borders EditorGUIUtility.LookLikeControls(15, 15); EditorGUI.indentLevel = 0; Rect rect = GUILayoutUtility.GetRect(50, 44, "TextField"); rect.x += indent * indentPixels; rect.width -= indent * indentPixels; rect.x = 150; rect.width = 75; rect.height = 16; style.borders.top = EditorGUI.IntField(rect, "T:", style.borders.top); rect.y += 18; rect.x -= 40; style.borders.left = EditorGUI.IntField(rect, "L:", style.borders.left); rect.x += 80; style.borders.right = EditorGUI.IntField(rect, "R:", style.borders.right); rect.y += 18; rect.x -= 40; style.borders.bottom = EditorGUI.IntField(rect, "B:", style.borders.bottom); rect.x -= 120; rect.y -= 36; EditorGUI.LabelField(rect, "Texture"); rect.y += 18; EditorGUI.LabelField(rect, "Borders:"); rect.y += 18; rect.x = 32; rect.width = 60; if (GUI.Button(rect, "Half Size")) { Texture tex = GetUsedtexture(style); if (tex != null) { style.borders.top = (int)(tex.height * 0.5f); style.borders.bottom = (int)(tex.height * 0.5f); style.borders.left = (int)(tex.width * 0.5f); style.borders.right = (int)(tex.width * 0.5f); } } GUILayoutUtility.GetRect(50, 18, "TextField"); EditorGUIUtility.LookLikeControls(); //fixed width rect = GUILayoutUtility.GetRect(50, 18, "TextField"); rect.x += (indent + 1) * indentPixels; rect.width -= (indent + 1) * indentPixels; EditorGUI.indentLevel = 0; int rectwidth = (int)rect.width; rect.width = 30; style.fixedWidth = EditorGUI.Toggle(rect, style.fixedWidth); rect.x += 20; rect.width = rectwidth - 45 - 30; style.fixedWidthSize = EditorGUI.IntField(rect, "Fixed Width:", style.fixedWidthSize); rect.x += rect.width + 5; rect.width = 50; if (GUI.Button(rect, "Get")) { Texture tex = GetUsedtexture(style); if (tex != null) { style.fixedWidthSize = tex.width; } } EditorGUI.indentLevel = 1; //fixed height rect = GUILayoutUtility.GetRect(50, 18, "TextField"); rect.x += (indent + 1) * indentPixels; rect.width -= (indent + 1) * indentPixels; EditorGUI.indentLevel = 0; rectwidth = (int)rect.width; rect.width = 30; style.fixedHeight = EditorGUI.Toggle(rect, style.fixedHeight); rect.x += 20; rect.width = rectwidth - 45 - 30; style.fixedHeightSize = EditorGUI.IntField(rect, "Fixed Height:", style.fixedHeightSize); rect.x += rect.width + 5; rect.width = 50; if (GUI.Button(rect, "Get")) { Texture tex = GetUsedtexture(style); if (tex != null) { style.fixedHeightSize = tex.height; } } EditorGUI.indentLevel = 1; //proportional rect = GUILayoutUtility.GetRect(50, 18, "TextField"); rect.x += (indent) * indentPixels; rect.width -= (indent) * indentPixels; rect.width -= 100; style.proportional = EditorGUI.ToggleLeft(rect, "Proportional", style.proportional); rect.x += 100; style.proportionalAspect = EditorGUI.FloatField(rect, style.proportionalAspect); //pointOffset InstantGuiElementPos tmp = new InstantGuiElementPos(style.pointOffset.left, style.pointOffset.right, style.pointOffset.top, style.pointOffset.bottom); tmp = InstantGuiInspector.DrawElementPos("ClickOffset:", tmp); style.pointOffset = new RectOffset(tmp.left, tmp.right, tmp.top, tmp.bottom); //other controls style.blendSpeed = EditorGUILayout.FloatField("Blend Speed:", style.blendSpeed); EditorGUILayout.Space(); style.font = (Font)EditorGUILayout.ObjectField("Font:", style.font, typeof(Font), false); style.fontSize = EditorGUILayout.IntField("Font Size:", style.fontSize); style.textAligment = (InstantGuiTextAligment)EditorGUILayout.EnumPopup("Text Aligment:", style.textAligment); Vector2 textOffset = DrawVector2("Text Offset", new Vector2(style.textOffsetX, style.textOffsetY)); style.textOffsetX = (int)(textOffset.x); style.textOffsetY = (int)(textOffset.y); EditorGUILayout.Space(); //text offset if (drawDefaultPos) { EditorGUILayout.LabelField("Default Placement:"); InstantGuiInspector.DrawElementPosLabels("", "Left", "Right", "Top", "Bottom"); style.relative = InstantGuiInspector.DrawElementPos("Relative:", style.relative); style.offset = InstantGuiInspector.DrawElementPos("Offset:", style.offset); style.layerOffset = DrawLayerOffset("Layer Offset:", style.layerOffset); } EditorGUILayout.Space(); EditorGUI.indentLevel = indent; return(style); }
public override void OnInspectorGUI() { EditorGUI.BeginChangeCheck(); InstantGuiElement script = (InstantGuiElement)target; Undo.RecordObject(script, "InstantGui Change"); //EditorGUIUtility.LookLikeInspector (); //DrawDefaultInspector (); //text string newText = EditorGUILayout.TextField("Text:", script.text); script.guiLinkText = EditorGUILayout.Toggle("Use Object Name:", script.guiLinkText); if (script.guiLinkText && !EditorApplication.isPlayingOrWillChangePlaymode && script.GetType() != typeof(InstantGuiTextArea)) { if (script.text != newText) //if text changed { if (newText.Length != 0) { script.gameObject.name = newText; } else { script.gameObject.name = "GuiElement"; } script.text = newText; } if (script.text != script.gameObject.name && newText.Length != 0) { script.text = script.gameObject.name; } } else { script.text = newText; } //setting style script.guiStyle = EditorGUILayout.Foldout(script.guiStyle, "Style"); if (script.guiStyle) { EditorGUI.indentLevel = 1; script.styleSet = (InstantGuiStyleSet)EditorGUILayout.ObjectField("Style Set:", script.styleSet, typeof(InstantGuiStyleSet), false); bool customStyle = EditorGUILayout.Toggle("Custom Style:", script.customStyle); //custom style if (customStyle) { if (!script.customStyle) { if (script.style != null) { script.style = script.style.Clone(); } else { script.style = new InstantGuiStyle(); } } script.style.name = EditorGUILayout.TextField("Name:", script.style.name); script.styleName = script.style.name; InstantGuiInspector.DrawStyle(script.style, false); EditorGUILayout.Space(); if (script.styleSet != null && script.style != null && script.style.name.Length > 0) { InstantGuiInspector.DrawSaveToStyleButton("Add to StyleSet", script, true, false); } } //else if (!customStyle && script.styleSet != null) { string[] styleNames = new string[script.styleSet.styles.Length]; int selectedStyle = -1; //default if style could not be found //compiling popup array for (int i = 0; i < script.styleSet.styles.Length; i++) { styleNames[i] = script.styleSet.styles[i].name; } //finding popup selected if (script.style == null) { selectedStyle = 0; } else { for (int i = 0; i < styleNames.Length; i++) { if (styleNames[i] == script.styleName) { selectedStyle = i; } } } styleNames[0] = "None"; int newSelected = EditorGUILayout.Popup("Style:", selectedStyle, styleNames); if (newSelected != selectedStyle) { script.style = script.styleSet.styles[newSelected]; script.styleName = script.style.name; //script.styleNum = newSelected; } } script.customStyle = customStyle; EditorGUI.indentLevel = 0; } //position script.guiPosition = EditorGUILayout.Foldout(script.guiPosition, "Position"); if (script.guiPosition) { EditorGUI.indentLevel = 1; script.useStylePlacement = EditorGUILayout.ToggleLeft("Use Style Placement", script.useStylePlacement); if (!script.useStylePlacement) { int preset = EditorGUILayout.Popup("Preset:", -1, positionPresets); switch (preset) { //case 0: if (script.style!=null) { script.relative.Set(script.style.relative); script.offset.Set(script.style.offset); script.layerOffset = script.style.layerOffset; } break; case 0: script.relative.Set(0, 100, 0, 100); script.offset.Set(0, 0, 0, 0); break; case 1: script.relative.Set(10, 90, 10, 90); script.offset.Set(10, -10, 10, -10); break; case 2: script.offset.right = -script.offset.left; script.offset.bottom = -script.offset.top; break; case 3: script.relative.Set(50, 50, 50, 50); script.offset.Set(20, -20, 20, -20); break; case 4: if (script.style != null) { script.offset.left = (int)(-script.style.fixedWidthSize * 0.5f); script.offset.right = (int)(script.style.fixedWidthSize * 0.5f); } break; case 5: if (script.style != null) { script.offset.top = (int)(-script.style.fixedHeightSize * 0.5f); script.offset.bottom = (int)(script.style.fixedHeightSize * 0.5f); } break; } InstantGuiInspector.DrawElementPosLabels("", "Left", "Right", "Top", "Bottom"); script.relative = InstantGuiInspector.DrawElementPos("Relative:", script.relative); script.offset = InstantGuiInspector.DrawElementPos("Offset:", script.offset); InstantGuiInspector.DrawElementPosLabels("Absolute:", script.absolute.left.ToString(), script.absolute.right.ToString(), script.absolute.top.ToString(), script.absolute.bottom.ToString()); script.layerOffset = InstantGuiInspector.DrawLayerOffset("Layer Offset:", script.layerOffset); script.lockPosition = EditorGUILayout.Toggle("Lock Position", script.lockPosition); if (script.styleSet != null && script.style != null && script.style.name != null && script.style.name.Length > 0) { InstantGuiInspector.DrawSaveToStyleButton("Set as Default in Style", script, false, true); } } EditorGUI.indentLevel = 0; } script.guiAttributes = EditorGUILayout.Foldout(script.guiAttributes, "Attributes"); if (script.guiAttributes) { EditorGUI.indentLevel = 1; //EditorGUI.indentLevel = 20; script.dynamic = EditorGUILayout.Toggle("Dynamic", script.dynamic); script.editable = EditorGUILayout.Toggle("Editable", script.editable); script.pointed = EditorGUILayout.Toggle("Pointed", script.pointed); script.disabled = EditorGUILayout.Toggle("Disabled", script.disabled); script.activated = EditorGUILayout.Toggle("Activated", script.activated); script.pressed = EditorGUILayout.Toggle("Pressed", script.pressed); //script.checkbutton = EditorGUILayout.Toggle("\tCheckbutton", script.checkbutton); script.check = EditorGUILayout.Toggle("Checked", script.check); script.instant = EditorGUILayout.Toggle("Instant", script.instant); script.password = EditorGUILayout.Toggle("Password", script.password); EditorGUI.indentLevel = 0; } if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(script); InstantGui.instance.Update(); } else { Undo.ClearUndo(script); } }
public override void OnInspectorGUI() { InstantGuiTabs script = (InstantGuiTabs)target; base.OnInspectorGUI(); //EditorGUILayout.Space(); script.guiElementProps = EditorGUILayout.Foldout(script.guiElementProps, "Tabs"); //some non-gui actions for (int i = 0; i < script.tabs.Length; i++) { //creating field if it does not exists if (!script.fields[i]) { script.fields[i] = script.CreateField(); } //fields names if (script.fields[i].transform.name.Length == 0) { script.fields[i].transform.name = script.tabs[i].transform.name + "_Field"; } } if (script.guiElementProps) { EditorGUI.indentLevel = 1; script.selected = EditorGUILayout.IntField("Selected:", script.selected); //array Rect rect = GUILayoutUtility.GetRect(150, 16, "TextField"); rect.width = rect.width * 0.5f - 40; EditorGUI.LabelField(rect, "Tabs:"); rect.x += rect.width; EditorGUI.LabelField(rect, "Fields:"); script.tabs = InstantGuiInspector.DrawElementsTable(script.tabs, script.fields); if (script.tabs.Length != script.fields.Length) //changing fields count (creating if necessary) { InstantGuiElement[] newFields = new InstantGuiElement[script.tabs.Length]; for (int j = 0; j < script.tabs.Length; j++) { if (j >= script.fields.Length || !script.fields[j]) { newFields[j] = script.CreateField(); continue; } newFields[j] = script.fields[j]; } script.fields = newFields; } EditorGUI.indentLevel = 0; } InstantGuiInspector.DrawActivator("On Checked:", script.onChecked); InstantGuiInspector.DrawActivator("On Unchecked:", script.onUnchecked); }
public override void OnInspectorGUI() { InstantGuiStyleSet script = (InstantGuiStyleSet)target; if (script.styles == null) { script.styles = new InstantGuiStyle[1]; script.styles[0] = new InstantGuiStyle(); } EditorGUI.BeginChangeCheck(); Undo.RecordObject(script, "InstantGui Style Change"); Rect rect = new Rect(0, 0, 0, 0); if (script.styles != null) { for (int i = 1; i < script.styles.Length; i++) { //if (script.styles[i]==null) script.styles[i] = new InstantGuiStyle(); EditorGUI.indentLevel = 0; rect = GUILayoutUtility.GetRect(50, 18, "TextField"); //name rect.x += 10; rect.width -= 90; script.styles[i].name = EditorGUI.TextField(rect, script.styles[i].name); //move up rect.x = rect.width + 30; rect.width = 23; if (GUI.Button(rect, "∧ ") && i != 1) { InstantGuiStyle tmp = script.styles[i - 1]; script.styles[i - 1] = script.styles[i]; script.styles[i] = tmp; EditorUtility.SetDirty(script); } //move down rect.x += 25; if (GUI.Button(rect, "∨ ") && i != script.styles.Length - 1) { InstantGuiStyle tmp = script.styles[i + 1]; script.styles[i + 1] = script.styles[i]; script.styles[i] = tmp; EditorUtility.SetDirty(script); } //delete rect.x += 25; if (GUI.Button(rect, "✕ ") && EditorUtility.DisplayDialog("Remove Style?", "Are you sure you want to remove style?", "OK", "Cancel")) { InstantGuiStyle[] newStyles = new InstantGuiStyle[script.styles.Length - 1]; int counter = 0; for (int j = 0; j < script.styles.Length; j++) { if (j != i) { newStyles[counter] = script.styles[j]; counter++; } } script.styles = newStyles; EditorUtility.SetDirty(script); } if (i == script.styles.Length) { break; } //foldout rect.x = 20; rect.width = 20; script.styles[i].show = EditorGUI.Foldout(rect, script.styles[i].show, ""); //display style if (script.styles[i].show) { InstantGuiInspector.DrawStyle(script.styles[i], true); } } } //adding rect = GUILayoutUtility.GetRect(50, 18, "TextField"); rect.x = rect.width - 70; rect.width = 73; if (GUI.Button(rect, "Add")) { InstantGuiStyle[] newStyles = new InstantGuiStyle[script.styles.Length + 1]; for (int j = 0; j < script.styles.Length; j++) { newStyles[j] = script.styles[j]; } newStyles[newStyles.Length - 1] = new InstantGuiStyle(); script.styles = newStyles; EditorUtility.SetDirty(script); } if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(target); if (InstantGui.instance != null) { InstantGui.instance.Update(); } } //else Undo.ClearUndo(script); }
public override void OnInspectorGUI() { InstantGuiList script = (InstantGuiList)target; base.OnInspectorGUI(); script.guiElementProps = EditorGUILayout.Foldout(script.guiElementProps, "List"); if (script.guiElementProps) { EditorGUI.indentLevel = 1; //showing labels array; script.guiShowLabels = EditorGUILayout.Foldout(script.guiShowLabels, "Labels"); if (script.guiShowLabels) { script.labels = InstantGuiInspector.DrawStringArray(script.labels, 4); } script.lineHeight = EditorGUILayout.IntField("Line Height:", script.lineHeight); script.selected = EditorGUILayout.IntField("Selected:", script.selected); script.firstShown = EditorGUILayout.IntField("First Shown:", script.firstShown); script.slider = (InstantGuiSlider)EditorGUILayout.ObjectField("Slider:", script.slider, typeof(InstantGuiSlider), true); script.sliderMargin = EditorGUILayout.IntField("Slider Margin:", script.sliderMargin); //setting style //this is a clone of element editor section. string[] styleNames = new string[script.styleSet.styles.Length]; int selectedStyle = -1; //default if style could not be found //compiling popup array for (int i = 0; i < script.styleSet.styles.Length; i++) { styleNames[i] = script.styleSet.styles[i].name; } //finding popup selected if (script.elementStyle == null) { selectedStyle = 0; } else { for (int i = 0; i < styleNames.Length; i++) { if (styleNames[i] == script.elementStyleName) { selectedStyle = i; } } } styleNames[0] = "None"; int newSelected = EditorGUILayout.Popup("Element Style:", selectedStyle, styleNames); if (newSelected != selectedStyle) { script.elementStyle = script.styleSet.styles[newSelected]; script.elementStyleName = script.elementStyle.name; //script.elementStyleNum = newSelected; } EditorGUI.indentLevel = 0; } }