浏览代码

update part of widget_inspector

/zxw-devTools
Xingwei Zhu 3 年前
当前提交
bffa7eab
共有 7 个文件被更改,包括 175 次插入56 次删除
  1. 18
      com.unity.uiwidgets/Runtime/developer/extension.cs
  2. 11
      com.unity.uiwidgets/Runtime/foundation/binding.cs
  3. 13
      com.unity.uiwidgets/Runtime/foundation/diagnostics.cs
  4. 6
      com.unity.uiwidgets/Runtime/widgets/binding.cs
  5. 106
      com.unity.uiwidgets/Runtime/widgets/widget_inspector.cs
  6. 74
      com.unity.uiwidgets/Editor/testDebugger.cs
  7. 3
      com.unity.uiwidgets/Editor/testDebugger.cs.meta

18
com.unity.uiwidgets/Runtime/developer/extension.cs


using System.Collections;
using System.Collections.Generic;
using Unity.UIWidgets.async;
}
static Dictionary<string, DeveloperExtensionFunc> extensions = new Dictionary<string, DeveloperExtensionFunc>();
public delegate Future<IDictionary<string, object>> DeveloperExtensionFunc(string method, IDictionary<string, string> parameters);
public static void registerExtension(string methodName, DeveloperExtensionFunc func) {
extensions[methodName] = func;
}
public static Future<IDictionary<string, object>> callExtension(string method,
IDictionary<string, string> parameters) {
if (extensions.ContainsKey(method)) {
return extensions[method].Invoke(method, parameters);
}
return null;
}
}
}

11
com.unity.uiwidgets/Runtime/foundation/binding.cs


protected virtual void initServiceExtensions() {
}
protected void registerServiceExtension(string name, ServiceExtensionCallback callback) {
D.assert(name != null);
D.assert(callback != null);
string methodName = name;
developer_.registerExtension(methodName, (method, parameters) => {
var result = callback.Invoke(parameters);
return result;
});
}
protected bool locked => _lockCount > 0;
int _lockCount = 0;

13
com.unity.uiwidgets/Runtime/foundation/diagnostics.cs


public static string describeEnum(object enumEntry) {
string description = enumEntry.ToString();
int indexOfDot = description.IndexOf(".");
D.assert(indexOfDot != -1 && indexOfDot < description.Length - 1);
return description.Substring(indexOfDot + 1);
return description;
}
}

