/// <summary> /// Enables/disables all buttons except for one. /// </summary> private void EnableButtons(OverlayButtonHolder excludeButton, bool enabled) { foreach (var button in m_buttonHolders.Where(button => button != excludeButton)) { button.Overlay.PickingEnabled = enabled; } }
/// <summary> /// Adds a toggle button to the panel, with different images for the enabled and disabled state. /// </summary> public OverlayButtonHolder AddButton(string enabledImage, string disabledImage, Action action) { m_overlay.Width += ButtonSize; var buttonHolder = new OverlayButtonHolder(m_insight3D, action, enabledImage, disabledImage, m_locationOffset, m_overlay.Width); m_overlay.Overlays.Add(buttonHolder.Overlay); m_buttonHolders.Add(buttonHolder); m_locationOffset += ButtonSize; foreach (var button in m_buttonHolders) { button.Resize(m_overlay.Width); } return(buttonHolder); }
/// <summary> /// Initializes a new instance. /// </summary> public OverlayToolbar(Insight3D insight3D) { m_insight3D = insight3D; m_buttonHolders = new List <OverlayButtonHolder>(); insight3D.MouseOptions.ZoomComplete += OnZoomComplete; insight3D.MouseDown += OnMouseDown; insight3D.MouseMove += OnMouseMove; insight3D.MouseUp += OnMouseUp; insight3D.MouseClick += OnMouseClick; insight3D.MouseDoubleClick += OnMouseDoubleClick; SceneManager.Animation.Stopped += OnAnimationStopped; SceneManager.Animation.Started += OnAnimationStarted; SceneManager.Animation.Paused += OnAnimationPaused; SceneManager.Animation.HasReset += OnAnimationHasReset; m_overlay = new TextureScreenOverlay(0.0, 0.0, DefaultPanelWidth, ButtonSize) { Origin = ScreenOverlayOrigin.BottomLeft, BorderSize = 2, Color = Color.Transparent, BorderColor = Color.Transparent, Translucency = PanelTranslucencyRegular, BorderTranslucency = PanelBorderTranslucencyRegular }; SceneManager.ScreenOverlays.Add(m_overlay); // ShowHide button AddButton(GetTexturePath("visible.png"), GetTexturePath("invisible.png"), ShowHide); // Reset button AddButton(GetTexturePath("reset.png"), Reset); // DecreaseDelta button m_decreaseDeltaButton = AddButton(GetTexturePath("decreasedelta.png"), DecreaseDelta); // StepBack button m_stepReverseButton = AddButton(GetTexturePath("stepreverse.png"), StepReverse); // PlayBack button AddButton(GetTexturePath("playreverse.png"), PlayReverse); // Pause button AddButton(GetTexturePath("pause.png"), Pause); // Play button AddButton(GetTexturePath("playforward.png"), PlayForward); // StepForward button m_stepForwardButton = AddButton(GetTexturePath("stepforward.png"), StepForward); // IncreaseDelta button m_increaseDeltaButton = AddButton(GetTexturePath("increasedelta.png"), IncreaseDelta); // Zoom button AddButton(GetTexturePath("zoompressed.png"), GetTexturePath("zoom.png"), Zoom); m_zoomButton = m_buttonHolders[m_buttonHolders.Count - 1]; // Pan button AddButton(GetTexturePath("panpressed.png"), GetTexturePath("pan.png"), Pan); // Home button AddButton(GetTexturePath("home.png"), Home); // Moon Button AddButton(GetTexturePath("moon.png"), Moon); // Scale button m_scaleButton = new OverlayButtonHolder(m_insight3D, Scale, GetTexturePath("scale.png"), 0, m_overlay.Width, 0.5, 0.0); m_scaleButton.Overlay.Origin = ScreenOverlayOrigin.TopRight; m_overlay.Overlays.Add(m_scaleButton.Overlay); m_buttonHolders.Add(m_scaleButton); // Rotate button m_rotateButton = new OverlayButtonHolder(m_insight3D, Rotate, GetTexturePath("rotate.png"), 0, m_overlay.Width, 0.5, 0.0); m_rotateButton.Overlay.Origin = ScreenOverlayOrigin.BottomRight; m_overlay.Overlays.Add(m_rotateButton.Overlay); m_buttonHolders.Add(m_rotateButton); DockBottom(); }