Improve updating the image list
This commit is contained in:
parent
80f0c765aa
commit
e36173ce1e
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -20,6 +20,8 @@ namespace Switch_Toolbox.Library.Forms
|
|||||||
ImageList ImageList = new ImageList();
|
ImageList ImageList = new ImageList();
|
||||||
List<STGenericTexture> Textures = new List<STGenericTexture>();
|
List<STGenericTexture> Textures = new List<STGenericTexture>();
|
||||||
|
|
||||||
|
private ListViewItem ActiveItem;
|
||||||
|
|
||||||
public void LoadArchive(IArchiveFile ArchiveFile)
|
public void LoadArchive(IArchiveFile ArchiveFile)
|
||||||
{
|
{
|
||||||
ImageList.ColorDepth = ColorDepth.Depth32Bit;
|
ImageList.ColorDepth = ColorDepth.Depth32Bit;
|
||||||
@ -87,6 +89,13 @@ namespace Switch_Toolbox.Library.Forms
|
|||||||
Thread.Start();
|
Thread.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ReloadTexture(Bitmap Image, ListViewItem listItem)
|
||||||
|
{
|
||||||
|
Image = BitmapExtension.Resize(Image, ImageList.ImageSize);
|
||||||
|
ImageList.Images[listItem.ImageIndex] = Image;
|
||||||
|
Image.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
private void ReloadTexture(STGenericTexture tex, ListViewItem listItem)
|
private void ReloadTexture(STGenericTexture tex, ListViewItem listItem)
|
||||||
{
|
{
|
||||||
Thread Thread = new Thread((ThreadStart)(() =>
|
Thread Thread = new Thread((ThreadStart)(() =>
|
||||||
@ -213,10 +222,10 @@ namespace Switch_Toolbox.Library.Forms
|
|||||||
imageEditorForm.OnTextureReplaced += new ImageEditorBase.StatusUpdateHandler(UpdateTextureEdit);
|
imageEditorForm.OnTextureReplaced += new ImageEditorBase.StatusUpdateHandler(UpdateTextureEdit);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateTextureEdit(object sender, ImageEditorBase.ProgressEventArgs e)
|
private void UpdateTextureEdit(object sender, ImageEditorBase.ImageReplaceEventArgs e)
|
||||||
{
|
{
|
||||||
var item = listViewCustom1.SelectedItems[0];
|
ReloadTexture(e.ReplacedTexture, ActiveItem);
|
||||||
ReloadTexture(GetActiveTexture(), item);
|
listViewCustom1.Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void listViewCustom1_DoubleClick(object sender, EventArgs e)
|
private void listViewCustom1_DoubleClick(object sender, EventArgs e)
|
||||||
@ -233,10 +242,10 @@ namespace Switch_Toolbox.Library.Forms
|
|||||||
{
|
{
|
||||||
if (listViewCustom1.SelectedItems.Count > 0)
|
if (listViewCustom1.SelectedItems.Count > 0)
|
||||||
{
|
{
|
||||||
var item = listViewCustom1.SelectedItems[0];
|
ActiveItem = listViewCustom1.SelectedItems[0];
|
||||||
if (item.Tag is STGenericTexture)
|
if (ActiveItem.Tag is STGenericTexture)
|
||||||
{
|
{
|
||||||
LoadImageEditor((STGenericTexture)item.Tag, ((STGenericTexture)item.Tag).GenericProperties);
|
LoadImageEditor((STGenericTexture)ActiveItem.Tag, ((STGenericTexture)ActiveItem.Tag).GenericProperties);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,22 +15,24 @@ namespace Switch_Toolbox.Library.Forms
|
|||||||
{
|
{
|
||||||
public partial class ImageEditorBase : UserControl
|
public partial class ImageEditorBase : UserControl
|
||||||
{
|
{
|
||||||
public class ProgressEventArgs : EventArgs
|
public class ImageReplaceEventArgs : EventArgs
|
||||||
{
|
{
|
||||||
public ProgressEventArgs()
|
public Bitmap ReplacedTexture { get; private set; }
|
||||||
{
|
|
||||||
|
public ImageReplaceEventArgs(Bitmap texture) {
|
||||||
|
ReplacedTexture = texture;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public delegate void StatusUpdateHandler(object sender, ProgressEventArgs e);
|
public delegate void StatusUpdateHandler(object sender, ImageReplaceEventArgs e);
|
||||||
public event StatusUpdateHandler OnTextureReplaced;
|
public event StatusUpdateHandler OnTextureReplaced;
|
||||||
|
|
||||||
private void UpdateTextureReplace()
|
private void UpdateTextureReplace(Bitmap texture)
|
||||||
{
|
{
|
||||||
// Make sure someone is listening to event
|
// Make sure someone is listening to event
|
||||||
if (OnTextureReplaced == null) return;
|
if (OnTextureReplaced == null) return;
|
||||||
|
|
||||||
ProgressEventArgs args = new ProgressEventArgs();
|
ImageReplaceEventArgs args = new ImageReplaceEventArgs(texture);
|
||||||
OnTextureReplaced(this, args);
|
OnTextureReplaced(this, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -752,7 +754,7 @@ namespace Switch_Toolbox.Library.Forms
|
|||||||
|
|
||||||
progressBar.Value = 100;
|
progressBar.Value = 100;
|
||||||
|
|
||||||
UpdateTextureReplace();
|
UpdateTextureReplace(new Bitmap(Image));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveBtn_Click(object sender, EventArgs e)
|
private void saveBtn_Click(object sender, EventArgs e)
|
||||||
|
@ -41,11 +41,15 @@ namespace Switch_Toolbox.Library
|
|||||||
}
|
}
|
||||||
return datas;
|
return datas;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Bitmap Resize(Image original, Size size)
|
||||||
|
{
|
||||||
|
return ResizeImage(original, size.Width, size.Height);
|
||||||
|
}
|
||||||
|
|
||||||
public static Bitmap Resize(Image original, int width, int height)
|
public static Bitmap Resize(Image original, int width, int height)
|
||||||
{
|
{
|
||||||
return ResizeImage(original, width, height);
|
return ResizeImage(original, width, height);
|
||||||
|
|
||||||
// return new Bitmap(original, new Size(width, height));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Bitmap ReplaceChannel(Image OriginalImage, Image ChannelImage, STChannelType ChannelType)
|
public static Bitmap ReplaceChannel(Image OriginalImage, Image ChannelImage, STChannelType ChannelType)
|
||||||
|
Loading…
Reference in New Issue
Block a user