using System.Windows; using CommunityToolkit.Mvvm.Messaging; using Livia.Utility; using Livia.ViewModels; namespace Livia.Views.Controls; /// /// Interaction logic for RoiExpanderControl.xaml /// public partial class RoiExpanderControl { //give a litter extra just to be safe. Maybe not needed though. private static readonly DebounceHelper LocateRoiButtonDebounceHelper = new(TimeSpan.FromMilliseconds(RoiExpanderControlViewModel.BlinkTime + 100)); public RoiExpanderControl() { InitializeComponent(); } private void ToggleRoiLocationDisplayModeButtonOnClick(object sender, RoutedEventArgs e) { if (DataContext is not RoiExpanderControlViewModel viewModel) return; viewModel.ToggleRoiLocationsDisplayMode(); } private void ToggleTwoColumnModeButtonOnClick(object sender, RoutedEventArgs e) { if (DataContext is not RoiExpanderControlViewModel viewModel) return; viewModel.ToggleTwoColumnMode(); } private void ToggleUnfoldButtonOnClick(object sender, RoutedEventArgs e) { if (DataContext is not RoiExpanderControlViewModel viewModel) return; viewModel.ToggleUnfold(); } private void LocateRoiButtonOnClick(object sender, RoutedEventArgs e) { if (!LocateRoiButtonDebounceHelper.TryFire()) return; if (DataContext is not RoiExpanderControlViewModel viewModel) return; WeakReferenceMessenger.Default.Send(new LocateRoiMessage(viewModel)); } private void ShowBoundaryButtonOnClick(object sender, RoutedEventArgs e) { if (DataContext is not RoiExpanderControlViewModel viewModel) return; viewModel.ToggleShowBoundary(); } }