@@ -122,7 +122,7 @@ internal void OnGUI()
122122 }
123123
124124 ////FIXME: with ExpandHeight(false), editor still expands height for some reason....
125- EditorGUILayout . BeginVertical ( "OL Box" , GUILayout . Height ( 170 ) ) ; // GUILayout.ExpandHeight(false));
125+ EditorGUILayout . BeginVertical ( "OL Box" , GUILayout . Height ( 130 ) ) ; // GUILayout.ExpandHeight(false));
126126 EditorGUILayout . LabelField ( "Name" , m_Device . name ) ;
127127 EditorGUILayout . LabelField ( "Layout" , m_Device . layout ) ;
128128 EditorGUILayout . LabelField ( "Type" , m_Device . GetType ( ) . Name ) ;
@@ -137,16 +137,39 @@ internal void OnGUI()
137137 EditorGUILayout . LabelField ( "Device ID" , m_DeviceIdString ) ;
138138 if ( ! string . IsNullOrEmpty ( m_DeviceUsagesString ) )
139139 EditorGUILayout . LabelField ( "Usages" , m_DeviceUsagesString ) ;
140- if ( ! string . IsNullOrEmpty ( m_DeviceFlagsString ) )
141- EditorGUILayout . LabelField ( "Flags" , m_DeviceFlagsString ) ;
142140 if ( m_Device is Keyboard )
143141 EditorGUILayout . LabelField ( "Keyboard Layout" , ( ( Keyboard ) m_Device ) . keyboardLayout ) ;
144142 EditorGUILayout . EndVertical ( ) ;
145-
143+
144+ DrawFlags ( ) ;
146145 DrawControlTree ( ) ;
147146 DrawEventList ( ) ;
148147 }
149148
149+ private void DrawFlags ( )
150+ {
151+ GUILayout . BeginHorizontal ( EditorStyles . toolbar ) ;
152+ GUILayout . Label ( "Flags" , GUILayout . MinWidth ( 100 ) , GUILayout . ExpandWidth ( true ) ) ;
153+ GUILayout . FlexibleSpace ( ) ;
154+ GUILayout . EndHorizontal ( ) ;
155+
156+ var rect = EditorGUILayout . GetControlRect ( GUILayout . ExpandHeight ( true ) ) ;
157+ m_DeviceFlagsTree . OnGUI ( rect ) ;
158+
159+ /*const string kTrue = "true";
160+ const string kFalse = "false";
161+ EditorGUILayout.LabelField("Native", m_Device.native ? kTrue : kFalse);
162+ EditorGUILayout.LabelField("Remote", m_Device.remote ? kTrue : kFalse);
163+ EditorGUILayout.LabelField("UpdateBeforeRender", m_Device.updateBeforeRender ? kTrue : kFalse);
164+ EditorGUILayout.LabelField("HasStateCallbacks", m_Device.hasStateCallbacks ? kTrue : kFalse);
165+ EditorGUILayout.LabelField("HasEventMerger", m_Device.hasEventMerger ? kTrue : kFalse);
166+ EditorGUILayout.LabelField("HasEventPreProcessor", m_Device.hasEventPreProcessor ? kTrue : kFalse);
167+ EditorGUILayout.LabelField("DisabledInFrontend", m_Device.disabledInFrontend ? kTrue : kFalse);
168+ EditorGUILayout.LabelField("DisabledInRuntime", m_Device.disabledInRuntime ? kTrue : kFalse);
169+ EditorGUILayout.LabelField("DisabledWWhileInBackground", m_Device.disabledWhileInBackground ? kTrue : kFalse);
170+ EditorGUILayout.LabelField("CanRunInBackground", m_Device.canDeviceRunInBackground ? kTrue : kFalse);*/
171+ }
172+
150173 private void DrawControlTree ( )
151174 {
152175 var label = m_InputUpdateTypeShownInControlTree == InputUpdateType . Editor
@@ -287,6 +310,11 @@ private void InitializeWith(InputDevice device)
287310 m_DeviceUsagesString = string . Join ( ", " , device . usages . Select ( x => x . ToString ( ) ) . ToArray ( ) ) ;
288311
289312 UpdateDeviceFlags ( ) ;
313+
314+ // Setup flags
315+ m_DeviceFlagsTree = DeviceFlagsTreeView . Create ( m_Device , ref m_DeviceFlagsTreeState , ref m_DeviceFlagsHeaderState ) ;
316+ m_DeviceFlagsTree . Reload ( ) ;
317+ m_DeviceFlagsTree . ExpandAll ( ) ;
290318
291319 // Set up event trace. The default trace size of 512kb fits a ton of events and will
292320 // likely bog down the UI if we try to display that many events. Instead, come up
@@ -326,6 +354,8 @@ private void InitializeWith(InputDevice device)
326354 EditorApplication . playModeStateChanged += OnPlayModeChange ;
327355 }
328356
357+ //private List<ValueTuple<string, bool>> m_Flags = new List<ValueTuple<string, bool>>();
358+
329359 private void UpdateDeviceFlags ( )
330360 {
331361 var flags = new List < string > ( ) ;
@@ -397,6 +427,7 @@ internal static InputUpdateType DetermineUpdateTypeToShow(InputDevice device)
397427 private InputDevice . DeviceFlags m_DeviceFlags ;
398428 private InputControlTreeView m_ControlTree ;
399429 private InputEventTreeView m_EventTree ;
430+ private DeviceFlagsTreeView m_DeviceFlagsTree ;
400431 private bool m_NeedControlValueRefresh ;
401432 private bool m_ReloadEventTree ;
402433 private InputEventTrace . ReplayController m_ReplayController ;
@@ -406,8 +437,10 @@ internal static InputUpdateType DetermineUpdateTypeToShow(InputDevice device)
406437 [ SerializeField ] private int m_DeviceId = InputDevice . InvalidDeviceId ;
407438 [ SerializeField ] private TreeViewState m_ControlTreeState ;
408439 [ SerializeField ] private TreeViewState m_EventTreeState ;
440+ [ SerializeField ] private TreeViewState m_DeviceFlagsTreeState ;
409441 [ SerializeField ] private MultiColumnHeaderState m_ControlTreeHeaderState ;
410442 [ SerializeField ] private MultiColumnHeaderState m_EventTreeHeaderState ;
443+ [ SerializeField ] private MultiColumnHeaderState m_DeviceFlagsHeaderState ;
411444 [ SerializeField ] private bool m_EventTraceDisabled ;
412445
413446 private static List < InputDeviceDebuggerWindow > s_OpenDebuggerWindows ;
0 commit comments