ResizeWindow.xaml.cs 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. using PicView.ChangeImage;
  2. using PicView.UILogic.Sizing;
  3. using System.IO;
  4. using System.Windows;
  5. using System.Windows.Controls;
  6. using System.Windows.Input;
  7. using static PicView.UILogic.Sizing.WindowSizing;
  8. namespace PicView.Views.Windows
  9. {
  10. public partial class ResizeWindow : Window
  11. {
  12. public ResizeWindow()
  13. {
  14. Title = Application.Current.Resources["BatchResize"] + " - PicView";
  15. MaxHeight = WindowSizing.MonitorInfo.WorkArea.Height;
  16. Width *= WindowSizing.MonitorInfo.DpiScaling;
  17. if (double.IsNaN(Width)) // Fixes if user opens window when loading from startup
  18. {
  19. WindowSizing.MonitorInfo = SystemIntegration.MonitorSize.GetMonitorSize();
  20. MaxHeight = WindowSizing.MonitorInfo.WorkArea.Height;
  21. Width *= WindowSizing.MonitorInfo.DpiScaling;
  22. }
  23. InitializeComponent();
  24. ContentRendered += (sender, e) =>
  25. {
  26. if (Error_Handling.CheckOutOfRange() == false)
  27. {
  28. SourceFolderInput.Text = Path.GetDirectoryName(Navigation.Pics[Navigation.FolderIndex]);
  29. OutputFolderInput.Text = SourceFolderInput.Text + @"\Processed Pictures";
  30. }
  31. SourceFolderButton.FileMenuButton.Click += (_, _) =>
  32. {
  33. var newFolder = FileHandling.Open_Save.SelectAndReturnFolder();
  34. if (string.IsNullOrWhiteSpace(newFolder) == false)
  35. {
  36. SourceFolderInput.Text = newFolder;
  37. }
  38. };
  39. OutputFolderButton.FileMenuButton.Click += (_, _) =>
  40. {
  41. var newFolder = FileHandling.Open_Save.SelectAndReturnFolder();
  42. if (string.IsNullOrWhiteSpace(newFolder) == false)
  43. {
  44. OutputFolderInput.Text = newFolder;
  45. }
  46. };
  47. ThumbnailsComboBox.SelectionChanged += delegate
  48. {
  49. var selected = (ComboBoxItem)ThumbnailsComboBox.SelectedItem;
  50. if (int.TryParse(selected?.Content.ToString(), out var count))
  51. {
  52. GeneratedThumbnailsContainer.Children.Clear();
  53. if (count <= 0) { return; }
  54. var size = new string[count + 1];
  55. var newSize = new string[size.Length];
  56. switch (count)
  57. {
  58. case 7:
  59. size[7] = "xxs"; size[6] = "xs"; size[5] = "small"; size[4] = "medium"; size[3] = "large"; size[2] = "xl"; size[1] = "xxl";
  60. newSize[7] = "20"; newSize[6] = "30"; newSize[5] = "40"; newSize[4] = "50"; newSize[3] = "60"; newSize[2] = "70"; newSize[1] = "80";
  61. break;
  62. case 6:
  63. size[6] = "xxs"; size[5] = "xs"; size[4] = "small"; size[3] = "medium"; size[2] = "large"; size[1] = "xl";
  64. newSize[6] = "20"; newSize[5] = "30"; newSize[4] = "40"; newSize[3] = "50"; newSize[2] = "60"; newSize[1] = "70";
  65. break;
  66. case 5:
  67. size[5] = "xs"; size[4] = "small"; size[3] = "medium"; size[2] = "large"; size[1] = "xl";
  68. newSize[5] = "20"; newSize[4] = "30"; newSize[3] = "50"; newSize[2] = "60"; newSize[1] = "70";
  69. break;
  70. case 4:
  71. size[4] = "xs"; size[3] = "small"; size[2] = "medium"; size[1] = "large";
  72. newSize[4] = "25"; newSize[3] = "40"; newSize[2] = "50"; newSize[1] = "70";
  73. break;
  74. case 3:
  75. size[3] = "small"; size[2] = "medium"; size[1] = "large";
  76. newSize[3] = "25"; newSize[2] = "50"; newSize[1] = "70";
  77. break;
  78. case 2:
  79. size[1] = "small"; size[2] = "medium";
  80. newSize[1] = "30"; newSize[2] = "50";
  81. break;
  82. default:
  83. size[1] = "small";
  84. newSize[1] = "30";
  85. break;
  86. }
  87. for (int i = 1; i <= count; i++)
  88. {
  89. GeneratedThumbnailsContainer.Children.Add(new UserControls.ThumbnailOutputUC(i, OutputFolderInput.Text, size[i], newSize[i]));
  90. }
  91. }
  92. };
  93. MouseLeftButtonDown += (_, e) =>
  94. { if (e.LeftButton == MouseButtonState.Pressed) { DragMove(); } };
  95. KeyDown += (_, e) => Shortcuts.GenericWindowShortcuts.KeysDown(null, e, this);
  96. // CloseButton
  97. CloseButton.TheButton.Click += delegate { Hide(); };
  98. // MinButton
  99. MinButton.TheButton.Click += delegate { SystemCommands.MinimizeWindow(this); };
  100. TitleBar.MouseLeftButtonDown += delegate { DragMove(); };
  101. };
  102. }
  103. protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo)
  104. {
  105. if (sizeInfo == null || !sizeInfo.WidthChanged && !sizeInfo.HeightChanged)
  106. {
  107. return;
  108. }
  109. //Keep position when size has changed
  110. Top += ((sizeInfo.PreviousSize.Height / MonitorInfo.DpiScaling) - (sizeInfo.NewSize.Height / MonitorInfo.DpiScaling)) / 2;
  111. Left += ((sizeInfo.PreviousSize.Width / MonitorInfo.DpiScaling) - (sizeInfo.NewSize.Width / MonitorInfo.DpiScaling)) / 2;
  112. base.OnRenderSizeChanged(sizeInfo);
  113. }
  114. }
  115. }