// 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();
        }