public void AllocateViewers <T>(int count, T viewerPrefab) where T : Viewer { Type viewerType = viewerPrefab.GetType(); ViewerSet viewerSet = _viewers.GetOrAdd(viewerType); viewerSet.AllocateViewers(count, viewerPrefab, _viewerContainer); ResizeViewports(); }
public void ResizeViewports() { foreach (var kvp in _viewers) { ViewerSet viewerSet = kvp.Value; if (viewerSet.AssignedViewers.Count > 0) { ResizeViewports(viewerSet.AssignedViewers); } else if (viewerSet.UnassignedViewers.Count > 0) { ResizeViewports(viewerSet.UnassignedViewers); } } }
private void InitDebugMenu() { DebugMenuNode debugMenuNode = DebugMenuManager.Instance.AddNode(() => "Core.ViewerManager"); debugMenuNode.RenderContentsAction = () => { foreach (var kvp in _viewers) { ViewerSet viewerSet = kvp.Value; GUILayout.BeginVertical($"{kvp.Key} Viewers", GUI.skin.box); GUILayout.Label($"Total Viewers: {viewerSet.Viewers.Count}"); GUILayout.Label($"Assigned Viewers: {viewerSet.AssignedViewers.Count}"); GUILayout.Label($"Unassigned Viewers: {viewerSet.UnassignedViewers.Count}"); GUILayout.EndVertical(); } }; }
void InitContainers() { var controllers_factoryset = new FactorySet <ITrackController>( SheetMusicEditor.CreateFactory() ); var controllers_viewerset = new ViewerSet <ITrackController>( SheetMusicEditorView.Viewer.Instance ); var tracks_factoryset = new FactorySet <ITrack>( MusicTrackFactory.Instance ); var tracks_viewerset = new ViewerSet <ITrack>(); containerfactoryset.Factories.Add( TrackControllerContainer.CreateFactory( tracks_factoryset, tracks_viewerset, controllers_factoryset, controllers_viewerset ) ); containerfactoryset.Factories.Add( PolylineContainer.CreateFactory( new FactorySet <PolylineData>( PolylineData.FactoryInstance ), new ViewerSet <PolylineData>( ) ) ); containerfactoryset.Factories.Add( FunctionContainer.CreateFactory( new FunctionCodeTools( SquareFunction.FactoryClass.Instance, PolylineFunction.FactoryClass.Instance, PolynomialFunction.FactoryClass.Instance, PulseWidthModulatedFunction.FactoryClass.Instance, LocalPerspectiveFunction.FactoryClass.Instance, GlobalPerspectiveFunction.FactoryClass.Instance ), new FactorySet <FunctionSource>( FunctionSource.FactoryInstance ), new ViewerSet <FunctionSource>( ) ) ); containerfactoryset.Factories.Add( ScreenContainer.CreateFactory( new FactorySet <IScreen>( TrackControllerScreen.FactoryInstance ), new ViewerSet <IScreen>( TrackControllerScreenView.Viewer.Instance ) ) ); }