mirror of
https://github.com/cyanfish/naps2.git
synced 2024-10-26 09:01:36 +03:00
Change IListView.ImageSize type to Eto.Drawing.Size
This commit is contained in:
parent
f132dbef91
commit
1746100be1
@ -80,7 +80,7 @@ public class GtkListView<T> : IListView<T> where T : notnull
|
||||
ItemClicked?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
|
||||
public int ImageSize { get; set; }
|
||||
public Eto.Drawing.Size ImageSize { get; set; }
|
||||
|
||||
public ScrolledWindow NativeControl => _scrolledWindow;
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
using Eto.Drawing;
|
||||
using Eto.Forms;
|
||||
using Eto.Mac;
|
||||
using Eto.Mac.Forms.Menu;
|
||||
@ -71,10 +72,10 @@ public class MacListView<T> : NSCollectionViewDelegateFlowLayout, IListView<T> w
|
||||
ItemClicked?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
|
||||
public int ImageSize
|
||||
public Size ImageSize
|
||||
{
|
||||
get => (int) ((NSCollectionViewFlowLayout) _layout).ItemSize.Width;
|
||||
set => ((NSCollectionViewFlowLayout) _layout).ItemSize = new CGSize(value, value);
|
||||
get => Size.Truncate(((NSCollectionViewFlowLayout) _layout).ItemSize.ToEto());
|
||||
set => ((NSCollectionViewFlowLayout) _layout).ItemSize = new CGSize(value.Width, value.Height);
|
||||
}
|
||||
|
||||
public Control Control => _panel;
|
||||
@ -290,7 +291,7 @@ public class MacListView<T> : NSCollectionViewDelegateFlowLayout, IListView<T> w
|
||||
{
|
||||
var size = _behavior.GetImage(item, ImageSize).Size;
|
||||
var max = (double) Math.Max(size.Width, size.Height);
|
||||
return new CGSize(size.Width * ImageSize / max, size.Height * ImageSize / max);
|
||||
return new CGSize(size.Width * ImageSize.Width / max, size.Height * ImageSize.Width / max);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -91,8 +91,8 @@ public class WinFormsListView<T> : IListView<T> where T : notnull
|
||||
SizeF textSize = TextRenderer.MeasureText(label, _view.Font);
|
||||
int textOffset = (int) (textSize.Height + PageNumberTextPadding);
|
||||
|
||||
float scaleHeight = (float) (ImageSize - textOffset) / image.Height;
|
||||
float scaleWidth = (float) ImageSize / image.Width;
|
||||
float scaleHeight = (float) (ImageSize.Height - textOffset) / image.Height;
|
||||
float scaleWidth = (float) ImageSize.Width / image.Width;
|
||||
|
||||
float scale = Math.Min(scaleWidth, scaleHeight);
|
||||
int height = (int) Math.Round(image.Height * scale);
|
||||
@ -145,12 +145,12 @@ public class WinFormsListView<T> : IListView<T> where T : notnull
|
||||
int width, height;
|
||||
if (image.Width > image.Height)
|
||||
{
|
||||
width = ImageSize;
|
||||
width = ImageSize.Width;
|
||||
height = (int) Math.Round(width * (image.Height / (double) image.Width));
|
||||
}
|
||||
else
|
||||
{
|
||||
height = ImageSize;
|
||||
height = ImageSize.Height;
|
||||
width = (int) Math.Round(height * (image.Width / (double) image.Height));
|
||||
}
|
||||
var x = e.Bounds.Left + (e.Bounds.Width - width) / 2;
|
||||
@ -171,10 +171,10 @@ public class WinFormsListView<T> : IListView<T> where T : notnull
|
||||
}
|
||||
}
|
||||
|
||||
public int ImageSize
|
||||
public Eto.Drawing.Size ImageSize
|
||||
{
|
||||
get => _view.LargeImageList!.ImageSize.Width;
|
||||
set => WinFormsHacks.SetImageSize(_view.LargeImageList!, new Size(value, value));
|
||||
get => _view.LargeImageList!.ImageSize.ToEto();
|
||||
set => WinFormsHacks.SetImageSize(_view.LargeImageList!, new Size(value.Width, value.Height));
|
||||
}
|
||||
|
||||
private void OnDragEnter(object? sender, DragEventArgs e)
|
||||
|
@ -80,7 +80,7 @@ public abstract class DesktopForm : EtoFormBase
|
||||
_listView.ItemClicked += ListViewItemClicked;
|
||||
_listView.Drop += ListViewDrop;
|
||||
_listView.SelectionChanged += ListViewSelectionChanged;
|
||||
_listView.ImageSize = _thumbnailController.VisibleSize;
|
||||
_listView.ImageSize = new Size(_thumbnailController.VisibleSize, _thumbnailController.VisibleSize);
|
||||
_listView.ContextMenu = _contextMenu;
|
||||
|
||||
// TODO: Fix Eto so that we don't need to set an item here (otherwise the first time we right click nothing happens)
|
||||
|
@ -93,7 +93,7 @@ public class ProfilesForm : EtoDialogBase
|
||||
profilesKsm.Assign("Mod+V", _pasteCommand);
|
||||
EtoPlatform.Current.HandleKeyDown(_listView.Control, profilesKsm.Perform);
|
||||
|
||||
_listView.ImageSize = 48;
|
||||
_listView.ImageSize = new Size(48, 48);
|
||||
_listView.ItemClicked += ItemClicked;
|
||||
_listView.SelectionChanged += SelectionChanged;
|
||||
_listView.Drop += Drop;
|
||||
|
@ -54,7 +54,7 @@ public class ScannerSharingForm : EtoDialogBase
|
||||
// TODO: Enable
|
||||
// _shareAsService.Checked = _osServiceManager.IsRegistered;
|
||||
// _shareAsService.CheckedChanged += ShareAsServiceCheckedChanged;
|
||||
_listView.ImageSize = 48;
|
||||
_listView.ImageSize = new Size(48, 48);
|
||||
_listView.SelectionChanged += SelectionChanged;
|
||||
|
||||
_addCommand.Enabled = true;
|
||||
|
@ -8,8 +8,7 @@ public interface IListView<T> : Util.ISelectable<T> where T : notnull
|
||||
|
||||
ContextMenu? ContextMenu { get; set; }
|
||||
|
||||
// TODO: Maybe convert this back to a Size
|
||||
int ImageSize { get; set; }
|
||||
Eto.Drawing.Size ImageSize { get; set; }
|
||||
|
||||
event EventHandler SelectionChanged;
|
||||
|
||||
|
@ -24,9 +24,9 @@ public class ImageListViewBehavior : ListViewBehavior<UiImage>
|
||||
|
||||
public override bool ShowPageNumbers => _config.Get(c => c.ShowPageNumbers);
|
||||
|
||||
public override Image GetImage(UiImage item, int imageSize)
|
||||
public override Image GetImage(UiImage item, Size imageSize)
|
||||
{
|
||||
using var thumbnail = _thumbnailProvider.GetThumbnail(item, imageSize);
|
||||
using var thumbnail = _thumbnailProvider.GetThumbnail(item, imageSize.Width);
|
||||
return thumbnail.ToEtoImage();
|
||||
}
|
||||
|
||||
|
@ -26,7 +26,7 @@ public abstract class ListViewBehavior<T> where T : notnull
|
||||
|
||||
public virtual string GetLabel(T item) => throw new NotSupportedException();
|
||||
|
||||
public virtual Image GetImage(T item, int imageSize) => throw new NotSupportedException();
|
||||
public virtual Image GetImage(T item, Size imageSize) => throw new NotSupportedException();
|
||||
|
||||
public virtual bool AllowDragDrop => false;
|
||||
|
||||
|
@ -20,7 +20,7 @@ public class ProfileListViewBehavior : ListViewBehavior<ScanProfile>
|
||||
|
||||
public override string GetLabel(ScanProfile item) => item.DisplayName ?? "";
|
||||
|
||||
public override Image GetImage(ScanProfile item, int imageSize)
|
||||
public override Image GetImage(ScanProfile item, Size imageSize)
|
||||
{
|
||||
if (item.IsDefault && item.IsLocked)
|
||||
{
|
||||
|
@ -14,5 +14,5 @@ public class SharedDevicesListViewBehavior : ListViewBehavior<SharedDevice>
|
||||
|
||||
public override string GetLabel(SharedDevice item) => item.Name;
|
||||
|
||||
public override Image GetImage(SharedDevice item, int imageSize) => Icons.scanner_wireless.ToEtoImage();
|
||||
public override Image GetImage(SharedDevice item, Size imageSize) => Icons.scanner_wireless.ToEtoImage();
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
using NAPS2.EtoForms;
|
||||
using Eto.Drawing;
|
||||
using NAPS2.EtoForms.Widgets;
|
||||
|
||||
namespace NAPS2.Images;
|
||||
@ -51,7 +51,7 @@ public class ThumbnailController : IDisposable
|
||||
{
|
||||
var thumbnailSize = ThumbnailSizes.Validate(value);
|
||||
_config.User.Set(c => c.ThumbnailSize, thumbnailSize);
|
||||
if (ListView?.ImageSize == thumbnailSize)
|
||||
if (ListView?.ImageSize.Width == thumbnailSize)
|
||||
{
|
||||
// Same size so no resizing needed
|
||||
return;
|
||||
@ -76,7 +76,7 @@ public class ThumbnailController : IDisposable
|
||||
if (ListView != null)
|
||||
{
|
||||
// Adjust the visible thumbnail display with the new size
|
||||
ListView.ImageSize = VisibleSize;
|
||||
ListView.ImageSize = new Size(VisibleSize, VisibleSize);
|
||||
ListView.RegenerateImages();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user