Skip to content

Commit

Permalink
Added ScrollViewer for small screen support
Browse files Browse the repository at this point in the history
  • Loading branch information
OliBomby committed Jul 21, 2021
1 parent 96fa2fc commit 711c79b
Show file tree
Hide file tree
Showing 15 changed files with 56 additions and 13 deletions.
5 changes: 4 additions & 1 deletion Mapping_Tools/MainWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,10 @@
</Grid>
<Separator Background="{DynamicResource MaterialDesignDivider}" Grid.Row="1" />
<Grid x:Name="ThirdGrid" Grid.Row="2">
<ContentControl Margin="20" Name="content_views" Content="{Binding}"></ContentControl>

<ScrollViewer x:Name="ContentScroller" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<ContentControl Margin="20" Name="content_views" Content="{Binding}"></ContentControl>
</ScrollViewer>

<materialDesign:Snackbar x:Name="MainSnackbar" />
</Grid>
Expand Down
28 changes: 20 additions & 8 deletions Mapping_Tools/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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<DontShowTitleAttribute>() == null ? $"Mapping Tools - {ViewCollection.GetName(type)}" : "Mapping Tools";
}

if( DataContext is MappingTool mt ) {
if (type.GetCustomAttribute<VerticalContentScrollAttribute>() != null) {
ContentScroller.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
} else {
ContentScroller.VerticalScrollBarVisibility = ScrollBarVisibility.Disabled;
}

if (type.GetCustomAttribute<HorizontalContentScrollAttribute>() != 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();
}

Expand Down Expand Up @@ -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 =>
Expand All @@ -349,18 +361,18 @@ private void ViewChanged() {
projectMenu.Visibility = Visibility.Collapsed;
projectMenu.Items.Clear();

if( isSavable ) {
if (isSavable) {
projectMenu.Visibility = Visibility.Visible;

projectMenu.Items.Add(GetSaveProjectMenuItem());
projectMenu.Items.Add(GetLoadProjectMenuItem());
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);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

namespace Mapping_Tools.Views.AutoFailDetector {
[SmartQuickRunUsage(SmartQuickRunTargets.Always)]
[VerticalContentScroll]
public partial class AutoFailDetectorView : IQuickRun {
private List<double> _unloadingObjects;
private List<double> _potentialUnloadingObjects;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ namespace Mapping_Tools.Views.HitsoundCopier {
/// <summary>
/// Interactielogica voor HitsoundCopierView.xaml
/// </summary>
[VerticalContentScroll]
public partial class HitsoundCopierView : ISavable<HitsoundCopierVm> {
public static readonly string ToolName = "Hitsound Copier";

Expand Down
7 changes: 7 additions & 0 deletions Mapping_Tools/Views/HorizontalContentScrollAttribute.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
using System;

namespace Mapping_Tools.Views {
[AttributeUsage(AttributeTargets.Class)]
class HorizontalContentScrollAttribute : Attribute {
}
}
2 changes: 2 additions & 0 deletions Mapping_Tools/Views/MapCleaner/CleanerView.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@

namespace Mapping_Tools.Views.MapCleaner {
[SmartQuickRunUsage(SmartQuickRunTargets.Always)]
[VerticalContentScroll]
[HorizontalContentScroll]
public partial class CleanerView : IQuickRun, ISavable<MapCleanerVm> {
private List<double> _timingpointsRemoved;
private List<double> _timingpointsAdded;
Expand Down
2 changes: 2 additions & 0 deletions Mapping_Tools/Views/Preferences/PreferencesView.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ namespace Mapping_Tools.Views.Preferences
/// <summary>
/// Interaktionslogik für UserControl2.xaml
/// </summary>
[VerticalContentScroll]
[HorizontalContentScroll]
public partial class PreferencesView {

public static readonly string ToolName = "Preferences";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ namespace Mapping_Tools.Views.PropertyTransformer {
/// <summary>
/// Interactielogica voor HitsoundCopierView.xaml
/// </summary>
[VerticalContentScroll]
[HorizontalContentScroll]
public partial class PropertyTransformerView : ISavable<PropertyTransformerVm> {
public static readonly string ToolName = "Property Transformer";

Expand Down
1 change: 1 addition & 0 deletions Mapping_Tools/Views/RhythmGuide/RhythmGuideView.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ namespace Mapping_Tools.Views.RhythmGuide {
/// <summary>
/// Interactielogica voor RhythmGuideView.xaml
/// </summary>
[VerticalContentScroll]
public partial class RhythmGuideView : ISavable<RhythmGuideVm> {
public static readonly string ToolName = "Rhythm Guide";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ namespace Mapping_Tools.Views.SliderCompletionator {
/// Interaktionslogik für UserControl1.xaml
/// </summary>
[SmartQuickRunUsage(SmartQuickRunTargets.AnySelection)]
[VerticalContentScroll]
[HorizontalContentScroll]
public partial class SliderCompletionatorView : IQuickRun, ISavable<SliderCompletionatorVm> {
public event EventHandler RunFinished;

Expand Down
2 changes: 2 additions & 0 deletions Mapping_Tools/Views/SliderMerger/SliderMergerView.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ namespace Mapping_Tools.Views.SliderMerger {
/// Interaktionslogik für UserControl1.xaml
/// </summary>
[SmartQuickRunUsage(SmartQuickRunTargets.MultipleSelection)]
[VerticalContentScroll]
[HorizontalContentScroll]
public partial class SliderMergerView : IQuickRun, ISavable<SliderMergerVm> {
public static readonly string ToolName = "Slider Merger";

Expand Down
6 changes: 2 additions & 4 deletions Mapping_Tools/Views/SnappingTools/SnappingToolsView.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,8 @@
using Mapping_Tools.Viewmodels;
using MaterialDesignThemes.Wpf;

namespace Mapping_Tools.Views.SnappingTools
{
public partial class SnappingToolsView : ISavable<SnappingToolsProject>, IHaveExtraProjectMenuItems
{
namespace Mapping_Tools.Views.SnappingTools {
public partial class SnappingToolsView : ISavable<SnappingToolsProject>, IHaveExtraProjectMenuItems {

public static readonly string ToolName = "Geometry Dashboard";

Expand Down
1 change: 1 addition & 0 deletions Mapping_Tools/Views/TimingCopier/TimingCopierView.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ namespace Mapping_Tools.Views.TimingCopier {
/// <summary>
/// Interactielogica voor TimingCopierView.xaml
/// </summary>
[VerticalContentScroll]
public partial class TimingCopierView : ISavable<TimingCopierVm> {
public string AutoSavePath => Path.Combine(MainWindow.AppDataPath, "timingcopierproject.json");

Expand Down
2 changes: 2 additions & 0 deletions Mapping_Tools/Views/TimingHelper/TimingHelperView.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ namespace Mapping_Tools.Views.TimingHelper {
/// Interactielogica voor TimingHelperView.xaml
/// </summary>
[SmartQuickRunUsage(SmartQuickRunTargets.Always)]
[VerticalContentScroll]
[HorizontalContentScroll]
public partial class TimingHelperView : IQuickRun, ISavable<TimingHelperVm> {
public static readonly string ToolName = "Timing Helper";

Expand Down
7 changes: 7 additions & 0 deletions Mapping_Tools/Views/VerticalContentScrollAttribute.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
using System;

namespace Mapping_Tools.Views {
[AttributeUsage(AttributeTargets.Class)]
class VerticalContentScrollAttribute : Attribute {
}
}

0 comments on commit 711c79b

Please sign in to comment.