Added Zooming And Panning in YtdForm

This commit is contained in:
FiftyShadesOfBlue 2018-03-16 17:12:04 -04:00
parent cda768eb22
commit 19fad3f44b
6 changed files with 241 additions and 137 deletions

View File

@ -54,6 +54,12 @@
<Compile Include="MenuStripFix.Designer.cs">
<DependentUpon>MenuStripFix.cs</DependentUpon>
</Compile>
<Compile Include="PanelFix.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="PanelFix.Designer.cs">
<DependentUpon>PanelFix.cs</DependentUpon>
</Compile>
<Compile Include="ProjectPanel.cs">
<SubType>Form</SubType>
</Compile>

36
CodeWalker.WinForms/PanelFix.Designer.cs generated Normal file
View File

@ -0,0 +1,36 @@
namespace CodeWalker.WinForms
{
partial class PanelFix
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}
#endregion
}
}

View File

@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace CodeWalker.WinForms
{
public partial class PanelFix : Panel
{
public PanelFix()
{
InitializeComponent();
}
protected override void OnMouseWheel(MouseEventArgs e)
{
}
}
}

View File

@ -31,6 +31,7 @@
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(YtdForm));
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.FileMenu = new System.Windows.Forms.ToolStripMenuItem();
this.FileSaveAsMenu = new System.Windows.Forms.ToolStripMenuItem();
this.FileSaveAllMenu = new System.Windows.Forms.ToolStripMenuItem();
this.EditMenu = new System.Windows.Forms.ToolStripMenuItem();
this.ViewMenu = new System.Windows.Forms.ToolStripMenuItem();
@ -38,6 +39,8 @@
this.NewButton = new System.Windows.Forms.ToolStripSplitButton();
this.OpenButton = new System.Windows.Forms.ToolStripSplitButton();
this.SaveButton = new System.Windows.Forms.ToolStripSplitButton();
this.ToolbarSaveAsMenu = new System.Windows.Forms.ToolStripMenuItem();
this.ToolbarSaveAllMenu = new System.Windows.Forms.ToolStripMenuItem();
this.MainToolbar = new System.Windows.Forms.StatusStrip();
this.StatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
this.MainSplitContainer = new System.Windows.Forms.SplitContainer();
@ -50,7 +53,6 @@
this.TextureTabPage = new System.Windows.Forms.TabPage();
this.label1 = new System.Windows.Forms.Label();
this.SelTextureZoomCombo = new System.Windows.Forms.ComboBox();
this.SelTexturePanel = new System.Windows.Forms.Panel();
this.SelTexturePictureBox = new System.Windows.Forms.PictureBox();
this.SelTextureMipLabel = new System.Windows.Forms.Label();
this.SelTextureDimensionsLabel = new System.Windows.Forms.Label();
@ -60,9 +62,7 @@
this.DetailsPropertyGrid = new CodeWalker.WinForms.PropertyGridFix();
this.SaveFileDialog = new System.Windows.Forms.SaveFileDialog();
this.FolderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog();
this.FileSaveAsMenu = new System.Windows.Forms.ToolStripMenuItem();
this.ToolbarSaveAsMenu = new System.Windows.Forms.ToolStripMenuItem();
this.ToolbarSaveAllMenu = new System.Windows.Forms.ToolStripMenuItem();
this.SelTexturePanel = new CodeWalker.WinForms.PanelFix();
this.menuStrip1.SuspendLayout();
this.toolStrip1.SuspendLayout();
this.MainToolbar.SuspendLayout();
@ -72,10 +72,10 @@
this.MainSplitContainer.SuspendLayout();
this.TextureTabControl.SuspendLayout();
this.TextureTabPage.SuspendLayout();
this.SelTexturePanel.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.SelTexturePictureBox)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.SelTextureMipTrackBar)).BeginInit();
this.DetailsTabPage.SuspendLayout();
this.SelTexturePanel.SuspendLayout();
this.SuspendLayout();
//
// menuStrip1
@ -86,7 +86,7 @@
this.ViewMenu});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(845, 24);
this.menuStrip1.Size = new System.Drawing.Size(845, 25);
this.menuStrip1.TabIndex = 0;
this.menuStrip1.Text = "menuStrip1";
//
@ -96,16 +96,25 @@
this.FileSaveAsMenu,
this.FileSaveAllMenu});
this.FileMenu.Name = "FileMenu";
this.FileMenu.Size = new System.Drawing.Size(37, 20);
this.FileMenu.Size = new System.Drawing.Size(39, 21);
this.FileMenu.Text = "File";
//
// FileSaveAsMenu
//
this.FileSaveAsMenu.Image = ((System.Drawing.Image)(resources.GetObject("FileSaveAsMenu.Image")));
this.FileSaveAsMenu.Name = "FileSaveAsMenu";
this.FileSaveAsMenu.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
this.FileSaveAsMenu.Size = new System.Drawing.Size(208, 22);
this.FileSaveAsMenu.Text = "Save As...";
this.FileSaveAsMenu.Click += new System.EventHandler(this.FileSaveAsMenu_Click);
//
// FileSaveAllMenu
//
this.FileSaveAllMenu.Image = ((System.Drawing.Image)(resources.GetObject("FileSaveAllMenu.Image")));
this.FileSaveAllMenu.Name = "FileSaveAllMenu";
this.FileSaveAllMenu.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
| System.Windows.Forms.Keys.S)));
this.FileSaveAllMenu.Size = new System.Drawing.Size(196, 22);
this.FileSaveAllMenu.Size = new System.Drawing.Size(208, 22);
this.FileSaveAllMenu.Text = "Save All...";
this.FileSaveAllMenu.Click += new System.EventHandler(this.FileSaveAllMenu_Click);
//
@ -113,14 +122,14 @@
//
this.EditMenu.Enabled = false;
this.EditMenu.Name = "EditMenu";
this.EditMenu.Size = new System.Drawing.Size(39, 20);
this.EditMenu.Size = new System.Drawing.Size(42, 21);
this.EditMenu.Text = "Edit";
//
// ViewMenu
//
this.ViewMenu.Enabled = false;
this.ViewMenu.Name = "ViewMenu";
this.ViewMenu.Size = new System.Drawing.Size(44, 20);
this.ViewMenu.Size = new System.Drawing.Size(47, 21);
this.ViewMenu.Text = "View";
//
// toolStrip1
@ -129,7 +138,7 @@
this.NewButton,
this.OpenButton,
this.SaveButton});
this.toolStrip1.Location = new System.Drawing.Point(0, 24);
this.toolStrip1.Location = new System.Drawing.Point(0, 25);
this.toolStrip1.Name = "toolStrip1";
this.toolStrip1.Size = new System.Drawing.Size(845, 25);
this.toolStrip1.TabIndex = 1;
@ -168,6 +177,22 @@
this.SaveButton.Text = "Save YTD...";
this.SaveButton.ButtonClick += new System.EventHandler(this.SaveButton_ButtonClick);
//
// ToolbarSaveAsMenu
//
this.ToolbarSaveAsMenu.Image = ((System.Drawing.Image)(resources.GetObject("ToolbarSaveAsMenu.Image")));
this.ToolbarSaveAsMenu.Name = "ToolbarSaveAsMenu";
this.ToolbarSaveAsMenu.Size = new System.Drawing.Size(130, 22);
this.ToolbarSaveAsMenu.Text = "Save as...";
this.ToolbarSaveAsMenu.Click += new System.EventHandler(this.ToolbarSaveAsMenu_Click);
//
// ToolbarSaveAllMenu
//
this.ToolbarSaveAllMenu.Image = ((System.Drawing.Image)(resources.GetObject("ToolbarSaveAllMenu.Image")));
this.ToolbarSaveAllMenu.Name = "ToolbarSaveAllMenu";
this.ToolbarSaveAllMenu.Size = new System.Drawing.Size(130, 22);
this.ToolbarSaveAllMenu.Text = "Save All...";
this.ToolbarSaveAllMenu.Click += new System.EventHandler(this.ToolbarSaveAllMenu_Click);
//
// MainToolbar
//
this.MainToolbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -188,7 +213,7 @@
// MainSplitContainer
//
this.MainSplitContainer.Dock = System.Windows.Forms.DockStyle.Fill;
this.MainSplitContainer.Location = new System.Drawing.Point(0, 49);
this.MainSplitContainer.Location = new System.Drawing.Point(0, 50);
this.MainSplitContainer.Name = "MainSplitContainer";
//
// MainSplitContainer.Panel1
@ -200,7 +225,7 @@
this.MainSplitContainer.Panel2.Controls.Add(this.label5);
this.MainSplitContainer.Panel2.Controls.Add(this.SelTextureNameTextBox);
this.MainSplitContainer.Panel2.Controls.Add(this.TextureTabControl);
this.MainSplitContainer.Size = new System.Drawing.Size(845, 489);
this.MainSplitContainer.Size = new System.Drawing.Size(845, 488);
this.MainSplitContainer.SplitterDistance = 257;
this.MainSplitContainer.TabIndex = 3;
//
@ -217,7 +242,7 @@
this.TexturesListView.Location = new System.Drawing.Point(3, 3);
this.TexturesListView.Name = "TexturesListView";
this.TexturesListView.ShowItemToolTips = true;
this.TexturesListView.Size = new System.Drawing.Size(251, 483);
this.TexturesListView.Size = new System.Drawing.Size(251, 482);
this.TexturesListView.TabIndex = 0;
this.TexturesListView.UseCompatibleStateImageBehavior = false;
this.TexturesListView.View = System.Windows.Forms.View.Details;
@ -239,7 +264,7 @@
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(262, 6);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(38, 13);
this.label5.Size = new System.Drawing.Size(44, 15);
this.label5.TabIndex = 50;
this.label5.Text = "Name:";
//
@ -261,14 +286,14 @@
this.TextureTabControl.Location = new System.Drawing.Point(3, 3);
this.TextureTabControl.Name = "TextureTabControl";
this.TextureTabControl.SelectedIndex = 0;
this.TextureTabControl.Size = new System.Drawing.Size(578, 483);
this.TextureTabControl.Size = new System.Drawing.Size(578, 482);
this.TextureTabControl.TabIndex = 0;
//
// TextureTabPage
//
this.TextureTabPage.Controls.Add(this.label1);
this.TextureTabPage.Controls.Add(this.SelTextureZoomCombo);
this.TextureTabPage.Controls.Add(this.SelTexturePanel);
this.TextureTabPage.Controls.Add(this.SelTextureZoomCombo);
this.TextureTabPage.Controls.Add(this.SelTextureMipLabel);
this.TextureTabPage.Controls.Add(this.SelTextureDimensionsLabel);
this.TextureTabPage.Controls.Add(this.SelTextureMipTrackBar);
@ -276,7 +301,7 @@
this.TextureTabPage.Location = new System.Drawing.Point(4, 22);
this.TextureTabPage.Name = "TextureTabPage";
this.TextureTabPage.Padding = new System.Windows.Forms.Padding(3);
this.TextureTabPage.Size = new System.Drawing.Size(570, 457);
this.TextureTabPage.Size = new System.Drawing.Size(570, 456);
this.TextureTabPage.TabIndex = 0;
this.TextureTabPage.Text = "Texture";
this.TextureTabPage.UseVisualStyleBackColor = true;
@ -285,9 +310,9 @@
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(452, 426);
this.label1.Location = new System.Drawing.Point(452, 425);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(37, 13);
this.label1.Size = new System.Drawing.Size(42, 15);
this.label1.TabIndex = 54;
this.label1.Text = "Zoom:";
//
@ -299,46 +324,34 @@
"Fill",
"100%",
"200%"});
this.SelTextureZoomCombo.Location = new System.Drawing.Point(495, 423);
this.SelTextureZoomCombo.Location = new System.Drawing.Point(495, 422);
this.SelTextureZoomCombo.Name = "SelTextureZoomCombo";
this.SelTextureZoomCombo.Size = new System.Drawing.Size(69, 21);
this.SelTextureZoomCombo.TabIndex = 53;
this.SelTextureZoomCombo.Text = "Fill";
this.SelTextureZoomCombo.TextChanged += new System.EventHandler(this.SelTextureZoomCombo_TextChanged);
//
// SelTexturePanel
//
this.SelTexturePanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.SelTexturePanel.AutoScroll = true;
this.SelTexturePanel.BackColor = System.Drawing.Color.DarkGray;
this.SelTexturePanel.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("SelTexturePanel.BackgroundImage")));
this.SelTexturePanel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.SelTexturePanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.SelTexturePanel.Controls.Add(this.SelTexturePictureBox);
this.SelTexturePanel.Location = new System.Drawing.Point(6, 6);
this.SelTexturePanel.Name = "SelTexturePanel";
this.SelTexturePanel.Size = new System.Drawing.Size(559, 408);
this.SelTexturePanel.TabIndex = 52;
//
// SelTexturePictureBox
//
this.SelTexturePictureBox.BackColor = System.Drawing.Color.Transparent;
this.SelTexturePictureBox.Location = new System.Drawing.Point(0, 0);
this.SelTexturePictureBox.Location = new System.Drawing.Point(3, 3);
this.SelTexturePictureBox.Name = "SelTexturePictureBox";
this.SelTexturePictureBox.Size = new System.Drawing.Size(133, 96);
this.SelTexturePictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
this.SelTexturePictureBox.TabIndex = 45;
this.SelTexturePictureBox.TabStop = false;
this.SelTexturePictureBox.MouseDown += new System.Windows.Forms.MouseEventHandler(this.SelTexturePictureBox_MouseDown);
this.SelTexturePictureBox.MouseEnter += new System.EventHandler(this.SelTexturePictureBox_MouseEnter);
this.SelTexturePictureBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.SelTexturePictureBox_MouseMove);
this.SelTexturePictureBox.MouseUp += new System.Windows.Forms.MouseEventHandler(this.SelTexturePictureBox_MouseUp);
//
// SelTextureMipLabel
//
this.SelTextureMipLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.SelTextureMipLabel.AutoSize = true;
this.SelTextureMipLabel.Location = new System.Drawing.Point(44, 426);
this.SelTextureMipLabel.Location = new System.Drawing.Point(44, 425);
this.SelTextureMipLabel.Name = "SelTextureMipLabel";
this.SelTextureMipLabel.Size = new System.Drawing.Size(13, 13);
this.SelTextureMipLabel.Size = new System.Drawing.Size(14, 15);
this.SelTextureMipLabel.TabIndex = 51;
this.SelTextureMipLabel.Text = "0";
//
@ -346,9 +359,9 @@
//
this.SelTextureDimensionsLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.SelTextureDimensionsLabel.AutoSize = true;
this.SelTextureDimensionsLabel.Location = new System.Drawing.Point(304, 426);
this.SelTextureDimensionsLabel.Location = new System.Drawing.Point(304, 425);
this.SelTextureDimensionsLabel.Name = "SelTextureDimensionsLabel";
this.SelTextureDimensionsLabel.Size = new System.Drawing.Size(10, 13);
this.SelTextureDimensionsLabel.Size = new System.Drawing.Size(11, 15);
this.SelTextureDimensionsLabel.TabIndex = 49;
this.SelTextureDimensionsLabel.Text = "-";
//
@ -359,7 +372,7 @@
this.SelTextureMipTrackBar.AutoSize = false;
this.SelTextureMipTrackBar.BackColor = System.Drawing.SystemColors.ControlLightLight;
this.SelTextureMipTrackBar.LargeChange = 1;
this.SelTextureMipTrackBar.Location = new System.Drawing.Point(63, 420);
this.SelTextureMipTrackBar.Location = new System.Drawing.Point(63, 419);
this.SelTextureMipTrackBar.Maximum = 0;
this.SelTextureMipTrackBar.Name = "SelTextureMipTrackBar";
this.SelTextureMipTrackBar.Size = new System.Drawing.Size(234, 31);
@ -370,9 +383,9 @@
//
this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(13, 426);
this.label4.Location = new System.Drawing.Point(13, 425);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(27, 13);
this.label4.Size = new System.Drawing.Size(31, 15);
this.label4.TabIndex = 47;
this.label4.Text = "Mip:";
//
@ -402,30 +415,19 @@
//
this.SaveFileDialog.Filter = "DDS files|*.dds|All files|*.*";
//
// FileSaveAsMenu
// SelTexturePanel
//
this.FileSaveAsMenu.Image = ((System.Drawing.Image)(resources.GetObject("FileSaveAsMenu.Image")));
this.FileSaveAsMenu.Name = "FileSaveAsMenu";
this.FileSaveAsMenu.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
this.FileSaveAsMenu.Size = new System.Drawing.Size(196, 22);
this.FileSaveAsMenu.Text = "Save As...";
this.FileSaveAsMenu.Click += new System.EventHandler(this.FileSaveAsMenu_Click);
//
// ToolbarSaveAsMenu
//
this.ToolbarSaveAsMenu.Image = ((System.Drawing.Image)(resources.GetObject("ToolbarSaveAsMenu.Image")));
this.ToolbarSaveAsMenu.Name = "ToolbarSaveAsMenu";
this.ToolbarSaveAsMenu.Size = new System.Drawing.Size(152, 22);
this.ToolbarSaveAsMenu.Text = "Save as...";
this.ToolbarSaveAsMenu.Click += new System.EventHandler(this.ToolbarSaveAsMenu_Click);
//
// ToolbarSaveAllMenu
//
this.ToolbarSaveAllMenu.Image = ((System.Drawing.Image)(resources.GetObject("ToolbarSaveAllMenu.Image")));
this.ToolbarSaveAllMenu.Name = "ToolbarSaveAllMenu";
this.ToolbarSaveAllMenu.Size = new System.Drawing.Size(152, 22);
this.ToolbarSaveAllMenu.Text = "Save All...";
this.ToolbarSaveAllMenu.Click += new System.EventHandler(this.ToolbarSaveAllMenu_Click);
this.SelTexturePanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.SelTexturePanel.AutoScroll = true;
this.SelTexturePanel.BackColor = System.Drawing.Color.DarkGray;
this.SelTexturePanel.Controls.Add(this.SelTexturePictureBox);
this.SelTexturePanel.Location = new System.Drawing.Point(6, 6);
this.SelTexturePanel.Name = "SelTexturePanel";
this.SelTexturePanel.Size = new System.Drawing.Size(559, 407);
this.SelTexturePanel.TabIndex = 46;
this.SelTexturePanel.MouseLeave += new System.EventHandler(this.SelTexturePanel_MouseLeave);
//
// YtdForm
//
@ -454,11 +456,11 @@
this.TextureTabControl.ResumeLayout(false);
this.TextureTabPage.ResumeLayout(false);
this.TextureTabPage.PerformLayout();
this.SelTexturePanel.ResumeLayout(false);
this.SelTexturePanel.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.SelTexturePictureBox)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.SelTextureMipTrackBar)).EndInit();
this.DetailsTabPage.ResumeLayout(false);
this.SelTexturePanel.ResumeLayout(false);
this.SelTexturePanel.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@ -491,7 +493,6 @@
private System.Windows.Forms.ListView TexturesListView;
private System.Windows.Forms.ColumnHeader TextureNameColumnHeader;
private System.Windows.Forms.ColumnHeader TextureSizeColumnHeader;
private System.Windows.Forms.Panel SelTexturePanel;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ComboBox SelTextureZoomCombo;
private System.Windows.Forms.ToolStripMenuItem FileSaveAllMenu;
@ -500,5 +501,6 @@
private System.Windows.Forms.ToolStripMenuItem FileSaveAsMenu;
private System.Windows.Forms.ToolStripMenuItem ToolbarSaveAsMenu;
private System.Windows.Forms.ToolStripMenuItem ToolbarSaveAllMenu;
private WinForms.PanelFix SelTexturePanel;
}
}

