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 {
+ }
+}