diff --git a/Source/ViewModels/GameBadgesViewModel.cs b/Source/ViewModels/GameBadgesViewModel.cs index fa0248d4..f3597639 100644 --- a/Source/ViewModels/GameBadgesViewModel.cs +++ b/Source/ViewModels/GameBadgesViewModel.cs @@ -38,6 +38,12 @@ public GameBadgesViewModel(IBackgroundWorkerService backgroundWorkerService, IFi DialogTitle = "Game Badges"; CanClose = true; + Views = new[] + { + new ViewLookupItem(View.Profile, "Profile"), + new ViewLookupItem(View.FullSize, "Full-size"), + }; + _achievements = new ObservableCollection(); SearchCommand = new DelegateCommand(Search); ExportCommand = new DelegateCommand(Export); @@ -204,7 +210,49 @@ internal void LoadGame() public IEnumerable Achievements { get { return _achievements; } } private ObservableCollection _achievements; - public static readonly ModelProperty ShowHardcoreBorderProperty = ModelProperty.Register(typeof(GameStatsViewModel), "GameId", typeof(bool), false); + public enum View + { + Profile, + FullSize, + } + + public class ViewLookupItem + { + public ViewLookupItem(View id, string label) + { + Id = id; + Label = label; + } + public View Id { get; private set; } + public string Label { get; private set; } + } + public IEnumerable Views { get; private set; } + + public static readonly ModelProperty SelectedViewProperty = ModelProperty.Register(typeof(GameBadgesViewModel), "SelectedView", typeof(View), View.Profile, OnSelectedViewChanged); + public View SelectedView + { + get { return (View)GetValue(SelectedViewProperty); } + set { SetValue(SelectedViewProperty, value); } + } + + private static void OnSelectedViewChanged(object sender, ModelPropertyChangedEventArgs e) + { + var viewModel = (GameBadgesViewModel)sender; + + switch ((View)e.NewValue) + { + default: + viewModel.BadgeSize = 48; + break; + case View.FullSize: + viewModel.BadgeSize = 64; + break; + } + } + + + + public static readonly ModelProperty ShowHardcoreBorderProperty = ModelProperty.Register(typeof(GameBadgesViewModel), "GameId", typeof(bool), false); public bool ShowHardcoreBorder { @@ -212,6 +260,14 @@ public bool ShowHardcoreBorder set { SetValue(ShowHardcoreBorderProperty, value); } } + public static readonly ModelProperty BadgeSizeProperty = ModelProperty.Register(typeof(GameBadgesViewModel), "BadgeSize", typeof(int), 48); + public int BadgeSize + { + get { return (int)GetValue(BadgeSizeProperty); } + private set { SetValue(BadgeSizeProperty, value); } + } + + public CommandBase ExportCommand { get; private set; } private void Export(ItemsControl listView) diff --git a/Source/Views/GameBadgesDialog.xaml b/Source/Views/GameBadgesDialog.xaml index f16a5ba5..ac33553d 100644 --- a/Source/Views/GameBadgesDialog.xaml +++ b/Source/Views/GameBadgesDialog.xaml @@ -24,6 +24,7 @@ + @@ -31,12 +32,17 @@