public static void OnGUI_Editor(UniOSCMappingItem obj) { EditorGUI.BeginChangeCheck(); EditorGUILayout.BeginHorizontal(); #region Values obj.address = EditorGUILayout.TextField(new GUIContent("", "Tooltip for Address"), obj.address, GUILayout.Width(UniOSCUtils.MAPPINGLISTLABELRECTS[0].width)); obj.min = EditorGUILayout.FloatField(new GUIContent("", "Minimal value"), obj.min, GUILayout.Width(UniOSCUtils.MAPPINGLISTLABELRECTS[1].width)); obj.max = EditorGUILayout.FloatField(new GUIContent("", "Maximal value"), obj.max, GUILayout.Width(UniOSCUtils.MAPPINGLISTLABELRECTS[2].width)); obj.mappingMIN = EditorGUILayout.FloatField(new GUIContent("", "Minimal Mapping value"), obj.mappingMIN, GUILayout.Width(UniOSCUtils.MAPPINGLISTLABELRECTS[3].width)); obj.mappingMAX = EditorGUILayout.FloatField(new GUIContent("", "Maximal Mapping value"), obj.mappingMAX, GUILayout.Width(UniOSCUtils.MAPPINGLISTLABELRECTS[4].width)); #endregion Values #region Learn Rect r = GUILayoutUtility.GetRect(UniOSCUtils.MAPPINGLISTLABELRECTS[5].width, UniOSCUtils.MAPPINGLISTLABELRECTS[5].height, GUI.skin.button, GUILayout.ExpandWidth(false)); r.width *= 0.9f; if (obj.hostObj.IsLearning) { GUIStyle gs = new GUIStyle(GUI.skin.button); gs.active.textColor = UniOSCUtils.LEARN_COLOR_ON; gs.normal.textColor = UniOSCUtils.LEARN_COLOR_OFF; if (GUI.RepeatButton(r, new GUIContent("Learn", "Press to Learn OSC"), gs)) { obj.isLearning = true; } else { obj.isLearning = false; } } #endregion Learn #region Delete if (GUILayout.Button("Delete", GUILayout.Width(UniOSCUtils.MAPPINGLISTLABELRECTS[6].width), GUILayout.Height(UniOSCUtils.MAPPINGLISTLABELRECTS[6].height))) { bool deleteItem = EditorUtility.DisplayDialog("Delete", "Do you want to delete this OSCMappingItem with the Address:\n" + obj.address + " ?", "OK", "Cancel"); if (deleteItem) { obj.OnOSCMappingItemDelete(); } } #endregion Delete EditorGUILayout.EndHorizontal(); if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(obj.hostObj); } }
public static void OnGUI_Inspector(UniOSCMappingItem obj) { EditorGUI.BeginChangeCheck(); EditorGUILayout.BeginVertical(GUI.skin.box, GUILayout.Width(UniOSCMappingItem.MAXWIDTH), GUILayout.Height(obj.collapsed ? UniOSCMappingItem.MAXHEIGTH : 10f)); //EditorGUIUtility.LookLikeControls(UniOSCMappingItem.MAXWIDTH *0.35f,UniOSCMappingItem.MAXWIDTH *0.55f); EditorGUIUtility.labelWidth = UniOSCMappingItem.MAXWIDTH * 0.35f; EditorGUIUtility.fieldWidth = UniOSCMappingItem.MAXWIDTH * 0.55f; #region IN if (obj.hostObj.IsLearning) { obj.collapsed = true; } EditorGUILayout.BeginHorizontal(); obj.collapsed = EditorGUILayout.Foldout(obj.collapsed, "OSC Mapping Item " + (obj.collapsed ? "" : obj.address)); EditorGUILayout.EndHorizontal(); #endregion IN if (obj.collapsed) { obj.address = EditorGUILayout.TextField(new GUIContent("OSC Address:", "Tooltip for Address"), obj.address); #region DataMinMax GUILayout.Label(new GUIContent("Data Range:", "The range where the incomming date is in. Most of the times this is in normalized range of 0-1.")); EditorGUILayout.BeginHorizontal(); //EditorGUIUtility.LookLikeControls(40f,50f); EditorGUIUtility.labelWidth = 40f; EditorGUIUtility.fieldWidth = 50f; obj.min = EditorGUILayout.FloatField(new GUIContent("Min:", "Minimal value"), obj.min); GUILayout.FlexibleSpace(); obj.max = EditorGUILayout.FloatField(new GUIContent("Max:", "Maximal value"), obj.max); EditorGUILayout.EndHorizontal(); #endregion DataMinMax #region DataMapping GUILayout.Label(new GUIContent("Data Mapping:", "The incomming data from the OSC Message is changed and mapped from the min-max data range to the min-max mapping range.If you don't want any mapping these values should match with the 'Data Range' above.")); EditorGUILayout.BeginHorizontal(); //EditorGUIUtility.LookLikeControls(40f,50f); EditorGUIUtility.labelWidth = 40f; EditorGUIUtility.fieldWidth = 50f; obj.mappingMIN = EditorGUILayout.FloatField(new GUIContent("Min:", "Minimal Mapping value"), obj.mappingMIN); GUILayout.FlexibleSpace(); obj.mappingMAX = EditorGUILayout.FloatField(new GUIContent("Max:", "Maximal Mapping value"), obj.mappingMAX); EditorGUILayout.EndHorizontal(); #endregion DataMapping GUILayout.Space(10f); #region Bottom EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(GUILayout.Height(40f)); #region Delete EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Delete", GUILayout.Width(100))) { bool deleteDispatcher = EditorUtility.DisplayDialog("Delete", "Do you want to delete this OSCMappingItem with the Address:\n" + obj.address + " ?", "OK", "Cancel"); if (deleteDispatcher) { obj.OnOSCMappingItemDelete(); } } GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); #endregion Delete EditorGUILayout.EndVertical(); #region Learn if (obj.hostObj.IsLearning) { EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (obj.hostObj.IsLearning) { if (GUILayout.RepeatButton(new GUIContent("Learn", "Press to Learn OSC"), GUILayout.Width(80f), GUILayout.Height(40f))) { obj.isLearning = true; } else { obj.isLearning = false; } } GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); } #endregion Learn EditorGUILayout.EndHorizontal(); #endregion Bottom } //collapsed EditorGUILayout.EndVertical(); if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(obj.hostObj); } }