diff --git a/Mapping_Tools/MainWindow.xaml b/Mapping_Tools/MainWindow.xaml index 12b42a89..04a2a99c 100644 --- a/Mapping_Tools/MainWindow.xaml +++ b/Mapping_Tools/MainWindow.xaml @@ -123,7 +123,10 @@ - + + + + diff --git a/Mapping_Tools/MainWindow.xaml.cs b/Mapping_Tools/MainWindow.xaml.cs index 4e14efab..ead68247 100644 --- a/Mapping_Tools/MainWindow.xaml.cs +++ b/Mapping_Tools/MainWindow.xaml.cs @@ -206,19 +206,31 @@ private void SetCurrentView(Type type) { } public void SetCurrentView(object view) { - if( view == null ) + if (view == null) return; var type = view.GetType(); - if( FindName("header") is TextBlock txt ) { + if (FindName("header") is TextBlock txt) { txt.Text = type.GetCustomAttribute() == null ? $"Mapping Tools - {ViewCollection.GetName(type)}" : "Mapping Tools"; } - if( DataContext is MappingTool mt ) { + if (type.GetCustomAttribute() != null) { + ContentScroller.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; + } else { + ContentScroller.VerticalScrollBarVisibility = ScrollBarVisibility.Disabled; + } + + if (type.GetCustomAttribute() != null) { + ContentScroller.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto; + } else { + ContentScroller.HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled; + } + + if (DataContext is MappingTool mt) { mt.Deactivate(); } - if( view is MappingTool nmt ) { + if (view is MappingTool nmt) { nmt.Activate(); } @@ -339,7 +351,7 @@ private async void LoadBackup(object sender, RoutedEventArgs e) { } private void ViewChanged() { - if( !( FindName("ProjectMenu") is MenuItem projectMenu ) ) + if (FindName("ProjectMenu") is not MenuItem projectMenu) return; var isSavable = DataContext.GetType().GetInterfaces().Any(x => @@ -349,7 +361,7 @@ private void ViewChanged() { projectMenu.Visibility = Visibility.Collapsed; projectMenu.Items.Clear(); - if( isSavable ) { + if (isSavable) { projectMenu.Visibility = Visibility.Visible; projectMenu.Items.Add(GetSaveProjectMenuItem()); @@ -357,10 +369,10 @@ private void ViewChanged() { projectMenu.Items.Add(GetNewProjectMenuItem()); } - if( DataContext is IHaveExtraProjectMenuItems havingExtraProjectMenuItems ) { + if (DataContext is IHaveExtraProjectMenuItems havingExtraProjectMenuItems) { projectMenu.Visibility = Visibility.Visible; - foreach( var menuItem in havingExtraProjectMenuItems.GetMenuItems() ) { + foreach (var menuItem in havingExtraProjectMenuItems.GetMenuItems()) { projectMenu.Items.Add(menuItem); } } diff --git a/Mapping_Tools/Views/AutoFailDetector/AutoFailDetectorView.xaml.cs b/Mapping_Tools/Views/AutoFailDetector/AutoFailDetectorView.xaml.cs index 32c06a3f..38627c36 100644 --- a/Mapping_Tools/Views/AutoFailDetector/AutoFailDetectorView.xaml.cs +++ b/Mapping_Tools/Views/AutoFailDetector/AutoFailDetectorView.xaml.cs @@ -13,6 +13,7 @@ namespace Mapping_Tools.Views.AutoFailDetector { [SmartQuickRunUsage(SmartQuickRunTargets.Always)] + [VerticalContentScroll] public partial class AutoFailDetectorView : IQuickRun { private List _unloadingObjects; private List _potentialUnloadingObjects; diff --git a/Mapping_Tools/Views/HitsoundCopier/HitsoundCopierView.xaml.cs b/Mapping_Tools/Views/HitsoundCopier/HitsoundCopierView.xaml.cs index 3564c4cd..20bdf4c0 100644 --- a/Mapping_Tools/Views/HitsoundCopier/HitsoundCopierView.xaml.cs +++ b/Mapping_Tools/Views/HitsoundCopier/HitsoundCopierView.xaml.cs @@ -19,6 +19,7 @@ namespace Mapping_Tools.Views.HitsoundCopier { /// /// Interactielogica voor HitsoundCopierView.xaml /// + [VerticalContentScroll] public partial class HitsoundCopierView : ISavable { public static readonly string ToolName = "Hitsound Copier"; diff --git a/Mapping_Tools/Views/HorizontalContentScrollAttribute.cs b/Mapping_Tools/Views/HorizontalContentScrollAttribute.cs new file mode 100644 index 00000000..1087a8d7 --- /dev/null +++ b/Mapping_Tools/Views/HorizontalContentScrollAttribute.cs @@ -0,0 +1,7 @@ +using System; + +namespace Mapping_Tools.Views { + [AttributeUsage(AttributeTargets.Class)] + class HorizontalContentScrollAttribute : Attribute { + } +} diff --git a/Mapping_Tools/Views/MapCleaner/CleanerView.xaml.cs b/Mapping_Tools/Views/MapCleaner/CleanerView.xaml.cs index eabbee07..7b5a9d81 100644 --- a/Mapping_Tools/Views/MapCleaner/CleanerView.xaml.cs +++ b/Mapping_Tools/Views/MapCleaner/CleanerView.xaml.cs @@ -17,6 +17,8 @@ namespace Mapping_Tools.Views.MapCleaner { [SmartQuickRunUsage(SmartQuickRunTargets.Always)] + [VerticalContentScroll] + [HorizontalContentScroll] public partial class CleanerView : IQuickRun, ISavable { private List _timingpointsRemoved; private List _timingpointsAdded; diff --git a/Mapping_Tools/Views/Preferences/PreferencesView.xaml.cs b/Mapping_Tools/Views/Preferences/PreferencesView.xaml.cs index d8c4f78e..57af0bff 100644 --- a/Mapping_Tools/Views/Preferences/PreferencesView.xaml.cs +++ b/Mapping_Tools/Views/Preferences/PreferencesView.xaml.cs @@ -9,6 +9,8 @@ namespace Mapping_Tools.Views.Preferences /// /// Interaktionslogik für UserControl2.xaml /// + [VerticalContentScroll] + [HorizontalContentScroll] public partial class PreferencesView { public static readonly string ToolName = "Preferences"; diff --git a/Mapping_Tools/Views/PropertyTransformer/PropertyTransformerView.xaml.cs b/Mapping_Tools/Views/PropertyTransformer/PropertyTransformerView.xaml.cs index 6a675d82..9e9b8f65 100644 --- a/Mapping_Tools/Views/PropertyTransformer/PropertyTransformerView.xaml.cs +++ b/Mapping_Tools/Views/PropertyTransformer/PropertyTransformerView.xaml.cs @@ -16,6 +16,8 @@ namespace Mapping_Tools.Views.PropertyTransformer { /// /// Interactielogica voor HitsoundCopierView.xaml /// + [VerticalContentScroll] + [HorizontalContentScroll] public partial class PropertyTransformerView : ISavable { public static readonly string ToolName = "Property Transformer"; diff --git a/Mapping_Tools/Views/RhythmGuide/RhythmGuideView.xaml.cs b/Mapping_Tools/Views/RhythmGuide/RhythmGuideView.xaml.cs index 73cb6104..cc6f9714 100644 --- a/Mapping_Tools/Views/RhythmGuide/RhythmGuideView.xaml.cs +++ b/Mapping_Tools/Views/RhythmGuide/RhythmGuideView.xaml.cs @@ -11,6 +11,7 @@ namespace Mapping_Tools.Views.RhythmGuide { /// /// Interactielogica voor RhythmGuideView.xaml /// + [VerticalContentScroll] public partial class RhythmGuideView : ISavable { public static readonly string ToolName = "Rhythm Guide"; diff --git a/Mapping_Tools/Views/SliderCompletionator/SliderCompletionatorView.xaml.cs b/Mapping_Tools/Views/SliderCompletionator/SliderCompletionatorView.xaml.cs index ce8a9c86..3b706b93 100644 --- a/Mapping_Tools/Views/SliderCompletionator/SliderCompletionatorView.xaml.cs +++ b/Mapping_Tools/Views/SliderCompletionator/SliderCompletionatorView.xaml.cs @@ -19,6 +19,8 @@ namespace Mapping_Tools.Views.SliderCompletionator { /// Interaktionslogik für UserControl1.xaml /// [SmartQuickRunUsage(SmartQuickRunTargets.AnySelection)] + [VerticalContentScroll] + [HorizontalContentScroll] public partial class SliderCompletionatorView : IQuickRun, ISavable { public event EventHandler RunFinished; diff --git a/Mapping_Tools/Views/SliderMerger/SliderMergerView.xaml.cs b/Mapping_Tools/Views/SliderMerger/SliderMergerView.xaml.cs index c3442411..7eb0669a 100644 --- a/Mapping_Tools/Views/SliderMerger/SliderMergerView.xaml.cs +++ b/Mapping_Tools/Views/SliderMerger/SliderMergerView.xaml.cs @@ -22,6 +22,8 @@ namespace Mapping_Tools.Views.SliderMerger { /// Interaktionslogik für UserControl1.xaml /// [SmartQuickRunUsage(SmartQuickRunTargets.MultipleSelection)] + [VerticalContentScroll] + [HorizontalContentScroll] public partial class SliderMergerView : IQuickRun, ISavable { public static readonly string ToolName = "Slider Merger"; diff --git a/Mapping_Tools/Views/SnappingTools/SnappingToolsView.xaml.cs b/Mapping_Tools/Views/SnappingTools/SnappingToolsView.xaml.cs index a4063e3e..06065885 100644 --- a/Mapping_Tools/Views/SnappingTools/SnappingToolsView.xaml.cs +++ b/Mapping_Tools/Views/SnappingTools/SnappingToolsView.xaml.cs @@ -12,10 +12,8 @@ using Mapping_Tools.Viewmodels; using MaterialDesignThemes.Wpf; -namespace Mapping_Tools.Views.SnappingTools -{ - public partial class SnappingToolsView : ISavable, IHaveExtraProjectMenuItems - { +namespace Mapping_Tools.Views.SnappingTools { + public partial class SnappingToolsView : ISavable, IHaveExtraProjectMenuItems { public static readonly string ToolName = "Geometry Dashboard"; diff --git a/Mapping_Tools/Views/TimingCopier/TimingCopierView.xaml.cs b/Mapping_Tools/Views/TimingCopier/TimingCopierView.xaml.cs index e3d1d7c2..e7dccbd6 100644 --- a/Mapping_Tools/Views/TimingCopier/TimingCopierView.xaml.cs +++ b/Mapping_Tools/Views/TimingCopier/TimingCopierView.xaml.cs @@ -16,6 +16,7 @@ namespace Mapping_Tools.Views.TimingCopier { /// /// Interactielogica voor TimingCopierView.xaml /// + [VerticalContentScroll] public partial class TimingCopierView : ISavable { public string AutoSavePath => Path.Combine(MainWindow.AppDataPath, "timingcopierproject.json"); diff --git a/Mapping_Tools/Views/TimingHelper/TimingHelperView.xaml.cs b/Mapping_Tools/Views/TimingHelper/TimingHelperView.xaml.cs index 54ae279b..82ab81ff 100644 --- a/Mapping_Tools/Views/TimingHelper/TimingHelperView.xaml.cs +++ b/Mapping_Tools/Views/TimingHelper/TimingHelperView.xaml.cs @@ -20,6 +20,8 @@ namespace Mapping_Tools.Views.TimingHelper { /// Interactielogica voor TimingHelperView.xaml /// [SmartQuickRunUsage(SmartQuickRunTargets.Always)] + [VerticalContentScroll] + [HorizontalContentScroll] public partial class TimingHelperView : IQuickRun, ISavable { public static readonly string ToolName = "Timing Helper"; diff --git a/Mapping_Tools/Views/VerticalContentScrollAttribute.cs b/Mapping_Tools/Views/VerticalContentScrollAttribute.cs new file mode 100644 index 00000000..3c39f613 --- /dev/null +++ b/Mapping_Tools/Views/VerticalContentScrollAttribute.cs @@ -0,0 +1,7 @@ +using System; + +namespace Mapping_Tools.Views { + [AttributeUsage(AttributeTargets.Class)] + class VerticalContentScrollAttribute : Attribute { + } +}