View File

@ -23,6 +23,9 @@ namespace CodeWalker.Forms
private Texture CurrentTexture = null;
private float CurrentZoom = 0.0f; //1.0 = 100%, 0.0 = stretch
private new Point MouseDown;
private Boolean MouseIsHovering = false;
private Boolean CanZoom = true;
public YtdForm()
{
@ -179,38 +182,58 @@ namespace CodeWalker.Forms
StatusLabel.Text = text;
}
private void UpdateZoom()
public void Pan(MouseEventArgs mouse)
{
//update the image controls for the current zoom level
var img = SelTexturePictureBox.Image;
if (CurrentZoom <= 0.0f)
if (mouse.Button == MouseButtons.Left)
{
//stretch image to fit the area available.
SelTexturePanel.AutoScroll = false;
SelTexturePictureBox.SizeMode = PictureBoxSizeMode.Zoom;
SelTexturePictureBox.Width = SelTexturePanel.Width - 2;
SelTexturePictureBox.Height = SelTexturePanel.Height - 2;
SelTexturePictureBox.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
}
else
{
//zoom to the given pixel ratio...
var w = (int)(img.Width * CurrentZoom);
var h = (int)(img.Height * CurrentZoom);
SelTexturePictureBox.Anchor = AnchorStyles.Top | AnchorStyles.Left;
SelTexturePictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
SelTexturePictureBox.Width = w;
SelTexturePictureBox.Height = h;
SelTexturePanel.AutoScroll = true;
}
Point mousePosNow = mouse.Location;
int deltaX = mousePosNow.X - MouseDown.X;
int deltaY = mousePosNow.Y - MouseDown.Y;
int newX = SelTexturePictureBox.Location.X + deltaX;
int newY = SelTexturePictureBox.Location.Y + deltaY;
SelTexturePictureBox.Location = new Point(newX, newY);
}
}
public void Zoom(MouseEventArgs mouse)
{
if (MouseIsHovering == true)
{
int newWidth = SelTexturePictureBox.Image.Width;
int newHeight = SelTexturePictureBox.Image.Height;
int newX = SelTexturePictureBox.Location.X;
int newY = SelTexturePictureBox.Location.Y;
if (mouse.Delta > 0f)
{
newWidth = SelTexturePictureBox.Size.Width + (SelTexturePictureBox.Size.Width / 10);
newHeight = SelTexturePictureBox.Size.Height + (SelTexturePictureBox.Size.Height / 10);
newX = SelTexturePictureBox.Location.X - ((SelTexturePictureBox.Size.Width / 10) / 2);
newY = SelTexturePictureBox.Location.Y - ((SelTexturePictureBox.Size.Height / 10) / 2);
}
else if (mouse.Delta < 0f)
{
newWidth = SelTexturePictureBox.Size.Width - (SelTexturePictureBox.Size.Width / 10);
newHeight = SelTexturePictureBox.Size.Height - (SelTexturePictureBox.Size.Height / 10);
newX = SelTexturePictureBox.Location.X + ((SelTexturePictureBox.Size.Width / 10) / 2);
newY = SelTexturePictureBox.Location.Y + ((SelTexturePictureBox.Size.Height / 10) / 2);
}
SelTexturePictureBox.Size = new Size(newWidth, newHeight);
SelTexturePictureBox.Location = new Point(newX, newY);
}
}
private void UpdateZoom()
{
SelTexturePictureBox.SizeMode = PictureBoxSizeMode.Zoom;
SelTexturePictureBox.Width = SelTexturePanel.Width - 2;
SelTexturePictureBox.Height = SelTexturePanel.Height - 2;
SelTexturePictureBox.Location = SelTexturePanel.Location;
}
private void UpdateSaveAs()
{
@ -328,5 +351,44 @@ namespace CodeWalker.Forms
{
SaveAll();
}
protected override void OnMouseWheel(MouseEventArgs e)
{
if (CanZoom == true)
{
Zoom(e);
}
}
private void SelTexturePictureBox_MouseMove(object sender, MouseEventArgs e)
{
Pan(e);
}
private void SelTexturePictureBox_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
MouseDown = e.Location;
CanZoom = false;
Cursor.Current = Cursors.SizeAll;
}
}
private void SelTexturePictureBox_MouseUp(object sender, MouseEventArgs e)
{
CanZoom = true;
Cursor.Current = Cursors.Arrow;
}
private void SelTexturePanel_MouseLeave(object sender, EventArgs e)
{
MouseIsHovering = false;
}
private void SelTexturePictureBox_MouseEnter(object sender, EventArgs e)
{
MouseIsHovering = true;
}
}
}

