public ReactContext(StringObjectDictionary globals, ReactScript script, IDispatcher dispatcher, IUnityScheduler scheduler, bool isDevServer, Action onRestart, bool mergeLayouts = false) { Globals = globals; Script = script; IsDevServer = isDevServer; Scheduler = scheduler; Dispatcher = dispatcher; OnRestart = onRestart ?? (() => { }); this.mergeLayouts = mergeLayouts; Parser = new StylesheetParser(true, true, true, true, true); StyleTree = new StyleTree(Parser); }
public EditorContext(VisualElement hostElement, GlobalRecord globals, ReactScript script, IDispatcher dispatcher, IUnityScheduler scheduler, bool isDevServer, Action onRestart = null) : base(globals, script, dispatcher, scheduler, isDevServer, onRestart, true) { Host = new HostComponent(hostElement, this); InsertStyle(EditorResourcesHelper.UseragentStylesheet?.text, -1); Host.ResolveStyle(true); hostElement.styleSheets.Add(EditorResourcesHelper.UtilityStylesheet); }
public UGUIContext(RectTransform hostElement, GlobalRecord globals, ReactScript script, IDispatcher dispatcher, IUnityScheduler scheduler, bool isDevServer, Action onRestart) : base(globals, script, dispatcher, scheduler, isDevServer, onRestart) { Host = new HostComponent(hostElement, this); RootLayoutNode = Host.Layout; InsertStyle(ResourcesHelper.UseragentStylesheet?.text, -1); Host.ResolveStyle(true); Action callback = () => { if (LayoutScheduled) { RootLayoutNode.CalculateLayout(); LayoutScheduled = false; } }; dispatcher.OnEveryLateUpdate(callback); }
public EditorContext(VisualElement hostElement, StringObjectDictionary globals, ReactScript script, IDispatcher dispatcher, IUnityScheduler scheduler, bool isDevServer, ReactWindow editor, Action onRestart = null) : base(globals, script, dispatcher, scheduler, isDevServer, onRestart, true) { Editor = editor; Host = new HostComponent(hostElement, this); InsertStyle(EditorResourcesHelper.UseragentStylesheet?.text, -1); Host.ResolveStyle(true); hostElement.styleSheets.Add(EditorResourcesHelper.UtilityStylesheet); dispatcher.AddCallOnLateUpdate(() => { if (Scheduled) { Scheduled = false; for (int i = 0; i < ScheduledCallbacks.Count; i++) { ScheduledCallbacks[i]?.Invoke(); } } }); }
public UGUIContext(RectTransform hostElement, StringObjectDictionary globals, ReactScript script, IDispatcher dispatcher, IUnityScheduler scheduler, bool isDevServer, Action onRestart) : base(globals, script, dispatcher, scheduler, isDevServer, onRestart) { Host = new HostComponent(hostElement, this); RootLayoutNode = Host.Layout; InsertStyle(ResourcesHelper.UseragentStylesheet?.text, -1); Host.ResolveStyle(true); Action callback = () => { if (Scheduled) { RootLayoutNode.CalculateLayout(); Scheduled = false; for (int i = 0; i < ScheduledCallbacks.Count; i++) { ScheduledCallbacks[i]?.Invoke(); } } }; dispatcher.AddCallOnLateUpdate(callback); }