136 lines
5.1 KiB
C#
136 lines
5.1 KiB
C#
/*
|
|
* @author Valentin Simonov / http://va.lent.in/
|
|
*/
|
|
|
|
using TouchScript.InputSources;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
using TouchScript.Editor.EditorUI;
|
|
|
|
namespace TouchScript.Editor.InputSources
|
|
{
|
|
[CustomEditor(typeof (StandardInput), true)]
|
|
internal sealed class StandardInputEditor : InputSourceEditor
|
|
{
|
|
public static readonly GUIContent TEXT_GENERAL_HEADER = new GUIContent("General", "General settings.");
|
|
public static readonly GUIContent TEXT_WINDOWS_HEADER = new GUIContent("Windows", "Windows specific settings.");
|
|
public static readonly GUIContent TEXT_WEBGL_HEADER = new GUIContent("WebGL", "WebGL specific settings.");
|
|
|
|
public static readonly GUIContent TEXT_EMULATE_MOUSE = new GUIContent("Emulate Second Mouse Pointer", "If selected, you can press ALT to make a stationary mouse pointer. This is used to simulate multi-touch.");
|
|
|
|
public static readonly GUIContent TEXT_WINDOWS_API = new GUIContent("Select which touch API to use:\n - Windows 8 — new WM_POINTER API,\n - Windows 7 — old WM_TOUCH API,\n - Unity — Unity's WM_TOUCH implementation,\n - None — no touch.");
|
|
public static readonly GUIContent TEXT_WINDOWS8 = new GUIContent("Windows 8+ API");
|
|
public static readonly GUIContent TEXT_WINDOWS7 = new GUIContent("Windows 7 API");
|
|
public static readonly GUIContent TEXT_WINDOWS8_MOUSE = new GUIContent("Enable Mouse on Windows 8+");
|
|
public static readonly GUIContent TEXT_WINDOWS7_MOUSE = new GUIContent("Enable Mouse on Windows 7");
|
|
public static readonly GUIContent TEXT_UWP_MOUSE = new GUIContent("Enable Mouse on UWP");
|
|
|
|
public static readonly GUIContent TEXT_HELP = new GUIContent("This component gathers input data from various devices like touch, mouse and pen on all platforms.");
|
|
|
|
private SerializedProperty basicEditor;
|
|
private SerializedProperty windows8Touch, windows7Touch, webGLTouch, windows8Mouse,
|
|
windows7Mouse, universalWindowsMouse, emulateSecondMousePointer;
|
|
private SerializedProperty generalProps, windowsProps, webglProps;
|
|
|
|
private StandardInput instance;
|
|
|
|
protected override void OnEnable()
|
|
{
|
|
base.OnEnable();
|
|
|
|
instance = target as StandardInput;
|
|
basicEditor = serializedObject.FindProperty("basicEditor");
|
|
windows8Touch = serializedObject.FindProperty("windows8API");
|
|
windows7Touch = serializedObject.FindProperty("windows7API");
|
|
webGLTouch = serializedObject.FindProperty("webGLTouch");
|
|
windows8Mouse = serializedObject.FindProperty("windows8Mouse");
|
|
windows7Mouse = serializedObject.FindProperty("windows7Mouse");
|
|
universalWindowsMouse = serializedObject.FindProperty("universalWindowsMouse");
|
|
emulateSecondMousePointer = serializedObject.FindProperty("emulateSecondMousePointer");
|
|
|
|
generalProps = serializedObject.FindProperty("generalProps");
|
|
windowsProps = serializedObject.FindProperty("windowsProps");
|
|
webglProps = serializedObject.FindProperty("webglProps");
|
|
}
|
|
|
|
public override void OnInspectorGUI()
|
|
{
|
|
#if UNITY_5_6_OR_NEWER
|
|
serializedObject.UpdateIfRequiredOrScript();
|
|
#else
|
|
serializedObject.UpdateIfDirtyOrScript();
|
|
#endif
|
|
|
|
GUILayout.Space(5);
|
|
|
|
if (basicEditor.boolValue)
|
|
{
|
|
EditorGUI.BeginChangeCheck();
|
|
EditorGUILayout.PropertyField(emulateSecondMousePointer, TEXT_EMULATE_MOUSE);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
instance.EmulateSecondMousePointer = emulateSecondMousePointer.boolValue;
|
|
}
|
|
|
|
if (GUIElements.BasicHelpBox(TEXT_HELP))
|
|
{
|
|
basicEditor.boolValue = false;
|
|
Repaint();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
drawGeneral();
|
|
drawWindows();
|
|
drawWebGL();
|
|
}
|
|
|
|
serializedObject.ApplyModifiedProperties();
|
|
base.OnInspectorGUI();
|
|
}
|
|
|
|
private void drawGeneral()
|
|
{
|
|
var display = GUIElements.Header(TEXT_GENERAL_HEADER, generalProps);
|
|
if (display)
|
|
{
|
|
EditorGUI.indentLevel++;
|
|
EditorGUI.BeginChangeCheck();
|
|
EditorGUILayout.PropertyField(emulateSecondMousePointer, TEXT_EMULATE_MOUSE);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
instance.EmulateSecondMousePointer = emulateSecondMousePointer.boolValue;
|
|
}
|
|
EditorGUI.indentLevel--;
|
|
}
|
|
}
|
|
|
|
private void drawWindows()
|
|
{
|
|
var display = GUIElements.Header(TEXT_WINDOWS_HEADER, windowsProps);
|
|
if (display)
|
|
{
|
|
EditorGUI.indentLevel++;
|
|
EditorGUILayout.PropertyField(windows8Touch, TEXT_WINDOWS8);
|
|
EditorGUILayout.PropertyField(windows7Touch, TEXT_WINDOWS7);
|
|
EditorGUILayout.LabelField(TEXT_WINDOWS_API, GUIElements.HelpBox);
|
|
EditorGUILayout.PropertyField(windows8Mouse, TEXT_WINDOWS8_MOUSE);
|
|
EditorGUILayout.PropertyField(windows7Mouse, TEXT_WINDOWS7_MOUSE);
|
|
EditorGUILayout.PropertyField(universalWindowsMouse, TEXT_UWP_MOUSE);
|
|
EditorGUI.indentLevel--;
|
|
}
|
|
}
|
|
|
|
private void drawWebGL()
|
|
{
|
|
var display = GUIElements.Header(TEXT_WEBGL_HEADER, webglProps);
|
|
if (display)
|
|
{
|
|
EditorGUI.indentLevel++;
|
|
EditorGUILayout.PropertyField(webGLTouch);
|
|
EditorGUI.indentLevel--;
|
|
}
|
|
}
|
|
|
|
}
|
|
} |