result["allowNameWrap"] = allowNameWrap;
}
Delegate.additionalNodeProperties(this);
var additional = Delegate.additionalNodeProperties(this);
foreach (var key in additional.Keys) {
result[key] = additional[key];
}
if (Delegate.includeProperties) {
result["properties"] = toJsonList(
Delegate.filterProperties(getProperties(), this),

int subtreeDepth = 0,
bool includeProperties = false
) {
new _DefaultDiagnosticsSerializationDelegate(includeProperties, subtreeDepth);
this.subtreeDepth = subtreeDepth;
this.includeProperties = includeProperties;
}
public abstract Dictionary<string, object> additionalNodeProperties(DiagnosticsNode node);

6
com.unity.uiwidgets/Runtime/widgets/binding.cs


set { RendererBinding.instance = value; }
}
protected override void initServiceExtensions() {
base.initServiceExtensions();
WidgetInspectorService.instance.initServiceExtensions(registerServiceExtension);
}
protected override void initInstances() {
base.initInstances();
instance = this;

106
com.unity.uiwidgets/Runtime/widgets/widget_inspector.cs


using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using Unity.UIWidgets.engine;
using Unity.UIWidgets.external;
using Unity.UIWidgets.foundation;
using Unity.UIWidgets.gestures;

using UnityEngine;
using Canvas = Unity.UIWidgets.ui.Canvas;
using Color = Unity.UIWidgets.ui.Color;
using Debug = System.Diagnostics.Debug;
using Rect = Unity.UIWidgets.ui.Rect;
using TextStyle = Unity.UIWidgets.painting.TextStyle;

public class WidgetInspectorService {
public readonly List<string> _serializeRing = new List<string>(20);
int _serializeRingIndex = 0;
public readonly WidgetsBinding widgetsBinding;
bool _debugShowInspector;
public DeveloperInspect developerInspect;
public InspectorShowCallback inspectorShowCallback;
get { //return WidgetsBinding.instance.widgetInspectorService;
get {
return _instance;
}
set {

static WidgetInspectorService _instance = new WidgetInspectorService();
static bool _debugServiceExtensionsRegistered = false;
int _nextId = 0;
int _nextId = 0;
List<string> _pubRootDirectories;
bool _trackRebuildDirtyWidgets = false;

}
public void _registerSignalServiceExtension(
string name = null,
CallBack callback = null // callback()
CallBack callback = null
) {
registerServiceExtension(
name: name,

registerServiceExtension(
name: name,
callback: (IDictionary<string, string> parameters) => {
var result = Future.value(FutureOr.value((new Dictionary<string, object>{{"result", callback(parameters["objectGroup"])}}))).to<IDictionary<string, object>>();
return result;
using (Isolate.getScope(UIWidgetsPanel.anyIsolate)) {
var result = Future.value(FutureOr.value((new Dictionary<string, object>
{{"result", callback(parameters["objectGroup"])}}))).to<IDictionary<string, object>>();
return result;
}
}
);
}

}
);
}*/
/*void _registerServiceExtensionWithArg(
void _registerServiceExtensionWithArg(
callback: (Dictionary<string, string> parameters) =>{
callback: (IDictionary<string, string> parameters) =>{
D.assert(parameters.ContainsKey("arg"));
return new Dictionary<string, object> {
{"result", callback(parameters["arg"], parameters["objectGroup"])}
};
using (Isolate.getScope(UIWidgetsPanel.anyIsolate)) {
var result = Future.value(FutureOr.value((new Dictionary<string, object>
{{"result", callback(parameters["arg"], parameters["objectGroup"])}}))).to<IDictionary<string, object>>();
return result;
}
}*/
}
/*void _registerServiceExtensionVarArgs(

_errorsSinceReload = 0;
}
/*void initServiceExtensions(_RegisterServiceExtensionCallback registerServiceExtensionCallback) {
public void initServiceExtensions(_RegisterServiceExtensionCallback registerServiceExtensionCallback) {
D.assert(!_debugServiceExtensionsRegistered);
D.assert(()=> {
//D.assert(!_debugServiceExtensionsRegistered);
/*D.assert(()=> {
});
});*/
SchedulerBinding.instance.addPersistentFrameCallback(_onFrameStart);
//SchedulerBinding.instance.addPersistentFrameCallback(_onFrameStart);
FlutterExceptionHandler structuredExceptionHandler = _reportError;
FlutterExceptionHandler defaultExceptionHandler = FlutterError.onError;
//FlutterExceptionHandler structuredExceptionHandler = _reportError;
//FlutterExceptionHandler defaultExceptionHandler = FlutterError.onError;
_registerBoolServiceExtension(
/*_registerBoolServiceExtension(
name: "structuredErrors",
getter: () => FlutterError.onError == structuredExceptionHandler,
setter: (bool value)=> {

);
);*/
_registerBoolServiceExtension(
/*_registerBoolServiceExtension(
name: "show",
getter: () => WidgetsApp.debugShowWidgetInspectorOverride,
setter: (bool value)=> {

WidgetsApp.debugShowWidgetInspectorOverride = value;
return forceRebuild();
}
);
if (isWidgetCreationTracked()) {
);*/
/*if (isWidgetCreationTracked()) {
_registerBoolServiceExtension(
name: "trackRebuildDirtyWidgets",
getter: () => _trackRebuildDirtyWidgets,

}
}
);
}
_registerSignalServiceExtension(
}*/
/*_registerSignalServiceExtension(
name: "disposeAllGroups",
callback: disposeAllGroups
);

_registerServiceExtensionWithArg(
name: "setSelectionById",
callback: setSelectionById
);
);*/
_registerServiceExtensionWithArg(
name: "getParentChain",
callback: _getParentChain

);
registerServiceExtension(
name: "getDetailsSubtree",
callback: (Dictionary<string, string> parameters) => {
callback: (IDictionary<string, string> parameters) => {
return new Dictionary<string, object>{{
"result", _getDetailsSubtree(
parameters["arg"],
parameters["objectGroup"],
subtreeDepth != null ? int.Parse(subtreeDepth) : 2
)
}};
using (Isolate.getScope(UIWidgetsPanel.anyIsolate)) {
var result = Future.value(FutureOr.value((new Dictionary<string, object>
{{"result", _getDetailsSubtree(
parameters["arg"],
parameters["objectGroup"],
subtreeDepth != null ? int.Parse(subtreeDepth) : 2
)}}))).to<IDictionary<string, object>>();
return result;
}
_registerServiceExtensionWithArg(
/*_registerServiceExtensionWithArg(
name: "getSelectedRenderObject",
callback: _getSelectedRenderObject
);

};
}
);
}*/
);*/
}
/*void _clearStats() {
_rebuildStats.resetCounts();

return _safeJsonEncode(_getRootWidget(groupName));
}
public Dictionary<string, object> _getRootWidget(string groupName) {
return _nodeToJson(WidgetsBinding.instance?.renderViewElement?.toDiagnosticsNode(), new InspectorSerializationDelegate(groupName: groupName, service: this));
var node = WidgetsBinding.instance?.renderViewElement?.toDiagnosticsNode();
var del = new InspectorSerializationDelegate(groupName: groupName, service: this);
return _nodeToJson(node , del);
}
string getRootWidgetSummaryTree(string groupName) {

_inspectAt(_lastPointerLocation);
if (selection != null) {
if (WidgetInspectorService.instance.developerInspect != null) {
WidgetInspectorService.instance.developerInspect();
}
//if (WidgetInspectorService.instance.developerInspect != null) {
// WidgetInspectorService.instance.developerInspect();
//}
}
}

74
com.unity.uiwidgets/Editor/testDebugger.cs


using System;
using System.Collections.Generic;
using System.Text;
using developer;
using UnityEditor;
using UnityEngine;
namespace Unity.UIWidgets.Editor {
public class testDebugger : EditorWindow{
[MenuItem("Window/TestInspector")]
static void Init() {
var myWindow = (testDebugger) EditorWindow.GetWindow(typeof(testDebugger));
myWindow.Show();
; }
static void ShowJsonMap(IDictionary<string, object> jsonMap) {
StringBuilder sb = new StringBuilder();
foreach (var key in jsonMap.Keys) {
if (key == "result" && jsonMap[key] is Dictionary<string ,object>) {
var resultMap = jsonMap[key] as Dictionary<string, object>;
foreach (var ckey in resultMap.Keys) {
sb.Append($"result.{ckey} : {resultMap[ckey] ?? "Null"}\n");
}
}
sb.Append($"{key} : {jsonMap[key] ?? "Null"}\n");
}
Debug.Log(sb.ToString());
}
void OnGUI() {
if (GUILayout.Button("getRootWidget")) {
var result = developer_.callExtension("inspector.getRootWidget", new Dictionary<string, string> {
{"objectGroup", "root"}
});
result.then(o => {
var res = (IDictionary<string, object>) o;
ShowJsonMap(res);
});
}
if (GUILayout.Button("getRootRenderObject")) {
var result = developer_.callExtension("inspector.getRootRenderObject", new Dictionary<string, string> {
{"objectGroup", "root"}
});
result.then(o => {
var res = (IDictionary<string, object>) o;
ShowJsonMap(res);
});
}
if (GUILayout.Button("getRootWidgetSummaryTree")) {
var result = developer_.callExtension("inspector.getRootWidgetSummaryTree", new Dictionary<string, string> {
{"objectGroup", "root"}
});
result.then(o => {
var res = (IDictionary<string, object>) o;
ShowJsonMap(res);
});
}
if (GUILayout.Button("getChildren")) {
var result = developer_.callExtension("inspector.getChildren", new Dictionary<string, string> {
{"objectGroup", "root"},
{"arg", "inspector-0"}
});
result.then(o => {
var res = (IDictionary<string, object>) o;
ShowJsonMap(res);
});
}
}
}
}

3
com.unity.uiwidgets/Editor/testDebugger.cs.meta


fileFormatVersion: 2
guid: 21834a4aede04baa875605d4c82d7bd5
timeCreated: 1625239357
正在加载...
取消
保存