// Mode engages public override void OnEngage() { base.OnEngage(); General.Interface.AddButton(BuilderPlug.Me.MenusForm.ColorConfiguration); panel = new SoundEnvironmentPanel(); panel.OnShowWarningsOnlyChanged += PanelOnOnShowWarningsOnlyChanged; docker = new Docker("soundenvironments", "Sound Environments", panel); General.Interface.AddDocker(docker, true); General.Interface.SelectDocker(docker); worker = new BackgroundWorker(); worker.WorkerReportsProgress = true; worker.WorkerSupportsCancellation = true; worker.DoWork += BuilderPlug.Me.UpdateSoundEnvironments; worker.ProgressChanged += worker_ProgressChanged; worker.RunWorkerCompleted += worker_RunWorkerCompleted; UpdateData(); CustomPresentation presentation = new CustomPresentation(); presentation.AddLayer(new PresentLayer(RendererLayer.Background, BlendingMode.Mask, General.Settings.BackgroundAlpha)); presentation.AddLayer(new PresentLayer(RendererLayer.Grid, BlendingMode.Mask)); presentation.AddLayer(new PresentLayer(RendererLayer.Overlay, BlendingMode.Alpha, 1f, true)); presentation.AddLayer(new PresentLayer(RendererLayer.Things, BlendingMode.Alpha, 1.0f)); presentation.AddLayer(new PresentLayer(RendererLayer.Geometry, BlendingMode.Alpha, 1f, true)); renderer.SetPresentation(presentation); }
// Mode disengages public override void OnDisengage() { base.OnDisengage(); worker.CancelAsync(); worker.Dispose(); General.Interface.RemoveButton(BuilderPlug.Me.MenusForm.ColorConfiguration); General.Interface.RemoveDocker(docker); panel.Dispose(); //mxd panel = null; //mxd // Hide highlight info General.Interface.HideInfo(); }