View File

@ -123,10 +123,9 @@
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="FileSaveAsMenu.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAABUSURBVDhPY/j//z9FGEx8+/btPwn4PRAbMAABigFOTk5w
/OH9RzhGFgPRbW1tcEPIMgCEYYaQbQAIg/QQZQAyRlZDWwOIwaMGDEoDyMFwA8jH/xkAuAOq5KQIy40A
AAAASUVORK5CYII=
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAFRJREFUOE9j+P//P0UYTHz79u0/Cfg9EBswAAGKAU5OTnD84f1HOEYWA9FtbW1w
Q8gyAIRhhpBtAAiD9BBlADJGVkNbA4jBowYMSgPIwXADyMf/GQC4A6rkpAjLjQAAAABJRU5ErkJggg==
</value>
</data>
<data name="FileSaveAllMenu.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -143,7 +142,7 @@
<data name="NewButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADESURBVDhPzZI7DgIhGIQ5grUnsPQMnMgLWMo1bDyJiYUV
YQUAAAAJcEhZcwAADuoAAA7qAaOKY3EAAADESURBVDhPzZI7DgIhGIQ5grUnsPQMnMgLWMo1bDyJiYUV
h7CxEo1Aiw7+E9ldWF+Nk0w2wMy3/z5UqRDCwjk3iTEmGmvsS6Ste2gtJYvrdjklJK9xLtGhcAeEdqtZ
Ouw3uUgA1tgXSH0SGdsyfD0dcwHXAmqRk0pXCNMsN+y893OpPYVDjFw8d9JaD2yMqUNYgjkBCmd36bgJ
6b+DMUAJkXr9K9QANM6QkfpD/f/gYwCESfgnfgWg/gcw5peAdyzxX6TUDfMCML1omZa9AAAAAElFTkSu
@ -153,7 +152,7 @@
<data name="OpenButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEcSURBVDhPlZKxqsIwFIb7Bvc+idxHuPQVXFpQcOhe8Amc
YQUAAAAJcEhZcwAADuoAAA7qAaOKY3EAAAEcSURBVDhPlZKxqsIwFIb7Bvc+idxHuPQVXFpQcOhe8Amc
OqqzCBdU6HQfQIfunVwKoi7FQQeF9GrajufmhDYkTaMY+EjPyf//TZtY9aCUfhVFQRggQbBfSV4PFJ8v
GekMf8HqzqE3jXhIhRwsqKyWxYpJ3bzcMpBD4jgG27Y1RACaZ+sEPvoLbmqCa/f7AzLyJ2gGcDO+bXe6
ajugDypMiBJQluU3f2DiZ+YmT3eANWIyIyKgFsv/AOs2k4wSgIXneRBFEaRpyhew10ZbwNb3fU1oYrPe
@ -161,12 +160,19 @@
K0QAIeQTi/cp4B9tCZE2c6oRhQAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolbarSaveAsMenu.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="SaveButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAABUSURBVDhPY/j//z9FGEx8+/btPwn4PRAbMAABigFOTk5w
/OH9RzhGFgPRbW1tcEPIMgCEYYaQbQAIg/QQZQAyRlZDWwOIwaMGDEoDyMFwA8jH/xkAuAOq5KQIy40A
AAAASUVORK5CYII=
YQUAAAAJcEhZcwAADuoAAA7qAaOKY3EAAABWSURBVDhPY6AK+Pbt238S8PsvX74YQLVCAEjCyckJjj+8
/wjHyGIguq2tDdMQUgwAYZghUO2kGwDCID1Q7fgNQMbIamhrADF41IBBaQA5GKqdEsDAAADtDPd9n5qK
lQAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolbarSaveAsMenu.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAFRJREFUOE9j+P//P0UYTHz79u0/Cfg9EBswAAGKAU5OTnD84f1HOEYWA9FtbW1w
Q8gyAIRhhpBtAAiD9BBlADJGVkNbA4jBowYMSgPIwXADyMf/GQC4A6rkpAjLjQAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolbarSaveAllMenu.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -175,43 +181,11 @@
wwAADsMBx2+oZAAAAHZJREFUOE/tkLENwCAMBBkpMzCcF2IwgmTRJnpiSyhgQ5EyLx128VzhYKXWejlk
Zj6kOg+KMcbGmUtDdyJaSzwBpkqkPmYm6EUAHamP6QUW3wjwWKSUph8VdNxj4VCeZCnA9CSmoBdp0WL/
WFZ+wSPYQeqvhHADNufwigti+3EAAAAASUVORK5CYII=
</value>
</data>
<data name="SaveButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABWSURBVDhPY6AK+Pbt238S8PsvX74YQLVCAEjCyckJjj+8
/wjHyGIguq2tDdMQUgwAYZghUO2kGwDCID1Q7fgNQMbIamhrADF41IBBaQA5GKqdEsDAAADtDPd9n5qK
lQAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="MainToolbar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>237, 17</value>
</metadata>
<data name="SelTexturePanel.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAAEAAAQACAIAAACvZKRoAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAQUSURBVFhHlYvZVipJEEXj/xcIoqLgBI6IIyoO4IB4
HQAVEdTf6XMiMqsSuui7+mGvvU9klfz+/soPoGN+7PZDrH9ws2+50bjrt7TrH36Lf8x/4dvzLd96g7HZ
32zdwU07vE9hNIJHMtL+lhFQ6w3ozazf8XvdCQzjHgYejob6pj0cgrCn8SVf9NeXoe3u8BduhHff0xjQ
A8fXQPcATXgbDHAD+uY6iU/6022YW2F/fhp8G7geo+9A9z+lr+5LPwTvfbzx7t8+/JvfH/7+oW903/cH
nMD7xztAv5vf39k0thJ2wFvYb/IGv/HmeOMtkZ65BxNu7TfpoXtowpvvXrcnXQd3t9fFrWu3sNUJdMwd
uNPpqHnT7nbQvHXkVf0qnVfbnddXu9G8qf+DF/PL64u8vADvRJ7l2ffzs22YhD3GU9hP8JM8wYTNm9/k
j/qPswf7z995jPwoj49TaNNtuC1t7Da6PdkBDw7thwfg7w/S5obtHtMirZZ1i7ulO3IS9/dyr7TMLeIa
3Pn3u7jv2Hd32A72BLfet8bd7a1repwb+uYGBjfWt/ANb2M0x2k2pancSHNsGw3SoBvSbDR009oB1wGN
69DXcn0dcqW+Uq4U2+gr22rHpXIpV5cErR5v2nNxMb4vucHFxYW+mT11dZ2u09ZKfYLzupzD53C9fo4G
546wyRl9JmeTnMWcRj6Vs1P2qWs4gRpd866pa9xobr15TgKfnMgJTGo19gTHvo/lGD7m1hs3OA45chzL
ETnyHCVySA4PIx+xD9nuTg5iHxwcAPjwINjT2d/fl4P9ce+7e0h1vwpXpVrFrtLW5mT2qnuyt0fQak/F
XNmTCtBdialMsluR3couDNTcAHsqO+ad3R1jZwc7bmU7Zht7W3sb7WDzTe3Zku0tY2tr2+GbJptRbzq2
NuFN3AG96fZGtDdkc8PtDbR720AbbFBml90tdhku0+VJSlGXSMlchsulku2oY9bXnUvr2uvavHMns0bW
1mR9jbY2wgarDvTq2qqsuq2tO2TFWLG9Qit2415Br+AbNVlekWXX9DK2Nr287G7wGEVZLloXHXovFqWI
u+GbDigUpVAsSAEu0p6CB++ul7yXvJekgFYX2Ev4Jr55FiMWZWkRt0UYvYheZAN94zdskHeOyJM8Oi95
dB6d1zb4xn/8jlgIvLCgLJB80BHzDtvzDu153AP8ppOYm5+T+Tkaew7tbgr2VHIkF9xyksPO4U7zzfe/
mDVmCTbJ5WaD+6ySc1b4XbhDsrOSnbhls1nAO53FN+bJjskYmaxkMhlA2z3jv9G7f0vqcWYiZpTMDO5g
ZsZa39D/j7Sk02lrOA1z+5va7TS/1e/jb5JJqVNwKoUNtHnndvdU8E0qxXdzmh3ZvXlSqX8AvThRdO5j
+6sAAAAASUVORK5CYII=
</value>
</data>
<metadata name="SaveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>358, 17</value>
</metadata>