diff --git a/.gitmodules b/.gitmodules index 4beb8ed4..4cf9f578 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,3 @@ [submodule "dependencies/quick-library"] path = dependencies/quick-library - url = https://github.com/ModuleArt/quick-library -[submodule "dependencies/qpv-plugins"] - path = dependencies/qpv-plugins - url = https://github.com/ModuleArt/qpv-plugins \ No newline at end of file + url = https://github.com/ModuleArt/quick-library \ No newline at end of file diff --git a/README.md b/README.md index c12c9e36..ad84dbb4 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@
- v3.1.5 - December 21, 2023 - Download (3.4 MB)
+ v3.1.4 (Stable) - May 9, 2021 - Download (3.4 MB)

Older versions and release notes @@ -29,7 +29,6 @@ ## 😃 Features: -- 🖼️ Supported image formats: .png, .jpg, .jpeg, .jpe, .jfif, .exif, .gif, .bmp, .dib, .rle, .tiff, .tif, .ico, .webp, .svg, .dds, .tga, .psd, .cr2 ... - ✍️ Basic image editing: Rotate, flip, crop, change file type ... - 🧩 Plugins ready - ↗️ Open image with external app or show file in explorer @@ -45,6 +44,23 @@ Want more? Open a new issue or 👍 an existing one so we can talk about it. +## 📄 Supported file formats: + +| File format | Extenstions | Open | Save | Using | +| ----------- | -------------------------- | ---- | ---- | ------------------------------------------------------------------------------------------------------- | +| PNG | png | ✅ | ✅ | System.Drawing | +| JPEG | jpg, jpeg, jpe, jfif, exif | ✅ | ✅ | System.Drawing | +| GIF | gif | ✅ | ✅ | System.Drawing | +| BMP | bmp, dib, rle | ✅ | ✅ | System.Drawing | +| TIFF | tiff, tif | ✅ | ✅ | System.Drawing | +| ICO | ico | ✅ | ✅ | | +| WEBP | webp | ✅ | ✅ | WebP.Net | +| SVG | svg | ✅ | ❌ | | +| PSD | psd | ✅ | ❌ | | +| DDS | dds | ✅ | ❌ | | +| TGA | tga | ✅ | ❌ | | +| CR2 | cr2 | ✅ | ❌ | | + ## 🔮 Future plans: - Enhanced zoom menu diff --git a/dependencies/quick-library b/dependencies/quick-library index 3c335ab7..2a258706 160000 --- a/dependencies/quick-library +++ b/dependencies/quick-library @@ -1 +1 @@ -Subproject commit 3c335ab777231bfbcb48b2c0ea0e13cd4d0e38f5 +Subproject commit 2a258706b4dd452e6111a968cb9747c486fdb8fc diff --git a/docs/index.html b/docs/index.html index a69ee61b..878f9e62 100644 --- a/docs/index.html +++ b/docs/index.html @@ -193,22 +193,10 @@

Built-in plugins:

Donate:

diff --git a/libs/SimplePsd.dll b/libs/SimplePsd.dll deleted file mode 100644 index 1c43588a..00000000 Binary files a/libs/SimplePsd.dll and /dev/null differ diff --git a/quick-picture-viewer.sln b/quick-picture-viewer.sln index 0ea9038a..21b71e20 100644 --- a/quick-picture-viewer.sln +++ b/quick-picture-viewer.sln @@ -1,11 +1,10 @@ - Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.8.34322.80 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "quick-picture-viewer", "quick-picture-viewer\quick-picture-viewer.csproj", "{53748C49-255E-424B-B789-5919CEFEF473}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuickLibrary", "dependencies\quick-library\QuickLibrary\QuickLibrary.csproj", "{90F913B5-1B48-4E7B-83AA-21C0946B4F81}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QuickLibrary", "dependencies\quick-library\QuickLibrary\QuickLibrary.csproj", "{90F913B5-1B48-4E7B-83AA-21C0946B4F81}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/quick-picture-viewer/app.manifest b/quick-picture-viewer/app.manifest index 26a585ba..9c1be5f1 100644 --- a/quick-picture-viewer/app.manifest +++ b/quick-picture-viewer/app.manifest @@ -39,7 +39,7 @@ - + diff --git a/quick-picture-viewer/forms/AboutForm.cs b/quick-picture-viewer/forms/AboutForm.cs index 196a5d6d..df1c2ed3 100644 --- a/quick-picture-viewer/forms/AboutForm.cs +++ b/quick-picture-viewer/forms/AboutForm.cs @@ -23,7 +23,7 @@ public AboutForm() if (IntPtr.Size == 4) versionLabel.Text += " (x32)"; else if (IntPtr.Size == 8) versionLabel.Text += " (x64)"; - if (ThemeMan.isWindows10()) makeDefaultBtn.Enabled = true; + if (ThemeMan.isWindows10orLater()) makeDefaultBtn.Enabled = true; } protected override void OnHandleCreated(EventArgs e) diff --git a/quick-picture-viewer/forms/MainForm.Designer.cs b/quick-picture-viewer/forms/MainForm.Designer.cs index 8a22a9a6..e7884260 100644 --- a/quick-picture-viewer/forms/MainForm.Designer.cs +++ b/quick-picture-viewer/forms/MainForm.Designer.cs @@ -28,1481 +28,1386 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); + components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); - this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); - this.fileSystemWatcher1 = new System.IO.FileSystemWatcher(); - this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.printDialog1 = new System.Windows.Forms.PrintDialog(); - this.printDocument1 = new System.Drawing.Printing.PrintDocument(); - this.colorDialog1 = new System.Windows.Forms.ColorDialog(); - this.toolStrip1 = new QuickLibrary.QlibToolbar(); - this.toolStripSeparator4 = new QuickLibrary.QlibToolsep(); - this.toolStripSeparator1 = new QuickLibrary.QlibToolsep(); - this.zoomTextBox = new System.Windows.Forms.ToolStripTextBox(); - this.toolStripSeparator2 = new QuickLibrary.QlibToolsep(); - this.toolStripSeparator3 = new QuickLibrary.QlibToolsep(); - this.qlibToolsep1 = new QuickLibrary.QlibToolsep(); - this.rmbMenu = new QuickLibrary.QlibContextMenuStrip(this.components); - this.qlibToolsep5 = new QuickLibrary.QlibToolsep(); - this.qlibToolsep3 = new QuickLibrary.QlibToolsep(); - this.infoTooltip = new System.Windows.Forms.ToolTip(this.components); - this.suggestionLabel = new System.Windows.Forms.Label(); - this.picturePanel = new quick_picture_viewer.CustomPanel(); - this.pleaseOpenLabel = new System.Windows.Forms.Label(); - this.suggestionIcon = new System.Windows.Forms.PictureBox(); - this.navNextBtn = new System.Windows.Forms.Button(); - this.navPrevBtn = new System.Windows.Forms.Button(); - this.typeOpsButton = new System.Windows.Forms.Button(); - this.selectionLabel = new System.Windows.Forms.ToolStripStatusLabel(); - this.directoryLabel = new System.Windows.Forms.ToolStripStatusLabel(); - this.fileLabel = new System.Windows.Forms.ToolStripStatusLabel(); - this.hasChangesLabel = new System.Windows.Forms.ToolStripStatusLabel(); - this.sizeLabel = new System.Windows.Forms.ToolStripStatusLabel(); - this.zoomLabel = new System.Windows.Forms.ToolStripStatusLabel(); - this.dateCreatedLabel = new System.Windows.Forms.ToolStripStatusLabel(); - this.dateModifiedLabel = new System.Windows.Forms.ToolStripStatusLabel(); - this.openBtn = new System.Windows.Forms.ToolStripDropDownButton(); - this.openFileBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.openFolderBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.openRecursive = new System.Windows.Forms.ToolStripMenuItem(); - this.saveMenuBtn = new System.Windows.Forms.ToolStripDropDownButton(); - this.saveBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.saveAsBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.externalBtn = new System.Windows.Forms.ToolStripDropDownButton(); - this.externalRunBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.externalFavoriteBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.externalChooseBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.infoButton = new System.Windows.Forms.ToolStripButton(); - this.prevButton = new System.Windows.Forms.ToolStripButton(); - this.slideshowButton = new System.Windows.Forms.ToolStripButton(); - this.nextButton = new System.Windows.Forms.ToolStripButton(); - this.autoZoomButton = new System.Windows.Forms.ToolStripButton(); - this.zoomOutButton = new System.Windows.Forms.ToolStripButton(); - this.zoomInButton = new System.Windows.Forms.ToolStripButton(); - this.zoom100Btn = new System.Windows.Forms.ToolStripButton(); - this.selectionBtn = new System.Windows.Forms.ToolStripButton(); - this.editButton = new System.Windows.Forms.ToolStripDropDownButton(); - this.flipHorizontalButton = new System.Windows.Forms.ToolStripMenuItem(); - this.flipVerticalButton = new System.Windows.Forms.ToolStripMenuItem(); - this.qlibToolsep4 = new QuickLibrary.QlibToolsep(); - this.rotateRightButton = new System.Windows.Forms.ToolStripMenuItem(); - this.rotateLeftButton = new System.Windows.Forms.ToolStripMenuItem(); - this.rotate180Button = new System.Windows.Forms.ToolStripMenuItem(); - this.customAngleBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator7 = new QuickLibrary.QlibToolsep(); - this.cropBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.filteringModeBtn = new System.Windows.Forms.ToolStripDropDownButton(); - this.bilinearBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.nearestNeighborBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.effectsBtn = new System.Windows.Forms.ToolStripDropDownButton(); - this.toolsBtn = new System.Windows.Forms.ToolStripDropDownButton(); - this.checkboardButton = new System.Windows.Forms.ToolStripButton(); - this.fullscreenBtn = new System.Windows.Forms.ToolStripButton(); - this.miniViewButton = new System.Windows.Forms.ToolStripButton(); - this.moreButton = new System.Windows.Forms.ToolStripDropDownButton(); - this.reloadButton = new System.Windows.Forms.ToolStripMenuItem(); - this.deleteBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.permDeleteBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.printButton = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator9 = new QuickLibrary.QlibToolsep(); - this.backColorBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.backCustomBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.qlibMenuSeparator1 = new QuickLibrary.QlibToolsep(); - this.backClearBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.onTopButton = new System.Windows.Forms.ToolStripMenuItem(); - this.framelessBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.newWindowButton = new System.Windows.Forms.ToolStripMenuItem(); - this.qlibToolsep2 = new QuickLibrary.QlibToolsep(); - this.pluginManBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator10 = new QuickLibrary.QlibToolsep(); - this.settingsButton = new System.Windows.Forms.ToolStripMenuItem(); - this.aboutBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.framelessCloseBtn = new System.Windows.Forms.ToolStripButton(); - this.pictureBox = new quick_picture_viewer.QuickPictureBox(); - this.showMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.showNavArrowsBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.showToolbarBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.showStatusbarBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.wallpaperBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.copyBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.copyImageBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.copyFileBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.pasteBtn = new System.Windows.Forms.ToolStripMenuItem(); - this.selectAllBtn = new System.Windows.Forms.ToolStripMenuItem(); - ((System.ComponentModel.ISupportInitialize)(this.fileSystemWatcher1)).BeginInit(); - this.statusStrip1.SuspendLayout(); - this.toolStrip1.SuspendLayout(); - this.rmbMenu.SuspendLayout(); - this.picturePanel.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.suggestionIcon)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit(); - this.SuspendLayout(); + openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); + fileSystemWatcher1 = new System.IO.FileSystemWatcher(); + saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); + statusStrip1 = new System.Windows.Forms.StatusStrip(); + selectionLabel = new System.Windows.Forms.ToolStripStatusLabel(); + directoryLabel = new System.Windows.Forms.ToolStripStatusLabel(); + fileLabel = new System.Windows.Forms.ToolStripStatusLabel(); + hasChangesLabel = new System.Windows.Forms.ToolStripStatusLabel(); + sizeLabel = new System.Windows.Forms.ToolStripStatusLabel(); + zoomLabel = new System.Windows.Forms.ToolStripStatusLabel(); + dateCreatedLabel = new System.Windows.Forms.ToolStripStatusLabel(); + dateModifiedLabel = new System.Windows.Forms.ToolStripStatusLabel(); + printDialog1 = new System.Windows.Forms.PrintDialog(); + printDocument1 = new System.Drawing.Printing.PrintDocument(); + colorDialog1 = new System.Windows.Forms.ColorDialog(); + toolStrip1 = new QuickLibrary.QlibToolbar(); + openBtn = new System.Windows.Forms.ToolStripDropDownButton(); + openFileBtn = new System.Windows.Forms.ToolStripMenuItem(); + openFolderBtn = new System.Windows.Forms.ToolStripMenuItem(); + openRecursive = new System.Windows.Forms.ToolStripMenuItem(); + saveMenuBtn = new System.Windows.Forms.ToolStripDropDownButton(); + saveBtn = new System.Windows.Forms.ToolStripMenuItem(); + saveAsBtn = new System.Windows.Forms.ToolStripMenuItem(); + externalBtn = new System.Windows.Forms.ToolStripDropDownButton(); + externalRunBtn = new System.Windows.Forms.ToolStripMenuItem(); + externalFavoriteBtn = new System.Windows.Forms.ToolStripMenuItem(); + externalChooseBtn = new System.Windows.Forms.ToolStripMenuItem(); + infoButton = new System.Windows.Forms.ToolStripButton(); + toolStripSeparator4 = new QuickLibrary.QlibToolsep(); + prevButton = new System.Windows.Forms.ToolStripButton(); + slideshowButton = new System.Windows.Forms.ToolStripButton(); + nextButton = new System.Windows.Forms.ToolStripButton(); + toolStripSeparator1 = new QuickLibrary.QlibToolsep(); + autoZoomButton = new System.Windows.Forms.ToolStripButton(); + zoomOutButton = new System.Windows.Forms.ToolStripButton(); + zoomTextBox = new System.Windows.Forms.ToolStripTextBox(); + zoomInButton = new System.Windows.Forms.ToolStripButton(); + zoom100Btn = new System.Windows.Forms.ToolStripButton(); + toolStripSeparator2 = new QuickLibrary.QlibToolsep(); + selectionBtn = new System.Windows.Forms.ToolStripButton(); + editButton = new System.Windows.Forms.ToolStripDropDownButton(); + flipHorizontalButton = new System.Windows.Forms.ToolStripMenuItem(); + flipVerticalButton = new System.Windows.Forms.ToolStripMenuItem(); + qlibToolsep4 = new QuickLibrary.QlibToolsep(); + rotateRightButton = new System.Windows.Forms.ToolStripMenuItem(); + rotateLeftButton = new System.Windows.Forms.ToolStripMenuItem(); + rotate180Button = new System.Windows.Forms.ToolStripMenuItem(); + customAngleBtn = new System.Windows.Forms.ToolStripMenuItem(); + toolStripSeparator7 = new QuickLibrary.QlibToolsep(); + cropBtn = new System.Windows.Forms.ToolStripMenuItem(); + effectsBtn = new System.Windows.Forms.ToolStripDropDownButton(); + toolsBtn = new System.Windows.Forms.ToolStripDropDownButton(); + toolStripSeparator3 = new QuickLibrary.QlibToolsep(); + filteringModeBtn = new System.Windows.Forms.ToolStripDropDownButton(); + bilinearBtn = new System.Windows.Forms.ToolStripMenuItem(); + nearestNeighborBtn = new System.Windows.Forms.ToolStripMenuItem(); + checkboardButton = new System.Windows.Forms.ToolStripButton(); + fullscreenBtn = new System.Windows.Forms.ToolStripButton(); + miniViewButton = new System.Windows.Forms.ToolStripButton(); + qlibToolsep1 = new QuickLibrary.QlibToolsep(); + moreButton = new System.Windows.Forms.ToolStripDropDownButton(); + reloadButton = new System.Windows.Forms.ToolStripMenuItem(); + deleteBtn = new System.Windows.Forms.ToolStripMenuItem(); + permDeleteBtn = new System.Windows.Forms.ToolStripMenuItem(); + printButton = new System.Windows.Forms.ToolStripMenuItem(); + toolStripSeparator9 = new QuickLibrary.QlibToolsep(); + backColorBtn = new System.Windows.Forms.ToolStripMenuItem(); + backCustomBtn = new System.Windows.Forms.ToolStripMenuItem(); + qlibMenuSeparator1 = new QuickLibrary.QlibToolsep(); + backClearBtn = new System.Windows.Forms.ToolStripMenuItem(); + onTopButton = new System.Windows.Forms.ToolStripMenuItem(); + framelessBtn = new System.Windows.Forms.ToolStripMenuItem(); + newWindowButton = new System.Windows.Forms.ToolStripMenuItem(); + qlibToolsep2 = new QuickLibrary.QlibToolsep(); + pluginManBtn = new System.Windows.Forms.ToolStripMenuItem(); + toolStripSeparator10 = new QuickLibrary.QlibToolsep(); + settingsButton = new System.Windows.Forms.ToolStripMenuItem(); + aboutBtn = new System.Windows.Forms.ToolStripMenuItem(); + framelessCloseBtn = new System.Windows.Forms.ToolStripButton(); + rmbMenu = new QuickLibrary.QlibContextMenuStrip(components); + showMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + showNavArrowsBtn = new System.Windows.Forms.ToolStripMenuItem(); + showToolbarBtn = new System.Windows.Forms.ToolStripMenuItem(); + showStatusbarBtn = new System.Windows.Forms.ToolStripMenuItem(); + qlibToolsep5 = new QuickLibrary.QlibToolsep(); + wallpaperBtn = new System.Windows.Forms.ToolStripMenuItem(); + qlibToolsep3 = new QuickLibrary.QlibToolsep(); + copyBtn = new System.Windows.Forms.ToolStripMenuItem(); + copyImageBtn = new System.Windows.Forms.ToolStripMenuItem(); + copyFileBtn = new System.Windows.Forms.ToolStripMenuItem(); + pasteBtn = new System.Windows.Forms.ToolStripMenuItem(); + selectAllBtn = new System.Windows.Forms.ToolStripMenuItem(); + infoTooltip = new System.Windows.Forms.ToolTip(components); + suggestionLabel = new System.Windows.Forms.Label(); + picturePanel = new CustomPanel(); + pleaseOpenLabel = new System.Windows.Forms.Label(); + pictureBox = new QuickPictureBox(); + suggestionIcon = new System.Windows.Forms.PictureBox(); + navNextBtn = new System.Windows.Forms.Button(); + navPrevBtn = new System.Windows.Forms.Button(); + typeOpsButton = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)fileSystemWatcher1).BeginInit(); + statusStrip1.SuspendLayout(); + toolStrip1.SuspendLayout(); + rmbMenu.SuspendLayout(); + picturePanel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)pictureBox).BeginInit(); + ((System.ComponentModel.ISupportInitialize)suggestionIcon).BeginInit(); + SuspendLayout(); // // openFileDialog1 // - this.openFileDialog1.FileName = "image"; - this.openFileDialog1.RestoreDirectory = true; + openFileDialog1.FileName = "image"; + openFileDialog1.RestoreDirectory = true; // // fileSystemWatcher1 // - this.fileSystemWatcher1.EnableRaisingEvents = true; - this.fileSystemWatcher1.SynchronizingObject = this; + fileSystemWatcher1.EnableRaisingEvents = true; + fileSystemWatcher1.SynchronizingObject = this; // // saveFileDialog1 // - this.saveFileDialog1.FileName = "Image"; - this.saveFileDialog1.Filter = "PNG (*.png)|*.png|JPG (*.jpg, *.jpeg, *.jpe, *.jfif, *.exif)|*.jpg|GIF (*.gif)|*." + - "gif|BMP (*.bmp, *.dib, *.rle)|*.bmp|TIF (*.tiff, *.tif)|*.tiff|ICO (*.ico)|*.ico" + - "|WEBP (*.webp)|*.webp"; + saveFileDialog1.FileName = "Image"; + saveFileDialog1.Filter = "PNG (*.png)|*.png|JPG (*.jpg, *.jpeg, *.jpe, *.jfif, *.exif)|*.jpg|GIF (*.gif)|*.gif|BMP (*.bmp, *.dib, *.rle)|*.bmp|TIF (*.tiff, *.tif)|*.tiff|ICO (*.ico)|*.ico|WEBP (*.webp)|*.webp"; // // statusStrip1 // - this.statusStrip1.BackColor = System.Drawing.SystemColors.ControlLight; - this.statusStrip1.Font = new System.Drawing.Font("Segoe UI", 9.75F); - this.statusStrip1.GripMargin = new System.Windows.Forms.Padding(0); - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.selectionLabel, - this.directoryLabel, - this.fileLabel, - this.hasChangesLabel, - this.sizeLabel, - this.zoomLabel, - this.dateCreatedLabel, - this.dateModifiedLabel}); - this.statusStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow; - this.statusStrip1.Location = new System.Drawing.Point(0, 419); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.ShowItemToolTips = true; - this.statusStrip1.Size = new System.Drawing.Size(684, 27); - this.statusStrip1.TabIndex = 4; - this.statusStrip1.Text = "statusStrip1"; - this.statusStrip1.VisibleChanged += new System.EventHandler(this.statusStrip1_VisibleChanged); - // - // printDialog1 - // - this.printDialog1.Document = this.printDocument1; - this.printDialog1.UseEXDialog = true; - // - // printDocument1 - // - this.printDocument1.DocumentName = ""; - this.printDocument1.OriginAtMargins = true; - this.printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.printDocument1_PrintPage); - // - // colorDialog1 - // - this.colorDialog1.Color = System.Drawing.Color.Blue; - // - // toolStrip1 - // - this.toolStrip1.AlternativeAppearance = true; - this.toolStrip1.AutoSize = false; - this.toolStrip1.BackColor = System.Drawing.Color.White; - this.toolStrip1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.toolStrip1.CanOverflow = false; - this.toolStrip1.DarkMode = false; - this.toolStrip1.DragForm = true; - this.toolStrip1.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.toolStrip1.ForeColor = System.Drawing.Color.Black; - this.toolStrip1.GripMargin = new System.Windows.Forms.Padding(0); - this.toolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; - this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.openBtn, - this.saveMenuBtn, - this.externalBtn, - this.infoButton, - this.toolStripSeparator4, - this.prevButton, - this.slideshowButton, - this.nextButton, - this.toolStripSeparator1, - this.autoZoomButton, - this.zoomOutButton, - this.zoomTextBox, - this.zoomInButton, - this.zoom100Btn, - this.toolStripSeparator2, - this.selectionBtn, - this.editButton, - this.filteringModeBtn, - this.effectsBtn, - this.toolsBtn, - this.toolStripSeparator3, - this.checkboardButton, - this.fullscreenBtn, - this.miniViewButton, - this.qlibToolsep1, - this.moreButton, - this.framelessCloseBtn}); - this.toolStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow; - this.toolStrip1.Location = new System.Drawing.Point(0, 0); - this.toolStrip1.Name = "toolStrip1"; - this.toolStrip1.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.toolStrip1.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.toolStrip1.Size = new System.Drawing.Size(684, 32); - this.toolStrip1.TabIndex = 1; - this.toolStrip1.VisibleChanged += new System.EventHandler(this.toolStrip1_VisibleChanged); - // - // toolStripSeparator4 - // - this.toolStripSeparator4.AutoSize = false; - this.toolStripSeparator4.BackColor = System.Drawing.SystemColors.ControlLight; - this.toolStripSeparator4.DarkMode = false; - this.toolStripSeparator4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.toolStripSeparator4.InsideMenu = false; - this.toolStripSeparator4.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); - this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.toolStripSeparator4.Size = new System.Drawing.Size(1, 24); - // - // toolStripSeparator1 - // - this.toolStripSeparator1.AutoSize = false; - this.toolStripSeparator1.BackColor = System.Drawing.SystemColors.ControlLight; - this.toolStripSeparator1.DarkMode = false; - this.toolStripSeparator1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.toolStripSeparator1.InsideMenu = false; - this.toolStripSeparator1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); - this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.toolStripSeparator1.Size = new System.Drawing.Size(1, 24); - // - // zoomTextBox - // - this.zoomTextBox.BackColor = System.Drawing.Color.White; - this.zoomTextBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.zoomTextBox.Enabled = false; - this.zoomTextBox.Font = new System.Drawing.Font("Segoe UI", 9.75F); - this.zoomTextBox.Margin = new System.Windows.Forms.Padding(7, -1, 7, -1); - this.zoomTextBox.MaxLength = 12; - this.zoomTextBox.Name = "zoomTextBox"; - this.zoomTextBox.Size = new System.Drawing.Size(44, 24); - this.zoomTextBox.Text = "Auto"; - this.zoomTextBox.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.zoomTextBox.ToolTipText = "Zoom"; - this.zoomTextBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.zoomTextBox_KeyPress); - this.zoomTextBox.MouseEnter += new System.EventHandler(this.zoomTextBox_MouseEnter); - this.zoomTextBox.MouseLeave += new System.EventHandler(this.zoomTextBox_MouseLeave); - this.zoomTextBox.TextChanged += new System.EventHandler(this.zoomComboBox_TextChanged); - // - // toolStripSeparator2 - // - this.toolStripSeparator2.AutoSize = false; - this.toolStripSeparator2.BackColor = System.Drawing.SystemColors.ControlLight; - this.toolStripSeparator2.DarkMode = false; - this.toolStripSeparator2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.toolStripSeparator2.InsideMenu = false; - this.toolStripSeparator2.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); - this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.toolStripSeparator2.Size = new System.Drawing.Size(1, 24); - // - // toolStripSeparator3 - // - this.toolStripSeparator3.AutoSize = false; - this.toolStripSeparator3.BackColor = System.Drawing.SystemColors.ControlLight; - this.toolStripSeparator3.DarkMode = false; - this.toolStripSeparator3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.toolStripSeparator3.InsideMenu = false; - this.toolStripSeparator3.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); - this.toolStripSeparator3.Name = "toolStripSeparator3"; - this.toolStripSeparator3.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.toolStripSeparator3.Size = new System.Drawing.Size(1, 24); - // - // qlibToolsep1 - // - this.qlibToolsep1.AutoSize = false; - this.qlibToolsep1.BackColor = System.Drawing.SystemColors.ControlLight; - this.qlibToolsep1.DarkMode = false; - this.qlibToolsep1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.qlibToolsep1.InsideMenu = false; - this.qlibToolsep1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); - this.qlibToolsep1.Name = "qlibToolsep1"; - this.qlibToolsep1.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.qlibToolsep1.Size = new System.Drawing.Size(1, 24); - // - // rmbMenu - // - this.rmbMenu.BackColor = System.Drawing.SystemColors.ControlLight; - this.rmbMenu.DarkMode = false; - this.rmbMenu.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.rmbMenu.ForeColor = System.Drawing.Color.Black; - this.rmbMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.showMenuItem, - this.qlibToolsep5, - this.wallpaperBtn, - this.qlibToolsep3, - this.copyBtn, - this.pasteBtn, - this.selectAllBtn}); - this.rmbMenu.Name = "rmbMenu"; - this.rmbMenu.Size = new System.Drawing.Size(288, 152); - this.rmbMenu.Opening += new System.ComponentModel.CancelEventHandler(this.rmbMenu_Opening); - // - // qlibToolsep5 - // - this.qlibToolsep5.AutoSize = false; - this.qlibToolsep5.BackColor = System.Drawing.SystemColors.ControlLight; - this.qlibToolsep5.DarkMode = false; - this.qlibToolsep5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.qlibToolsep5.InsideMenu = true; - this.qlibToolsep5.Margin = new System.Windows.Forms.Padding(4); - this.qlibToolsep5.Name = "qlibToolsep5"; - this.qlibToolsep5.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.qlibToolsep5.Size = new System.Drawing.Size(284, 6); - // - // qlibToolsep3 - // - this.qlibToolsep3.AutoSize = false; - this.qlibToolsep3.BackColor = System.Drawing.SystemColors.ControlLight; - this.qlibToolsep3.DarkMode = false; - this.qlibToolsep3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.qlibToolsep3.InsideMenu = true; - this.qlibToolsep3.Margin = new System.Windows.Forms.Padding(4); - this.qlibToolsep3.Name = "qlibToolsep3"; - this.qlibToolsep3.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.qlibToolsep3.Size = new System.Drawing.Size(284, 6); - // - // suggestionLabel - // - this.suggestionLabel.AutoSize = true; - this.suggestionLabel.BackColor = System.Drawing.Color.Black; - this.suggestionLabel.Font = new System.Drawing.Font("Segoe UI", 10F); - this.suggestionLabel.ForeColor = System.Drawing.Color.White; - this.suggestionLabel.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.suggestionLabel.Location = new System.Drawing.Point(53, 59); - this.suggestionLabel.Margin = new System.Windows.Forms.Padding(0, 27, 0, 0); - this.suggestionLabel.Name = "suggestionLabel"; - this.suggestionLabel.Padding = new System.Windows.Forms.Padding(0, 3, 3, 4); - this.suggestionLabel.Size = new System.Drawing.Size(79, 26); - this.suggestionLabel.TabIndex = 3; - this.suggestionLabel.Text = "suggestion"; - this.suggestionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.suggestionLabel.Visible = false; - // - // picturePanel - // - this.picturePanel.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.picturePanel.AutoScroll = true; - this.picturePanel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.picturePanel.BackColor = System.Drawing.Color.Transparent; - this.picturePanel.Controls.Add(this.pleaseOpenLabel); - this.picturePanel.Controls.Add(this.pictureBox); - this.picturePanel.Location = new System.Drawing.Point(0, 32); - this.picturePanel.Margin = new System.Windows.Forms.Padding(0); - this.picturePanel.Name = "picturePanel"; - this.picturePanel.Size = new System.Drawing.Size(684, 385); - this.picturePanel.TabIndex = 2; - this.picturePanel.SizeChanged += new System.EventHandler(this.picturePanel_SizeChanged); - this.picturePanel.DoubleClick += new System.EventHandler(this.picturePanel_DoubleClick); - this.picturePanel.MouseClick += new System.Windows.Forms.MouseEventHandler(this.picturePanel_MouseClick); - this.picturePanel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.picturePanel_MouseDown); - this.picturePanel.MouseEnter += new System.EventHandler(this.picturePanel_MouseEnter); - this.picturePanel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.picturePanel_MouseMove); - this.picturePanel.MouseUp += new System.Windows.Forms.MouseEventHandler(this.picturePanel_MouseUp); - // - // pleaseOpenLabel - // - this.pleaseOpenLabel.Dock = System.Windows.Forms.DockStyle.Fill; - this.pleaseOpenLabel.Enabled = false; - this.pleaseOpenLabel.Font = new System.Drawing.Font("Segoe UI", 10F); - this.pleaseOpenLabel.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.pleaseOpenLabel.Location = new System.Drawing.Point(0, 0); - this.pleaseOpenLabel.Margin = new System.Windows.Forms.Padding(0); - this.pleaseOpenLabel.Name = "pleaseOpenLabel"; - this.pleaseOpenLabel.Size = new System.Drawing.Size(684, 385); - this.pleaseOpenLabel.TabIndex = 5; - this.pleaseOpenLabel.Text = "please open image"; - this.pleaseOpenLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.pleaseOpenLabel.DoubleClick += new System.EventHandler(this.picturePanel_DoubleClick); - // - // suggestionIcon - // - this.suggestionIcon.BackColor = System.Drawing.Color.Black; - this.suggestionIcon.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.suggestionIcon.Location = new System.Drawing.Point(27, 59); - this.suggestionIcon.Margin = new System.Windows.Forms.Padding(27, 27, 0, 0); - this.suggestionIcon.Name = "suggestionIcon"; - this.suggestionIcon.Size = new System.Drawing.Size(26, 26); - this.suggestionIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.suggestionIcon.TabIndex = 6; - this.suggestionIcon.TabStop = false; - this.suggestionIcon.Visible = false; - // - // navNextBtn - // - this.navNextBtn.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.navNextBtn.BackColor = System.Drawing.Color.Black; - this.navNextBtn.FlatAppearance.BorderSize = 0; - this.navNextBtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(67)))), ((int)(((byte)(67)))), ((int)(((byte)(67))))); - this.navNextBtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); - this.navNextBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.navNextBtn.Font = new System.Drawing.Font("Segoe UI", 9.75F); - this.navNextBtn.ForeColor = System.Drawing.SystemColors.ControlText; - this.navNextBtn.Image = global::quick_picture_viewer.Properties.Resources.white_next; - this.navNextBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.navNextBtn.Location = new System.Drawing.Point(625, 193); - this.navNextBtn.Margin = new System.Windows.Forms.Padding(27); - this.navNextBtn.Name = "navNextBtn"; - this.navNextBtn.Size = new System.Drawing.Size(32, 64); - this.navNextBtn.TabIndex = 8; - this.navNextBtn.TabStop = false; - this.navNextBtn.UseVisualStyleBackColor = false; - this.navNextBtn.Visible = false; - this.navNextBtn.Click += new System.EventHandler(this.navNextBtn_Click); - // - // navPrevBtn - // - this.navPrevBtn.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.navPrevBtn.BackColor = System.Drawing.Color.Black; - this.navPrevBtn.FlatAppearance.BorderSize = 0; - this.navPrevBtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(67)))), ((int)(((byte)(67)))), ((int)(((byte)(67))))); - this.navPrevBtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); - this.navPrevBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.navPrevBtn.Font = new System.Drawing.Font("Segoe UI", 9.75F); - this.navPrevBtn.ForeColor = System.Drawing.SystemColors.ControlText; - this.navPrevBtn.Image = global::quick_picture_viewer.Properties.Resources.white_prev; - this.navPrevBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.navPrevBtn.Location = new System.Drawing.Point(27, 193); - this.navPrevBtn.Margin = new System.Windows.Forms.Padding(27); - this.navPrevBtn.Name = "navPrevBtn"; - this.navPrevBtn.Size = new System.Drawing.Size(32, 64); - this.navPrevBtn.TabIndex = 7; - this.navPrevBtn.TabStop = false; - this.navPrevBtn.UseVisualStyleBackColor = false; - this.navPrevBtn.Visible = false; - this.navPrevBtn.Click += new System.EventHandler(this.navPrevBtn_Click); - // - // typeOpsButton - // - this.typeOpsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.typeOpsButton.BackColor = System.Drawing.Color.Black; - this.typeOpsButton.FlatAppearance.BorderSize = 0; - this.typeOpsButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(67)))), ((int)(((byte)(67)))), ((int)(((byte)(67))))); - this.typeOpsButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); - this.typeOpsButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.typeOpsButton.Font = new System.Drawing.Font("Segoe UI", 10F); - this.typeOpsButton.ForeColor = System.Drawing.Color.White; - this.typeOpsButton.Image = global::quick_picture_viewer.Properties.Resources.white_options; - this.typeOpsButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; - this.typeOpsButton.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.typeOpsButton.Location = new System.Drawing.Point(537, 358); - this.typeOpsButton.Margin = new System.Windows.Forms.Padding(27); - this.typeOpsButton.Name = "typeOpsButton"; - this.typeOpsButton.Size = new System.Drawing.Size(120, 32); - this.typeOpsButton.TabIndex = 0; - this.typeOpsButton.TabStop = false; - this.typeOpsButton.Text = " type options"; - this.typeOpsButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.typeOpsButton.UseVisualStyleBackColor = false; - this.typeOpsButton.Visible = false; - this.typeOpsButton.Click += new System.EventHandler(this.typeOpsButton_Click); + statusStrip1.BackColor = System.Drawing.SystemColors.ControlLight; + statusStrip1.Font = new System.Drawing.Font("Segoe UI", 9.75F); + statusStrip1.GripMargin = new System.Windows.Forms.Padding(0); + statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { selectionLabel, directoryLabel, fileLabel, hasChangesLabel, sizeLabel, zoomLabel, dateCreatedLabel, dateModifiedLabel }); + statusStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow; + statusStrip1.Location = new System.Drawing.Point(0, 419); + statusStrip1.Name = "statusStrip1"; + statusStrip1.ShowItemToolTips = true; + statusStrip1.Size = new System.Drawing.Size(684, 27); + statusStrip1.TabIndex = 4; + statusStrip1.Text = "statusStrip1"; + statusStrip1.VisibleChanged += statusStrip1_VisibleChanged; // // selectionLabel // - this.selectionLabel.ActiveLinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.selectionLabel.BackColor = System.Drawing.Color.Transparent; - this.selectionLabel.Image = global::quick_picture_viewer.Properties.Resources.black_selection; - this.selectionLabel.IsLink = true; - this.selectionLabel.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; - this.selectionLabel.LinkColor = System.Drawing.Color.Black; - this.selectionLabel.Margin = new System.Windows.Forms.Padding(5, 5, 0, 5); - this.selectionLabel.Name = "selectionLabel"; - this.selectionLabel.Size = new System.Drawing.Size(75, 17); - this.selectionLabel.Text = "selection"; - this.selectionLabel.Visible = false; - this.selectionLabel.VisitedLinkColor = System.Drawing.Color.Black; - this.selectionLabel.Click += new System.EventHandler(this.selectionLabel_Click); + selectionLabel.ActiveLinkColor = System.Drawing.Color.FromArgb(100, 100, 100); + selectionLabel.BackColor = System.Drawing.Color.Transparent; + selectionLabel.Image = Properties.Resources.black_selection; + selectionLabel.IsLink = true; + selectionLabel.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; + selectionLabel.LinkColor = System.Drawing.Color.Black; + selectionLabel.Margin = new System.Windows.Forms.Padding(5, 5, 0, 5); + selectionLabel.Name = "selectionLabel"; + selectionLabel.Size = new System.Drawing.Size(75, 17); + selectionLabel.Text = "selection"; + selectionLabel.Visible = false; + selectionLabel.VisitedLinkColor = System.Drawing.Color.Black; + selectionLabel.Click += selectionLabel_Click; + selectionLabel.MouseMove += selectionLabel_MouseMove; // // directoryLabel // - this.directoryLabel.ActiveLinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.directoryLabel.BackColor = System.Drawing.Color.Transparent; - this.directoryLabel.Image = global::quick_picture_viewer.Properties.Resources.black_picfolder; - this.directoryLabel.IsLink = true; - this.directoryLabel.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; - this.directoryLabel.LinkColor = System.Drawing.Color.Black; - this.directoryLabel.Margin = new System.Windows.Forms.Padding(5, 5, 0, 5); - this.directoryLabel.Name = "directoryLabel"; - this.directoryLabel.Size = new System.Drawing.Size(59, 17); - this.directoryLabel.Text = "folder"; - this.directoryLabel.Visible = false; - this.directoryLabel.VisitedLinkColor = System.Drawing.Color.Black; - this.directoryLabel.Click += new System.EventHandler(this.directoryLabel_Click); + directoryLabel.ActiveLinkColor = System.Drawing.Color.FromArgb(100, 100, 100); + directoryLabel.BackColor = System.Drawing.Color.Transparent; + directoryLabel.Image = Properties.Resources.black_picfolder; + directoryLabel.IsLink = true; + directoryLabel.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; + directoryLabel.LinkColor = System.Drawing.Color.Black; + directoryLabel.Margin = new System.Windows.Forms.Padding(5, 5, 0, 5); + directoryLabel.Name = "directoryLabel"; + directoryLabel.Size = new System.Drawing.Size(59, 17); + directoryLabel.Text = "folder"; + directoryLabel.Visible = false; + directoryLabel.VisitedLinkColor = System.Drawing.Color.Black; + directoryLabel.Click += directoryLabel_Click; + directoryLabel.MouseMove += directoryLabel_MouseMove; // // fileLabel // - this.fileLabel.BackColor = System.Drawing.Color.Transparent; - this.fileLabel.Image = global::quick_picture_viewer.Properties.Resources.black_imgfile; - this.fileLabel.Margin = new System.Windows.Forms.Padding(5, 5, 0, 5); - this.fileLabel.Name = "fileLabel"; - this.fileLabel.Size = new System.Drawing.Size(41, 17); - this.fileLabel.Text = "file"; + fileLabel.BackColor = System.Drawing.Color.Transparent; + fileLabel.Image = Properties.Resources.black_imgfile; + fileLabel.Margin = new System.Windows.Forms.Padding(5, 5, 0, 5); + fileLabel.Name = "fileLabel"; + fileLabel.Size = new System.Drawing.Size(41, 17); + fileLabel.Text = "file"; // // hasChangesLabel // - this.hasChangesLabel.BackColor = System.Drawing.Color.Transparent; - this.hasChangesLabel.Image = ((System.Drawing.Image)(resources.GetObject("hasChangesLabel.Image"))); - this.hasChangesLabel.Margin = new System.Windows.Forms.Padding(5, 5, 0, 5); - this.hasChangesLabel.Name = "hasChangesLabel"; - this.hasChangesLabel.Size = new System.Drawing.Size(82, 17); - this.hasChangesLabel.Text = "not-saved"; - this.hasChangesLabel.Visible = false; + hasChangesLabel.BackColor = System.Drawing.Color.Transparent; + hasChangesLabel.Image = (System.Drawing.Image)resources.GetObject("hasChangesLabel.Image"); + hasChangesLabel.Margin = new System.Windows.Forms.Padding(5, 5, 0, 5); + hasChangesLabel.Name = "hasChangesLabel"; + hasChangesLabel.Size = new System.Drawing.Size(82, 17); + hasChangesLabel.Text = "not-saved"; + hasChangesLabel.Visible = false; // // sizeLabel // - this.sizeLabel.BackColor = System.Drawing.Color.Transparent; - this.sizeLabel.Image = ((System.Drawing.Image)(resources.GetObject("sizeLabel.Image"))); - this.sizeLabel.Margin = new System.Windows.Forms.Padding(5, 5, 0, 5); - this.sizeLabel.Name = "sizeLabel"; - this.sizeLabel.Size = new System.Drawing.Size(46, 17); - this.sizeLabel.Text = "size"; + sizeLabel.BackColor = System.Drawing.Color.Transparent; + sizeLabel.Image = (System.Drawing.Image)resources.GetObject("sizeLabel.Image"); + sizeLabel.Margin = new System.Windows.Forms.Padding(5, 5, 0, 5); + sizeLabel.Name = "sizeLabel"; + sizeLabel.Size = new System.Drawing.Size(46, 17); + sizeLabel.Text = "size"; // // zoomLabel // - this.zoomLabel.BackColor = System.Drawing.Color.Transparent; - this.zoomLabel.Image = ((System.Drawing.Image)(resources.GetObject("zoomLabel.Image"))); - this.zoomLabel.Margin = new System.Windows.Forms.Padding(5, 5, 0, 5); - this.zoomLabel.Name = "zoomLabel"; - this.zoomLabel.Size = new System.Drawing.Size(57, 17); - this.zoomLabel.Text = "zoom"; + zoomLabel.BackColor = System.Drawing.Color.Transparent; + zoomLabel.Image = (System.Drawing.Image)resources.GetObject("zoomLabel.Image"); + zoomLabel.Margin = new System.Windows.Forms.Padding(5, 5, 0, 5); + zoomLabel.Name = "zoomLabel"; + zoomLabel.Size = new System.Drawing.Size(57, 17); + zoomLabel.Text = "zoom"; // // dateCreatedLabel // - this.dateCreatedLabel.BackColor = System.Drawing.Color.Transparent; - this.dateCreatedLabel.Image = ((System.Drawing.Image)(resources.GetObject("dateCreatedLabel.Image"))); - this.dateCreatedLabel.Margin = new System.Windows.Forms.Padding(5, 5, 0, 5); - this.dateCreatedLabel.Name = "dateCreatedLabel"; - this.dateCreatedLabel.Size = new System.Drawing.Size(68, 17); - this.dateCreatedLabel.Text = "created"; - this.dateCreatedLabel.Visible = false; + dateCreatedLabel.BackColor = System.Drawing.Color.Transparent; + dateCreatedLabel.Image = (System.Drawing.Image)resources.GetObject("dateCreatedLabel.Image"); + dateCreatedLabel.Margin = new System.Windows.Forms.Padding(5, 5, 0, 5); + dateCreatedLabel.Name = "dateCreatedLabel"; + dateCreatedLabel.Size = new System.Drawing.Size(68, 17); + dateCreatedLabel.Text = "created"; + dateCreatedLabel.Visible = false; // // dateModifiedLabel // - this.dateModifiedLabel.BackColor = System.Drawing.Color.Transparent; - this.dateModifiedLabel.Font = new System.Drawing.Font("Segoe UI", 9.75F); - this.dateModifiedLabel.Image = ((System.Drawing.Image)(resources.GetObject("dateModifiedLabel.Image"))); - this.dateModifiedLabel.Margin = new System.Windows.Forms.Padding(5, 5, 0, 5); - this.dateModifiedLabel.Name = "dateModifiedLabel"; - this.dateModifiedLabel.Size = new System.Drawing.Size(76, 17); - this.dateModifiedLabel.Text = "modified"; - this.dateModifiedLabel.Visible = false; + dateModifiedLabel.BackColor = System.Drawing.Color.Transparent; + dateModifiedLabel.Font = new System.Drawing.Font("Segoe UI", 9.75F); + dateModifiedLabel.Image = (System.Drawing.Image)resources.GetObject("dateModifiedLabel.Image"); + dateModifiedLabel.Margin = new System.Windows.Forms.Padding(5, 5, 0, 5); + dateModifiedLabel.Name = "dateModifiedLabel"; + dateModifiedLabel.Size = new System.Drawing.Size(76, 17); + dateModifiedLabel.Text = "modified"; + dateModifiedLabel.Visible = false; + // + // printDialog1 + // + printDialog1.Document = printDocument1; + printDialog1.UseEXDialog = true; + // + // printDocument1 + // + printDocument1.DocumentName = ""; + printDocument1.OriginAtMargins = true; + printDocument1.PrintPage += printDocument1_PrintPage; + // + // colorDialog1 + // + colorDialog1.Color = System.Drawing.Color.Blue; + // + // toolStrip1 + // + toolStrip1.AlternativeAppearance = true; + toolStrip1.AutoSize = false; + toolStrip1.BackColor = System.Drawing.Color.White; + toolStrip1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + toolStrip1.CanOverflow = false; + toolStrip1.DarkMode = false; + toolStrip1.DragForm = true; + toolStrip1.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 204); + toolStrip1.ForeColor = System.Drawing.Color.Black; + toolStrip1.GripMargin = new System.Windows.Forms.Padding(0); + toolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; + toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { openBtn, saveMenuBtn, externalBtn, infoButton, toolStripSeparator4, prevButton, slideshowButton, nextButton, toolStripSeparator1, autoZoomButton, zoomOutButton, zoomTextBox, zoomInButton, zoom100Btn, toolStripSeparator2, selectionBtn, editButton, effectsBtn, toolsBtn, toolStripSeparator3, filteringModeBtn, checkboardButton, fullscreenBtn, miniViewButton, qlibToolsep1, moreButton, framelessCloseBtn }); + toolStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow; + toolStrip1.Location = new System.Drawing.Point(0, 0); + toolStrip1.Name = "toolStrip1"; + toolStrip1.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5); + toolStrip1.RightToLeft = System.Windows.Forms.RightToLeft.No; + toolStrip1.Size = new System.Drawing.Size(684, 32); + toolStrip1.TabIndex = 1; + toolStrip1.VisibleChanged += toolStrip1_VisibleChanged; // // openBtn // - this.openBtn.AutoSize = false; - this.openBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.openBtn.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.openFileBtn, - this.openFolderBtn, - this.openRecursive}); - this.openBtn.Image = global::quick_picture_viewer.Properties.Resources.black_open; - this.openBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.openBtn.ImageTransparentColor = System.Drawing.Color.Magenta; - this.openBtn.Margin = new System.Windows.Forms.Padding(0); - this.openBtn.Name = "openBtn"; - this.openBtn.Size = new System.Drawing.Size(30, 25); + openBtn.AutoSize = false; + openBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + openBtn.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { openFileBtn, openFolderBtn, openRecursive }); + openBtn.Image = Properties.Resources.black_open; + openBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + openBtn.ImageTransparentColor = System.Drawing.Color.Magenta; + openBtn.Margin = new System.Windows.Forms.Padding(0); + openBtn.Name = "openBtn"; + openBtn.Size = new System.Drawing.Size(30, 25); // // openFileBtn // - this.openFileBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.openFileBtn.ForeColor = System.Drawing.Color.Black; - this.openFileBtn.Image = global::quick_picture_viewer.Properties.Resources.black_imgfile; - this.openFileBtn.Name = "openFileBtn"; - this.openFileBtn.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); - this.openFileBtn.Size = new System.Drawing.Size(237, 24); - this.openFileBtn.Text = "open file"; - this.openFileBtn.Click += new System.EventHandler(this.openFileBtn_Click); + openFileBtn.BackColor = System.Drawing.SystemColors.ControlLight; + openFileBtn.ForeColor = System.Drawing.Color.Black; + openFileBtn.Image = Properties.Resources.black_imgfile; + openFileBtn.Name = "openFileBtn"; + openFileBtn.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O; + openFileBtn.Size = new System.Drawing.Size(237, 24); + openFileBtn.Text = "open file"; + openFileBtn.Click += openFileBtn_Click; // // openFolderBtn // - this.openFolderBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.openFolderBtn.ForeColor = System.Drawing.Color.Black; - this.openFolderBtn.Image = global::quick_picture_viewer.Properties.Resources.black_imgfile; - this.openFolderBtn.Name = "openFolderBtn"; - this.openFolderBtn.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) - | System.Windows.Forms.Keys.O))); - this.openFolderBtn.Size = new System.Drawing.Size(237, 24); - this.openFolderBtn.Text = "open folder"; - this.openFolderBtn.Click += new System.EventHandler(this.openFolderBtn_Click); + openFolderBtn.BackColor = System.Drawing.SystemColors.ControlLight; + openFolderBtn.ForeColor = System.Drawing.Color.Black; + openFolderBtn.Image = Properties.Resources.black_imgfile; + openFolderBtn.Name = "openFolderBtn"; + openFolderBtn.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift | System.Windows.Forms.Keys.O; + openFolderBtn.Size = new System.Drawing.Size(237, 24); + openFolderBtn.Text = "open folder"; + openFolderBtn.Click += openFolderBtn_Click; // // openRecursive // - this.openRecursive.BackColor = System.Drawing.SystemColors.ControlLight; - this.openRecursive.ForeColor = System.Drawing.Color.Black; - this.openRecursive.Image = global::quick_picture_viewer.Properties.Resources.black_recursive; - this.openRecursive.Name = "openRecursive"; - this.openRecursive.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.O))); - this.openRecursive.Size = new System.Drawing.Size(237, 24); - this.openRecursive.Text = "open recursive"; - this.openRecursive.Click += new System.EventHandler(this.openRecursive_Click); + openRecursive.BackColor = System.Drawing.SystemColors.ControlLight; + openRecursive.ForeColor = System.Drawing.Color.Black; + openRecursive.Image = Properties.Resources.black_recursive; + openRecursive.Name = "openRecursive"; + openRecursive.ShortcutKeys = System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.O; + openRecursive.Size = new System.Drawing.Size(237, 24); + openRecursive.Text = "open recursive"; + openRecursive.Click += openRecursive_Click; // // saveMenuBtn // - this.saveMenuBtn.AutoSize = false; - this.saveMenuBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.saveMenuBtn.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.saveBtn, - this.saveAsBtn}); - this.saveMenuBtn.Image = global::quick_picture_viewer.Properties.Resources.black_save; - this.saveMenuBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.saveMenuBtn.ImageTransparentColor = System.Drawing.Color.Magenta; - this.saveMenuBtn.Margin = new System.Windows.Forms.Padding(0); - this.saveMenuBtn.Name = "saveMenuBtn"; - this.saveMenuBtn.Size = new System.Drawing.Size(30, 25); + saveMenuBtn.AutoSize = false; + saveMenuBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + saveMenuBtn.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { saveBtn, saveAsBtn }); + saveMenuBtn.Image = Properties.Resources.black_save; + saveMenuBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + saveMenuBtn.ImageTransparentColor = System.Drawing.Color.Magenta; + saveMenuBtn.Margin = new System.Windows.Forms.Padding(0); + saveMenuBtn.Name = "saveMenuBtn"; + saveMenuBtn.Size = new System.Drawing.Size(30, 25); // // saveBtn // - this.saveBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.saveBtn.Enabled = false; - this.saveBtn.ForeColor = System.Drawing.Color.Black; - this.saveBtn.Image = global::quick_picture_viewer.Properties.Resources.black_save; - this.saveBtn.Name = "saveBtn"; - this.saveBtn.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S))); - this.saveBtn.Size = new System.Drawing.Size(207, 24); - this.saveBtn.Text = "save"; - this.saveBtn.Click += new System.EventHandler(this.saveBtn_Click); + saveBtn.BackColor = System.Drawing.SystemColors.ControlLight; + saveBtn.Enabled = false; + saveBtn.ForeColor = System.Drawing.Color.Black; + saveBtn.Image = Properties.Resources.black_save; + saveBtn.Name = "saveBtn"; + saveBtn.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S; + saveBtn.Size = new System.Drawing.Size(207, 24); + saveBtn.Text = "save"; + saveBtn.Click += saveBtn_Click; // // saveAsBtn // - this.saveAsBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.saveAsBtn.Enabled = false; - this.saveAsBtn.ForeColor = System.Drawing.Color.Black; - this.saveAsBtn.Image = global::quick_picture_viewer.Properties.Resources.black_saveas; - this.saveAsBtn.Name = "saveAsBtn"; - this.saveAsBtn.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) - | System.Windows.Forms.Keys.S))); - this.saveAsBtn.Size = new System.Drawing.Size(207, 24); - this.saveAsBtn.Text = "save as"; - this.saveAsBtn.Click += new System.EventHandler(this.saveAsButton_Click); + saveAsBtn.BackColor = System.Drawing.SystemColors.ControlLight; + saveAsBtn.Enabled = false; + saveAsBtn.ForeColor = System.Drawing.Color.Black; + saveAsBtn.Image = Properties.Resources.black_saveas; + saveAsBtn.Name = "saveAsBtn"; + saveAsBtn.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift | System.Windows.Forms.Keys.S; + saveAsBtn.Size = new System.Drawing.Size(207, 24); + saveAsBtn.Text = "save as"; + saveAsBtn.Click += saveAsButton_Click; // // externalBtn // - this.externalBtn.AutoSize = false; - this.externalBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.externalBtn.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.externalRunBtn, - this.externalFavoriteBtn, - this.externalChooseBtn}); - this.externalBtn.Image = ((System.Drawing.Image)(resources.GetObject("externalBtn.Image"))); - this.externalBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.externalBtn.ImageTransparentColor = System.Drawing.Color.Magenta; - this.externalBtn.Margin = new System.Windows.Forms.Padding(0); - this.externalBtn.Name = "externalBtn"; - this.externalBtn.Size = new System.Drawing.Size(30, 25); - this.externalBtn.DropDownOpened += new System.EventHandler(this.externalBtn_DropDownOpened); + externalBtn.AutoSize = false; + externalBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + externalBtn.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { externalRunBtn, externalFavoriteBtn, externalChooseBtn }); + externalBtn.Image = (System.Drawing.Image)resources.GetObject("externalBtn.Image"); + externalBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + externalBtn.ImageTransparentColor = System.Drawing.Color.Magenta; + externalBtn.Margin = new System.Windows.Forms.Padding(0); + externalBtn.Name = "externalBtn"; + externalBtn.Size = new System.Drawing.Size(30, 25); + externalBtn.DropDownOpened += externalBtn_DropDownOpened; // // externalRunBtn // - this.externalRunBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.externalRunBtn.Enabled = false; - this.externalRunBtn.ForeColor = System.Drawing.Color.Black; - this.externalRunBtn.Image = ((System.Drawing.Image)(resources.GetObject("externalRunBtn.Image"))); - this.externalRunBtn.Name = "externalRunBtn"; - this.externalRunBtn.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.E))); - this.externalRunBtn.Size = new System.Drawing.Size(277, 24); - this.externalRunBtn.Text = "open with default"; - this.externalRunBtn.Click += new System.EventHandler(this.externalRunBtn_Click); + externalRunBtn.BackColor = System.Drawing.SystemColors.ControlLight; + externalRunBtn.Enabled = false; + externalRunBtn.ForeColor = System.Drawing.Color.Black; + externalRunBtn.Image = (System.Drawing.Image)resources.GetObject("externalRunBtn.Image"); + externalRunBtn.Name = "externalRunBtn"; + externalRunBtn.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.E; + externalRunBtn.Size = new System.Drawing.Size(277, 24); + externalRunBtn.Text = "open with default"; + externalRunBtn.Click += externalRunBtn_Click; // // externalFavoriteBtn // - this.externalFavoriteBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.externalFavoriteBtn.Enabled = false; - this.externalFavoriteBtn.ForeColor = System.Drawing.Color.Black; - this.externalFavoriteBtn.Image = global::quick_picture_viewer.Properties.Resources.black_paint; - this.externalFavoriteBtn.Name = "externalFavoriteBtn"; - this.externalFavoriteBtn.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) - | System.Windows.Forms.Keys.O))); - this.externalFavoriteBtn.Size = new System.Drawing.Size(277, 24); - this.externalFavoriteBtn.Text = "open with custom"; - this.externalFavoriteBtn.Click += new System.EventHandler(this.externalFavoriteBtn_Click); + externalFavoriteBtn.BackColor = System.Drawing.SystemColors.ControlLight; + externalFavoriteBtn.Enabled = false; + externalFavoriteBtn.ForeColor = System.Drawing.Color.Black; + externalFavoriteBtn.Image = Properties.Resources.black_paint; + externalFavoriteBtn.Name = "externalFavoriteBtn"; + externalFavoriteBtn.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift | System.Windows.Forms.Keys.O; + externalFavoriteBtn.Size = new System.Drawing.Size(277, 24); + externalFavoriteBtn.Text = "open with custom"; + externalFavoriteBtn.Click += externalFavoriteBtn_Click; // // externalChooseBtn // - this.externalChooseBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.externalChooseBtn.Enabled = false; - this.externalChooseBtn.ForeColor = System.Drawing.Color.Black; - this.externalChooseBtn.Image = ((System.Drawing.Image)(resources.GetObject("externalChooseBtn.Image"))); - this.externalChooseBtn.Name = "externalChooseBtn"; - this.externalChooseBtn.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) - | System.Windows.Forms.Keys.E))); - this.externalChooseBtn.Size = new System.Drawing.Size(277, 24); - this.externalChooseBtn.Text = "choose app"; - this.externalChooseBtn.Click += new System.EventHandler(this.externalButton_Click); + externalChooseBtn.BackColor = System.Drawing.SystemColors.ControlLight; + externalChooseBtn.Enabled = false; + externalChooseBtn.ForeColor = System.Drawing.Color.Black; + externalChooseBtn.Image = (System.Drawing.Image)resources.GetObject("externalChooseBtn.Image"); + externalChooseBtn.Name = "externalChooseBtn"; + externalChooseBtn.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift | System.Windows.Forms.Keys.E; + externalChooseBtn.Size = new System.Drawing.Size(277, 24); + externalChooseBtn.Text = "choose app"; + externalChooseBtn.Click += externalButton_Click; // // infoButton // - this.infoButton.AutoSize = false; - this.infoButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.infoButton.Enabled = false; - this.infoButton.Image = ((System.Drawing.Image)(resources.GetObject("infoButton.Image"))); - this.infoButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.infoButton.Margin = new System.Windows.Forms.Padding(0); - this.infoButton.Name = "infoButton"; - this.infoButton.Size = new System.Drawing.Size(24, 25); - this.infoButton.Click += new System.EventHandler(this.infoButton_Click); + infoButton.AutoSize = false; + infoButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + infoButton.Enabled = false; + infoButton.Image = (System.Drawing.Image)resources.GetObject("infoButton.Image"); + infoButton.ImageTransparentColor = System.Drawing.Color.Magenta; + infoButton.Margin = new System.Windows.Forms.Padding(0); + infoButton.Name = "infoButton"; + infoButton.Size = new System.Drawing.Size(24, 25); + infoButton.Click += infoButton_Click; + // + // toolStripSeparator4 + // + toolStripSeparator4.AutoSize = false; + toolStripSeparator4.BackColor = System.Drawing.SystemColors.ControlLight; + toolStripSeparator4.DarkMode = false; + toolStripSeparator4.ForeColor = System.Drawing.Color.FromArgb(100, 100, 100); + toolStripSeparator4.InsideMenu = false; + toolStripSeparator4.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + toolStripSeparator4.Name = "toolStripSeparator4"; + toolStripSeparator4.RightToLeft = System.Windows.Forms.RightToLeft.No; + toolStripSeparator4.Size = new System.Drawing.Size(1, 24); // // prevButton // - this.prevButton.AutoSize = false; - this.prevButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.prevButton.Enabled = false; - this.prevButton.Image = ((System.Drawing.Image)(resources.GetObject("prevButton.Image"))); - this.prevButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.prevButton.Margin = new System.Windows.Forms.Padding(0); - this.prevButton.Name = "prevButton"; - this.prevButton.Size = new System.Drawing.Size(24, 25); - this.prevButton.Click += new System.EventHandler(this.prevButton_Click); + prevButton.AutoSize = false; + prevButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + prevButton.Enabled = false; + prevButton.Image = (System.Drawing.Image)resources.GetObject("prevButton.Image"); + prevButton.ImageTransparentColor = System.Drawing.Color.Magenta; + prevButton.Margin = new System.Windows.Forms.Padding(0); + prevButton.Name = "prevButton"; + prevButton.Size = new System.Drawing.Size(24, 25); + prevButton.Click += prevButton_Click; // // slideshowButton // - this.slideshowButton.AutoSize = false; - this.slideshowButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.slideshowButton.Enabled = false; - this.slideshowButton.Image = ((System.Drawing.Image)(resources.GetObject("slideshowButton.Image"))); - this.slideshowButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.slideshowButton.Margin = new System.Windows.Forms.Padding(0); - this.slideshowButton.Name = "slideshowButton"; - this.slideshowButton.Size = new System.Drawing.Size(24, 25); - this.slideshowButton.Click += new System.EventHandler(this.slideshowButton_Click); + slideshowButton.AutoSize = false; + slideshowButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + slideshowButton.Enabled = false; + slideshowButton.Image = (System.Drawing.Image)resources.GetObject("slideshowButton.Image"); + slideshowButton.ImageTransparentColor = System.Drawing.Color.Magenta; + slideshowButton.Margin = new System.Windows.Forms.Padding(0); + slideshowButton.Name = "slideshowButton"; + slideshowButton.Size = new System.Drawing.Size(24, 25); + slideshowButton.Click += slideshowButton_Click; // // nextButton // - this.nextButton.AutoSize = false; - this.nextButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.nextButton.Enabled = false; - this.nextButton.Image = ((System.Drawing.Image)(resources.GetObject("nextButton.Image"))); - this.nextButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.nextButton.Margin = new System.Windows.Forms.Padding(0); - this.nextButton.Name = "nextButton"; - this.nextButton.Size = new System.Drawing.Size(24, 25); - this.nextButton.Click += new System.EventHandler(this.nextButton_Click); - this.nextButton.EnabledChanged += new System.EventHandler(this.nextButton_EnabledChanged); - this.nextButton.VisibleChanged += new System.EventHandler(this.nextButton_VisibleChanged); + nextButton.AutoSize = false; + nextButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + nextButton.Enabled = false; + nextButton.Image = (System.Drawing.Image)resources.GetObject("nextButton.Image"); + nextButton.ImageTransparentColor = System.Drawing.Color.Magenta; + nextButton.Margin = new System.Windows.Forms.Padding(0); + nextButton.Name = "nextButton"; + nextButton.Size = new System.Drawing.Size(24, 25); + nextButton.Click += nextButton_Click; + nextButton.EnabledChanged += nextButton_EnabledChanged; + nextButton.VisibleChanged += nextButton_VisibleChanged; + // + // toolStripSeparator1 + // + toolStripSeparator1.AutoSize = false; + toolStripSeparator1.BackColor = System.Drawing.SystemColors.ControlLight; + toolStripSeparator1.DarkMode = false; + toolStripSeparator1.ForeColor = System.Drawing.Color.FromArgb(100, 100, 100); + toolStripSeparator1.InsideMenu = false; + toolStripSeparator1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + toolStripSeparator1.Name = "toolStripSeparator1"; + toolStripSeparator1.RightToLeft = System.Windows.Forms.RightToLeft.No; + toolStripSeparator1.Size = new System.Drawing.Size(1, 24); // // autoZoomButton // - this.autoZoomButton.AutoSize = false; - this.autoZoomButton.Checked = true; - this.autoZoomButton.CheckState = System.Windows.Forms.CheckState.Checked; - this.autoZoomButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.autoZoomButton.Enabled = false; - this.autoZoomButton.Image = ((System.Drawing.Image)(resources.GetObject("autoZoomButton.Image"))); - this.autoZoomButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.autoZoomButton.Margin = new System.Windows.Forms.Padding(0); - this.autoZoomButton.Name = "autoZoomButton"; - this.autoZoomButton.Size = new System.Drawing.Size(24, 25); - this.autoZoomButton.Click += new System.EventHandler(this.autoZoomButton_Click); + autoZoomButton.AutoSize = false; + autoZoomButton.Checked = true; + autoZoomButton.CheckState = System.Windows.Forms.CheckState.Checked; + autoZoomButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + autoZoomButton.Enabled = false; + autoZoomButton.Image = (System.Drawing.Image)resources.GetObject("autoZoomButton.Image"); + autoZoomButton.ImageTransparentColor = System.Drawing.Color.Magenta; + autoZoomButton.Margin = new System.Windows.Forms.Padding(0); + autoZoomButton.Name = "autoZoomButton"; + autoZoomButton.Size = new System.Drawing.Size(24, 25); + autoZoomButton.Click += autoZoomButton_Click; // // zoomOutButton // - this.zoomOutButton.AutoSize = false; - this.zoomOutButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.zoomOutButton.Enabled = false; - this.zoomOutButton.Image = ((System.Drawing.Image)(resources.GetObject("zoomOutButton.Image"))); - this.zoomOutButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.zoomOutButton.Margin = new System.Windows.Forms.Padding(0); - this.zoomOutButton.Name = "zoomOutButton"; - this.zoomOutButton.Size = new System.Drawing.Size(24, 25); - this.zoomOutButton.Click += new System.EventHandler(this.zoomOutButton_Click); - this.zoomOutButton.MouseDown += new System.Windows.Forms.MouseEventHandler(this.zoomOutButton_MouseDown); - this.zoomOutButton.MouseLeave += new System.EventHandler(this.zoomOutButton_MouseLeave); - this.zoomOutButton.MouseUp += new System.Windows.Forms.MouseEventHandler(this.zoomOutButton_MouseUp); + zoomOutButton.AutoSize = false; + zoomOutButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + zoomOutButton.Enabled = false; + zoomOutButton.Image = (System.Drawing.Image)resources.GetObject("zoomOutButton.Image"); + zoomOutButton.ImageTransparentColor = System.Drawing.Color.Magenta; + zoomOutButton.Margin = new System.Windows.Forms.Padding(0); + zoomOutButton.Name = "zoomOutButton"; + zoomOutButton.Size = new System.Drawing.Size(24, 25); + zoomOutButton.Click += zoomOutButton_Click; + zoomOutButton.MouseDown += zoomOutButton_MouseDown; + zoomOutButton.MouseLeave += zoomOutButton_MouseLeave; + zoomOutButton.MouseUp += zoomOutButton_MouseUp; + // + // zoomTextBox + // + zoomTextBox.BackColor = System.Drawing.Color.White; + zoomTextBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + zoomTextBox.Enabled = false; + zoomTextBox.Font = new System.Drawing.Font("Segoe UI", 9.75F); + zoomTextBox.Margin = new System.Windows.Forms.Padding(7, -1, 7, -1); + zoomTextBox.MaxLength = 12; + zoomTextBox.Name = "zoomTextBox"; + zoomTextBox.Size = new System.Drawing.Size(44, 24); + zoomTextBox.Text = "Auto"; + zoomTextBox.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center; + zoomTextBox.ToolTipText = "Zoom"; + zoomTextBox.KeyPress += zoomTextBox_KeyPress; + zoomTextBox.MouseEnter += zoomTextBox_MouseEnter; + zoomTextBox.MouseLeave += zoomTextBox_MouseLeave; + zoomTextBox.TextChanged += zoomComboBox_TextChanged; // // zoomInButton // - this.zoomInButton.AutoSize = false; - this.zoomInButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.zoomInButton.Enabled = false; - this.zoomInButton.Image = ((System.Drawing.Image)(resources.GetObject("zoomInButton.Image"))); - this.zoomInButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.zoomInButton.Margin = new System.Windows.Forms.Padding(0); - this.zoomInButton.Name = "zoomInButton"; - this.zoomInButton.Size = new System.Drawing.Size(24, 25); - this.zoomInButton.Click += new System.EventHandler(this.zoomInButton_Click); - this.zoomInButton.MouseDown += new System.Windows.Forms.MouseEventHandler(this.zoomInButton_MouseDown); - this.zoomInButton.MouseLeave += new System.EventHandler(this.zoomInButton_MouseLeave); - this.zoomInButton.MouseUp += new System.Windows.Forms.MouseEventHandler(this.zoomInButton_MouseUp); + zoomInButton.AutoSize = false; + zoomInButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + zoomInButton.Enabled = false; + zoomInButton.Image = (System.Drawing.Image)resources.GetObject("zoomInButton.Image"); + zoomInButton.ImageTransparentColor = System.Drawing.Color.Magenta; + zoomInButton.Margin = new System.Windows.Forms.Padding(0); + zoomInButton.Name = "zoomInButton"; + zoomInButton.Size = new System.Drawing.Size(24, 25); + zoomInButton.Click += zoomInButton_Click; + zoomInButton.MouseDown += zoomInButton_MouseDown; + zoomInButton.MouseLeave += zoomInButton_MouseLeave; + zoomInButton.MouseUp += zoomInButton_MouseUp; // // zoom100Btn // - this.zoom100Btn.AutoSize = false; - this.zoom100Btn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.zoom100Btn.Enabled = false; - this.zoom100Btn.Image = global::quick_picture_viewer.Properties.Resources.black_actualsize; - this.zoom100Btn.ImageTransparentColor = System.Drawing.Color.Magenta; - this.zoom100Btn.Margin = new System.Windows.Forms.Padding(0); - this.zoom100Btn.Name = "zoom100Btn"; - this.zoom100Btn.Size = new System.Drawing.Size(24, 25); - this.zoom100Btn.Click += new System.EventHandler(this.zoom100Btn_Click); + zoom100Btn.AutoSize = false; + zoom100Btn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + zoom100Btn.Enabled = false; + zoom100Btn.Image = Properties.Resources.black_actualsize; + zoom100Btn.ImageTransparentColor = System.Drawing.Color.Magenta; + zoom100Btn.Margin = new System.Windows.Forms.Padding(0); + zoom100Btn.Name = "zoom100Btn"; + zoom100Btn.Size = new System.Drawing.Size(24, 25); + zoom100Btn.Click += zoom100Btn_Click; + // + // toolStripSeparator2 + // + toolStripSeparator2.AutoSize = false; + toolStripSeparator2.BackColor = System.Drawing.SystemColors.ControlLight; + toolStripSeparator2.DarkMode = false; + toolStripSeparator2.ForeColor = System.Drawing.Color.FromArgb(100, 100, 100); + toolStripSeparator2.InsideMenu = false; + toolStripSeparator2.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + toolStripSeparator2.Name = "toolStripSeparator2"; + toolStripSeparator2.RightToLeft = System.Windows.Forms.RightToLeft.No; + toolStripSeparator2.Size = new System.Drawing.Size(1, 24); // // selectionBtn // - this.selectionBtn.AutoSize = false; - this.selectionBtn.CheckOnClick = true; - this.selectionBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.selectionBtn.Image = global::quick_picture_viewer.Properties.Resources.black_selection; - this.selectionBtn.ImageTransparentColor = System.Drawing.Color.Magenta; - this.selectionBtn.Margin = new System.Windows.Forms.Padding(0); - this.selectionBtn.Name = "selectionBtn"; - this.selectionBtn.Size = new System.Drawing.Size(24, 25); - this.selectionBtn.CheckedChanged += new System.EventHandler(this.selectionBtn_CheckedChanged); + selectionBtn.AutoSize = false; + selectionBtn.CheckOnClick = true; + selectionBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + selectionBtn.Image = Properties.Resources.black_selection; + selectionBtn.ImageTransparentColor = System.Drawing.Color.Magenta; + selectionBtn.Margin = new System.Windows.Forms.Padding(0); + selectionBtn.Name = "selectionBtn"; + selectionBtn.Size = new System.Drawing.Size(24, 25); + selectionBtn.CheckedChanged += selectionBtn_CheckedChanged; // // editButton // - this.editButton.AutoSize = false; - this.editButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.editButton.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.flipHorizontalButton, - this.flipVerticalButton, - this.qlibToolsep4, - this.rotateRightButton, - this.rotateLeftButton, - this.rotate180Button, - this.customAngleBtn, - this.toolStripSeparator7, - this.cropBtn}); - this.editButton.ForeColor = System.Drawing.Color.Black; - this.editButton.Image = global::quick_picture_viewer.Properties.Resources.black_edit; - this.editButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.editButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.editButton.Margin = new System.Windows.Forms.Padding(0); - this.editButton.Name = "editButton"; - this.editButton.Size = new System.Drawing.Size(30, 25); + editButton.AutoSize = false; + editButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + editButton.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { flipHorizontalButton, flipVerticalButton, qlibToolsep4, rotateRightButton, rotateLeftButton, rotate180Button, customAngleBtn, toolStripSeparator7, cropBtn }); + editButton.ForeColor = System.Drawing.Color.Black; + editButton.Image = Properties.Resources.black_edit; + editButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + editButton.ImageTransparentColor = System.Drawing.Color.Magenta; + editButton.Margin = new System.Windows.Forms.Padding(0); + editButton.Name = "editButton"; + editButton.Size = new System.Drawing.Size(30, 25); // // flipHorizontalButton // - this.flipHorizontalButton.BackColor = System.Drawing.SystemColors.ControlLight; - this.flipHorizontalButton.Enabled = false; - this.flipHorizontalButton.ForeColor = System.Drawing.Color.Black; - this.flipHorizontalButton.Image = ((System.Drawing.Image)(resources.GetObject("flipHorizontalButton.Image"))); - this.flipHorizontalButton.Name = "flipHorizontalButton"; - this.flipHorizontalButton.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.H))); - this.flipHorizontalButton.Size = new System.Drawing.Size(243, 24); - this.flipHorizontalButton.Text = "flip horizontal"; - this.flipHorizontalButton.Click += new System.EventHandler(this.flipHorizontalButton_Click); + flipHorizontalButton.BackColor = System.Drawing.SystemColors.ControlLight; + flipHorizontalButton.Enabled = false; + flipHorizontalButton.ForeColor = System.Drawing.Color.Black; + flipHorizontalButton.Image = (System.Drawing.Image)resources.GetObject("flipHorizontalButton.Image"); + flipHorizontalButton.Name = "flipHorizontalButton"; + flipHorizontalButton.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.H; + flipHorizontalButton.Size = new System.Drawing.Size(243, 24); + flipHorizontalButton.Text = "flip horizontal"; + flipHorizontalButton.Click += flipHorizontalButton_Click; // // flipVerticalButton // - this.flipVerticalButton.BackColor = System.Drawing.SystemColors.ControlLight; - this.flipVerticalButton.Enabled = false; - this.flipVerticalButton.ForeColor = System.Drawing.Color.Black; - this.flipVerticalButton.Image = ((System.Drawing.Image)(resources.GetObject("flipVerticalButton.Image"))); - this.flipVerticalButton.Name = "flipVerticalButton"; - this.flipVerticalButton.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) - | System.Windows.Forms.Keys.H))); - this.flipVerticalButton.Size = new System.Drawing.Size(243, 24); - this.flipVerticalButton.Text = "flip vertical"; - this.flipVerticalButton.Click += new System.EventHandler(this.flipVerticalButton_Click); + flipVerticalButton.BackColor = System.Drawing.SystemColors.ControlLight; + flipVerticalButton.Enabled = false; + flipVerticalButton.ForeColor = System.Drawing.Color.Black; + flipVerticalButton.Image = (System.Drawing.Image)resources.GetObject("flipVerticalButton.Image"); + flipVerticalButton.Name = "flipVerticalButton"; + flipVerticalButton.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift | System.Windows.Forms.Keys.H; + flipVerticalButton.Size = new System.Drawing.Size(243, 24); + flipVerticalButton.Text = "flip vertical"; + flipVerticalButton.Click += flipVerticalButton_Click; // // qlibToolsep4 // - this.qlibToolsep4.AutoSize = false; - this.qlibToolsep4.BackColor = System.Drawing.SystemColors.ControlLight; - this.qlibToolsep4.DarkMode = false; - this.qlibToolsep4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.qlibToolsep4.InsideMenu = true; - this.qlibToolsep4.Margin = new System.Windows.Forms.Padding(4); - this.qlibToolsep4.Name = "qlibToolsep4"; - this.qlibToolsep4.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.qlibToolsep4.Size = new System.Drawing.Size(240, 6); + qlibToolsep4.AutoSize = false; + qlibToolsep4.BackColor = System.Drawing.SystemColors.ControlLight; + qlibToolsep4.DarkMode = false; + qlibToolsep4.ForeColor = System.Drawing.Color.FromArgb(100, 100, 100); + qlibToolsep4.InsideMenu = true; + qlibToolsep4.Margin = new System.Windows.Forms.Padding(4); + qlibToolsep4.Name = "qlibToolsep4"; + qlibToolsep4.RightToLeft = System.Windows.Forms.RightToLeft.No; + qlibToolsep4.Size = new System.Drawing.Size(240, 6); // // rotateRightButton // - this.rotateRightButton.BackColor = System.Drawing.SystemColors.ControlLight; - this.rotateRightButton.Enabled = false; - this.rotateRightButton.ForeColor = System.Drawing.Color.Black; - this.rotateRightButton.Image = global::quick_picture_viewer.Properties.Resources.black_rotater; - this.rotateRightButton.Name = "rotateRightButton"; - this.rotateRightButton.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.G))); - this.rotateRightButton.Size = new System.Drawing.Size(243, 24); - this.rotateRightButton.Text = "rotate right"; - this.rotateRightButton.Click += new System.EventHandler(this.rotateRightButton_Click); + rotateRightButton.BackColor = System.Drawing.SystemColors.ControlLight; + rotateRightButton.Enabled = false; + rotateRightButton.ForeColor = System.Drawing.Color.Black; + rotateRightButton.Image = Properties.Resources.black_rotater; + rotateRightButton.Name = "rotateRightButton"; + rotateRightButton.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.G; + rotateRightButton.Size = new System.Drawing.Size(243, 24); + rotateRightButton.Text = "rotate right"; + rotateRightButton.Click += rotateRightButton_Click; // // rotateLeftButton // - this.rotateLeftButton.BackColor = System.Drawing.SystemColors.ControlLight; - this.rotateLeftButton.Enabled = false; - this.rotateLeftButton.ForeColor = System.Drawing.Color.Black; - this.rotateLeftButton.Image = ((System.Drawing.Image)(resources.GetObject("rotateLeftButton.Image"))); - this.rotateLeftButton.Name = "rotateLeftButton"; - this.rotateLeftButton.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) - | System.Windows.Forms.Keys.G))); - this.rotateLeftButton.Size = new System.Drawing.Size(243, 24); - this.rotateLeftButton.Text = "rotate left"; - this.rotateLeftButton.Click += new System.EventHandler(this.rotateLeftButton_Click); + rotateLeftButton.BackColor = System.Drawing.SystemColors.ControlLight; + rotateLeftButton.Enabled = false; + rotateLeftButton.ForeColor = System.Drawing.Color.Black; + rotateLeftButton.Image = (System.Drawing.Image)resources.GetObject("rotateLeftButton.Image"); + rotateLeftButton.Name = "rotateLeftButton"; + rotateLeftButton.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift | System.Windows.Forms.Keys.G; + rotateLeftButton.Size = new System.Drawing.Size(243, 24); + rotateLeftButton.Text = "rotate left"; + rotateLeftButton.Click += rotateLeftButton_Click; // // rotate180Button // - this.rotate180Button.BackColor = System.Drawing.SystemColors.ControlLight; - this.rotate180Button.Enabled = false; - this.rotate180Button.ForeColor = System.Drawing.Color.Black; - this.rotate180Button.Image = ((System.Drawing.Image)(resources.GetObject("rotate180Button.Image"))); - this.rotate180Button.Name = "rotate180Button"; - this.rotate180Button.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.J))); - this.rotate180Button.Size = new System.Drawing.Size(243, 24); - this.rotate180Button.Text = "rotate 180"; - this.rotate180Button.Click += new System.EventHandler(this.rotate180Button_Click); + rotate180Button.BackColor = System.Drawing.SystemColors.ControlLight; + rotate180Button.Enabled = false; + rotate180Button.ForeColor = System.Drawing.Color.Black; + rotate180Button.Image = (System.Drawing.Image)resources.GetObject("rotate180Button.Image"); + rotate180Button.Name = "rotate180Button"; + rotate180Button.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.J; + rotate180Button.Size = new System.Drawing.Size(243, 24); + rotate180Button.Text = "rotate 180"; + rotate180Button.Click += rotate180Button_Click; // // customAngleBtn // - this.customAngleBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.customAngleBtn.Enabled = false; - this.customAngleBtn.ForeColor = System.Drawing.Color.Black; - this.customAngleBtn.Image = global::quick_picture_viewer.Properties.Resources.black_angle; - this.customAngleBtn.Name = "customAngleBtn"; - this.customAngleBtn.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) - | System.Windows.Forms.Keys.J))); - this.customAngleBtn.Size = new System.Drawing.Size(243, 24); - this.customAngleBtn.Text = "custom angle"; - this.customAngleBtn.Visible = false; + customAngleBtn.BackColor = System.Drawing.SystemColors.ControlLight; + customAngleBtn.Enabled = false; + customAngleBtn.ForeColor = System.Drawing.Color.Black; + customAngleBtn.Image = Properties.Resources.black_angle; + customAngleBtn.Name = "customAngleBtn"; + customAngleBtn.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift | System.Windows.Forms.Keys.J; + customAngleBtn.Size = new System.Drawing.Size(243, 24); + customAngleBtn.Text = "custom angle"; + customAngleBtn.Visible = false; // // toolStripSeparator7 // - this.toolStripSeparator7.AutoSize = false; - this.toolStripSeparator7.BackColor = System.Drawing.SystemColors.ControlLight; - this.toolStripSeparator7.DarkMode = false; - this.toolStripSeparator7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.toolStripSeparator7.InsideMenu = true; - this.toolStripSeparator7.Margin = new System.Windows.Forms.Padding(4); - this.toolStripSeparator7.Name = "toolStripSeparator7"; - this.toolStripSeparator7.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.toolStripSeparator7.Size = new System.Drawing.Size(240, 6); + toolStripSeparator7.AutoSize = false; + toolStripSeparator7.BackColor = System.Drawing.SystemColors.ControlLight; + toolStripSeparator7.DarkMode = false; + toolStripSeparator7.ForeColor = System.Drawing.Color.FromArgb(100, 100, 100); + toolStripSeparator7.InsideMenu = true; + toolStripSeparator7.Margin = new System.Windows.Forms.Padding(4); + toolStripSeparator7.Name = "toolStripSeparator7"; + toolStripSeparator7.RightToLeft = System.Windows.Forms.RightToLeft.No; + toolStripSeparator7.Size = new System.Drawing.Size(240, 6); // // cropBtn // - this.cropBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.cropBtn.ForeColor = System.Drawing.Color.Black; - this.cropBtn.Image = global::quick_picture_viewer.Properties.Resources.black_crop; - this.cropBtn.Name = "cropBtn"; - this.cropBtn.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) - | System.Windows.Forms.Keys.X))); - this.cropBtn.Size = new System.Drawing.Size(243, 24); - this.cropBtn.Text = "crop"; - this.cropBtn.Click += new System.EventHandler(this.cropBtn_Click); + cropBtn.BackColor = System.Drawing.SystemColors.ControlLight; + cropBtn.ForeColor = System.Drawing.Color.Black; + cropBtn.Image = Properties.Resources.black_crop; + cropBtn.Name = "cropBtn"; + cropBtn.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift | System.Windows.Forms.Keys.X; + cropBtn.Size = new System.Drawing.Size(243, 24); + cropBtn.Text = "crop"; + cropBtn.Click += cropBtn_Click; // - // filteringModeBtn + // effectsBtn // - this.filteringModeBtn.AutoSize = false; - this.filteringModeBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.filteringModeBtn.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.bilinearBtn, - this.nearestNeighborBtn}); - this.filteringModeBtn.Image = global::quick_picture_viewer.Properties.Resources.black_filtering; - this.filteringModeBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.filteringModeBtn.ImageTransparentColor = System.Drawing.Color.Magenta; - this.filteringModeBtn.Margin = new System.Windows.Forms.Padding(0); - this.filteringModeBtn.Name = "filteringModeBtn"; - this.filteringModeBtn.Size = new System.Drawing.Size(30, 25); + effectsBtn.AutoSize = false; + effectsBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + effectsBtn.Image = Properties.Resources.black_effects; + effectsBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + effectsBtn.ImageTransparentColor = System.Drawing.Color.Magenta; + effectsBtn.Margin = new System.Windows.Forms.Padding(0); + effectsBtn.Name = "effectsBtn"; + effectsBtn.Size = new System.Drawing.Size(30, 25); + effectsBtn.Visible = false; + effectsBtn.DropDownOpening += effectsBtn_DropDownOpening; // - // bilinearBtn + // toolsBtn // - this.bilinearBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.bilinearBtn.ForeColor = System.Drawing.Color.Black; - this.bilinearBtn.Image = global::quick_picture_viewer.Properties.Resources.black_bilinear; - this.bilinearBtn.Name = "bilinearBtn"; - this.bilinearBtn.Size = new System.Drawing.Size(186, 24); - this.bilinearBtn.Text = "Bilinear"; - this.bilinearBtn.Click += new System.EventHandler(this.bilinearBtn_Click); + toolsBtn.AutoSize = false; + toolsBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + toolsBtn.Image = Properties.Resources.black_tools; + toolsBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + toolsBtn.ImageTransparentColor = System.Drawing.Color.Magenta; + toolsBtn.Margin = new System.Windows.Forms.Padding(0); + toolsBtn.Name = "toolsBtn"; + toolsBtn.Size = new System.Drawing.Size(30, 25); + toolsBtn.Visible = false; + toolsBtn.DropDownOpening += effectsBtn_DropDownOpening; // - // nearestNeighborBtn + // toolStripSeparator3 // - this.nearestNeighborBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.nearestNeighborBtn.ForeColor = System.Drawing.Color.Black; - this.nearestNeighborBtn.Image = global::quick_picture_viewer.Properties.Resources.black_nearest_neighbor; - this.nearestNeighborBtn.Name = "nearestNeighborBtn"; - this.nearestNeighborBtn.Size = new System.Drawing.Size(186, 24); - this.nearestNeighborBtn.Text = "Nearest Neighbor"; - this.nearestNeighborBtn.Click += new System.EventHandler(this.nearestNeighborBtn_Click); + toolStripSeparator3.AutoSize = false; + toolStripSeparator3.BackColor = System.Drawing.SystemColors.ControlLight; + toolStripSeparator3.DarkMode = false; + toolStripSeparator3.ForeColor = System.Drawing.Color.FromArgb(100, 100, 100); + toolStripSeparator3.InsideMenu = false; + toolStripSeparator3.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + toolStripSeparator3.Name = "toolStripSeparator3"; + toolStripSeparator3.RightToLeft = System.Windows.Forms.RightToLeft.No; + toolStripSeparator3.Size = new System.Drawing.Size(1, 24); // - // effectsBtn + // filteringModeBtn // - this.effectsBtn.AutoSize = false; - this.effectsBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.effectsBtn.Image = global::quick_picture_viewer.Properties.Resources.black_effects; - this.effectsBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.effectsBtn.ImageTransparentColor = System.Drawing.Color.Magenta; - this.effectsBtn.Margin = new System.Windows.Forms.Padding(0); - this.effectsBtn.Name = "effectsBtn"; - this.effectsBtn.Size = new System.Drawing.Size(30, 25); - this.effectsBtn.Visible = false; - this.effectsBtn.DropDownOpening += new System.EventHandler(this.effectsBtn_DropDownOpening); + filteringModeBtn.AutoSize = false; + filteringModeBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + filteringModeBtn.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { bilinearBtn, nearestNeighborBtn }); + filteringModeBtn.Image = Properties.Resources.black_filtering; + filteringModeBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + filteringModeBtn.ImageTransparentColor = System.Drawing.Color.Magenta; + filteringModeBtn.Margin = new System.Windows.Forms.Padding(0); + filteringModeBtn.Name = "filteringModeBtn"; + filteringModeBtn.Size = new System.Drawing.Size(30, 25); // - // toolsBtn + // bilinearBtn + // + bilinearBtn.BackColor = System.Drawing.SystemColors.ControlLight; + bilinearBtn.ForeColor = System.Drawing.Color.Black; + bilinearBtn.Image = Properties.Resources.black_bilinear; + bilinearBtn.Name = "bilinearBtn"; + bilinearBtn.Size = new System.Drawing.Size(186, 24); + bilinearBtn.Text = "Bilinear"; + bilinearBtn.Click += bilinearBtn_Click; + // + // nearestNeighborBtn // - this.toolsBtn.AutoSize = false; - this.toolsBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolsBtn.Image = global::quick_picture_viewer.Properties.Resources.black_tools; - this.toolsBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.toolsBtn.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolsBtn.Margin = new System.Windows.Forms.Padding(0); - this.toolsBtn.Name = "toolsBtn"; - this.toolsBtn.Size = new System.Drawing.Size(30, 25); - this.toolsBtn.Visible = false; - this.toolsBtn.DropDownOpening += new System.EventHandler(this.effectsBtn_DropDownOpening); + nearestNeighborBtn.BackColor = System.Drawing.SystemColors.ControlLight; + nearestNeighborBtn.ForeColor = System.Drawing.Color.Black; + nearestNeighborBtn.Image = Properties.Resources.black_nearest_neighbor; + nearestNeighborBtn.Name = "nearestNeighborBtn"; + nearestNeighborBtn.Size = new System.Drawing.Size(186, 24); + nearestNeighborBtn.Text = "Nearest Neighbor"; + nearestNeighborBtn.Click += nearestNeighborBtn_Click; // // checkboardButton // - this.checkboardButton.AutoSize = false; - this.checkboardButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.checkboardButton.Image = global::quick_picture_viewer.Properties.Resources.black_grid; - this.checkboardButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.checkboardButton.Margin = new System.Windows.Forms.Padding(0); - this.checkboardButton.Name = "checkboardButton"; - this.checkboardButton.Size = new System.Drawing.Size(24, 25); - this.checkboardButton.Click += new System.EventHandler(this.checkboardButton_Click); + checkboardButton.AutoSize = false; + checkboardButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + checkboardButton.Image = Properties.Resources.black_grid; + checkboardButton.ImageTransparentColor = System.Drawing.Color.Magenta; + checkboardButton.Margin = new System.Windows.Forms.Padding(0); + checkboardButton.Name = "checkboardButton"; + checkboardButton.Size = new System.Drawing.Size(24, 25); + checkboardButton.Click += checkboardButton_Click; // // fullscreenBtn // - this.fullscreenBtn.AutoSize = false; - this.fullscreenBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.fullscreenBtn.Image = ((System.Drawing.Image)(resources.GetObject("fullscreenBtn.Image"))); - this.fullscreenBtn.ImageTransparentColor = System.Drawing.Color.Magenta; - this.fullscreenBtn.Margin = new System.Windows.Forms.Padding(0); - this.fullscreenBtn.Name = "fullscreenBtn"; - this.fullscreenBtn.Size = new System.Drawing.Size(24, 25); - this.fullscreenBtn.Click += new System.EventHandler(this.fullscreenButton_Click); + fullscreenBtn.AutoSize = false; + fullscreenBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + fullscreenBtn.Image = (System.Drawing.Image)resources.GetObject("fullscreenBtn.Image"); + fullscreenBtn.ImageTransparentColor = System.Drawing.Color.Magenta; + fullscreenBtn.Margin = new System.Windows.Forms.Padding(0); + fullscreenBtn.Name = "fullscreenBtn"; + fullscreenBtn.Size = new System.Drawing.Size(24, 25); + fullscreenBtn.Click += fullscreenButton_Click; // // miniViewButton // - this.miniViewButton.AutoSize = false; - this.miniViewButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.miniViewButton.Enabled = false; - this.miniViewButton.Image = ((System.Drawing.Image)(resources.GetObject("miniViewButton.Image"))); - this.miniViewButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.miniViewButton.Margin = new System.Windows.Forms.Padding(0); - this.miniViewButton.Name = "miniViewButton"; - this.miniViewButton.Size = new System.Drawing.Size(24, 25); - this.miniViewButton.Click += new System.EventHandler(this.miniViewButton_Click); + miniViewButton.AutoSize = false; + miniViewButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + miniViewButton.Enabled = false; + miniViewButton.Image = (System.Drawing.Image)resources.GetObject("miniViewButton.Image"); + miniViewButton.ImageTransparentColor = System.Drawing.Color.Magenta; + miniViewButton.Margin = new System.Windows.Forms.Padding(0); + miniViewButton.Name = "miniViewButton"; + miniViewButton.Size = new System.Drawing.Size(24, 25); + miniViewButton.Click += miniViewButton_Click; + // + // qlibToolsep1 + // + qlibToolsep1.AutoSize = false; + qlibToolsep1.BackColor = System.Drawing.SystemColors.ControlLight; + qlibToolsep1.DarkMode = false; + qlibToolsep1.ForeColor = System.Drawing.Color.FromArgb(100, 100, 100); + qlibToolsep1.InsideMenu = false; + qlibToolsep1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + qlibToolsep1.Name = "qlibToolsep1"; + qlibToolsep1.RightToLeft = System.Windows.Forms.RightToLeft.No; + qlibToolsep1.Size = new System.Drawing.Size(1, 24); // // moreButton // - this.moreButton.AutoSize = false; - this.moreButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.moreButton.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.reloadButton, - this.deleteBtn, - this.permDeleteBtn, - this.printButton, - this.toolStripSeparator9, - this.backColorBtn, - this.onTopButton, - this.framelessBtn, - this.newWindowButton, - this.qlibToolsep2, - this.pluginManBtn, - this.toolStripSeparator10, - this.settingsButton, - this.aboutBtn}); - this.moreButton.Image = ((System.Drawing.Image)(resources.GetObject("moreButton.Image"))); - this.moreButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.moreButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.moreButton.Margin = new System.Windows.Forms.Padding(0); - this.moreButton.Name = "moreButton"; - this.moreButton.Size = new System.Drawing.Size(30, 25); + moreButton.AutoSize = false; + moreButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + moreButton.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { reloadButton, deleteBtn, permDeleteBtn, printButton, toolStripSeparator9, backColorBtn, onTopButton, framelessBtn, newWindowButton, qlibToolsep2, pluginManBtn, toolStripSeparator10, settingsButton, aboutBtn }); + moreButton.Image = (System.Drawing.Image)resources.GetObject("moreButton.Image"); + moreButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + moreButton.ImageTransparentColor = System.Drawing.Color.Magenta; + moreButton.Margin = new System.Windows.Forms.Padding(0); + moreButton.Name = "moreButton"; + moreButton.Size = new System.Drawing.Size(30, 25); // // reloadButton // - this.reloadButton.BackColor = System.Drawing.SystemColors.ControlLight; - this.reloadButton.Enabled = false; - this.reloadButton.ForeColor = System.Drawing.Color.Black; - this.reloadButton.Image = global::quick_picture_viewer.Properties.Resources.black_sync; - this.reloadButton.Name = "reloadButton"; - this.reloadButton.ShortcutKeys = System.Windows.Forms.Keys.F5; - this.reloadButton.Size = new System.Drawing.Size(262, 24); - this.reloadButton.Text = "reload file"; - this.reloadButton.Click += new System.EventHandler(this.reloadButton_Click); + reloadButton.BackColor = System.Drawing.SystemColors.ControlLight; + reloadButton.Enabled = false; + reloadButton.ForeColor = System.Drawing.Color.Black; + reloadButton.Image = Properties.Resources.black_sync; + reloadButton.Name = "reloadButton"; + reloadButton.ShortcutKeys = System.Windows.Forms.Keys.F5; + reloadButton.Size = new System.Drawing.Size(262, 24); + reloadButton.Text = "reload file"; + reloadButton.Click += reloadButton_Click; // // deleteBtn // - this.deleteBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.deleteBtn.Enabled = false; - this.deleteBtn.ForeColor = System.Drawing.Color.Black; - this.deleteBtn.Image = global::quick_picture_viewer.Properties.Resources.black_trash; - this.deleteBtn.Name = "deleteBtn"; - this.deleteBtn.ShortcutKeys = System.Windows.Forms.Keys.Delete; - this.deleteBtn.Size = new System.Drawing.Size(262, 24); - this.deleteBtn.Text = "move to trash"; - this.deleteBtn.Click += new System.EventHandler(this.deleteButton_Click); + deleteBtn.BackColor = System.Drawing.SystemColors.ControlLight; + deleteBtn.Enabled = false; + deleteBtn.ForeColor = System.Drawing.Color.Black; + deleteBtn.Image = Properties.Resources.black_trash; + deleteBtn.Name = "deleteBtn"; + deleteBtn.ShortcutKeys = System.Windows.Forms.Keys.Delete; + deleteBtn.Size = new System.Drawing.Size(262, 24); + deleteBtn.Text = "move to trash"; + deleteBtn.Click += deleteButton_Click; // // permDeleteBtn // - this.permDeleteBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.permDeleteBtn.Enabled = false; - this.permDeleteBtn.ForeColor = System.Drawing.Color.Black; - this.permDeleteBtn.Image = global::quick_picture_viewer.Properties.Resources.black_permdel; - this.permDeleteBtn.Name = "permDeleteBtn"; - this.permDeleteBtn.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Shift | System.Windows.Forms.Keys.Delete))); - this.permDeleteBtn.Size = new System.Drawing.Size(262, 24); - this.permDeleteBtn.Text = "permanently delete"; - this.permDeleteBtn.Click += new System.EventHandler(this.permDeleteBtn_Click); + permDeleteBtn.BackColor = System.Drawing.SystemColors.ControlLight; + permDeleteBtn.Enabled = false; + permDeleteBtn.ForeColor = System.Drawing.Color.Black; + permDeleteBtn.Image = Properties.Resources.black_permdel; + permDeleteBtn.Name = "permDeleteBtn"; + permDeleteBtn.ShortcutKeys = System.Windows.Forms.Keys.Shift | System.Windows.Forms.Keys.Delete; + permDeleteBtn.Size = new System.Drawing.Size(262, 24); + permDeleteBtn.Text = "permanently delete"; + permDeleteBtn.Click += permDeleteBtn_Click; // // printButton // - this.printButton.BackColor = System.Drawing.SystemColors.ControlLight; - this.printButton.Enabled = false; - this.printButton.ForeColor = System.Drawing.Color.Black; - this.printButton.Image = ((System.Drawing.Image)(resources.GetObject("printButton.Image"))); - this.printButton.Name = "printButton"; - this.printButton.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.P))); - this.printButton.Size = new System.Drawing.Size(262, 24); - this.printButton.Text = "print"; - this.printButton.Click += new System.EventHandler(this.printButton_Click); + printButton.BackColor = System.Drawing.SystemColors.ControlLight; + printButton.Enabled = false; + printButton.ForeColor = System.Drawing.Color.Black; + printButton.Image = (System.Drawing.Image)resources.GetObject("printButton.Image"); + printButton.Name = "printButton"; + printButton.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.P; + printButton.Size = new System.Drawing.Size(262, 24); + printButton.Text = "print"; + printButton.Click += printButton_Click; // // toolStripSeparator9 // - this.toolStripSeparator9.AutoSize = false; - this.toolStripSeparator9.BackColor = System.Drawing.SystemColors.ControlLight; - this.toolStripSeparator9.DarkMode = false; - this.toolStripSeparator9.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.toolStripSeparator9.InsideMenu = true; - this.toolStripSeparator9.Margin = new System.Windows.Forms.Padding(4); - this.toolStripSeparator9.Name = "toolStripSeparator9"; - this.toolStripSeparator9.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.toolStripSeparator9.Size = new System.Drawing.Size(259, 6); + toolStripSeparator9.AutoSize = false; + toolStripSeparator9.BackColor = System.Drawing.SystemColors.ControlLight; + toolStripSeparator9.DarkMode = false; + toolStripSeparator9.ForeColor = System.Drawing.Color.FromArgb(100, 100, 100); + toolStripSeparator9.InsideMenu = true; + toolStripSeparator9.Margin = new System.Windows.Forms.Padding(4); + toolStripSeparator9.Name = "toolStripSeparator9"; + toolStripSeparator9.RightToLeft = System.Windows.Forms.RightToLeft.No; + toolStripSeparator9.Size = new System.Drawing.Size(259, 6); // // backColorBtn // - this.backColorBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.backColorBtn.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.backCustomBtn, - this.qlibMenuSeparator1, - this.backClearBtn}); - this.backColorBtn.ForeColor = System.Drawing.Color.Black; - this.backColorBtn.Image = global::quick_picture_viewer.Properties.Resources.black_palette; - this.backColorBtn.Name = "backColorBtn"; - this.backColorBtn.Size = new System.Drawing.Size(262, 24); - this.backColorBtn.Text = "background color"; + backColorBtn.BackColor = System.Drawing.SystemColors.ControlLight; + backColorBtn.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { backCustomBtn, qlibMenuSeparator1, backClearBtn }); + backColorBtn.ForeColor = System.Drawing.Color.Black; + backColorBtn.Image = Properties.Resources.black_palette; + backColorBtn.Name = "backColorBtn"; + backColorBtn.Size = new System.Drawing.Size(262, 24); + backColorBtn.Text = "background color"; // // backCustomBtn // - this.backCustomBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.backCustomBtn.ForeColor = System.Drawing.Color.Black; - this.backCustomBtn.Image = global::quick_picture_viewer.Properties.Resources.black_palette; - this.backCustomBtn.Name = "backCustomBtn"; - this.backCustomBtn.ShortcutKeys = System.Windows.Forms.Keys.F3; - this.backCustomBtn.Size = new System.Drawing.Size(179, 24); - this.backCustomBtn.Text = "choose color"; - this.backCustomBtn.Click += new System.EventHandler(this.backCustomBtn_Click); + backCustomBtn.BackColor = System.Drawing.SystemColors.ControlLight; + backCustomBtn.ForeColor = System.Drawing.Color.Black; + backCustomBtn.Image = Properties.Resources.black_palette; + backCustomBtn.Name = "backCustomBtn"; + backCustomBtn.ShortcutKeys = System.Windows.Forms.Keys.F3; + backCustomBtn.Size = new System.Drawing.Size(179, 24); + backCustomBtn.Text = "choose color"; + backCustomBtn.Click += backCustomBtn_Click; // // qlibMenuSeparator1 // - this.qlibMenuSeparator1.AutoSize = false; - this.qlibMenuSeparator1.BackColor = System.Drawing.SystemColors.ControlLight; - this.qlibMenuSeparator1.DarkMode = false; - this.qlibMenuSeparator1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.qlibMenuSeparator1.InsideMenu = true; - this.qlibMenuSeparator1.Margin = new System.Windows.Forms.Padding(4); - this.qlibMenuSeparator1.Name = "qlibMenuSeparator1"; - this.qlibMenuSeparator1.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.qlibMenuSeparator1.Size = new System.Drawing.Size(176, 6); + qlibMenuSeparator1.AutoSize = false; + qlibMenuSeparator1.BackColor = System.Drawing.SystemColors.ControlLight; + qlibMenuSeparator1.DarkMode = false; + qlibMenuSeparator1.ForeColor = System.Drawing.Color.FromArgb(100, 100, 100); + qlibMenuSeparator1.InsideMenu = true; + qlibMenuSeparator1.Margin = new System.Windows.Forms.Padding(4); + qlibMenuSeparator1.Name = "qlibMenuSeparator1"; + qlibMenuSeparator1.RightToLeft = System.Windows.Forms.RightToLeft.No; + qlibMenuSeparator1.Size = new System.Drawing.Size(176, 6); // // backClearBtn // - this.backClearBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.backClearBtn.ForeColor = System.Drawing.Color.Black; - this.backClearBtn.Image = ((System.Drawing.Image)(resources.GetObject("backClearBtn.Image"))); - this.backClearBtn.Name = "backClearBtn"; - this.backClearBtn.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F3))); - this.backClearBtn.Size = new System.Drawing.Size(179, 24); - this.backClearBtn.Text = "clear"; - this.backClearBtn.Click += new System.EventHandler(this.backClearBtn_Click); + backClearBtn.BackColor = System.Drawing.SystemColors.ControlLight; + backClearBtn.ForeColor = System.Drawing.Color.Black; + backClearBtn.Image = (System.Drawing.Image)resources.GetObject("backClearBtn.Image"); + backClearBtn.Name = "backClearBtn"; + backClearBtn.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F3; + backClearBtn.Size = new System.Drawing.Size(179, 24); + backClearBtn.Text = "clear"; + backClearBtn.Click += backClearBtn_Click; // // onTopButton // - this.onTopButton.BackColor = System.Drawing.SystemColors.ControlLight; - this.onTopButton.ForeColor = System.Drawing.Color.Black; - this.onTopButton.Image = ((System.Drawing.Image)(resources.GetObject("onTopButton.Image"))); - this.onTopButton.Name = "onTopButton"; - this.onTopButton.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.T))); - this.onTopButton.Size = new System.Drawing.Size(262, 24); - this.onTopButton.Text = "always on top"; - this.onTopButton.Click += new System.EventHandler(this.onTopButton_Click); + onTopButton.BackColor = System.Drawing.SystemColors.ControlLight; + onTopButton.ForeColor = System.Drawing.Color.Black; + onTopButton.Image = (System.Drawing.Image)resources.GetObject("onTopButton.Image"); + onTopButton.Name = "onTopButton"; + onTopButton.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.T; + onTopButton.Size = new System.Drawing.Size(262, 24); + onTopButton.Text = "always on top"; + onTopButton.Click += onTopButton_Click; // // framelessBtn // - this.framelessBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.framelessBtn.ForeColor = System.Drawing.Color.Black; - this.framelessBtn.Image = ((System.Drawing.Image)(resources.GetObject("framelessBtn.Image"))); - this.framelessBtn.Name = "framelessBtn"; - this.framelessBtn.ShortcutKeys = System.Windows.Forms.Keys.F10; - this.framelessBtn.Size = new System.Drawing.Size(262, 24); - this.framelessBtn.Text = "frameless mode"; - this.framelessBtn.Click += new System.EventHandler(this.framelessBtn_Click); + framelessBtn.BackColor = System.Drawing.SystemColors.ControlLight; + framelessBtn.ForeColor = System.Drawing.Color.Black; + framelessBtn.Image = (System.Drawing.Image)resources.GetObject("framelessBtn.Image"); + framelessBtn.Name = "framelessBtn"; + framelessBtn.ShortcutKeys = System.Windows.Forms.Keys.F10; + framelessBtn.Size = new System.Drawing.Size(262, 24); + framelessBtn.Text = "frameless mode"; + framelessBtn.Click += framelessBtn_Click; // // newWindowButton // - this.newWindowButton.BackColor = System.Drawing.SystemColors.ControlLight; - this.newWindowButton.ForeColor = System.Drawing.Color.Black; - this.newWindowButton.Image = global::quick_picture_viewer.Properties.Resources.black_newwindow; - this.newWindowButton.Name = "newWindowButton"; - this.newWindowButton.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N))); - this.newWindowButton.Size = new System.Drawing.Size(262, 24); - this.newWindowButton.Text = "new window"; - this.newWindowButton.Click += new System.EventHandler(this.newWindowButton_Click); + newWindowButton.BackColor = System.Drawing.SystemColors.ControlLight; + newWindowButton.ForeColor = System.Drawing.Color.Black; + newWindowButton.Image = Properties.Resources.black_newwindow; + newWindowButton.Name = "newWindowButton"; + newWindowButton.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N; + newWindowButton.Size = new System.Drawing.Size(262, 24); + newWindowButton.Text = "new window"; + newWindowButton.Click += newWindowButton_Click; // // qlibToolsep2 // - this.qlibToolsep2.AutoSize = false; - this.qlibToolsep2.BackColor = System.Drawing.SystemColors.ControlLight; - this.qlibToolsep2.DarkMode = false; - this.qlibToolsep2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.qlibToolsep2.InsideMenu = true; - this.qlibToolsep2.Margin = new System.Windows.Forms.Padding(4); - this.qlibToolsep2.Name = "qlibToolsep2"; - this.qlibToolsep2.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.qlibToolsep2.Size = new System.Drawing.Size(259, 6); + qlibToolsep2.AutoSize = false; + qlibToolsep2.BackColor = System.Drawing.SystemColors.ControlLight; + qlibToolsep2.DarkMode = false; + qlibToolsep2.ForeColor = System.Drawing.Color.FromArgb(100, 100, 100); + qlibToolsep2.InsideMenu = true; + qlibToolsep2.Margin = new System.Windows.Forms.Padding(4); + qlibToolsep2.Name = "qlibToolsep2"; + qlibToolsep2.RightToLeft = System.Windows.Forms.RightToLeft.No; + qlibToolsep2.Size = new System.Drawing.Size(259, 6); // // pluginManBtn // - this.pluginManBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.pluginManBtn.ForeColor = System.Drawing.Color.Black; - this.pluginManBtn.Image = global::quick_picture_viewer.Properties.Resources.black_plugin; - this.pluginManBtn.Name = "pluginManBtn"; - this.pluginManBtn.ShortcutKeys = System.Windows.Forms.Keys.F2; - this.pluginManBtn.Size = new System.Drawing.Size(262, 24); - this.pluginManBtn.Text = "plugin manager"; - this.pluginManBtn.Click += new System.EventHandler(this.pluginManBtn_Click_1); + pluginManBtn.BackColor = System.Drawing.SystemColors.ControlLight; + pluginManBtn.ForeColor = System.Drawing.Color.Black; + pluginManBtn.Image = Properties.Resources.black_plugin; + pluginManBtn.Name = "pluginManBtn"; + pluginManBtn.ShortcutKeys = System.Windows.Forms.Keys.F2; + pluginManBtn.Size = new System.Drawing.Size(262, 24); + pluginManBtn.Text = "plugin manager"; + pluginManBtn.Click += pluginManBtn_Click_1; // // toolStripSeparator10 // - this.toolStripSeparator10.AutoSize = false; - this.toolStripSeparator10.BackColor = System.Drawing.SystemColors.ControlLight; - this.toolStripSeparator10.DarkMode = false; - this.toolStripSeparator10.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.toolStripSeparator10.InsideMenu = true; - this.toolStripSeparator10.Margin = new System.Windows.Forms.Padding(4); - this.toolStripSeparator10.Name = "toolStripSeparator10"; - this.toolStripSeparator10.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.toolStripSeparator10.Size = new System.Drawing.Size(259, 6); + toolStripSeparator10.AutoSize = false; + toolStripSeparator10.BackColor = System.Drawing.SystemColors.ControlLight; + toolStripSeparator10.DarkMode = false; + toolStripSeparator10.ForeColor = System.Drawing.Color.FromArgb(100, 100, 100); + toolStripSeparator10.InsideMenu = true; + toolStripSeparator10.Margin = new System.Windows.Forms.Padding(4); + toolStripSeparator10.Name = "toolStripSeparator10"; + toolStripSeparator10.RightToLeft = System.Windows.Forms.RightToLeft.No; + toolStripSeparator10.Size = new System.Drawing.Size(259, 6); // // settingsButton // - this.settingsButton.BackColor = System.Drawing.SystemColors.ControlLight; - this.settingsButton.ForeColor = System.Drawing.Color.Black; - this.settingsButton.Image = global::quick_picture_viewer.Properties.Resources.black_settings; - this.settingsButton.Name = "settingsButton"; - this.settingsButton.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Oemcomma))); - this.settingsButton.Size = new System.Drawing.Size(262, 24); - this.settingsButton.Text = "settings"; - this.settingsButton.Click += new System.EventHandler(this.settingsButton_Click); + settingsButton.BackColor = System.Drawing.SystemColors.ControlLight; + settingsButton.ForeColor = System.Drawing.Color.Black; + settingsButton.Image = Properties.Resources.black_settings; + settingsButton.Name = "settingsButton"; + settingsButton.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Oemcomma; + settingsButton.Size = new System.Drawing.Size(262, 24); + settingsButton.Text = "settings"; + settingsButton.Click += settingsButton_Click; // // aboutBtn // - this.aboutBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.aboutBtn.ForeColor = System.Drawing.Color.Black; - this.aboutBtn.Image = global::quick_picture_viewer.Properties.Resources.black_about; - this.aboutBtn.Name = "aboutBtn"; - this.aboutBtn.ShortcutKeys = System.Windows.Forms.Keys.F1; - this.aboutBtn.Size = new System.Drawing.Size(262, 24); - this.aboutBtn.Text = "about"; - this.aboutBtn.Click += new System.EventHandler(this.aboutButton_Click); + aboutBtn.BackColor = System.Drawing.SystemColors.ControlLight; + aboutBtn.ForeColor = System.Drawing.Color.Black; + aboutBtn.Image = Properties.Resources.black_about; + aboutBtn.Name = "aboutBtn"; + aboutBtn.ShortcutKeys = System.Windows.Forms.Keys.F1; + aboutBtn.Size = new System.Drawing.Size(262, 24); + aboutBtn.Text = "about"; + aboutBtn.Click += aboutButton_Click; // // framelessCloseBtn // - this.framelessCloseBtn.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; - this.framelessCloseBtn.AutoSize = false; - this.framelessCloseBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.framelessCloseBtn.Image = global::quick_picture_viewer.Properties.Resources.black_close; - this.framelessCloseBtn.Margin = new System.Windows.Forms.Padding(0); - this.framelessCloseBtn.Name = "framelessCloseBtn"; - this.framelessCloseBtn.Size = new System.Drawing.Size(24, 25); - this.framelessCloseBtn.Visible = false; - this.framelessCloseBtn.Click += new System.EventHandler(this.framelessCloseBtn_Click); + framelessCloseBtn.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + framelessCloseBtn.AutoSize = false; + framelessCloseBtn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + framelessCloseBtn.Image = Properties.Resources.black_close; + framelessCloseBtn.Margin = new System.Windows.Forms.Padding(0); + framelessCloseBtn.Name = "framelessCloseBtn"; + framelessCloseBtn.Size = new System.Drawing.Size(24, 25); + framelessCloseBtn.Visible = false; + framelessCloseBtn.Click += framelessCloseBtn_Click; // - // pictureBox + // rmbMenu // - this.pictureBox.BackColor = System.Drawing.Color.Transparent; - this.pictureBox.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.pictureBox.InitialImage = null; - this.pictureBox.Location = new System.Drawing.Point(0, 0); - this.pictureBox.Margin = new System.Windows.Forms.Padding(0); - this.pictureBox.Name = "pictureBox"; - this.pictureBox.Size = new System.Drawing.Size(684, 385); - this.pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.pictureBox.TabIndex = 0; - this.pictureBox.TabStop = false; - this.pictureBox.DoubleClick += new System.EventHandler(this.picturePanel_DoubleClick); - this.pictureBox.MouseClick += new System.Windows.Forms.MouseEventHandler(this.picturePanel_MouseClick); - this.pictureBox.MouseDown += new System.Windows.Forms.MouseEventHandler(this.picturePanel_MouseDown); - this.pictureBox.MouseEnter += new System.EventHandler(this.picturePanel_MouseEnter); - this.pictureBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.picturePanel_MouseMove); - this.pictureBox.MouseUp += new System.Windows.Forms.MouseEventHandler(this.picturePanel_MouseUp); + rmbMenu.BackColor = System.Drawing.SystemColors.ControlLight; + rmbMenu.DarkMode = false; + rmbMenu.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 204); + rmbMenu.ForeColor = System.Drawing.Color.Black; + rmbMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { showMenuItem, qlibToolsep5, wallpaperBtn, qlibToolsep3, copyBtn, pasteBtn, selectAllBtn }); + rmbMenu.Name = "rmbMenu"; + rmbMenu.Size = new System.Drawing.Size(288, 152); + rmbMenu.Opening += rmbMenu_Opening; // // showMenuItem // - this.showMenuItem.BackColor = System.Drawing.SystemColors.ControlLight; - this.showMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.showNavArrowsBtn, - this.showToolbarBtn, - this.showStatusbarBtn}); - this.showMenuItem.Font = new System.Drawing.Font("Segoe UI", 10F); - this.showMenuItem.ForeColor = System.Drawing.Color.Black; - this.showMenuItem.Image = global::quick_picture_viewer.Properties.Resources.black_show; - this.showMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.showMenuItem.Name = "showMenuItem"; - this.showMenuItem.Size = new System.Drawing.Size(287, 24); - this.showMenuItem.Text = "view"; + showMenuItem.BackColor = System.Drawing.SystemColors.ControlLight; + showMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { showNavArrowsBtn, showToolbarBtn, showStatusbarBtn }); + showMenuItem.Font = new System.Drawing.Font("Segoe UI", 10F); + showMenuItem.ForeColor = System.Drawing.Color.Black; + showMenuItem.Image = Properties.Resources.black_show; + showMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + showMenuItem.Name = "showMenuItem"; + showMenuItem.Size = new System.Drawing.Size(287, 24); + showMenuItem.Text = "view"; // // showNavArrowsBtn // - this.showNavArrowsBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.showNavArrowsBtn.Font = new System.Drawing.Font("Segoe UI", 10F); - this.showNavArrowsBtn.ForeColor = System.Drawing.Color.Black; - this.showNavArrowsBtn.Image = global::quick_picture_viewer.Properties.Resources.black_arrows; - this.showNavArrowsBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.showNavArrowsBtn.Name = "showNavArrowsBtn"; - this.showNavArrowsBtn.ShortcutKeys = System.Windows.Forms.Keys.F6; - this.showNavArrowsBtn.Size = new System.Drawing.Size(205, 24); - this.showNavArrowsBtn.Text = "show nav arrows"; - this.showNavArrowsBtn.Click += new System.EventHandler(this.showNavArrowsBtn_Click); + showNavArrowsBtn.BackColor = System.Drawing.SystemColors.ControlLight; + showNavArrowsBtn.Font = new System.Drawing.Font("Segoe UI", 10F); + showNavArrowsBtn.ForeColor = System.Drawing.Color.Black; + showNavArrowsBtn.Image = Properties.Resources.black_arrows; + showNavArrowsBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + showNavArrowsBtn.Name = "showNavArrowsBtn"; + showNavArrowsBtn.ShortcutKeys = System.Windows.Forms.Keys.F6; + showNavArrowsBtn.Size = new System.Drawing.Size(205, 24); + showNavArrowsBtn.Text = "show nav arrows"; + showNavArrowsBtn.Click += showNavArrowsBtn_Click; // // showToolbarBtn // - this.showToolbarBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.showToolbarBtn.Font = new System.Drawing.Font("Segoe UI", 10F); - this.showToolbarBtn.ForeColor = System.Drawing.Color.Black; - this.showToolbarBtn.Image = global::quick_picture_viewer.Properties.Resources.black_toolbar; - this.showToolbarBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.showToolbarBtn.Name = "showToolbarBtn"; - this.showToolbarBtn.ShortcutKeys = System.Windows.Forms.Keys.F7; - this.showToolbarBtn.Size = new System.Drawing.Size(205, 24); - this.showToolbarBtn.Text = "show toolbar"; - this.showToolbarBtn.Click += new System.EventHandler(this.showToolbarBtn_Click); + showToolbarBtn.BackColor = System.Drawing.SystemColors.ControlLight; + showToolbarBtn.Font = new System.Drawing.Font("Segoe UI", 10F); + showToolbarBtn.ForeColor = System.Drawing.Color.Black; + showToolbarBtn.Image = Properties.Resources.black_toolbar; + showToolbarBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + showToolbarBtn.Name = "showToolbarBtn"; + showToolbarBtn.ShortcutKeys = System.Windows.Forms.Keys.F7; + showToolbarBtn.Size = new System.Drawing.Size(205, 24); + showToolbarBtn.Text = "show toolbar"; + showToolbarBtn.Click += showToolbarBtn_Click; // // showStatusbarBtn // - this.showStatusbarBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.showStatusbarBtn.Font = new System.Drawing.Font("Segoe UI", 10F); - this.showStatusbarBtn.ForeColor = System.Drawing.Color.Black; - this.showStatusbarBtn.Image = global::quick_picture_viewer.Properties.Resources.black_statusbar; - this.showStatusbarBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.showStatusbarBtn.Name = "showStatusbarBtn"; - this.showStatusbarBtn.ShortcutKeys = System.Windows.Forms.Keys.F8; - this.showStatusbarBtn.Size = new System.Drawing.Size(205, 24); - this.showStatusbarBtn.Text = "show status bar"; - this.showStatusbarBtn.Click += new System.EventHandler(this.showStatusBarBtn_Click); + showStatusbarBtn.BackColor = System.Drawing.SystemColors.ControlLight; + showStatusbarBtn.Font = new System.Drawing.Font("Segoe UI", 10F); + showStatusbarBtn.ForeColor = System.Drawing.Color.Black; + showStatusbarBtn.Image = Properties.Resources.black_statusbar; + showStatusbarBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + showStatusbarBtn.Name = "showStatusbarBtn"; + showStatusbarBtn.ShortcutKeys = System.Windows.Forms.Keys.F8; + showStatusbarBtn.Size = new System.Drawing.Size(205, 24); + showStatusbarBtn.Text = "show status bar"; + showStatusbarBtn.Click += showStatusBarBtn_Click; + // + // qlibToolsep5 + // + qlibToolsep5.AutoSize = false; + qlibToolsep5.BackColor = System.Drawing.SystemColors.ControlLight; + qlibToolsep5.DarkMode = false; + qlibToolsep5.ForeColor = System.Drawing.Color.FromArgb(100, 100, 100); + qlibToolsep5.InsideMenu = true; + qlibToolsep5.Margin = new System.Windows.Forms.Padding(4); + qlibToolsep5.Name = "qlibToolsep5"; + qlibToolsep5.RightToLeft = System.Windows.Forms.RightToLeft.No; + qlibToolsep5.Size = new System.Drawing.Size(284, 6); // // wallpaperBtn // - this.wallpaperBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.wallpaperBtn.Enabled = false; - this.wallpaperBtn.ForeColor = System.Drawing.Color.Black; - this.wallpaperBtn.Image = global::quick_picture_viewer.Properties.Resources.black_desktop; - this.wallpaperBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.wallpaperBtn.Name = "wallpaperBtn"; - this.wallpaperBtn.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.B))); - this.wallpaperBtn.Size = new System.Drawing.Size(287, 24); - this.wallpaperBtn.Text = "set as desktop background"; - this.wallpaperBtn.Click += new System.EventHandler(this.wallpaperBtn_Click); + wallpaperBtn.BackColor = System.Drawing.SystemColors.ControlLight; + wallpaperBtn.Enabled = false; + wallpaperBtn.ForeColor = System.Drawing.Color.Black; + wallpaperBtn.Image = Properties.Resources.black_desktop; + wallpaperBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + wallpaperBtn.Name = "wallpaperBtn"; + wallpaperBtn.ShortcutKeys = System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.B; + wallpaperBtn.Size = new System.Drawing.Size(287, 24); + wallpaperBtn.Text = "set as desktop background"; + wallpaperBtn.Click += wallpaperBtn_Click; + // + // qlibToolsep3 + // + qlibToolsep3.AutoSize = false; + qlibToolsep3.BackColor = System.Drawing.SystemColors.ControlLight; + qlibToolsep3.DarkMode = false; + qlibToolsep3.ForeColor = System.Drawing.Color.FromArgb(100, 100, 100); + qlibToolsep3.InsideMenu = true; + qlibToolsep3.Margin = new System.Windows.Forms.Padding(4); + qlibToolsep3.Name = "qlibToolsep3"; + qlibToolsep3.RightToLeft = System.Windows.Forms.RightToLeft.No; + qlibToolsep3.Size = new System.Drawing.Size(284, 6); // // copyBtn // - this.copyBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.copyBtn.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.copyImageBtn, - this.copyFileBtn}); - this.copyBtn.ForeColor = System.Drawing.Color.Black; - this.copyBtn.Image = global::quick_picture_viewer.Properties.Resources.black_copy; - this.copyBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.copyBtn.Name = "copyBtn"; - this.copyBtn.Size = new System.Drawing.Size(287, 24); - this.copyBtn.Text = "copy"; + copyBtn.BackColor = System.Drawing.SystemColors.ControlLight; + copyBtn.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { copyImageBtn, copyFileBtn }); + copyBtn.ForeColor = System.Drawing.Color.Black; + copyBtn.Image = Properties.Resources.black_copy; + copyBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + copyBtn.Name = "copyBtn"; + copyBtn.Size = new System.Drawing.Size(287, 24); + copyBtn.Text = "copy"; // // copyImageBtn // - this.copyImageBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.copyImageBtn.ForeColor = System.Drawing.Color.Black; - this.copyImageBtn.Image = global::quick_picture_viewer.Properties.Resources.black_image; - this.copyImageBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.copyImageBtn.Name = "copyImageBtn"; - this.copyImageBtn.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C))); - this.copyImageBtn.Size = new System.Drawing.Size(215, 24); - this.copyImageBtn.Text = "copy image"; - this.copyImageBtn.Click += new System.EventHandler(this.copyImageBtn_Click); - this.copyImageBtn.EnabledChanged += new System.EventHandler(this.copyImageBtn_EnabledChanged); + copyImageBtn.BackColor = System.Drawing.SystemColors.ControlLight; + copyImageBtn.ForeColor = System.Drawing.Color.Black; + copyImageBtn.Image = Properties.Resources.black_image; + copyImageBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + copyImageBtn.Name = "copyImageBtn"; + copyImageBtn.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C; + copyImageBtn.Size = new System.Drawing.Size(215, 24); + copyImageBtn.Text = "copy image"; + copyImageBtn.Click += copyImageBtn_Click; + copyImageBtn.EnabledChanged += copyImageBtn_EnabledChanged; // // copyFileBtn // - this.copyFileBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.copyFileBtn.ForeColor = System.Drawing.Color.Black; - this.copyFileBtn.Image = global::quick_picture_viewer.Properties.Resources.black_imgfile; - this.copyFileBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.copyFileBtn.Name = "copyFileBtn"; - this.copyFileBtn.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) - | System.Windows.Forms.Keys.C))); - this.copyFileBtn.Size = new System.Drawing.Size(215, 24); - this.copyFileBtn.Text = "copy file"; - this.copyFileBtn.Click += new System.EventHandler(this.copyFileBtn_Click_1); - this.copyFileBtn.EnabledChanged += new System.EventHandler(this.copyImageBtn_EnabledChanged); + copyFileBtn.BackColor = System.Drawing.SystemColors.ControlLight; + copyFileBtn.ForeColor = System.Drawing.Color.Black; + copyFileBtn.Image = Properties.Resources.black_imgfile; + copyFileBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + copyFileBtn.Name = "copyFileBtn"; + copyFileBtn.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift | System.Windows.Forms.Keys.C; + copyFileBtn.Size = new System.Drawing.Size(215, 24); + copyFileBtn.Text = "copy file"; + copyFileBtn.Click += copyFileBtn_Click_1; + copyFileBtn.EnabledChanged += copyImageBtn_EnabledChanged; // // pasteBtn // - this.pasteBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.pasteBtn.ForeColor = System.Drawing.Color.Black; - this.pasteBtn.Image = global::quick_picture_viewer.Properties.Resources.black_paste; - this.pasteBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.pasteBtn.Name = "pasteBtn"; - this.pasteBtn.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V))); - this.pasteBtn.Size = new System.Drawing.Size(287, 24); - this.pasteBtn.Text = "paste"; - this.pasteBtn.Click += new System.EventHandler(this.pasteBtn_Click); + pasteBtn.BackColor = System.Drawing.SystemColors.ControlLight; + pasteBtn.ForeColor = System.Drawing.Color.Black; + pasteBtn.Image = Properties.Resources.black_paste; + pasteBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + pasteBtn.Name = "pasteBtn"; + pasteBtn.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V; + pasteBtn.Size = new System.Drawing.Size(287, 24); + pasteBtn.Text = "paste"; + pasteBtn.Click += pasteBtn_Click; // // selectAllBtn // - this.selectAllBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.selectAllBtn.Enabled = false; - this.selectAllBtn.ForeColor = System.Drawing.Color.Black; - this.selectAllBtn.Image = global::quick_picture_viewer.Properties.Resources.black_selectall; - this.selectAllBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; - this.selectAllBtn.Name = "selectAllBtn"; - this.selectAllBtn.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.A))); - this.selectAllBtn.Size = new System.Drawing.Size(287, 24); - this.selectAllBtn.Text = "select all"; - this.selectAllBtn.Click += new System.EventHandler(this.selectAllBtn_Click); + selectAllBtn.BackColor = System.Drawing.SystemColors.ControlLight; + selectAllBtn.Enabled = false; + selectAllBtn.ForeColor = System.Drawing.Color.Black; + selectAllBtn.Image = Properties.Resources.black_selectall; + selectAllBtn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + selectAllBtn.Name = "selectAllBtn"; + selectAllBtn.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.A; + selectAllBtn.Size = new System.Drawing.Size(287, 24); + selectAllBtn.Text = "select all"; + selectAllBtn.Click += selectAllBtn_Click; + // + // suggestionLabel + // + suggestionLabel.AutoSize = true; + suggestionLabel.BackColor = System.Drawing.Color.Black; + suggestionLabel.Font = new System.Drawing.Font("Segoe UI", 10F); + suggestionLabel.ForeColor = System.Drawing.Color.White; + suggestionLabel.ImeMode = System.Windows.Forms.ImeMode.NoControl; + suggestionLabel.Location = new System.Drawing.Point(53, 59); + suggestionLabel.Margin = new System.Windows.Forms.Padding(0, 27, 0, 0); + suggestionLabel.Name = "suggestionLabel"; + suggestionLabel.Padding = new System.Windows.Forms.Padding(0, 3, 3, 4); + suggestionLabel.Size = new System.Drawing.Size(79, 26); + suggestionLabel.TabIndex = 3; + suggestionLabel.Text = "suggestion"; + suggestionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + suggestionLabel.Visible = false; + // + // picturePanel + // + picturePanel.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; + picturePanel.AutoScroll = true; + picturePanel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + picturePanel.BackColor = System.Drawing.Color.Transparent; + picturePanel.Controls.Add(pleaseOpenLabel); + picturePanel.Controls.Add(pictureBox); + picturePanel.Location = new System.Drawing.Point(0, 32); + picturePanel.Margin = new System.Windows.Forms.Padding(0); + picturePanel.Name = "picturePanel"; + picturePanel.Size = new System.Drawing.Size(684, 385); + picturePanel.TabIndex = 2; + picturePanel.SizeChanged += picturePanel_SizeChanged; + picturePanel.DoubleClick += picturePanel_DoubleClick; + picturePanel.MouseClick += picturePanel_MouseClick; + picturePanel.MouseDown += picturePanel_MouseDown; + picturePanel.MouseEnter += picturePanel_MouseEnter; + picturePanel.MouseMove += picturePanel_MouseMove; + picturePanel.MouseUp += picturePanel_MouseUp; + // + // pleaseOpenLabel + // + pleaseOpenLabel.Dock = System.Windows.Forms.DockStyle.Fill; + pleaseOpenLabel.Enabled = false; + pleaseOpenLabel.Font = new System.Drawing.Font("Segoe UI", 10F); + pleaseOpenLabel.ImeMode = System.Windows.Forms.ImeMode.NoControl; + pleaseOpenLabel.Location = new System.Drawing.Point(0, 0); + pleaseOpenLabel.Margin = new System.Windows.Forms.Padding(0); + pleaseOpenLabel.Name = "pleaseOpenLabel"; + pleaseOpenLabel.Size = new System.Drawing.Size(684, 385); + pleaseOpenLabel.TabIndex = 5; + pleaseOpenLabel.Text = "please open image"; + pleaseOpenLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + pleaseOpenLabel.DoubleClick += picturePanel_DoubleClick; + // + // pictureBox + // + pictureBox.BackColor = System.Drawing.Color.Transparent; + pictureBox.Dock = System.Windows.Forms.DockStyle.Fill; + pictureBox.ImeMode = System.Windows.Forms.ImeMode.NoControl; + pictureBox.InitialImage = null; + pictureBox.Location = new System.Drawing.Point(0, 0); + pictureBox.Margin = new System.Windows.Forms.Padding(0); + pictureBox.Name = "pictureBox"; + pictureBox.Size = new System.Drawing.Size(684, 385); + pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + pictureBox.TabIndex = 0; + pictureBox.TabStop = false; + pictureBox.DoubleClick += picturePanel_DoubleClick; + pictureBox.MouseClick += picturePanel_MouseClick; + pictureBox.MouseDown += picturePanel_MouseDown; + pictureBox.MouseEnter += picturePanel_MouseEnter; + pictureBox.MouseMove += picturePanel_MouseMove; + pictureBox.MouseUp += picturePanel_MouseUp; + // + // suggestionIcon + // + suggestionIcon.BackColor = System.Drawing.Color.Black; + suggestionIcon.ImeMode = System.Windows.Forms.ImeMode.NoControl; + suggestionIcon.Location = new System.Drawing.Point(27, 59); + suggestionIcon.Margin = new System.Windows.Forms.Padding(27, 27, 0, 0); + suggestionIcon.Name = "suggestionIcon"; + suggestionIcon.Size = new System.Drawing.Size(26, 26); + suggestionIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + suggestionIcon.TabIndex = 6; + suggestionIcon.TabStop = false; + suggestionIcon.Visible = false; + // + // navNextBtn + // + navNextBtn.Anchor = System.Windows.Forms.AnchorStyles.Right; + navNextBtn.BackColor = System.Drawing.Color.Black; + navNextBtn.FlatAppearance.BorderSize = 0; + navNextBtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(67, 67, 67); + navNextBtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(56, 56, 56); + navNextBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + navNextBtn.Font = new System.Drawing.Font("Segoe UI", 9.75F); + navNextBtn.ForeColor = System.Drawing.SystemColors.ControlText; + navNextBtn.Image = Properties.Resources.white_next; + navNextBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; + navNextBtn.Location = new System.Drawing.Point(625, 193); + navNextBtn.Margin = new System.Windows.Forms.Padding(27); + navNextBtn.Name = "navNextBtn"; + navNextBtn.Size = new System.Drawing.Size(32, 64); + navNextBtn.TabIndex = 8; + navNextBtn.TabStop = false; + navNextBtn.UseVisualStyleBackColor = false; + navNextBtn.Visible = false; + navNextBtn.Click += navNextBtn_Click; + // + // navPrevBtn + // + navPrevBtn.Anchor = System.Windows.Forms.AnchorStyles.Left; + navPrevBtn.BackColor = System.Drawing.Color.Black; + navPrevBtn.FlatAppearance.BorderSize = 0; + navPrevBtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(67, 67, 67); + navPrevBtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(56, 56, 56); + navPrevBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + navPrevBtn.Font = new System.Drawing.Font("Segoe UI", 9.75F); + navPrevBtn.ForeColor = System.Drawing.SystemColors.ControlText; + navPrevBtn.Image = Properties.Resources.white_prev; + navPrevBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; + navPrevBtn.Location = new System.Drawing.Point(27, 193); + navPrevBtn.Margin = new System.Windows.Forms.Padding(27); + navPrevBtn.Name = "navPrevBtn"; + navPrevBtn.Size = new System.Drawing.Size(32, 64); + navPrevBtn.TabIndex = 7; + navPrevBtn.TabStop = false; + navPrevBtn.UseVisualStyleBackColor = false; + navPrevBtn.Visible = false; + navPrevBtn.Click += navPrevBtn_Click; + // + // typeOpsButton + // + typeOpsButton.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right; + typeOpsButton.BackColor = System.Drawing.Color.Black; + typeOpsButton.FlatAppearance.BorderSize = 0; + typeOpsButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(67, 67, 67); + typeOpsButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(56, 56, 56); + typeOpsButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + typeOpsButton.Font = new System.Drawing.Font("Segoe UI", 10F); + typeOpsButton.ForeColor = System.Drawing.Color.White; + typeOpsButton.Image = Properties.Resources.white_options; + typeOpsButton.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; + typeOpsButton.ImeMode = System.Windows.Forms.ImeMode.NoControl; + typeOpsButton.Location = new System.Drawing.Point(537, 358); + typeOpsButton.Margin = new System.Windows.Forms.Padding(27); + typeOpsButton.Name = "typeOpsButton"; + typeOpsButton.Size = new System.Drawing.Size(120, 32); + typeOpsButton.TabIndex = 0; + typeOpsButton.TabStop = false; + typeOpsButton.Text = " type options"; + typeOpsButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + typeOpsButton.UseVisualStyleBackColor = false; + typeOpsButton.Visible = false; + typeOpsButton.Click += typeOpsButton_Click; // // MainForm // - this.AllowDrop = true; - this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; - this.BackColor = System.Drawing.SystemColors.Control; - this.ClientSize = new System.Drawing.Size(684, 446); - this.Controls.Add(this.suggestionIcon); - this.Controls.Add(this.suggestionLabel); - this.Controls.Add(this.navNextBtn); - this.Controls.Add(this.navPrevBtn); - this.Controls.Add(this.typeOpsButton); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.toolStrip1); - this.Controls.Add(this.picturePanel); - this.Font = new System.Drawing.Font("Segoe UI", 10F); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.KeyPreview = true; - this.MinimumSize = new System.Drawing.Size(420, 320); - this.Name = "MainForm"; - this.Text = "Quick Picture Viewer"; - this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.MainForm_FormClosed); - this.Shown += new System.EventHandler(this.MainForm_Shown); - this.ResizeEnd += new System.EventHandler(this.MainForm_ResizeEnd); - this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyDown); - ((System.ComponentModel.ISupportInitialize)(this.fileSystemWatcher1)).EndInit(); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.toolStrip1.ResumeLayout(false); - this.toolStrip1.PerformLayout(); - this.rmbMenu.ResumeLayout(false); - this.picturePanel.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.suggestionIcon)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - + AllowDrop = true; + AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); + AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; + BackColor = System.Drawing.SystemColors.Control; + ClientSize = new System.Drawing.Size(684, 446); + Controls.Add(suggestionIcon); + Controls.Add(suggestionLabel); + Controls.Add(navNextBtn); + Controls.Add(navPrevBtn); + Controls.Add(typeOpsButton); + Controls.Add(statusStrip1); + Controls.Add(toolStrip1); + Controls.Add(picturePanel); + Font = new System.Drawing.Font("Segoe UI", 10F); + Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon"); + KeyPreview = true; + MinimumSize = new System.Drawing.Size(420, 320); + Name = "MainForm"; + Text = "Quick Picture Viewer"; + FormClosed += MainForm_FormClosed; + Shown += MainForm_Shown; + ResizeEnd += MainForm_ResizeEnd; + KeyDown += MainForm_KeyDown; + ((System.ComponentModel.ISupportInitialize)fileSystemWatcher1).EndInit(); + statusStrip1.ResumeLayout(false); + statusStrip1.PerformLayout(); + toolStrip1.ResumeLayout(false); + toolStrip1.PerformLayout(); + rmbMenu.ResumeLayout(false); + picturePanel.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)pictureBox).EndInit(); + ((System.ComponentModel.ISupportInitialize)suggestionIcon).EndInit(); + ResumeLayout(false); + PerformLayout(); } #endregion diff --git a/quick-picture-viewer/forms/MainForm.cs b/quick-picture-viewer/forms/MainForm.cs index 6db28557..f19f6be4 100644 --- a/quick-picture-viewer/forms/MainForm.cs +++ b/quick-picture-viewer/forms/MainForm.cs @@ -11,7 +11,6 @@ using System.Linq; using System.Timers; using System.Windows.Forms; -using static System.Net.Mime.MediaTypeNames; namespace quick_picture_viewer { @@ -238,8 +237,6 @@ private void InitLanguage() hasChangesLabel.Text = " " + LangMan.Get("not-saved"); zoomLabel.Text = " " + LangMan.Get("zoom") + ": " + LangMan.Get("auto"); - selectionLabel.ToolTipText = LangMan.Get("edit-selection") + " ... | Alt+S"; - directoryLabel.ToolTipText = LangMan.Get("show-file-explorer") + " | Ctrl+Shift+L"; effectsBtn.Text = LangMan.Get("effects"); filteringModeBtn.Text = LangMan.Get("filtering"); @@ -364,7 +361,7 @@ private void UpdateMan_IsUpToDate(object sender, EventArgs e) private void UpdateMan_UpdateFailed(object sender, UpdateFailedEventArgs e) { showSuggestion( - LangMan.Get("update-failed") + ": " + (e.Exception.Message.Length > 64 ? e.Exception.Message.Substring(0, 64) + "..." : e.Exception.Message), + LangMan.Get("update-failed") + ": " + (e.Exception.Message.Length > 64 ? e.Exception.Message.Substring(0, 64) + "..." : e.Exception.Message), SuggestionIcon.Warning ); } @@ -413,8 +410,8 @@ public void openImage(Bitmap bitmap, string directoryName, string fileName) this, LangMan.Get("unsaved-changes-question"), windowTitle: LangMan.Get("unsaved-changes"), - yesBtnText: currentFile != null ? LangMan.Get("save-as") : LangMan.Get("save"), - yesBtnImage: currentFile != null ? saveAsBtn.Image : saveBtn.Image, + yesBtnText: currentFile == null ? LangMan.Get("save-as") : LangMan.Get("save"), + yesBtnImage: currentFile == null ? saveAsBtn.Image : saveBtn.Image, showNoBtn: true, noBtnText: LangMan.Get("dont-save"), noBtnImage: permDeleteBtn.Image, @@ -423,7 +420,7 @@ public void openImage(Bitmap bitmap, string directoryName, string fileName) ); if (window == DialogResult.Yes) { - if (currentFile != null) saveAsBtn.PerformClick(); + if (currentFile == null) saveAsBtn.PerformClick(); else saveBtn.PerformClick(); } else if (window != DialogResult.No) return; @@ -440,7 +437,7 @@ public void openImage(Bitmap bitmap, string directoryName, string fileName) pictureBox.Image = null; } - const int exifOrientationID = 0x112; + const int exifOrientationID = 0x112; if (bitmap.PropertyIdList.Contains(exifOrientationID)) { var prop = bitmap.GetPropertyItem(exifOrientationID); @@ -1586,8 +1583,8 @@ protected override void OnClosing(CancelEventArgs e) this, LangMan.Get("unsaved-changes-question"), windowTitle: LangMan.Get("unsaved-changes"), - yesBtnText: currentFile != null ? LangMan.Get("save-as") : LangMan.Get("save"), - yesBtnImage: currentFile != null ? saveAsBtn.Image : saveBtn.Image, + yesBtnText: currentFile == null ? LangMan.Get("save-as") : LangMan.Get("save"), + yesBtnImage: currentFile == null ? saveAsBtn.Image : saveBtn.Image, showNoBtn: true, noBtnText: LangMan.Get("dont-save"), noBtnImage: permDeleteBtn.Image, @@ -1596,7 +1593,7 @@ protected override void OnClosing(CancelEventArgs e) ); if (window == DialogResult.Yes) { - if (currentFile != null) saveAsBtn.PerformClick(); + if (currentFile == null) saveAsBtn.PerformClick(); else saveBtn.PerformClick(); } else if (window != DialogResult.No) e.Cancel = true; @@ -1770,7 +1767,7 @@ private void rotate180Button_Click(object sender, EventArgs e) } else { - originalImage.RotateFlip(RotateFlipType.Rotate180FlipNone); + originalImage.RotateFlip(RotateFlipType.Rotate180FlipNone); } pictureBox.Image = originalImage; setImageChanged(true); @@ -1871,7 +1868,7 @@ private void externalBtn_DropDownOpened(object sender, EventArgs e) if (lastSlashIndex >= 0) { string appName = Properties.Settings.Default.FavoriteExternalApp.Substring( - lastSlashIndex + 1, + lastSlashIndex + 1, Properties.Settings.Default.FavoriteExternalApp.Length - lastSlashIndex - 1 ); externalFavoriteBtn.Text = LangMan.Get("open-with") + " \"" + appName + "\""; @@ -2014,7 +2011,7 @@ private void Tsmi_Output(object sender, PluginMan.OutputEventArgs e) if (title.Length > 4 && title.Substring(title.Length - 4, 4) == " ...") title = title.Substring(0, title.Length - 4); title = string.Format(LangMan.Get("from-format"), title); - if((sender as PluginMenuItem).OwnerItem.Name == "effectsBtn") + if ((sender as PluginMenuItem).OwnerItem.Name == "effectsBtn") { originalImage = e.input as Bitmap; pictureBox.Image = originalImage; @@ -2256,10 +2253,10 @@ private Rectangle GetSelectionRect() } else if (result.Width > originalImage.Width - result.X) result.Width = originalImage.Width - result.X; - if (result.Y < 0) + if (result.Y < 0) { result.Height += result.Y; - result.Y = 0; + result.Y = 0; } else if (result.Height > originalImage.Height - result.Y) result.Height = originalImage.Height - result.Y; @@ -2306,7 +2303,7 @@ private void nextButton_VisibleChanged(object sender, EventArgs e) navNextBtn.Visible = !nextButton.Visible && nextButton.Enabled; navPrevBtn.Visible = navNextBtn.Visible; - + Properties.Settings.Default.ShowNavArrows = !nextButton.Visible; Properties.Settings.Default.Save(); showNavArrowsBtn.Checked = Properties.Settings.Default.ShowNavArrows; @@ -2346,7 +2343,7 @@ public void CutSelection() showSuggestion(LangMan.Get("image-copied-to-clipboard"), SuggestionIcon.Check); Rectangle topRect = new Rectangle(0, 0, originalImage.Width, r.Y); - Bitmap topPart = topRect.Width > 0 && topRect.Height > 0 ? originalImage.Clone(topRect, originalImage.PixelFormat) : null; + Bitmap topPart = topRect.Width > 0 && topRect.Height > 0 ? originalImage.Clone(topRect, originalImage.PixelFormat) : null; Rectangle leftRect = new Rectangle(0, r.Y, r.X, r.Height); Bitmap leftPart = leftRect.Width > 0 && leftRect.Height > 0 ? originalImage.Clone(leftRect, originalImage.PixelFormat) : null; @@ -2478,10 +2475,10 @@ private void openFolderBtn_Click(object sender, EventArgs e) { setSlideshow(false); string p = CustomOpenFolderDialog.GetFolder(LangMan.Get("open-folder")); - if (p != null) + if (p != null) { recursiveFolder = null; - openFirstFileInFolder(p); + openFirstFileInFolder(p); } } @@ -2510,7 +2507,7 @@ private void saveBtn_Click(object sender, EventArgs e) needSaveAs = false; break; } - if (needSaveAs) + if (needSaveAs) { saveAsBtn.PerformClick(); return; @@ -2530,7 +2527,7 @@ private void SaveFile(string path, string ext, bool dispose) pictureBox.Image.Dispose(); pictureBox.Image = null; } - + using (MemoryStream memory = new MemoryStream()) { using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite)) @@ -2594,12 +2591,22 @@ private void picturePanel_MouseClick(object sender, MouseEventArgs e) ) { selForm.ShowContextMenu(Cursor.Position); - } + } else { rmbMenu.Show(Cursor.Position); } } } + + private void directoryLabel_MouseMove(object sender, MouseEventArgs e) + { + infoTooltip.SetToolTip(directoryLabel.Owner, LangMan.Get("show-file-explorer") + " | Ctrl+Shift+L"); + } + + private void selectionLabel_MouseMove(object sender, MouseEventArgs e) + { + infoTooltip.SetToolTip(selectionLabel.Owner, LangMan.Get("edit-selection") + " ... | Alt+S"); + } } } \ No newline at end of file diff --git a/quick-picture-viewer/forms/MainForm.resx b/quick-picture-viewer/forms/MainForm.resx index 04ea59ae..c99fd27c 100644 --- a/quick-picture-viewer/forms/MainForm.resx +++ b/quick-picture-viewer/forms/MainForm.resx @@ -1,17 +1,17 @@ - diff --git a/quick-picture-viewer/forms/MiniViewForm.cs b/quick-picture-viewer/forms/MiniViewForm.cs index 19f5512e..35b428fb 100644 --- a/quick-picture-viewer/forms/MiniViewForm.cs +++ b/quick-picture-viewer/forms/MiniViewForm.cs @@ -46,7 +46,7 @@ public MiniViewForm(Bitmap image, string title, bool checkboardBackground) picturePanel.MouseWheel += new MouseEventHandler(picturePanel_MouseWheel); - if (ThemeMan.isWindows10()) ThemeMan.setDarkModeToControl(picturePanel.Handle); + if (ThemeMan.isWindows10orLater()) ThemeMan.setDarkModeToControl(picturePanel.Handle); if (Properties.Settings.Default.PipOpacity == 0.25 || Properties.Settings.Default.PipOpacity == 0.75) Opacity = Properties.Settings.Default.PipOpacity; } diff --git a/quick-picture-viewer/forms/SettingsForm.Designer.cs b/quick-picture-viewer/forms/SettingsForm.Designer.cs index 68107ecd..8f58ec82 100644 --- a/quick-picture-viewer/forms/SettingsForm.Designer.cs +++ b/quick-picture-viewer/forms/SettingsForm.Designer.cs @@ -27,820 +27,785 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); + components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SettingsForm)); - this.settingsTabs = new QuickLibrary.QlibTabs(); - this.themePage = new System.Windows.Forms.TabPage(); - this.restartLabel1 = new System.Windows.Forms.Label(); - this.systemThemeRadio = new QuickLibrary.QlibRadio(); - this.darkThemeRadio = new QuickLibrary.QlibRadio(); - this.lightThemeRadio = new QuickLibrary.QlibRadio(); - this.themeRestart = new System.Windows.Forms.LinkLabel(); - this.mousePage = new System.Windows.Forms.TabPage(); - this.mouseWheelActionRadio3 = new QuickLibrary.QlibRadio(); - this.mouseWheelActionRadio2 = new QuickLibrary.QlibRadio(); - this.mouseWheelActionRadio1 = new QuickLibrary.QlibRadio(); - this.mouseWheelActionLabel = new System.Windows.Forms.Label(); - this.escToExitCheckBox = new QuickLibrary.QlibCheckBox(); - this.fullscrCursorCheckBox = new QuickLibrary.QlibCheckBox(); - this.slideshowPage = new System.Windows.Forms.TabPage(); - this.slideshowSecondsLabel = new System.Windows.Forms.Label(); - this.slideshowTimeLabel = new System.Windows.Forms.Label(); - this.slideshowTimeNumeric = new QuickLibrary.QlibNumeric(); - this.slideshowCounterCheckBox = new QuickLibrary.QlibCheckBox(); - this.startupPage = new System.Windows.Forms.TabPage(); - this.startupBoundsCheckBox = new QuickLibrary.QlibCheckBox(); - this.updatesCheckBox = new QuickLibrary.QlibCheckBox(); - this.startupPasteCheckBox = new QuickLibrary.QlibCheckBox(); - this.startupLabel = new System.Windows.Forms.Label(); - this.externalPage = new System.Windows.Forms.TabPage(); - this.makeDefaultBtn = new System.Windows.Forms.Button(); - this.browseWithCheckBox = new QuickLibrary.QlibCheckBox(); - this.contextMenuLabel = new System.Windows.Forms.Label(); - this.openWithCheckBox = new QuickLibrary.QlibCheckBox(); - this.browseBtn = new System.Windows.Forms.Button(); - this.favExtTextBox = new QuickLibrary.QlibTextBox(); - this.favExtLabel = new System.Windows.Forms.Label(); - this.langPage = new System.Windows.Forms.TabPage(); - this.helpTranslateBtn = new System.Windows.Forms.Button(); - this.translateAuthorsPanel = new System.Windows.Forms.Panel(); - this.translatedByLabel = new System.Windows.Forms.Label(); - this.langLabel = new System.Windows.Forms.Label(); - this.restartLabel2 = new System.Windows.Forms.Label(); - this.langComboBox = new QuickLibrary.QlibComboBox(); - this.localizationRestart = new System.Windows.Forms.LinkLabel(); - this.closeBtn = new QuickLibrary.QlibTitlebarButton(); - this.infoTooltip = new System.Windows.Forms.ToolTip(this.components); - this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); - this.settingsTabs.SuspendLayout(); - this.themePage.SuspendLayout(); - this.mousePage.SuspendLayout(); - this.slideshowPage.SuspendLayout(); - this.startupPage.SuspendLayout(); - this.externalPage.SuspendLayout(); - this.langPage.SuspendLayout(); - this.SuspendLayout(); + settingsTabs = new QuickLibrary.QlibTabs(); + themePage = new System.Windows.Forms.TabPage(); + restartLabel1 = new System.Windows.Forms.Label(); + systemThemeRadio = new QuickLibrary.QlibRadio(); + darkThemeRadio = new QuickLibrary.QlibRadio(); + lightThemeRadio = new QuickLibrary.QlibRadio(); + themeRestart = new System.Windows.Forms.LinkLabel(); + mousePage = new System.Windows.Forms.TabPage(); + mouseWheelActionRadio3 = new QuickLibrary.QlibRadio(); + mouseWheelActionRadio2 = new QuickLibrary.QlibRadio(); + mouseWheelActionRadio1 = new QuickLibrary.QlibRadio(); + mouseWheelActionLabel = new System.Windows.Forms.Label(); + escToExitCheckBox = new QuickLibrary.QlibCheckBox(); + fullscrCursorCheckBox = new QuickLibrary.QlibCheckBox(); + slideshowPage = new System.Windows.Forms.TabPage(); + slideshowSecondsLabel = new System.Windows.Forms.Label(); + slideshowTimeLabel = new System.Windows.Forms.Label(); + slideshowTimeNumeric = new QuickLibrary.QlibNumeric(); + slideshowCounterCheckBox = new QuickLibrary.QlibCheckBox(); + startupPage = new System.Windows.Forms.TabPage(); + startupBoundsCheckBox = new QuickLibrary.QlibCheckBox(); + updatesCheckBox = new QuickLibrary.QlibCheckBox(); + startupPasteCheckBox = new QuickLibrary.QlibCheckBox(); + startupLabel = new System.Windows.Forms.Label(); + externalPage = new System.Windows.Forms.TabPage(); + makeDefaultBtn = new System.Windows.Forms.Button(); + browseWithCheckBox = new QuickLibrary.QlibCheckBox(); + contextMenuLabel = new System.Windows.Forms.Label(); + openWithCheckBox = new QuickLibrary.QlibCheckBox(); + browseBtn = new System.Windows.Forms.Button(); + favExtTextBox = new QuickLibrary.QlibTextBox(); + favExtLabel = new System.Windows.Forms.Label(); + langPage = new System.Windows.Forms.TabPage(); + helpTranslateBtn = new System.Windows.Forms.Button(); + translateAuthorsPanel = new System.Windows.Forms.Panel(); + translatedByLabel = new System.Windows.Forms.Label(); + langLabel = new System.Windows.Forms.Label(); + restartLabel2 = new System.Windows.Forms.Label(); + langComboBox = new QuickLibrary.QlibComboBox(); + localizationRestart = new System.Windows.Forms.LinkLabel(); + closeBtn = new QuickLibrary.QlibTitlebarButton(); + infoTooltip = new System.Windows.Forms.ToolTip(components); + openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); + settingsTabs.SuspendLayout(); + themePage.SuspendLayout(); + mousePage.SuspendLayout(); + slideshowPage.SuspendLayout(); + startupPage.SuspendLayout(); + externalPage.SuspendLayout(); + langPage.SuspendLayout(); + SuspendLayout(); // // settingsTabs // - this.settingsTabs.CausesValidation = false; - this.settingsTabs.Controls.Add(this.themePage); - this.settingsTabs.Controls.Add(this.mousePage); - this.settingsTabs.Controls.Add(this.slideshowPage); - this.settingsTabs.Controls.Add(this.startupPage); - this.settingsTabs.Controls.Add(this.externalPage); - this.settingsTabs.Controls.Add(this.langPage); - this.settingsTabs.DarkMode = false; - this.settingsTabs.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.settingsTabs.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.settingsTabs.ItemSize = new System.Drawing.Size(28, 28); - this.settingsTabs.Location = new System.Drawing.Point(10, 42); - this.settingsTabs.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); - this.settingsTabs.Multiline = true; - this.settingsTabs.Name = "settingsTabs"; - this.settingsTabs.Padding = new System.Drawing.Point(0, 0); - this.settingsTabs.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.settingsTabs.SelectedIndex = 0; - this.settingsTabs.Size = new System.Drawing.Size(400, 290); - this.settingsTabs.TabIndex = 0; + settingsTabs.CausesValidation = false; + settingsTabs.Controls.Add(themePage); + settingsTabs.Controls.Add(mousePage); + settingsTabs.Controls.Add(slideshowPage); + settingsTabs.Controls.Add(startupPage); + settingsTabs.Controls.Add(externalPage); + settingsTabs.Controls.Add(langPage); + settingsTabs.DarkMode = false; + settingsTabs.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 204); + settingsTabs.ImeMode = System.Windows.Forms.ImeMode.NoControl; + settingsTabs.ItemSize = new System.Drawing.Size(28, 28); + settingsTabs.Location = new System.Drawing.Point(10, 42); + settingsTabs.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); + settingsTabs.Multiline = true; + settingsTabs.Name = "settingsTabs"; + settingsTabs.Padding = new System.Drawing.Point(0, 0); + settingsTabs.RightToLeft = System.Windows.Forms.RightToLeft.No; + settingsTabs.SelectedIndex = 0; + settingsTabs.Size = new System.Drawing.Size(400, 290); + settingsTabs.TabIndex = 0; // // themePage // - this.themePage.BackColor = System.Drawing.SystemColors.Control; - this.themePage.Controls.Add(this.restartLabel1); - this.themePage.Controls.Add(this.systemThemeRadio); - this.themePage.Controls.Add(this.darkThemeRadio); - this.themePage.Controls.Add(this.lightThemeRadio); - this.themePage.Controls.Add(this.themeRestart); - this.themePage.Location = new System.Drawing.Point(4, 60); - this.themePage.Margin = new System.Windows.Forms.Padding(0); - this.themePage.Name = "themePage"; - this.themePage.Padding = new System.Windows.Forms.Padding(10); - this.themePage.Size = new System.Drawing.Size(392, 226); - this.themePage.TabIndex = 0; - this.themePage.Text = "theme"; - this.themePage.ToolTipText = "App theming"; + themePage.BackColor = System.Drawing.SystemColors.Control; + themePage.Controls.Add(restartLabel1); + themePage.Controls.Add(systemThemeRadio); + themePage.Controls.Add(darkThemeRadio); + themePage.Controls.Add(lightThemeRadio); + themePage.Controls.Add(themeRestart); + themePage.Location = new System.Drawing.Point(4, 60); + themePage.Margin = new System.Windows.Forms.Padding(0); + themePage.Name = "themePage"; + themePage.Padding = new System.Windows.Forms.Padding(10); + themePage.Size = new System.Drawing.Size(392, 226); + themePage.TabIndex = 0; + themePage.Text = "theme"; + themePage.ToolTipText = "App theming"; // // restartLabel1 // - this.restartLabel1.AutoSize = true; - this.restartLabel1.Location = new System.Drawing.Point(10, 197); - this.restartLabel1.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); - this.restartLabel1.Name = "restartLabel1"; - this.restartLabel1.Size = new System.Drawing.Size(114, 19); - this.restartLabel1.TabIndex = 38; - this.restartLabel1.Text = "* restart required"; + restartLabel1.AutoSize = true; + restartLabel1.Location = new System.Drawing.Point(10, 197); + restartLabel1.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); + restartLabel1.Name = "restartLabel1"; + restartLabel1.Size = new System.Drawing.Size(114, 19); + restartLabel1.TabIndex = 38; + restartLabel1.Text = "* restart required"; // // systemThemeRadio // - this.systemThemeRadio.BackColor = System.Drawing.SystemColors.Control; - this.systemThemeRadio.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.systemThemeRadio.CausesValidation = false; - this.systemThemeRadio.Checked = true; - this.systemThemeRadio.Cursor = System.Windows.Forms.Cursors.Default; - this.systemThemeRadio.DarkMode = false; - this.systemThemeRadio.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.systemThemeRadio.ForeColor = System.Drawing.Color.Black; - this.systemThemeRadio.Image = null; - this.systemThemeRadio.Location = new System.Drawing.Point(10, 10); - this.systemThemeRadio.Margin = new System.Windows.Forms.Padding(0); - this.systemThemeRadio.Name = "systemThemeRadio"; - this.systemThemeRadio.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.systemThemeRadio.Size = new System.Drawing.Size(372, 32); - this.systemThemeRadio.TabIndex = 0; - this.systemThemeRadio.TabStop = true; - this.systemThemeRadio.Text = "system"; - this.systemThemeRadio.UseMnemonic = false; - this.systemThemeRadio.UseVisualStyleBackColor = true; - this.systemThemeRadio.CheckedChanged += new System.EventHandler(this.systemThemeRadio_CheckedChanged); + systemThemeRadio.BackColor = System.Drawing.SystemColors.Control; + systemThemeRadio.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + systemThemeRadio.CausesValidation = false; + systemThemeRadio.Checked = true; + systemThemeRadio.DarkMode = false; + systemThemeRadio.FlatStyle = System.Windows.Forms.FlatStyle.System; + systemThemeRadio.ForeColor = System.Drawing.Color.Black; + systemThemeRadio.Image = null; + systemThemeRadio.Location = new System.Drawing.Point(10, 10); + systemThemeRadio.Margin = new System.Windows.Forms.Padding(0); + systemThemeRadio.Name = "systemThemeRadio"; + systemThemeRadio.RightToLeft = System.Windows.Forms.RightToLeft.No; + systemThemeRadio.Size = new System.Drawing.Size(372, 32); + systemThemeRadio.TabIndex = 0; + systemThemeRadio.TabStop = true; + systemThemeRadio.Text = "system"; + systemThemeRadio.UseMnemonic = false; + systemThemeRadio.UseVisualStyleBackColor = true; + systemThemeRadio.CheckedChanged += systemThemeRadio_CheckedChanged; // // darkThemeRadio // - this.darkThemeRadio.BackColor = System.Drawing.SystemColors.Control; - this.darkThemeRadio.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.darkThemeRadio.CausesValidation = false; - this.darkThemeRadio.Cursor = System.Windows.Forms.Cursors.Default; - this.darkThemeRadio.DarkMode = false; - this.darkThemeRadio.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.darkThemeRadio.ForeColor = System.Drawing.Color.Black; - this.darkThemeRadio.Image = null; - this.darkThemeRadio.Location = new System.Drawing.Point(10, 74); - this.darkThemeRadio.Margin = new System.Windows.Forms.Padding(0); - this.darkThemeRadio.Name = "darkThemeRadio"; - this.darkThemeRadio.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.darkThemeRadio.Size = new System.Drawing.Size(372, 32); - this.darkThemeRadio.TabIndex = 2; - this.darkThemeRadio.Text = "dark"; - this.darkThemeRadio.UseMnemonic = false; - this.darkThemeRadio.UseVisualStyleBackColor = true; - this.darkThemeRadio.CheckedChanged += new System.EventHandler(this.darkThemeRadio_CheckedChanged); + darkThemeRadio.BackColor = System.Drawing.SystemColors.Control; + darkThemeRadio.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + darkThemeRadio.CausesValidation = false; + darkThemeRadio.DarkMode = false; + darkThemeRadio.FlatStyle = System.Windows.Forms.FlatStyle.System; + darkThemeRadio.ForeColor = System.Drawing.Color.Black; + darkThemeRadio.Image = null; + darkThemeRadio.Location = new System.Drawing.Point(10, 74); + darkThemeRadio.Margin = new System.Windows.Forms.Padding(0); + darkThemeRadio.Name = "darkThemeRadio"; + darkThemeRadio.RightToLeft = System.Windows.Forms.RightToLeft.No; + darkThemeRadio.Size = new System.Drawing.Size(372, 32); + darkThemeRadio.TabIndex = 2; + darkThemeRadio.Text = "dark"; + darkThemeRadio.UseMnemonic = false; + darkThemeRadio.UseVisualStyleBackColor = true; + darkThemeRadio.CheckedChanged += darkThemeRadio_CheckedChanged; // // lightThemeRadio // - this.lightThemeRadio.BackColor = System.Drawing.SystemColors.Control; - this.lightThemeRadio.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.lightThemeRadio.CausesValidation = false; - this.lightThemeRadio.Cursor = System.Windows.Forms.Cursors.Default; - this.lightThemeRadio.DarkMode = false; - this.lightThemeRadio.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.lightThemeRadio.ForeColor = System.Drawing.Color.Black; - this.lightThemeRadio.Image = null; - this.lightThemeRadio.Location = new System.Drawing.Point(10, 42); - this.lightThemeRadio.Margin = new System.Windows.Forms.Padding(0); - this.lightThemeRadio.Name = "lightThemeRadio"; - this.lightThemeRadio.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.lightThemeRadio.Size = new System.Drawing.Size(372, 32); - this.lightThemeRadio.TabIndex = 1; - this.lightThemeRadio.Text = "light"; - this.lightThemeRadio.UseMnemonic = false; - this.lightThemeRadio.UseVisualStyleBackColor = true; - this.lightThemeRadio.CheckedChanged += new System.EventHandler(this.lightThemeRadio_CheckedChanged); + lightThemeRadio.BackColor = System.Drawing.SystemColors.Control; + lightThemeRadio.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + lightThemeRadio.CausesValidation = false; + lightThemeRadio.DarkMode = false; + lightThemeRadio.FlatStyle = System.Windows.Forms.FlatStyle.System; + lightThemeRadio.ForeColor = System.Drawing.Color.Black; + lightThemeRadio.Image = null; + lightThemeRadio.Location = new System.Drawing.Point(10, 42); + lightThemeRadio.Margin = new System.Windows.Forms.Padding(0); + lightThemeRadio.Name = "lightThemeRadio"; + lightThemeRadio.RightToLeft = System.Windows.Forms.RightToLeft.No; + lightThemeRadio.Size = new System.Drawing.Size(372, 32); + lightThemeRadio.TabIndex = 1; + lightThemeRadio.Text = "light"; + lightThemeRadio.UseMnemonic = false; + lightThemeRadio.UseVisualStyleBackColor = true; + lightThemeRadio.CheckedChanged += lightThemeRadio_CheckedChanged; // // themeRestart // - this.themeRestart.ActiveLinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.themeRestart.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; - this.themeRestart.Location = new System.Drawing.Point(10, 197); - this.themeRestart.Margin = new System.Windows.Forms.Padding(0); - this.themeRestart.Name = "themeRestart"; - this.themeRestart.Size = new System.Drawing.Size(372, 19); - this.themeRestart.TabIndex = 3; - this.themeRestart.TabStop = true; - this.themeRestart.Text = "restart"; - this.themeRestart.TextAlign = System.Drawing.ContentAlignment.TopRight; - this.themeRestart.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.restartLink_LinkClicked); + themeRestart.ActiveLinkColor = System.Drawing.Color.FromArgb(100, 100, 100); + themeRestart.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; + themeRestart.Location = new System.Drawing.Point(10, 197); + themeRestart.Margin = new System.Windows.Forms.Padding(0); + themeRestart.Name = "themeRestart"; + themeRestart.Size = new System.Drawing.Size(372, 19); + themeRestart.TabIndex = 3; + themeRestart.TabStop = true; + themeRestart.Text = "restart"; + themeRestart.TextAlign = System.Drawing.ContentAlignment.TopRight; + themeRestart.LinkClicked += restartLink_LinkClicked; // // mousePage // - this.mousePage.BackColor = System.Drawing.SystemColors.Control; - this.mousePage.Controls.Add(this.mouseWheelActionRadio3); - this.mousePage.Controls.Add(this.mouseWheelActionRadio2); - this.mousePage.Controls.Add(this.mouseWheelActionRadio1); - this.mousePage.Controls.Add(this.mouseWheelActionLabel); - this.mousePage.Controls.Add(this.escToExitCheckBox); - this.mousePage.Controls.Add(this.fullscrCursorCheckBox); - this.mousePage.Location = new System.Drawing.Point(4, 60); - this.mousePage.Margin = new System.Windows.Forms.Padding(0); - this.mousePage.Name = "mousePage"; - this.mousePage.Padding = new System.Windows.Forms.Padding(10); - this.mousePage.Size = new System.Drawing.Size(392, 226); - this.mousePage.TabIndex = 2; - this.mousePage.Text = "mouse & keyboard"; - this.mousePage.ToolTipText = "Cursor options"; + mousePage.BackColor = System.Drawing.SystemColors.Control; + mousePage.Controls.Add(mouseWheelActionRadio3); + mousePage.Controls.Add(mouseWheelActionRadio2); + mousePage.Controls.Add(mouseWheelActionRadio1); + mousePage.Controls.Add(mouseWheelActionLabel); + mousePage.Controls.Add(escToExitCheckBox); + mousePage.Controls.Add(fullscrCursorCheckBox); + mousePage.Location = new System.Drawing.Point(4, 60); + mousePage.Margin = new System.Windows.Forms.Padding(0); + mousePage.Name = "mousePage"; + mousePage.Padding = new System.Windows.Forms.Padding(10); + mousePage.Size = new System.Drawing.Size(392, 226); + mousePage.TabIndex = 2; + mousePage.Text = "mouse & keyboard"; + mousePage.ToolTipText = "Cursor options"; // // mouseWheelActionRadio3 // - this.mouseWheelActionRadio3.BackColor = System.Drawing.SystemColors.Control; - this.mouseWheelActionRadio3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.mouseWheelActionRadio3.CausesValidation = false; - this.mouseWheelActionRadio3.Cursor = System.Windows.Forms.Cursors.Default; - this.mouseWheelActionRadio3.DarkMode = false; - this.mouseWheelActionRadio3.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.mouseWheelActionRadio3.ForeColor = System.Drawing.Color.Black; - this.mouseWheelActionRadio3.Image = null; - this.mouseWheelActionRadio3.Location = new System.Drawing.Point(10, 177); - this.mouseWheelActionRadio3.Margin = new System.Windows.Forms.Padding(0); - this.mouseWheelActionRadio3.Name = "mouseWheelActionRadio3"; - this.mouseWheelActionRadio3.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.mouseWheelActionRadio3.Size = new System.Drawing.Size(372, 32); - this.mouseWheelActionRadio3.TabIndex = 4; - this.mouseWheelActionRadio3.Text = "next / previous image"; - this.mouseWheelActionRadio3.UseMnemonic = false; - this.mouseWheelActionRadio3.UseVisualStyleBackColor = true; - this.mouseWheelActionRadio3.CheckedChanged += new System.EventHandler(this.mouseWheelActionRadio3_CheckedChanged); + mouseWheelActionRadio3.BackColor = System.Drawing.SystemColors.Control; + mouseWheelActionRadio3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + mouseWheelActionRadio3.CausesValidation = false; + mouseWheelActionRadio3.DarkMode = false; + mouseWheelActionRadio3.FlatStyle = System.Windows.Forms.FlatStyle.System; + mouseWheelActionRadio3.ForeColor = System.Drawing.Color.Black; + mouseWheelActionRadio3.Image = null; + mouseWheelActionRadio3.Location = new System.Drawing.Point(10, 177); + mouseWheelActionRadio3.Margin = new System.Windows.Forms.Padding(0); + mouseWheelActionRadio3.Name = "mouseWheelActionRadio3"; + mouseWheelActionRadio3.RightToLeft = System.Windows.Forms.RightToLeft.No; + mouseWheelActionRadio3.Size = new System.Drawing.Size(372, 32); + mouseWheelActionRadio3.TabIndex = 4; + mouseWheelActionRadio3.Text = "next / previous image"; + mouseWheelActionRadio3.UseMnemonic = false; + mouseWheelActionRadio3.UseVisualStyleBackColor = true; + mouseWheelActionRadio3.CheckedChanged += mouseWheelActionRadio3_CheckedChanged; // // mouseWheelActionRadio2 // - this.mouseWheelActionRadio2.BackColor = System.Drawing.SystemColors.Control; - this.mouseWheelActionRadio2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.mouseWheelActionRadio2.CausesValidation = false; - this.mouseWheelActionRadio2.Cursor = System.Windows.Forms.Cursors.Default; - this.mouseWheelActionRadio2.DarkMode = false; - this.mouseWheelActionRadio2.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.mouseWheelActionRadio2.ForeColor = System.Drawing.Color.Black; - this.mouseWheelActionRadio2.Image = null; - this.mouseWheelActionRadio2.Location = new System.Drawing.Point(10, 145); - this.mouseWheelActionRadio2.Margin = new System.Windows.Forms.Padding(0); - this.mouseWheelActionRadio2.Name = "mouseWheelActionRadio2"; - this.mouseWheelActionRadio2.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.mouseWheelActionRadio2.Size = new System.Drawing.Size(372, 32); - this.mouseWheelActionRadio2.TabIndex = 3; - this.mouseWheelActionRadio2.Text = "zoom in / out"; - this.mouseWheelActionRadio2.UseMnemonic = false; - this.mouseWheelActionRadio2.UseVisualStyleBackColor = true; - this.mouseWheelActionRadio2.CheckedChanged += new System.EventHandler(this.mouseWheelActionRadio2_CheckedChanged); + mouseWheelActionRadio2.BackColor = System.Drawing.SystemColors.Control; + mouseWheelActionRadio2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + mouseWheelActionRadio2.CausesValidation = false; + mouseWheelActionRadio2.DarkMode = false; + mouseWheelActionRadio2.FlatStyle = System.Windows.Forms.FlatStyle.System; + mouseWheelActionRadio2.ForeColor = System.Drawing.Color.Black; + mouseWheelActionRadio2.Image = null; + mouseWheelActionRadio2.Location = new System.Drawing.Point(10, 145); + mouseWheelActionRadio2.Margin = new System.Windows.Forms.Padding(0); + mouseWheelActionRadio2.Name = "mouseWheelActionRadio2"; + mouseWheelActionRadio2.RightToLeft = System.Windows.Forms.RightToLeft.No; + mouseWheelActionRadio2.Size = new System.Drawing.Size(372, 32); + mouseWheelActionRadio2.TabIndex = 3; + mouseWheelActionRadio2.Text = "zoom in / out"; + mouseWheelActionRadio2.UseMnemonic = false; + mouseWheelActionRadio2.UseVisualStyleBackColor = true; + mouseWheelActionRadio2.CheckedChanged += mouseWheelActionRadio2_CheckedChanged; // // mouseWheelActionRadio1 // - this.mouseWheelActionRadio1.BackColor = System.Drawing.SystemColors.Control; - this.mouseWheelActionRadio1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.mouseWheelActionRadio1.CausesValidation = false; - this.mouseWheelActionRadio1.Checked = true; - this.mouseWheelActionRadio1.Cursor = System.Windows.Forms.Cursors.Default; - this.mouseWheelActionRadio1.DarkMode = false; - this.mouseWheelActionRadio1.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.mouseWheelActionRadio1.ForeColor = System.Drawing.Color.Black; - this.mouseWheelActionRadio1.Image = null; - this.mouseWheelActionRadio1.Location = new System.Drawing.Point(10, 113); - this.mouseWheelActionRadio1.Margin = new System.Windows.Forms.Padding(0); - this.mouseWheelActionRadio1.Name = "mouseWheelActionRadio1"; - this.mouseWheelActionRadio1.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.mouseWheelActionRadio1.Size = new System.Drawing.Size(372, 32); - this.mouseWheelActionRadio1.TabIndex = 2; - this.mouseWheelActionRadio1.TabStop = true; - this.mouseWheelActionRadio1.Text = "scroll up / down"; - this.mouseWheelActionRadio1.UseMnemonic = false; - this.mouseWheelActionRadio1.UseVisualStyleBackColor = true; - this.mouseWheelActionRadio1.CheckedChanged += new System.EventHandler(this.mouseWheelActionRadio1_CheckedChanged); + mouseWheelActionRadio1.BackColor = System.Drawing.SystemColors.Control; + mouseWheelActionRadio1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + mouseWheelActionRadio1.CausesValidation = false; + mouseWheelActionRadio1.Checked = true; + mouseWheelActionRadio1.DarkMode = false; + mouseWheelActionRadio1.FlatStyle = System.Windows.Forms.FlatStyle.System; + mouseWheelActionRadio1.ForeColor = System.Drawing.Color.Black; + mouseWheelActionRadio1.Image = null; + mouseWheelActionRadio1.Location = new System.Drawing.Point(10, 113); + mouseWheelActionRadio1.Margin = new System.Windows.Forms.Padding(0); + mouseWheelActionRadio1.Name = "mouseWheelActionRadio1"; + mouseWheelActionRadio1.RightToLeft = System.Windows.Forms.RightToLeft.No; + mouseWheelActionRadio1.Size = new System.Drawing.Size(372, 32); + mouseWheelActionRadio1.TabIndex = 2; + mouseWheelActionRadio1.TabStop = true; + mouseWheelActionRadio1.Text = "scroll up / down"; + mouseWheelActionRadio1.UseMnemonic = false; + mouseWheelActionRadio1.UseVisualStyleBackColor = true; + mouseWheelActionRadio1.CheckedChanged += mouseWheelActionRadio1_CheckedChanged; // // mouseWheelActionLabel // - this.mouseWheelActionLabel.AutoSize = true; - this.mouseWheelActionLabel.Location = new System.Drawing.Point(10, 84); - this.mouseWheelActionLabel.Margin = new System.Windows.Forms.Padding(0, 10, 0, 10); - this.mouseWheelActionLabel.Name = "mouseWheelActionLabel"; - this.mouseWheelActionLabel.Size = new System.Drawing.Size(168, 19); - this.mouseWheelActionLabel.TabIndex = 42; - this.mouseWheelActionLabel.Text = "mouse wheel scroll action:"; + mouseWheelActionLabel.AutoSize = true; + mouseWheelActionLabel.Location = new System.Drawing.Point(10, 84); + mouseWheelActionLabel.Margin = new System.Windows.Forms.Padding(0, 10, 0, 10); + mouseWheelActionLabel.Name = "mouseWheelActionLabel"; + mouseWheelActionLabel.Size = new System.Drawing.Size(168, 19); + mouseWheelActionLabel.TabIndex = 42; + mouseWheelActionLabel.Text = "mouse wheel scroll action:"; // // escToExitCheckBox // - this.escToExitCheckBox.BackColor = System.Drawing.SystemColors.Control; - this.escToExitCheckBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.escToExitCheckBox.CausesValidation = false; - this.escToExitCheckBox.Cursor = System.Windows.Forms.Cursors.Default; - this.escToExitCheckBox.DarkMode = false; - this.escToExitCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.escToExitCheckBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.escToExitCheckBox.ForeColor = System.Drawing.Color.Black; - this.escToExitCheckBox.Image = null; - this.escToExitCheckBox.Location = new System.Drawing.Point(10, 42); - this.escToExitCheckBox.Margin = new System.Windows.Forms.Padding(0); - this.escToExitCheckBox.Name = "escToExitCheckBox"; - this.escToExitCheckBox.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.escToExitCheckBox.Size = new System.Drawing.Size(372, 32); - this.escToExitCheckBox.TabIndex = 1; - this.escToExitCheckBox.Text = "press esc to exit"; - this.escToExitCheckBox.UseMnemonic = false; - this.escToExitCheckBox.UseVisualStyleBackColor = true; - this.escToExitCheckBox.CheckedChanged += new System.EventHandler(this.escToExitCheckBox_CheckedChanged); + escToExitCheckBox.BackColor = System.Drawing.SystemColors.Control; + escToExitCheckBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + escToExitCheckBox.CausesValidation = false; + escToExitCheckBox.DarkMode = false; + escToExitCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.System; + escToExitCheckBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 204); + escToExitCheckBox.ForeColor = System.Drawing.Color.Black; + escToExitCheckBox.Image = null; + escToExitCheckBox.Location = new System.Drawing.Point(10, 42); + escToExitCheckBox.Margin = new System.Windows.Forms.Padding(0); + escToExitCheckBox.Name = "escToExitCheckBox"; + escToExitCheckBox.RightToLeft = System.Windows.Forms.RightToLeft.No; + escToExitCheckBox.Size = new System.Drawing.Size(372, 32); + escToExitCheckBox.TabIndex = 1; + escToExitCheckBox.Text = "press esc to exit"; + escToExitCheckBox.UseMnemonic = false; + escToExitCheckBox.UseVisualStyleBackColor = true; + escToExitCheckBox.CheckedChanged += escToExitCheckBox_CheckedChanged; // // fullscrCursorCheckBox // - this.fullscrCursorCheckBox.BackColor = System.Drawing.SystemColors.Control; - this.fullscrCursorCheckBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.fullscrCursorCheckBox.CausesValidation = false; - this.fullscrCursorCheckBox.Cursor = System.Windows.Forms.Cursors.Default; - this.fullscrCursorCheckBox.DarkMode = false; - this.fullscrCursorCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.fullscrCursorCheckBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.fullscrCursorCheckBox.ForeColor = System.Drawing.Color.Black; - this.fullscrCursorCheckBox.Image = null; - this.fullscrCursorCheckBox.Location = new System.Drawing.Point(10, 10); - this.fullscrCursorCheckBox.Margin = new System.Windows.Forms.Padding(0); - this.fullscrCursorCheckBox.Name = "fullscrCursorCheckBox"; - this.fullscrCursorCheckBox.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.fullscrCursorCheckBox.Size = new System.Drawing.Size(372, 32); - this.fullscrCursorCheckBox.TabIndex = 0; - this.fullscrCursorCheckBox.Text = "show cursor in fullscreen"; - this.fullscrCursorCheckBox.UseMnemonic = false; - this.fullscrCursorCheckBox.UseVisualStyleBackColor = true; - this.fullscrCursorCheckBox.CheckedChanged += new System.EventHandler(this.fullscrCursorCheckBox_CheckedChanged); + fullscrCursorCheckBox.BackColor = System.Drawing.SystemColors.Control; + fullscrCursorCheckBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + fullscrCursorCheckBox.CausesValidation = false; + fullscrCursorCheckBox.DarkMode = false; + fullscrCursorCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.System; + fullscrCursorCheckBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 204); + fullscrCursorCheckBox.ForeColor = System.Drawing.Color.Black; + fullscrCursorCheckBox.Image = null; + fullscrCursorCheckBox.Location = new System.Drawing.Point(10, 10); + fullscrCursorCheckBox.Margin = new System.Windows.Forms.Padding(0); + fullscrCursorCheckBox.Name = "fullscrCursorCheckBox"; + fullscrCursorCheckBox.RightToLeft = System.Windows.Forms.RightToLeft.No; + fullscrCursorCheckBox.Size = new System.Drawing.Size(372, 32); + fullscrCursorCheckBox.TabIndex = 0; + fullscrCursorCheckBox.Text = "show cursor in fullscreen"; + fullscrCursorCheckBox.UseMnemonic = false; + fullscrCursorCheckBox.UseVisualStyleBackColor = true; + fullscrCursorCheckBox.CheckedChanged += fullscrCursorCheckBox_CheckedChanged; // // slideshowPage // - this.slideshowPage.BackColor = System.Drawing.SystemColors.Control; - this.slideshowPage.Controls.Add(this.slideshowSecondsLabel); - this.slideshowPage.Controls.Add(this.slideshowTimeLabel); - this.slideshowPage.Controls.Add(this.slideshowTimeNumeric); - this.slideshowPage.Controls.Add(this.slideshowCounterCheckBox); - this.slideshowPage.Location = new System.Drawing.Point(4, 60); - this.slideshowPage.Margin = new System.Windows.Forms.Padding(0); - this.slideshowPage.Name = "slideshowPage"; - this.slideshowPage.Padding = new System.Windows.Forms.Padding(10); - this.slideshowPage.Size = new System.Drawing.Size(392, 226); - this.slideshowPage.TabIndex = 5; - this.slideshowPage.Text = "slideshow"; + slideshowPage.BackColor = System.Drawing.SystemColors.Control; + slideshowPage.Controls.Add(slideshowSecondsLabel); + slideshowPage.Controls.Add(slideshowTimeLabel); + slideshowPage.Controls.Add(slideshowTimeNumeric); + slideshowPage.Controls.Add(slideshowCounterCheckBox); + slideshowPage.Location = new System.Drawing.Point(4, 60); + slideshowPage.Margin = new System.Windows.Forms.Padding(0); + slideshowPage.Name = "slideshowPage"; + slideshowPage.Padding = new System.Windows.Forms.Padding(10); + slideshowPage.Size = new System.Drawing.Size(392, 226); + slideshowPage.TabIndex = 5; + slideshowPage.Text = "slideshow"; // // slideshowSecondsLabel // - this.slideshowSecondsLabel.AutoSize = true; - this.slideshowSecondsLabel.Location = new System.Drawing.Point(100, 45); - this.slideshowSecondsLabel.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.slideshowSecondsLabel.Name = "slideshowSecondsLabel"; - this.slideshowSecondsLabel.Size = new System.Drawing.Size(58, 19); - this.slideshowSecondsLabel.TabIndex = 4; - this.slideshowSecondsLabel.Text = "seconds"; + slideshowSecondsLabel.AutoSize = true; + slideshowSecondsLabel.Location = new System.Drawing.Point(100, 45); + slideshowSecondsLabel.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0); + slideshowSecondsLabel.Name = "slideshowSecondsLabel"; + slideshowSecondsLabel.Size = new System.Drawing.Size(58, 19); + slideshowSecondsLabel.TabIndex = 4; + slideshowSecondsLabel.Text = "seconds"; // // slideshowTimeLabel // - this.slideshowTimeLabel.AutoSize = true; - this.slideshowTimeLabel.Location = new System.Drawing.Point(10, 10); - this.slideshowTimeLabel.Margin = new System.Windows.Forms.Padding(0); - this.slideshowTimeLabel.Name = "slideshowTimeLabel"; - this.slideshowTimeLabel.Size = new System.Drawing.Size(100, 19); - this.slideshowTimeLabel.TabIndex = 3; - this.slideshowTimeLabel.Text = "switching time:"; + slideshowTimeLabel.AutoSize = true; + slideshowTimeLabel.Location = new System.Drawing.Point(10, 10); + slideshowTimeLabel.Margin = new System.Windows.Forms.Padding(0); + slideshowTimeLabel.Name = "slideshowTimeLabel"; + slideshowTimeLabel.Size = new System.Drawing.Size(100, 19); + slideshowTimeLabel.TabIndex = 3; + slideshowTimeLabel.Text = "switching time:"; // // slideshowTimeNumeric // - this.slideshowTimeNumeric.AutoScrollMargin = new System.Drawing.Size(0, 0); - this.slideshowTimeNumeric.AutoScrollMinSize = new System.Drawing.Size(0, 0); - this.slideshowTimeNumeric.BackColor = System.Drawing.SystemColors.ControlLight; - this.slideshowTimeNumeric.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.slideshowTimeNumeric.CausesValidation = false; - this.slideshowTimeNumeric.Cursor = System.Windows.Forms.Cursors.IBeam; - this.slideshowTimeNumeric.DarkMode = false; - this.slideshowTimeNumeric.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.slideshowTimeNumeric.ForeColor = System.Drawing.Color.Black; - this.slideshowTimeNumeric.Location = new System.Drawing.Point(10, 39); - this.slideshowTimeNumeric.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); - this.slideshowTimeNumeric.Maximum = new decimal(new int[] { - 300, - 0, - 0, - 0}); - this.slideshowTimeNumeric.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.slideshowTimeNumeric.Name = "slideshowTimeNumeric"; - this.slideshowTimeNumeric.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.slideshowTimeNumeric.Size = new System.Drawing.Size(80, 32); - this.slideshowTimeNumeric.TabIndex = 0; - this.slideshowTimeNumeric.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.slideshowTimeNumeric.ValueChanged += new System.EventHandler(this.slideshowTimeNumeric_ValueChanged); + slideshowTimeNumeric.AutoScrollMargin = new System.Drawing.Size(0, 0); + slideshowTimeNumeric.AutoScrollMinSize = new System.Drawing.Size(0, 0); + slideshowTimeNumeric.BackColor = System.Drawing.SystemColors.ControlLight; + slideshowTimeNumeric.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + slideshowTimeNumeric.CausesValidation = false; + slideshowTimeNumeric.Cursor = System.Windows.Forms.Cursors.IBeam; + slideshowTimeNumeric.DarkMode = false; + slideshowTimeNumeric.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 204); + slideshowTimeNumeric.ForeColor = System.Drawing.Color.Black; + slideshowTimeNumeric.Location = new System.Drawing.Point(10, 39); + slideshowTimeNumeric.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); + slideshowTimeNumeric.Maximum = new decimal(new int[] { 300, 0, 0, 0 }); + slideshowTimeNumeric.Minimum = new decimal(new int[] { 1, 0, 0, 0 }); + slideshowTimeNumeric.Name = "slideshowTimeNumeric"; + slideshowTimeNumeric.RightToLeft = System.Windows.Forms.RightToLeft.No; + slideshowTimeNumeric.Size = new System.Drawing.Size(80, 32); + slideshowTimeNumeric.TabIndex = 0; + slideshowTimeNumeric.Value = new decimal(new int[] { 1, 0, 0, 0 }); + slideshowTimeNumeric.ValueChanged += slideshowTimeNumeric_ValueChanged; // // slideshowCounterCheckBox // - this.slideshowCounterCheckBox.BackColor = System.Drawing.SystemColors.Control; - this.slideshowCounterCheckBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.slideshowCounterCheckBox.CausesValidation = false; - this.slideshowCounterCheckBox.Cursor = System.Windows.Forms.Cursors.Default; - this.slideshowCounterCheckBox.DarkMode = false; - this.slideshowCounterCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.slideshowCounterCheckBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.slideshowCounterCheckBox.ForeColor = System.Drawing.Color.Black; - this.slideshowCounterCheckBox.Image = null; - this.slideshowCounterCheckBox.Location = new System.Drawing.Point(10, 81); - this.slideshowCounterCheckBox.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); - this.slideshowCounterCheckBox.Name = "slideshowCounterCheckBox"; - this.slideshowCounterCheckBox.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.slideshowCounterCheckBox.Size = new System.Drawing.Size(372, 32); - this.slideshowCounterCheckBox.TabIndex = 1; - this.slideshowCounterCheckBox.Text = "show slideshow counter"; - this.slideshowCounterCheckBox.UseMnemonic = false; - this.slideshowCounterCheckBox.UseVisualStyleBackColor = true; - this.slideshowCounterCheckBox.CheckedChanged += new System.EventHandler(this.slideshowCounterCheckBox_CheckedChanged); + slideshowCounterCheckBox.BackColor = System.Drawing.SystemColors.Control; + slideshowCounterCheckBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + slideshowCounterCheckBox.CausesValidation = false; + slideshowCounterCheckBox.DarkMode = false; + slideshowCounterCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.System; + slideshowCounterCheckBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 204); + slideshowCounterCheckBox.ForeColor = System.Drawing.Color.Black; + slideshowCounterCheckBox.Image = null; + slideshowCounterCheckBox.Location = new System.Drawing.Point(10, 81); + slideshowCounterCheckBox.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); + slideshowCounterCheckBox.Name = "slideshowCounterCheckBox"; + slideshowCounterCheckBox.RightToLeft = System.Windows.Forms.RightToLeft.No; + slideshowCounterCheckBox.Size = new System.Drawing.Size(372, 32); + slideshowCounterCheckBox.TabIndex = 1; + slideshowCounterCheckBox.Text = "show slideshow counter"; + slideshowCounterCheckBox.UseMnemonic = false; + slideshowCounterCheckBox.UseVisualStyleBackColor = true; + slideshowCounterCheckBox.CheckedChanged += slideshowCounterCheckBox_CheckedChanged; // // startupPage // - this.startupPage.BackColor = System.Drawing.SystemColors.Control; - this.startupPage.Controls.Add(this.startupBoundsCheckBox); - this.startupPage.Controls.Add(this.updatesCheckBox); - this.startupPage.Controls.Add(this.startupPasteCheckBox); - this.startupPage.Controls.Add(this.startupLabel); - this.startupPage.Location = new System.Drawing.Point(4, 60); - this.startupPage.Margin = new System.Windows.Forms.Padding(0); - this.startupPage.Name = "startupPage"; - this.startupPage.Padding = new System.Windows.Forms.Padding(10); - this.startupPage.Size = new System.Drawing.Size(392, 226); - this.startupPage.TabIndex = 3; - this.startupPage.Text = "startup"; - this.startupPage.ToolTipText = "App startup action"; + startupPage.BackColor = System.Drawing.SystemColors.Control; + startupPage.Controls.Add(startupBoundsCheckBox); + startupPage.Controls.Add(updatesCheckBox); + startupPage.Controls.Add(startupPasteCheckBox); + startupPage.Controls.Add(startupLabel); + startupPage.Location = new System.Drawing.Point(4, 60); + startupPage.Margin = new System.Windows.Forms.Padding(0); + startupPage.Name = "startupPage"; + startupPage.Padding = new System.Windows.Forms.Padding(10); + startupPage.Size = new System.Drawing.Size(392, 226); + startupPage.TabIndex = 3; + startupPage.Text = "startup"; + startupPage.ToolTipText = "App startup action"; // // startupBoundsCheckBox // - this.startupBoundsCheckBox.BackColor = System.Drawing.SystemColors.Control; - this.startupBoundsCheckBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.startupBoundsCheckBox.CausesValidation = false; - this.startupBoundsCheckBox.Cursor = System.Windows.Forms.Cursors.Default; - this.startupBoundsCheckBox.DarkMode = false; - this.startupBoundsCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.startupBoundsCheckBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.startupBoundsCheckBox.ForeColor = System.Drawing.Color.Black; - this.startupBoundsCheckBox.Image = null; - this.startupBoundsCheckBox.Location = new System.Drawing.Point(10, 71); - this.startupBoundsCheckBox.Margin = new System.Windows.Forms.Padding(0); - this.startupBoundsCheckBox.Name = "startupBoundsCheckBox"; - this.startupBoundsCheckBox.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.startupBoundsCheckBox.Size = new System.Drawing.Size(372, 32); - this.startupBoundsCheckBox.TabIndex = 1; - this.startupBoundsCheckBox.Text = "bounds"; - this.startupBoundsCheckBox.UseMnemonic = false; - this.startupBoundsCheckBox.UseVisualStyleBackColor = true; - this.startupBoundsCheckBox.CheckedChanged += new System.EventHandler(this.startupBoundsCheckBox_CheckedChanged); + startupBoundsCheckBox.BackColor = System.Drawing.SystemColors.Control; + startupBoundsCheckBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + startupBoundsCheckBox.CausesValidation = false; + startupBoundsCheckBox.DarkMode = false; + startupBoundsCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.System; + startupBoundsCheckBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 204); + startupBoundsCheckBox.ForeColor = System.Drawing.Color.Black; + startupBoundsCheckBox.Image = null; + startupBoundsCheckBox.Location = new System.Drawing.Point(10, 71); + startupBoundsCheckBox.Margin = new System.Windows.Forms.Padding(0); + startupBoundsCheckBox.Name = "startupBoundsCheckBox"; + startupBoundsCheckBox.RightToLeft = System.Windows.Forms.RightToLeft.No; + startupBoundsCheckBox.Size = new System.Drawing.Size(372, 32); + startupBoundsCheckBox.TabIndex = 1; + startupBoundsCheckBox.Text = "bounds"; + startupBoundsCheckBox.UseMnemonic = false; + startupBoundsCheckBox.UseVisualStyleBackColor = true; + startupBoundsCheckBox.CheckedChanged += startupBoundsCheckBox_CheckedChanged; // // updatesCheckBox // - this.updatesCheckBox.BackColor = System.Drawing.SystemColors.Control; - this.updatesCheckBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.updatesCheckBox.CausesValidation = false; - this.updatesCheckBox.Cursor = System.Windows.Forms.Cursors.Default; - this.updatesCheckBox.DarkMode = false; - this.updatesCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.updatesCheckBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.updatesCheckBox.ForeColor = System.Drawing.Color.Black; - this.updatesCheckBox.Image = null; - this.updatesCheckBox.Location = new System.Drawing.Point(10, 39); - this.updatesCheckBox.Margin = new System.Windows.Forms.Padding(0); - this.updatesCheckBox.Name = "updatesCheckBox"; - this.updatesCheckBox.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.updatesCheckBox.Size = new System.Drawing.Size(372, 32); - this.updatesCheckBox.TabIndex = 0; - this.updatesCheckBox.Text = "check for app updates"; - this.updatesCheckBox.UseMnemonic = false; - this.updatesCheckBox.UseVisualStyleBackColor = true; - this.updatesCheckBox.CheckedChanged += new System.EventHandler(this.updatesCheckBox_CheckedChanged); + updatesCheckBox.BackColor = System.Drawing.SystemColors.Control; + updatesCheckBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + updatesCheckBox.CausesValidation = false; + updatesCheckBox.DarkMode = false; + updatesCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.System; + updatesCheckBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 204); + updatesCheckBox.ForeColor = System.Drawing.Color.Black; + updatesCheckBox.Image = null; + updatesCheckBox.Location = new System.Drawing.Point(10, 39); + updatesCheckBox.Margin = new System.Windows.Forms.Padding(0); + updatesCheckBox.Name = "updatesCheckBox"; + updatesCheckBox.RightToLeft = System.Windows.Forms.RightToLeft.No; + updatesCheckBox.Size = new System.Drawing.Size(372, 32); + updatesCheckBox.TabIndex = 0; + updatesCheckBox.Text = "check for app updates"; + updatesCheckBox.UseMnemonic = false; + updatesCheckBox.UseVisualStyleBackColor = true; + updatesCheckBox.CheckedChanged += updatesCheckBox_CheckedChanged; // // startupPasteCheckBox // - this.startupPasteCheckBox.BackColor = System.Drawing.SystemColors.Control; - this.startupPasteCheckBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.startupPasteCheckBox.CausesValidation = false; - this.startupPasteCheckBox.Cursor = System.Windows.Forms.Cursors.Default; - this.startupPasteCheckBox.DarkMode = false; - this.startupPasteCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.startupPasteCheckBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.startupPasteCheckBox.ForeColor = System.Drawing.Color.Black; - this.startupPasteCheckBox.Image = null; - this.startupPasteCheckBox.Location = new System.Drawing.Point(10, 103); - this.startupPasteCheckBox.Margin = new System.Windows.Forms.Padding(0); - this.startupPasteCheckBox.Name = "startupPasteCheckBox"; - this.startupPasteCheckBox.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.startupPasteCheckBox.Size = new System.Drawing.Size(372, 32); - this.startupPasteCheckBox.TabIndex = 2; - this.startupPasteCheckBox.Text = "paste"; - this.startupPasteCheckBox.UseMnemonic = false; - this.startupPasteCheckBox.UseVisualStyleBackColor = true; - this.startupPasteCheckBox.CheckedChanged += new System.EventHandler(this.startupPasteCheckBox_CheckedChanged); + startupPasteCheckBox.BackColor = System.Drawing.SystemColors.Control; + startupPasteCheckBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + startupPasteCheckBox.CausesValidation = false; + startupPasteCheckBox.DarkMode = false; + startupPasteCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.System; + startupPasteCheckBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 204); + startupPasteCheckBox.ForeColor = System.Drawing.Color.Black; + startupPasteCheckBox.Image = null; + startupPasteCheckBox.Location = new System.Drawing.Point(10, 103); + startupPasteCheckBox.Margin = new System.Windows.Forms.Padding(0); + startupPasteCheckBox.Name = "startupPasteCheckBox"; + startupPasteCheckBox.RightToLeft = System.Windows.Forms.RightToLeft.No; + startupPasteCheckBox.Size = new System.Drawing.Size(372, 32); + startupPasteCheckBox.TabIndex = 2; + startupPasteCheckBox.Text = "paste"; + startupPasteCheckBox.UseMnemonic = false; + startupPasteCheckBox.UseVisualStyleBackColor = true; + startupPasteCheckBox.CheckedChanged += startupPasteCheckBox_CheckedChanged; // // startupLabel // - this.startupLabel.AutoSize = true; - this.startupLabel.Location = new System.Drawing.Point(10, 10); - this.startupLabel.Margin = new System.Windows.Forms.Padding(0, 0, 0, 10); - this.startupLabel.Name = "startupLabel"; - this.startupLabel.Size = new System.Drawing.Size(103, 19); - this.startupLabel.TabIndex = 42; - this.startupLabel.Text = "startup actions:"; + startupLabel.AutoSize = true; + startupLabel.Location = new System.Drawing.Point(10, 10); + startupLabel.Margin = new System.Windows.Forms.Padding(0, 0, 0, 10); + startupLabel.Name = "startupLabel"; + startupLabel.Size = new System.Drawing.Size(103, 19); + startupLabel.TabIndex = 42; + startupLabel.Text = "startup actions:"; // // externalPage // - this.externalPage.BackColor = System.Drawing.SystemColors.Control; - this.externalPage.Controls.Add(this.makeDefaultBtn); - this.externalPage.Controls.Add(this.browseWithCheckBox); - this.externalPage.Controls.Add(this.contextMenuLabel); - this.externalPage.Controls.Add(this.openWithCheckBox); - this.externalPage.Controls.Add(this.browseBtn); - this.externalPage.Controls.Add(this.favExtTextBox); - this.externalPage.Controls.Add(this.favExtLabel); - this.externalPage.Location = new System.Drawing.Point(4, 60); - this.externalPage.Margin = new System.Windows.Forms.Padding(0); - this.externalPage.Name = "externalPage"; - this.externalPage.Padding = new System.Windows.Forms.Padding(10); - this.externalPage.Size = new System.Drawing.Size(392, 226); - this.externalPage.TabIndex = 4; - this.externalPage.Text = "Windows"; + externalPage.BackColor = System.Drawing.SystemColors.Control; + externalPage.Controls.Add(makeDefaultBtn); + externalPage.Controls.Add(browseWithCheckBox); + externalPage.Controls.Add(contextMenuLabel); + externalPage.Controls.Add(openWithCheckBox); + externalPage.Controls.Add(browseBtn); + externalPage.Controls.Add(favExtTextBox); + externalPage.Controls.Add(favExtLabel); + externalPage.Location = new System.Drawing.Point(4, 60); + externalPage.Margin = new System.Windows.Forms.Padding(0); + externalPage.Name = "externalPage"; + externalPage.Padding = new System.Windows.Forms.Padding(10); + externalPage.Size = new System.Drawing.Size(392, 226); + externalPage.TabIndex = 4; + externalPage.Text = "Windows"; // // makeDefaultBtn // - this.makeDefaultBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.makeDefaultBtn.Enabled = false; - this.makeDefaultBtn.FlatAppearance.BorderSize = 0; - this.makeDefaultBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.makeDefaultBtn.Location = new System.Drawing.Point(10, 10); - this.makeDefaultBtn.Margin = new System.Windows.Forms.Padding(0); - this.makeDefaultBtn.Name = "makeDefaultBtn"; - this.makeDefaultBtn.Size = new System.Drawing.Size(372, 32); - this.makeDefaultBtn.TabIndex = 0; - this.makeDefaultBtn.Text = "set as default photo viewer"; - this.makeDefaultBtn.UseVisualStyleBackColor = false; - this.makeDefaultBtn.Click += new System.EventHandler(this.makeDefaultBtn_Click); + makeDefaultBtn.BackColor = System.Drawing.SystemColors.ControlLight; + makeDefaultBtn.Enabled = false; + makeDefaultBtn.FlatAppearance.BorderSize = 0; + makeDefaultBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + makeDefaultBtn.Location = new System.Drawing.Point(10, 10); + makeDefaultBtn.Margin = new System.Windows.Forms.Padding(0); + makeDefaultBtn.Name = "makeDefaultBtn"; + makeDefaultBtn.Size = new System.Drawing.Size(372, 32); + makeDefaultBtn.TabIndex = 0; + makeDefaultBtn.Text = "set as default photo viewer"; + makeDefaultBtn.UseVisualStyleBackColor = false; + makeDefaultBtn.Click += makeDefaultBtn_Click; // // browseWithCheckBox // - this.browseWithCheckBox.BackColor = System.Drawing.SystemColors.Control; - this.browseWithCheckBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.browseWithCheckBox.CausesValidation = false; - this.browseWithCheckBox.Cursor = System.Windows.Forms.Cursors.Default; - this.browseWithCheckBox.DarkMode = false; - this.browseWithCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.browseWithCheckBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.browseWithCheckBox.ForeColor = System.Drawing.Color.Black; - this.browseWithCheckBox.Image = null; - this.browseWithCheckBox.Location = new System.Drawing.Point(10, 113); - this.browseWithCheckBox.Margin = new System.Windows.Forms.Padding(0); - this.browseWithCheckBox.Name = "browseWithCheckBox"; - this.browseWithCheckBox.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.browseWithCheckBox.Size = new System.Drawing.Size(372, 32); - this.browseWithCheckBox.TabIndex = 2; - this.browseWithCheckBox.Text = "browse folder with qpv"; - this.browseWithCheckBox.UseMnemonic = false; - this.browseWithCheckBox.UseVisualStyleBackColor = true; - this.browseWithCheckBox.CheckedChanged += new System.EventHandler(this.browseWithCheckBox_CheckedChanged); + browseWithCheckBox.BackColor = System.Drawing.SystemColors.Control; + browseWithCheckBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + browseWithCheckBox.CausesValidation = false; + browseWithCheckBox.DarkMode = false; + browseWithCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.System; + browseWithCheckBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 204); + browseWithCheckBox.ForeColor = System.Drawing.Color.Black; + browseWithCheckBox.Image = null; + browseWithCheckBox.Location = new System.Drawing.Point(10, 113); + browseWithCheckBox.Margin = new System.Windows.Forms.Padding(0); + browseWithCheckBox.Name = "browseWithCheckBox"; + browseWithCheckBox.RightToLeft = System.Windows.Forms.RightToLeft.No; + browseWithCheckBox.Size = new System.Drawing.Size(372, 32); + browseWithCheckBox.TabIndex = 2; + browseWithCheckBox.Text = "browse folder with qpv"; + browseWithCheckBox.UseMnemonic = false; + browseWithCheckBox.UseVisualStyleBackColor = true; + browseWithCheckBox.CheckedChanged += browseWithCheckBox_CheckedChanged; // // contextMenuLabel // - this.contextMenuLabel.AutoSize = true; - this.contextMenuLabel.Location = new System.Drawing.Point(6, 52); - this.contextMenuLabel.Margin = new System.Windows.Forms.Padding(0, 10, 0, 10); - this.contextMenuLabel.Name = "contextMenuLabel"; - this.contextMenuLabel.Size = new System.Drawing.Size(96, 19); - this.contextMenuLabel.TabIndex = 45; - this.contextMenuLabel.Text = "context menu:"; + contextMenuLabel.AutoSize = true; + contextMenuLabel.Location = new System.Drawing.Point(6, 52); + contextMenuLabel.Margin = new System.Windows.Forms.Padding(0, 10, 0, 10); + contextMenuLabel.Name = "contextMenuLabel"; + contextMenuLabel.Size = new System.Drawing.Size(96, 19); + contextMenuLabel.TabIndex = 45; + contextMenuLabel.Text = "context menu:"; // // openWithCheckBox // - this.openWithCheckBox.BackColor = System.Drawing.SystemColors.Control; - this.openWithCheckBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.openWithCheckBox.CausesValidation = false; - this.openWithCheckBox.Cursor = System.Windows.Forms.Cursors.Default; - this.openWithCheckBox.DarkMode = false; - this.openWithCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.openWithCheckBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.openWithCheckBox.ForeColor = System.Drawing.Color.Black; - this.openWithCheckBox.Image = null; - this.openWithCheckBox.Location = new System.Drawing.Point(10, 81); - this.openWithCheckBox.Margin = new System.Windows.Forms.Padding(0); - this.openWithCheckBox.Name = "openWithCheckBox"; - this.openWithCheckBox.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.openWithCheckBox.Size = new System.Drawing.Size(372, 32); - this.openWithCheckBox.TabIndex = 1; - this.openWithCheckBox.Text = "open with qpv"; - this.openWithCheckBox.UseMnemonic = false; - this.openWithCheckBox.UseVisualStyleBackColor = true; - this.openWithCheckBox.CheckedChanged += new System.EventHandler(this.openWithCheckBox_CheckedChanged); + openWithCheckBox.BackColor = System.Drawing.SystemColors.Control; + openWithCheckBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + openWithCheckBox.CausesValidation = false; + openWithCheckBox.DarkMode = false; + openWithCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.System; + openWithCheckBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 204); + openWithCheckBox.ForeColor = System.Drawing.Color.Black; + openWithCheckBox.Image = null; + openWithCheckBox.Location = new System.Drawing.Point(10, 81); + openWithCheckBox.Margin = new System.Windows.Forms.Padding(0); + openWithCheckBox.Name = "openWithCheckBox"; + openWithCheckBox.RightToLeft = System.Windows.Forms.RightToLeft.No; + openWithCheckBox.Size = new System.Drawing.Size(372, 32); + openWithCheckBox.TabIndex = 1; + openWithCheckBox.Text = "open with qpv"; + openWithCheckBox.UseMnemonic = false; + openWithCheckBox.UseVisualStyleBackColor = true; + openWithCheckBox.CheckedChanged += openWithCheckBox_CheckedChanged; // // browseBtn // - this.browseBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.browseBtn.FlatAppearance.BorderSize = 0; - this.browseBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.browseBtn.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.browseBtn.ForeColor = System.Drawing.SystemColors.ControlText; - this.browseBtn.Image = global::quick_picture_viewer.Properties.Resources.black_open; - this.browseBtn.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; - this.browseBtn.Location = new System.Drawing.Point(262, 184); - this.browseBtn.Margin = new System.Windows.Forms.Padding(10, 10, 0, 0); - this.browseBtn.Name = "browseBtn"; - this.browseBtn.Size = new System.Drawing.Size(120, 32); - this.browseBtn.TabIndex = 4; - this.browseBtn.Text = " browse"; - this.browseBtn.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.browseBtn.UseVisualStyleBackColor = false; - this.browseBtn.Click += new System.EventHandler(this.browseBtn_Click); + browseBtn.BackColor = System.Drawing.SystemColors.ControlLight; + browseBtn.FlatAppearance.BorderSize = 0; + browseBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + browseBtn.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 0); + browseBtn.ForeColor = System.Drawing.SystemColors.ControlText; + browseBtn.Image = Properties.Resources.black_open; + browseBtn.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; + browseBtn.Location = new System.Drawing.Point(262, 184); + browseBtn.Margin = new System.Windows.Forms.Padding(10, 10, 0, 0); + browseBtn.Name = "browseBtn"; + browseBtn.Size = new System.Drawing.Size(120, 32); + browseBtn.TabIndex = 4; + browseBtn.Text = " browse"; + browseBtn.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + browseBtn.UseVisualStyleBackColor = false; + browseBtn.Click += browseBtn_Click; // // favExtTextBox // - this.favExtTextBox.AutoScrollMargin = new System.Drawing.Size(0, 0); - this.favExtTextBox.AutoScrollMinSize = new System.Drawing.Size(0, 0); - this.favExtTextBox.BackColor = System.Drawing.SystemColors.ControlLight; - this.favExtTextBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.favExtTextBox.CausesValidation = false; - this.favExtTextBox.Cursor = System.Windows.Forms.Cursors.IBeam; - this.favExtTextBox.DarkMode = false; - this.favExtTextBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.favExtTextBox.ForeColor = System.Drawing.Color.Black; - this.favExtTextBox.Location = new System.Drawing.Point(10, 184); - this.favExtTextBox.Margin = new System.Windows.Forms.Padding(0); - this.favExtTextBox.Name = "favExtTextBox"; - this.favExtTextBox.ReadOnly = false; - this.favExtTextBox.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.favExtTextBox.Size = new System.Drawing.Size(242, 32); - this.favExtTextBox.TabIndex = 3; - this.favExtTextBox.WordWrap = true; - this.favExtTextBox.TextChanged += new System.EventHandler(this.favExtTextBox_TextChanged); + favExtTextBox.AutoScrollMargin = new System.Drawing.Size(0, 0); + favExtTextBox.AutoScrollMinSize = new System.Drawing.Size(0, 0); + favExtTextBox.BackColor = System.Drawing.SystemColors.ControlLight; + favExtTextBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + favExtTextBox.CausesValidation = false; + favExtTextBox.Cursor = System.Windows.Forms.Cursors.IBeam; + favExtTextBox.DarkMode = false; + favExtTextBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 204); + favExtTextBox.ForeColor = System.Drawing.Color.Black; + favExtTextBox.Location = new System.Drawing.Point(10, 184); + favExtTextBox.Margin = new System.Windows.Forms.Padding(0); + favExtTextBox.Name = "favExtTextBox"; + favExtTextBox.ReadOnly = false; + favExtTextBox.RightToLeft = System.Windows.Forms.RightToLeft.No; + favExtTextBox.Size = new System.Drawing.Size(242, 32); + favExtTextBox.TabIndex = 3; + favExtTextBox.WordWrap = true; + favExtTextBox.TextChanged += favExtTextBox_TextChanged; // // favExtLabel // - this.favExtLabel.AutoSize = true; - this.favExtLabel.Location = new System.Drawing.Point(6, 155); - this.favExtLabel.Margin = new System.Windows.Forms.Padding(0, 10, 0, 10); - this.favExtLabel.Name = "favExtLabel"; - this.favExtLabel.Size = new System.Drawing.Size(137, 19); - this.favExtLabel.TabIndex = 0; - this.favExtLabel.Text = "favorite external app:"; + favExtLabel.AutoSize = true; + favExtLabel.Location = new System.Drawing.Point(6, 155); + favExtLabel.Margin = new System.Windows.Forms.Padding(0, 10, 0, 10); + favExtLabel.Name = "favExtLabel"; + favExtLabel.Size = new System.Drawing.Size(137, 19); + favExtLabel.TabIndex = 0; + favExtLabel.Text = "favorite external app:"; // // langPage // - this.langPage.BackColor = System.Drawing.SystemColors.Control; - this.langPage.Controls.Add(this.helpTranslateBtn); - this.langPage.Controls.Add(this.translateAuthorsPanel); - this.langPage.Controls.Add(this.translatedByLabel); - this.langPage.Controls.Add(this.langLabel); - this.langPage.Controls.Add(this.restartLabel2); - this.langPage.Controls.Add(this.langComboBox); - this.langPage.Controls.Add(this.localizationRestart); - this.langPage.Location = new System.Drawing.Point(4, 60); - this.langPage.Margin = new System.Windows.Forms.Padding(0); - this.langPage.Name = "langPage"; - this.langPage.Padding = new System.Windows.Forms.Padding(10); - this.langPage.Size = new System.Drawing.Size(392, 226); - this.langPage.TabIndex = 6; - this.langPage.Text = "localization"; + langPage.BackColor = System.Drawing.SystemColors.Control; + langPage.Controls.Add(helpTranslateBtn); + langPage.Controls.Add(translateAuthorsPanel); + langPage.Controls.Add(translatedByLabel); + langPage.Controls.Add(langLabel); + langPage.Controls.Add(restartLabel2); + langPage.Controls.Add(langComboBox); + langPage.Controls.Add(localizationRestart); + langPage.Location = new System.Drawing.Point(4, 60); + langPage.Margin = new System.Windows.Forms.Padding(0); + langPage.Name = "langPage"; + langPage.Padding = new System.Windows.Forms.Padding(10); + langPage.Size = new System.Drawing.Size(392, 226); + langPage.TabIndex = 6; + langPage.Text = "localization"; // // helpTranslateBtn // - this.helpTranslateBtn.BackColor = System.Drawing.SystemColors.ControlLight; - this.helpTranslateBtn.FlatAppearance.BorderSize = 0; - this.helpTranslateBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.helpTranslateBtn.Location = new System.Drawing.Point(10, 110); - this.helpTranslateBtn.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); - this.helpTranslateBtn.Name = "helpTranslateBtn"; - this.helpTranslateBtn.Size = new System.Drawing.Size(372, 32); - this.helpTranslateBtn.TabIndex = 2; - this.helpTranslateBtn.Text = "help us to translate the app"; - this.helpTranslateBtn.UseVisualStyleBackColor = false; - this.helpTranslateBtn.Click += new System.EventHandler(this.helpTranslateBtn_Click); + helpTranslateBtn.BackColor = System.Drawing.SystemColors.ControlLight; + helpTranslateBtn.FlatAppearance.BorderSize = 0; + helpTranslateBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + helpTranslateBtn.Location = new System.Drawing.Point(10, 110); + helpTranslateBtn.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); + helpTranslateBtn.Name = "helpTranslateBtn"; + helpTranslateBtn.Size = new System.Drawing.Size(372, 32); + helpTranslateBtn.TabIndex = 2; + helpTranslateBtn.Text = "help us to translate the app"; + helpTranslateBtn.UseVisualStyleBackColor = false; + helpTranslateBtn.Click += helpTranslateBtn_Click; // // translateAuthorsPanel // - this.translateAuthorsPanel.Location = new System.Drawing.Point(102, 81); - this.translateAuthorsPanel.Margin = new System.Windows.Forms.Padding(0); - this.translateAuthorsPanel.Name = "translateAuthorsPanel"; - this.translateAuthorsPanel.Size = new System.Drawing.Size(280, 19); - this.translateAuthorsPanel.TabIndex = 1; + translateAuthorsPanel.Location = new System.Drawing.Point(102, 81); + translateAuthorsPanel.Margin = new System.Windows.Forms.Padding(0); + translateAuthorsPanel.Name = "translateAuthorsPanel"; + translateAuthorsPanel.Size = new System.Drawing.Size(280, 19); + translateAuthorsPanel.TabIndex = 1; // // translatedByLabel // - this.translatedByLabel.AutoSize = true; - this.translatedByLabel.Location = new System.Drawing.Point(10, 81); - this.translatedByLabel.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); - this.translatedByLabel.Name = "translatedByLabel"; - this.translatedByLabel.Size = new System.Drawing.Size(92, 19); - this.translatedByLabel.TabIndex = 42; - this.translatedByLabel.Text = "translated by:"; + translatedByLabel.AutoSize = true; + translatedByLabel.Location = new System.Drawing.Point(10, 81); + translatedByLabel.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); + translatedByLabel.Name = "translatedByLabel"; + translatedByLabel.Size = new System.Drawing.Size(92, 19); + translatedByLabel.TabIndex = 42; + translatedByLabel.Text = "translated by:"; // // langLabel // - this.langLabel.AutoSize = true; - this.langLabel.Location = new System.Drawing.Point(10, 10); - this.langLabel.Margin = new System.Windows.Forms.Padding(0); - this.langLabel.Name = "langLabel"; - this.langLabel.Size = new System.Drawing.Size(68, 19); - this.langLabel.TabIndex = 41; - this.langLabel.Text = "language:"; + langLabel.AutoSize = true; + langLabel.Location = new System.Drawing.Point(10, 10); + langLabel.Margin = new System.Windows.Forms.Padding(0); + langLabel.Name = "langLabel"; + langLabel.Size = new System.Drawing.Size(68, 19); + langLabel.TabIndex = 41; + langLabel.Text = "language:"; // // restartLabel2 // - this.restartLabel2.AutoSize = true; - this.restartLabel2.Location = new System.Drawing.Point(10, 197); - this.restartLabel2.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); - this.restartLabel2.Name = "restartLabel2"; - this.restartLabel2.Size = new System.Drawing.Size(114, 19); - this.restartLabel2.TabIndex = 39; - this.restartLabel2.Text = "* restart required"; + restartLabel2.AutoSize = true; + restartLabel2.Location = new System.Drawing.Point(10, 197); + restartLabel2.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); + restartLabel2.Name = "restartLabel2"; + restartLabel2.Size = new System.Drawing.Size(114, 19); + restartLabel2.TabIndex = 39; + restartLabel2.Text = "* restart required"; // // langComboBox // - this.langComboBox.BackColor = System.Drawing.SystemColors.ControlLight; - this.langComboBox.CausesValidation = false; - this.langComboBox.DarkMode = false; - this.langComboBox.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; - this.langComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.langComboBox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.langComboBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.langComboBox.ForeColor = System.Drawing.Color.Black; - this.langComboBox.FormattingEnabled = true; - this.langComboBox.IntegralHeight = false; - this.langComboBox.ItemHeight = 26; - this.langComboBox.Items.AddRange(new object[] { - "English", - "Chinese (中文)", - "Croatian (Hrvatski)", - "French (Français)", - "German (Deutsch)", - "Hungarian (Magyar)", - "Russian (Русский)", - "Spanish (Española)"}); - this.langComboBox.Location = new System.Drawing.Point(10, 39); - this.langComboBox.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); - this.langComboBox.Name = "langComboBox"; - this.langComboBox.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.langComboBox.Size = new System.Drawing.Size(372, 32); - this.langComboBox.TabIndex = 0; - this.langComboBox.SelectedIndexChanged += new System.EventHandler(this.langComboBox_SelectedIndexChanged); + langComboBox.BackColor = System.Drawing.SystemColors.ControlLight; + langComboBox.CausesValidation = false; + langComboBox.DarkMode = false; + langComboBox.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; + langComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + langComboBox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + langComboBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 204); + langComboBox.ForeColor = System.Drawing.Color.Black; + langComboBox.FormattingEnabled = true; + langComboBox.IntegralHeight = false; + langComboBox.ItemHeight = 26; + langComboBox.Items.AddRange(new object[] { "English", "Arabic (عربي)", "Chinese (中文)", "Croatian (Hrvatski)", "French (Français)", "German (Deutsch)", "Hungarian (Magyar)", "Russian (Русский)", "Spanish (Española)", "Turkish (Türkçe)" }); + langComboBox.Location = new System.Drawing.Point(10, 39); + langComboBox.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); + langComboBox.Name = "langComboBox"; + langComboBox.RightToLeft = System.Windows.Forms.RightToLeft.No; + langComboBox.Size = new System.Drawing.Size(372, 32); + langComboBox.TabIndex = 0; + langComboBox.SelectedIndexChanged += langComboBox_SelectedIndexChanged; // // localizationRestart // - this.localizationRestart.ActiveLinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.localizationRestart.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; - this.localizationRestart.Location = new System.Drawing.Point(10, 197); - this.localizationRestart.Margin = new System.Windows.Forms.Padding(0); - this.localizationRestart.Name = "localizationRestart"; - this.localizationRestart.Size = new System.Drawing.Size(372, 19); - this.localizationRestart.TabIndex = 3; - this.localizationRestart.TabStop = true; - this.localizationRestart.Text = "restart"; - this.localizationRestart.TextAlign = System.Drawing.ContentAlignment.TopRight; - this.localizationRestart.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.restartLink_LinkClicked); + localizationRestart.ActiveLinkColor = System.Drawing.Color.FromArgb(100, 100, 100); + localizationRestart.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; + localizationRestart.Location = new System.Drawing.Point(10, 197); + localizationRestart.Margin = new System.Windows.Forms.Padding(0); + localizationRestart.Name = "localizationRestart"; + localizationRestart.Size = new System.Drawing.Size(372, 19); + localizationRestart.TabIndex = 3; + localizationRestart.TabStop = true; + localizationRestart.Text = "restart"; + localizationRestart.TextAlign = System.Drawing.ContentAlignment.TopRight; + localizationRestart.LinkClicked += restartLink_LinkClicked; // // closeBtn // - this.closeBtn.DarkImage = global::quick_picture_viewer.Properties.Resources.black_close; - this.closeBtn.DarkMode = false; - this.closeBtn.FlatAppearance.BorderSize = 0; - this.closeBtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(140)))), ((int)(((byte)(140)))), ((int)(((byte)(140))))); - this.closeBtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); - this.closeBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.closeBtn.ForeColor = System.Drawing.Color.Black; - this.closeBtn.Image = global::quick_picture_viewer.Properties.Resources.black_close; - this.closeBtn.IsRed = true; - this.closeBtn.LightImage = global::quick_picture_viewer.Properties.Resources.white_close; - this.closeBtn.Location = new System.Drawing.Point(388, 0); - this.closeBtn.Margin = new System.Windows.Forms.Padding(0); - this.closeBtn.Name = "closeBtn"; - this.closeBtn.Size = new System.Drawing.Size(32, 32); - this.closeBtn.TabIndex = 1; - this.closeBtn.UseVisualStyleBackColor = true; - this.closeBtn.Click += new System.EventHandler(this.closeBtn_Click); + closeBtn.DarkImage = Properties.Resources.black_close; + closeBtn.DarkMode = false; + closeBtn.FlatAppearance.BorderSize = 0; + closeBtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(140, 140, 140); + closeBtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(204, 204, 204); + closeBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + closeBtn.ForeColor = System.Drawing.Color.Black; + closeBtn.Image = Properties.Resources.black_close; + closeBtn.IsRed = true; + closeBtn.LightImage = Properties.Resources.white_close; + closeBtn.Location = new System.Drawing.Point(388, 0); + closeBtn.Margin = new System.Windows.Forms.Padding(0); + closeBtn.Name = "closeBtn"; + closeBtn.Size = new System.Drawing.Size(32, 32); + closeBtn.TabIndex = 1; + closeBtn.UseVisualStyleBackColor = true; + closeBtn.Click += closeBtn_Click; // // openFileDialog1 // - this.openFileDialog1.FileName = "openFileDialog1"; - this.openFileDialog1.Filter = "App executable|*.exe"; + openFileDialog1.FileName = "openFileDialog1"; + openFileDialog1.Filter = "App executable|*.exe"; // // SettingsForm // - this.AlternativeAppearance = true; - this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); - this.ClientSize = new System.Drawing.Size(420, 342); - this.Controls.Add(this.closeBtn); - this.Controls.Add(this.settingsTabs); - this.Draggable = true; - this.EscToClose = true; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "SettingsForm"; - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.ShowTitle = true; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "SettingsForm"; - this.Load += new System.EventHandler(this.SettingsForm_Load); - this.settingsTabs.ResumeLayout(false); - this.themePage.ResumeLayout(false); - this.themePage.PerformLayout(); - this.mousePage.ResumeLayout(false); - this.mousePage.PerformLayout(); - this.slideshowPage.ResumeLayout(false); - this.slideshowPage.PerformLayout(); - this.startupPage.ResumeLayout(false); - this.startupPage.PerformLayout(); - this.externalPage.ResumeLayout(false); - this.externalPage.PerformLayout(); - this.langPage.ResumeLayout(false); - this.langPage.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - + AlternativeAppearance = true; + AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); + ClientSize = new System.Drawing.Size(420, 342); + Controls.Add(closeBtn); + Controls.Add(settingsTabs); + Draggable = true; + EscToClose = true; + Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon"); + MaximizeBox = false; + MinimizeBox = false; + Name = "SettingsForm"; + ShowIcon = false; + ShowInTaskbar = false; + ShowTitle = true; + StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + Text = "SettingsForm"; + Load += SettingsForm_Load; + settingsTabs.ResumeLayout(false); + themePage.ResumeLayout(false); + themePage.PerformLayout(); + mousePage.ResumeLayout(false); + mousePage.PerformLayout(); + slideshowPage.ResumeLayout(false); + slideshowPage.PerformLayout(); + startupPage.ResumeLayout(false); + startupPage.PerformLayout(); + externalPage.ResumeLayout(false); + externalPage.PerformLayout(); + langPage.ResumeLayout(false); + langPage.PerformLayout(); + ResumeLayout(false); + PerformLayout(); } #endregion diff --git a/quick-picture-viewer/forms/SettingsForm.cs b/quick-picture-viewer/forms/SettingsForm.cs index c5341ce2..82da75de 100644 --- a/quick-picture-viewer/forms/SettingsForm.cs +++ b/quick-picture-viewer/forms/SettingsForm.cs @@ -64,7 +64,7 @@ private struct Language }, new Language { - Code = "es", + Code = "tr", Authors = new string[] { "ataberkcemunal" } } }; @@ -113,7 +113,7 @@ public SettingsForm() themeRestart.LinkColor = ThemeMan.AccentColor; localizationRestart.LinkColor = ThemeMan.AccentColor; - if (ThemeMan.isWindows10()) makeDefaultBtn.Enabled = true; + if (ThemeMan.isWindows10orLater()) makeDefaultBtn.Enabled = true; } private void InitLanguage() diff --git a/quick-picture-viewer/forms/SettingsForm.resx b/quick-picture-viewer/forms/SettingsForm.resx index a1ea0937..ef2a7561 100644 --- a/quick-picture-viewer/forms/SettingsForm.resx +++ b/quick-picture-viewer/forms/SettingsForm.resx @@ -1,17 +1,17 @@  - diff --git a/quick-picture-viewer/quick-picture-viewer.csproj b/quick-picture-viewer/quick-picture-viewer.csproj index aa860cfc..1ff57c74 100644 --- a/quick-picture-viewer/quick-picture-viewer.csproj +++ b/quick-picture-viewer/quick-picture-viewer.csproj @@ -79,10 +79,11 @@ - + + diff --git a/quick-picture-viewer/resources/dlls/libwebp_x64.dll b/quick-picture-viewer/resources/dlls/libwebp_x64.dll deleted file mode 100644 index ac184487..00000000 Binary files a/quick-picture-viewer/resources/dlls/libwebp_x64.dll and /dev/null differ diff --git a/quick-picture-viewer/resources/dlls/libwebp_x86.dll b/quick-picture-viewer/resources/dlls/libwebp_x86.dll deleted file mode 100644 index 874d2a3c..00000000 Binary files a/quick-picture-viewer/resources/dlls/libwebp_x86.dll and /dev/null differ diff --git a/quick-picture-viewer/typewrappers/WebpWrapper.cs b/quick-picture-viewer/typewrappers/WebpWrapper.cs index 7325033a..57adf1a4 100644 --- a/quick-picture-viewer/typewrappers/WebpWrapper.cs +++ b/quick-picture-viewer/typewrappers/WebpWrapper.cs @@ -1,6 +1,7 @@ using QuickLibrary; using System.Drawing; using System.IO; +using WebP.Net; namespace quick_picture_viewer { @@ -17,14 +18,11 @@ public override FileTypeMan.OpenResult Open(string path) try { byte[] rawWebP = File.ReadAllBytes(path); - using (WebP webp = new WebP()) + using (var webp = new WebPObject(rawWebP)) { - WebPDecoderOptions decoderOptions = new WebPDecoderOptions(); - decoderOptions.use_threads = 1; - decoderOptions.alpha_dithering_strength = 100; - return new FileTypeMan.OpenResult + return new FileTypeMan.OpenResult { - Bmp = webp.Decode(rawWebP, decoderOptions) + Bmp = new Bitmap(webp.GetImage()) }; } } @@ -39,7 +37,13 @@ public override FileTypeMan.OpenResult Open(string path) public static void Save(Bitmap bmp, string path) { - using (WebP webp = new WebP()) webp.Save(bmp, path); + using (var webp = new WebPObject(bmp)) + { + byte[] rawWebP = webp.GetWebPLossless(); + + using var writer = new BinaryWriter(File.OpenWrite(path)); + writer.Write(rawWebP); + } } } } diff --git a/quick-picture-viewer/typewrappers/engines/WebpEngine.cs b/quick-picture-viewer/typewrappers/engines/WebpEngine.cs deleted file mode 100644 index f6d81af3..00000000 --- a/quick-picture-viewer/typewrappers/engines/WebpEngine.cs +++ /dev/null @@ -1,1951 +0,0 @@ -///////////////////////////////////////////////////////////////////////////////////////////////////////////// -/// Wrapper for WebP format in C#. (MIT) Jose M. Piñeiro -///////////////////////////////////////////////////////////////////////////////////////////////////////////// -/// Decode Functions: -/// Bitmap Load(string pathFileName) - Load a WebP file in bitmap. -/// Bitmap Decode(byte[] rawWebP) - Decode WebP data (rawWebP) to bitmap. -/// Bitmap Decode(byte[] rawWebP, WebPDecoderOptions options) - Decode WebP data (rawWebP) to bitmap using 'options'. -/// Bitmap GetThumbnailFast(byte[] rawWebP, int width, int height) - Get a thumbnail from WebP data (rawWebP) with dimensions 'width x height'. Fast mode. -/// Bitmap GetThumbnailQuality(byte[] rawWebP, int width, int height) - Fast get a thumbnail from WebP data (rawWebP) with dimensions 'width x height'. Quality mode. -/// -/// Encode Functions: -/// Save(Bitmap bmp, string pathFileName, int quality) - Save bitmap with quality lost to WebP file. Opcionally select 'quality'. -/// byte[] EncodeLossy(Bitmap bmp, int quality) - Encode bitmap with quality lost to WebP byte array. Opcionally select 'quality'. -/// byte[] EncodeLossy(Bitmap bmp, int quality, int speed, bool info) - Encode bitmap with quality lost to WebP byte array. Select 'quality', 'speed' and opcionally select 'info'. -/// byte[] EncodeLossless(Bitmap bmp) - Encode bitmap without quality lost to WebP byte array. -/// byte[] EncodeLossless(Bitmap bmp, int speed, bool info = false) - Encode bitmap without quality lost to WebP byte array. Select 'speed'. -/// byte[] EncodeNearLossless(Bitmap bmp, int quality, int speed = 9, bool info = false) - Encode bitmap with nearlossless to WebP byte array. Select 'quality', 'speed' and opcionally select 'info'. -/// -/// Another functions: -/// string GetVersion() - Get the library version -/// GetInfo(byte[] rawWebP, out int width, out int height, out bool has_alpha, out bool has_animation, out string format) - Get information of WEBP data -/// float[] PictureDistortion(Bitmap source, Bitmap reference, int metric_type) - Get PSNR, SSIM or LSIM distortion metric between two pictures -///////////////////////////////////////////////////////////////////////////////////////////////////////////// -using System; -using System.Drawing; -using System.Drawing.Imaging; -using System.IO; -using System.Runtime.InteropServices; -using System.Security; -using System.Windows.Forms; - -namespace quick_picture_viewer -{ - public sealed class WebP : IDisposable - { - private const int WEBP_MAX_DIMENSION = 16383; - #region | Public Decode Functions | - /// Read a WebP file - /// WebP file to load - /// Bitmap with the WebP image - public Bitmap Load(string pathFileName) - { - try - { - byte[] rawWebP = File.ReadAllBytes(pathFileName); - - return Decode(rawWebP); - } - catch (Exception ex) { throw new Exception(ex.Message + "\r\nIn WebP.Load"); } - } - - /// Decode a WebP image - /// The data to uncompress - /// Bitmap with the WebP image - public Bitmap Decode(byte[] rawWebP) - { - Bitmap bmp = null; - BitmapData bmpData = null; - GCHandle pinnedWebP = GCHandle.Alloc(rawWebP, GCHandleType.Pinned); - int size; - - try - { - //Get image width and height - GetInfo(rawWebP, out int imgWidth, out int imgHeight, out bool hasAlpha, out bool hasAnimation, out string format); - - //Create a BitmapData and Lock all pixels to be written - if (hasAlpha) - bmp = new Bitmap(imgWidth, imgHeight, PixelFormat.Format32bppArgb); - else - bmp = new Bitmap(imgWidth, imgHeight, PixelFormat.Format24bppRgb); - bmpData = bmp.LockBits(new Rectangle(0, 0, imgWidth, imgHeight), ImageLockMode.WriteOnly, bmp.PixelFormat); - - //Uncompress the image - int outputSize = bmpData.Stride * imgHeight; - IntPtr ptrData = pinnedWebP.AddrOfPinnedObject(); - if (bmp.PixelFormat == PixelFormat.Format24bppRgb) - size = UnsafeNativeMethods.WebPDecodeBGRInto(ptrData, rawWebP.Length, bmpData.Scan0, outputSize, bmpData.Stride); - else - size = UnsafeNativeMethods.WebPDecodeBGRAInto(ptrData, rawWebP.Length, bmpData.Scan0, outputSize, bmpData.Stride); - if (size == 0) - throw new Exception("Can´t encode WebP"); - - return bmp; - } - catch (Exception ex) { throw new Exception(ex.Message + "\r\nIn WebP.Decode"); } - finally - { - //Unlock the pixels - if (bmpData != null) - bmp.UnlockBits(bmpData); - - //Free memory - if (pinnedWebP.IsAllocated) - pinnedWebP.Free(); - } - } - - /// Decode a WebP image - /// the data to uncompress - /// Options for advanced decode - /// Bitmap with the WebP image - public Bitmap Decode(byte[] rawWebP, WebPDecoderOptions options) - { - GCHandle pinnedWebP = GCHandle.Alloc(rawWebP, GCHandleType.Pinned); - Bitmap bmp = null; - BitmapData bmpData = null; - VP8StatusCode result; - try - { - WebPDecoderConfig config = new WebPDecoderConfig(); - if (UnsafeNativeMethods.WebPInitDecoderConfig(ref config) == 0) - { - throw new Exception("WebPInitDecoderConfig failed. Wrong version?"); - } - // Read the .webp input file information - IntPtr ptrRawWebP = pinnedWebP.AddrOfPinnedObject(); - int height; - int width; - if (options.use_scaling == 0) - { - result = UnsafeNativeMethods.WebPGetFeatures(ptrRawWebP, rawWebP.Length, ref config.input); - if (result != VP8StatusCode.VP8_STATUS_OK) - throw new Exception("Failed WebPGetFeatures with error " + result); - - //Test cropping values - if (options.use_cropping == 1) - { - if (options.crop_left + options.crop_width > config.input.Width || options.crop_top + options.crop_height > config.input.Height) - throw new Exception("Crop options exceded WebP image dimensions"); - width = options.crop_width; - height = options.crop_height; - } - } - else - { - width = options.scaled_width; - height = options.scaled_height; - } - - config.options.bypass_filtering = options.bypass_filtering; - config.options.no_fancy_upsampling = options.no_fancy_upsampling; - config.options.use_cropping = options.use_cropping; - config.options.crop_left = options.crop_left; - config.options.crop_top = options.crop_top; - config.options.crop_width = options.crop_width; - config.options.crop_height = options.crop_height; - config.options.use_scaling = options.use_scaling; - config.options.scaled_width = options.scaled_width; - config.options.scaled_height = options.scaled_height; - config.options.use_threads = options.use_threads; - config.options.dithering_strength = options.dithering_strength; - config.options.flip = options.flip; - config.options.alpha_dithering_strength = options.alpha_dithering_strength; - - //Create a BitmapData and Lock all pixels to be written - if (config.input.Has_alpha == 1) - { - config.output.colorspace = WEBP_CSP_MODE.MODE_bgrA; - bmp = new Bitmap(config.input.Width, config.input.Height, PixelFormat.Format32bppArgb); - } - else - { - config.output.colorspace = WEBP_CSP_MODE.MODE_BGR; - bmp = new Bitmap(config.input.Width, config.input.Height, PixelFormat.Format24bppRgb); - } - bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.WriteOnly, bmp.PixelFormat); - - // Specify the output format - config.output.u.RGBA.rgba = bmpData.Scan0; - config.output.u.RGBA.stride = bmpData.Stride; - config.output.u.RGBA.size = (UIntPtr)(bmp.Height * bmpData.Stride); - config.output.height = bmp.Height; - config.output.width = bmp.Width; - config.output.is_external_memory = 1; - - // Decode - result = UnsafeNativeMethods.WebPDecode(ptrRawWebP, rawWebP.Length, ref config); - if (result != VP8StatusCode.VP8_STATUS_OK) - { - throw new Exception("Failed WebPDecode with error " + result); - } - UnsafeNativeMethods.WebPFreeDecBuffer(ref config.output); - - return bmp; - } - catch (Exception ex) { throw new Exception(ex.Message + "\r\nIn WebP.Decode"); } - finally - { - //Unlock the pixels - if (bmpData != null) - bmp.UnlockBits(bmpData); - - //Free memory - if (pinnedWebP.IsAllocated) - pinnedWebP.Free(); - } - } - - /// Get Thumbnail from webP in mode faster/low quality - /// The data to uncompress - /// Wanted width of thumbnail - /// Wanted height of thumbnail - /// Bitmap with the WebP thumbnail in 24bpp - public Bitmap GetThumbnailFast(byte[] rawWebP, int width, int height) - { - GCHandle pinnedWebP = GCHandle.Alloc(rawWebP, GCHandleType.Pinned); - Bitmap bmp = null; - BitmapData bmpData = null; - - try - { - WebPDecoderConfig config = new WebPDecoderConfig(); - if (UnsafeNativeMethods.WebPInitDecoderConfig(ref config) == 0) - throw new Exception("WebPInitDecoderConfig failed. Wrong version?"); - - // Set up decode options - config.options.bypass_filtering = 1; - config.options.no_fancy_upsampling = 1; - config.options.use_threads = 1; - config.options.use_scaling = 1; - config.options.scaled_width = width; - config.options.scaled_height = height; - - // Create a BitmapData and Lock all pixels to be written - bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb); - bmpData = bmp.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.WriteOnly, bmp.PixelFormat); - - // Specify the output format - config.output.colorspace = WEBP_CSP_MODE.MODE_BGR; - config.output.u.RGBA.rgba = bmpData.Scan0; - config.output.u.RGBA.stride = bmpData.Stride; - config.output.u.RGBA.size = (UIntPtr)(height * bmpData.Stride); - config.output.height = height; - config.output.width = width; - config.output.is_external_memory = 1; - - // Decode - IntPtr ptrRawWebP = pinnedWebP.AddrOfPinnedObject(); - VP8StatusCode result = UnsafeNativeMethods.WebPDecode(ptrRawWebP, rawWebP.Length, ref config); - if (result != VP8StatusCode.VP8_STATUS_OK) - throw new Exception("Failed WebPDecode with error " + result); - - UnsafeNativeMethods.WebPFreeDecBuffer(ref config.output); - - return bmp; - } - catch (Exception ex) { throw new Exception(ex.Message + "\r\nIn WebP.Thumbnail"); } - finally - { - //Unlock the pixels - if (bmpData != null) - bmp.UnlockBits(bmpData); - - //Free memory - if (pinnedWebP.IsAllocated) - pinnedWebP.Free(); - } - } - - /// Thumbnail from webP in mode slow/high quality - /// The data to uncompress - /// Wanted width of thumbnail - /// Wanted height of thumbnail - /// Bitmap with the WebP thumbnail - public Bitmap GetThumbnailQuality(byte[] rawWebP, int width, int height) - { - GCHandle pinnedWebP = GCHandle.Alloc(rawWebP, GCHandleType.Pinned); - Bitmap bmp = null; - BitmapData bmpData = null; - - try - { - WebPDecoderConfig config = new WebPDecoderConfig(); - if (UnsafeNativeMethods.WebPInitDecoderConfig(ref config) == 0) - throw new Exception("WebPInitDecoderConfig failed. Wrong version?"); - - IntPtr ptrRawWebP = pinnedWebP.AddrOfPinnedObject(); - VP8StatusCode result = UnsafeNativeMethods.WebPGetFeatures(ptrRawWebP, rawWebP.Length, ref config.input); - if (result != VP8StatusCode.VP8_STATUS_OK) - throw new Exception("Failed WebPGetFeatures with error " + result); - - // Set up decode options - config.options.bypass_filtering = 0; - config.options.no_fancy_upsampling = 0; - config.options.use_threads = 1; - config.options.use_scaling = 1; - config.options.scaled_width = width; - config.options.scaled_height = height; - - //Create a BitmapData and Lock all pixels to be written - if (config.input.Has_alpha == 1) - { - config.output.colorspace = WEBP_CSP_MODE.MODE_bgrA; - bmp = new Bitmap(width, height, PixelFormat.Format32bppArgb); - } - else - { - config.output.colorspace = WEBP_CSP_MODE.MODE_BGR; - bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb); - } - bmpData = bmp.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.WriteOnly, bmp.PixelFormat); - - // Specify the output format - config.output.u.RGBA.rgba = bmpData.Scan0; - config.output.u.RGBA.stride = bmpData.Stride; - config.output.u.RGBA.size = (UIntPtr)(height * bmpData.Stride); - config.output.height = height; - config.output.width = width; - config.output.is_external_memory = 1; - - // Decode - result = UnsafeNativeMethods.WebPDecode(ptrRawWebP, rawWebP.Length, ref config); - if (result != VP8StatusCode.VP8_STATUS_OK) - throw new Exception("Failed WebPDecode with error " + result); - - UnsafeNativeMethods.WebPFreeDecBuffer(ref config.output); - - return bmp; - } - catch (Exception ex) { throw new Exception(ex.Message + "\r\nIn WebP.Thumbnail"); } - finally - { - //Unlock the pixels - if (bmpData != null) - bmp.UnlockBits(bmpData); - - //Free memory - if (pinnedWebP.IsAllocated) - pinnedWebP.Free(); - } - } - #endregion - - #region | Public Encode Functions | - /// Save bitmap to file in WebP format - /// Bitmap with the WebP image - /// The file to write - /// Between 0 (lower quality, lowest file size) and 100 (highest quality, higher file size) - public void Save(Bitmap bmp, string pathFileName, int quality = 75) - { - byte[] rawWebP; - - try - { - //Encode in webP format - rawWebP = EncodeLossy(bmp, quality); - - //Write webP file - File.WriteAllBytes(pathFileName, rawWebP); - } - catch (Exception ex) { throw new Exception(ex.Message + "\r\nIn WebP.Save"); } - } - - /// Lossy encoding bitmap to WebP (Simple encoding API) - /// Bitmap with the image - /// Between 0 (lower quality, lowest file size) and 100 (highest quality, higher file size) - /// Compressed data - public byte[] EncodeLossy(Bitmap bmp, int quality = 75) - { - //test bmp - if (bmp.Width == 0 || bmp.Height == 0) - throw new ArgumentException("Bitmap contains no data.", "bmp"); - if (bmp.Width > WEBP_MAX_DIMENSION || bmp.Height > WEBP_MAX_DIMENSION) - throw new NotSupportedException("Bitmap's dimension is too large. Max is " + WEBP_MAX_DIMENSION + "x" + WEBP_MAX_DIMENSION + " pixels."); - if (bmp.PixelFormat != PixelFormat.Format24bppRgb && bmp.PixelFormat != PixelFormat.Format32bppArgb) - throw new NotSupportedException("Only support Format24bppRgb and Format32bppArgb pixelFormat."); - - BitmapData bmpData = null; - IntPtr unmanagedData = IntPtr.Zero; - int size; - - try - { - //Get bmp data - bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, bmp.PixelFormat); - - //Compress the bmp data - if (bmp.PixelFormat == PixelFormat.Format24bppRgb) - size = UnsafeNativeMethods.WebPEncodeBGR(bmpData.Scan0, bmp.Width, bmp.Height, bmpData.Stride, quality, out unmanagedData); - else - size = UnsafeNativeMethods.WebPEncodeBGRA(bmpData.Scan0, bmp.Width, bmp.Height, bmpData.Stride, quality, out unmanagedData); - if (size == 0) - throw new Exception("Can´t encode WebP"); - - //Copy image compress data to output array - byte[] rawWebP = new byte[size]; - Marshal.Copy(unmanagedData, rawWebP, 0, size); - - return rawWebP; - } - catch (Exception ex) { throw new Exception(ex.Message + "\r\nIn WebP.EncodeLossly"); } - finally - { - //Unlock the pixels - if (bmpData != null) - bmp.UnlockBits(bmpData); - - //Free memory - if (unmanagedData != IntPtr.Zero) - UnsafeNativeMethods.WebPFree(unmanagedData); - } - } - - /// Lossy encoding bitmap to WebP (Advanced encoding API) - /// Bitmap with the image - /// Between 0 (lower quality, lowest file size) and 100 (highest quality, higher file size) - /// Between 0 (fastest, lowest compression) and 9 (slower, best compression) - /// Compressed data - public byte[] EncodeLossy(Bitmap bmp, int quality, int speed, bool info = false) - { - //Inicialize config struct - WebPConfig config = new WebPConfig(); - - //Set compresion parameters - if (UnsafeNativeMethods.WebPConfigInit(ref config, WebPPreset.WEBP_PRESET_DEFAULT, 75) == 0) - throw new Exception("Can´t config preset"); - - // Add additional tuning: - config.method = speed; - if (config.method > 6) - config.method = 6; - config.quality = quality; - config.autofilter = 1; - config.pass = speed + 1; - config.segments = 4; - config.partitions = 3; - config.thread_level = 1; - config.alpha_quality = quality; - config.alpha_filtering = 2; - config.use_sharp_yuv = 1; - - if (UnsafeNativeMethods.WebPGetDecoderVersion() > 1082) //Old version don´t suport preprocessing 4 - { - config.preprocessing = 4; - config.use_sharp_yuv = 1; - } - else - config.preprocessing = 3; - - return AdvancedEncode(bmp, config, info); - } - - /// Lossless encoding bitmap to WebP (Simple encoding API) - /// Bitmap with the image - /// Compressed data - public byte[] EncodeLossless(Bitmap bmp) - { - //test bmp - if (bmp.Width == 0 || bmp.Height == 0) - throw new ArgumentException("Bitmap contains no data.", "bmp"); - if (bmp.Width > WEBP_MAX_DIMENSION || bmp.Height > WEBP_MAX_DIMENSION) - throw new NotSupportedException("Bitmap's dimension is too large. Max is " + WEBP_MAX_DIMENSION + "x" + WEBP_MAX_DIMENSION + " pixels."); - if (bmp.PixelFormat != PixelFormat.Format24bppRgb && bmp.PixelFormat != PixelFormat.Format32bppArgb) - throw new NotSupportedException("Only support Format24bppRgb and Format32bppArgb pixelFormat."); - - BitmapData bmpData = null; - IntPtr unmanagedData = IntPtr.Zero; - try - { - //Get bmp data - bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, bmp.PixelFormat); - - //Compress the bmp data - int size; - if (bmp.PixelFormat == PixelFormat.Format24bppRgb) - size = UnsafeNativeMethods.WebPEncodeLosslessBGR(bmpData.Scan0, bmp.Width, bmp.Height, bmpData.Stride, out unmanagedData); - else - size = UnsafeNativeMethods.WebPEncodeLosslessBGRA(bmpData.Scan0, bmp.Width, bmp.Height, bmpData.Stride, out unmanagedData); - - //Copy image compress data to output array - byte[] rawWebP = new byte[size]; - Marshal.Copy(unmanagedData, rawWebP, 0, size); - - return rawWebP; - } - catch (Exception ex) { throw new Exception(ex.Message + "\r\nIn WebP.EncodeLossless (Simple)"); } - finally - { - //Unlock the pixels - if (bmpData != null) - bmp.UnlockBits(bmpData); - - //Free memory - if (unmanagedData != IntPtr.Zero) - UnsafeNativeMethods.WebPFree(unmanagedData); - } - } - - /// Lossless encoding image in bitmap (Advanced encoding API) - /// Bitmap with the image - /// Between 0 (fastest, lowest compression) and 9 (slower, best compression) - /// Compressed data - public byte[] EncodeLossless(Bitmap bmp, int speed) - { - //Inicialize config struct - WebPConfig config = new WebPConfig(); - - //Set compresion parameters - if (UnsafeNativeMethods.WebPConfigInit(ref config, WebPPreset.WEBP_PRESET_DEFAULT, (speed + 1) * 10) == 0) - throw new Exception("Can´t config preset"); - - //Old version of dll not suport info and WebPConfigLosslessPreset - if (UnsafeNativeMethods.WebPGetDecoderVersion() > 1082) - { - if (UnsafeNativeMethods.WebPConfigLosslessPreset(ref config, speed) == 0) - throw new Exception("Can´t config lossless preset"); - } - else - { - config.lossless = 1; - config.method = speed; - if (config.method > 6) - config.method = 6; - config.quality = (speed + 1) * 10; - } - config.pass = speed + 1; - config.thread_level = 1; - config.alpha_filtering = 2; - config.use_sharp_yuv = 1; - config.exact = 0; - - return AdvancedEncode(bmp, config, false); - } - - /// Near lossless encoding image in bitmap - /// Bitmap with the image - /// Between 0 (lower quality, lowest file size) and 100 (highest quality, higher file size) - /// Between 0 (fastest, lowest compression) and 9 (slower, best compression) - /// Compress data - public byte[] EncodeNearLossless(Bitmap bmp, int quality, int speed = 9) - { - //test dll version - if (UnsafeNativeMethods.WebPGetDecoderVersion() <= 1082) - throw new Exception("This dll version not suport EncodeNearLossless"); - - //Inicialize config struct - WebPConfig config = new WebPConfig(); - - //Set compresion parameters - if (UnsafeNativeMethods.WebPConfigInit(ref config, WebPPreset.WEBP_PRESET_DEFAULT, (speed + 1) * 10) == 0) - throw new Exception("Can´t config preset"); - if (UnsafeNativeMethods.WebPConfigLosslessPreset(ref config, speed) == 0) - throw new Exception("Can´t config lossless preset"); - config.pass = speed + 1; - config.near_lossless = quality; - config.thread_level = 1; - config.alpha_filtering = 2; - config.use_sharp_yuv = 1; - config.exact = 0; - - return AdvancedEncode(bmp, config, false); - } - #endregion - - #region | Another Public Functions | - /// Get the libwebp version - /// Version of library - public string GetVersion() - { - try - { - uint v = (uint)UnsafeNativeMethods.WebPGetDecoderVersion(); - var revision = v % 256; - var minor = (v >> 8) % 256; - var major = (v >> 16) % 256; - return major + "." + minor + "." + revision; - } - catch (Exception ex) { throw new Exception(ex.Message + "\r\nIn WebP.GetVersion"); } - } - - /// Get info of WEBP data - /// The data of WebP - /// width of image - /// height of image - /// Image has alpha channel - /// Image is a animation - /// Format of image: 0 = undefined (/mixed), 1 = lossy, 2 = lossless - public void GetInfo(byte[] rawWebP, out int width, out int height, out bool has_alpha, out bool has_animation, out string format) - { - VP8StatusCode result; - GCHandle pinnedWebP = GCHandle.Alloc(rawWebP, GCHandleType.Pinned); - - try - { - IntPtr ptrRawWebP = pinnedWebP.AddrOfPinnedObject(); - - WebPBitstreamFeatures features = new WebPBitstreamFeatures(); - result = UnsafeNativeMethods.WebPGetFeatures(ptrRawWebP, rawWebP.Length, ref features); - - if (result != 0) - throw new Exception(result.ToString()); - - width = features.Width; - height = features.Height; - if (features.Has_alpha == 1) has_alpha = true; else has_alpha = false; - if (features.Has_animation == 1) has_animation = true; else has_animation = false; - switch (features.Format) - { - case 1: - format = "lossy"; - break; - case 2: - format = "lossless"; - break; - default: - format = "undefined"; - break; - } - } - catch (Exception ex) { throw new Exception(ex.Message + "\r\nIn WebP.GetInfo"); } - finally - { - //Free memory - if (pinnedWebP.IsAllocated) - pinnedWebP.Free(); - } - } - - /// Compute PSNR, SSIM or LSIM distortion metric between two pictures. Warning: this function is rather CPU-intensive. - /// Picture to measure - /// Reference picture - /// 0 = PSNR, 1 = SSIM, 2 = LSIM - /// dB in the Y/U/V/Alpha/All order - public float[] GetPictureDistortion(Bitmap source, Bitmap reference, int metric_type) - { - WebPPicture wpicSource = new WebPPicture(); - WebPPicture wpicReference = new WebPPicture(); - BitmapData sourceBmpData = null; - BitmapData referenceBmpData = null; - float[] result = new float[5]; - GCHandle pinnedResult = GCHandle.Alloc(result, GCHandleType.Pinned); - - try - { - if (source == null) - throw new Exception("Source picture is void"); - if (reference == null) - throw new Exception("Reference picture is void"); - if (metric_type > 2) - throw new Exception("Bad metric_type. Use 0 = PSNR, 1 = SSIM, 2 = LSIM"); - if (source.Width != reference.Width || source.Height != reference.Height) - throw new Exception("Source and Reference pictures have diferent dimensions"); - - // Setup the source picture data, allocating the bitmap, width and height - sourceBmpData = source.LockBits(new Rectangle(0, 0, source.Width, source.Height), ImageLockMode.ReadOnly, source.PixelFormat); - wpicSource = new WebPPicture(); - if (UnsafeNativeMethods.WebPPictureInitInternal(ref wpicSource) != 1) - throw new Exception("Can´t init WebPPictureInit"); - wpicSource.width = (int)source.Width; - wpicSource.height = (int)source.Height; - - //Put the source bitmap componets in wpic - if (sourceBmpData.PixelFormat == PixelFormat.Format32bppArgb) - { - wpicSource.use_argb = 1; - if (UnsafeNativeMethods.WebPPictureImportBGRA(ref wpicSource, sourceBmpData.Scan0, sourceBmpData.Stride) != 1) - throw new Exception("Can´t allocate memory in WebPPictureImportBGR"); - } - else - { - wpicSource.use_argb = 0; - if (UnsafeNativeMethods.WebPPictureImportBGR(ref wpicSource, sourceBmpData.Scan0, sourceBmpData.Stride) != 1) - throw new Exception("Can´t allocate memory in WebPPictureImportBGR"); - } - - // Setup the reference picture data, allocating the bitmap, width and height - referenceBmpData = reference.LockBits(new Rectangle(0, 0, reference.Width, reference.Height), ImageLockMode.ReadOnly, reference.PixelFormat); - wpicReference = new WebPPicture(); - if (UnsafeNativeMethods.WebPPictureInitInternal(ref wpicReference) != 1) - throw new Exception("Can´t init WebPPictureInit"); - wpicReference.width = (int)reference.Width; - wpicReference.height = (int)reference.Height; - wpicReference.use_argb = 1; - - //Put the source bitmap componets in wpic - if (sourceBmpData.PixelFormat == PixelFormat.Format32bppArgb) - { - wpicSource.use_argb = 1; - if (UnsafeNativeMethods.WebPPictureImportBGRA(ref wpicReference, referenceBmpData.Scan0, referenceBmpData.Stride) != 1) - throw new Exception("Can´t allocate memory in WebPPictureImportBGR"); - } - else - { - wpicSource.use_argb = 0; - if (UnsafeNativeMethods.WebPPictureImportBGR(ref wpicReference, referenceBmpData.Scan0, referenceBmpData.Stride) != 1) - throw new Exception("Can´t allocate memory in WebPPictureImportBGR"); - } - - //Measure - IntPtr ptrResult = pinnedResult.AddrOfPinnedObject(); - if (UnsafeNativeMethods.WebPPictureDistortion(ref wpicSource, ref wpicReference, metric_type, ptrResult) != 1) - throw new Exception("Can´t measure."); - return result; - } - catch (Exception ex) { throw new Exception(ex.Message + "\r\nIn WebP.GetPictureDistortion"); } - finally - { - //Unlock the pixels - if (sourceBmpData != null) - source.UnlockBits(sourceBmpData); - if (referenceBmpData != null) - reference.UnlockBits(referenceBmpData); - - //Free memory - if (wpicSource.argb != IntPtr.Zero) - UnsafeNativeMethods.WebPPictureFree(ref wpicSource); - if (wpicReference.argb != IntPtr.Zero) - UnsafeNativeMethods.WebPPictureFree(ref wpicReference); - //Free memory - if (pinnedResult.IsAllocated) - pinnedResult.Free(); - } - } - #endregion - - #region | Private Methods | - /// Encoding image using Advanced encoding API - /// Bitmap with the image - /// Config for encode - /// True if need encode info. - /// Compressed data - private byte[] AdvancedEncode(Bitmap bmp, WebPConfig config, bool info) - { - byte[] rawWebP = null; - byte[] dataWebp = null; - WebPPicture wpic = new WebPPicture(); - BitmapData bmpData = null; - WebPAuxStats stats = new WebPAuxStats(); - IntPtr ptrStats = IntPtr.Zero; - GCHandle pinnedArrayHandle = new GCHandle(); - int dataWebpSize; - try - { - //Validate the config - if (UnsafeNativeMethods.WebPValidateConfig(ref config) != 1) - throw new Exception("Bad config parameters"); - - //test bmp - if (bmp.Width == 0 || bmp.Height == 0) - throw new ArgumentException("Bitmap contains no data.", "bmp"); - if (bmp.Width > WEBP_MAX_DIMENSION || bmp.Height > WEBP_MAX_DIMENSION) - throw new NotSupportedException("Bitmap's dimension is too large. Max is " + WEBP_MAX_DIMENSION + "x" + WEBP_MAX_DIMENSION + " pixels."); - if (bmp.PixelFormat != PixelFormat.Format24bppRgb && bmp.PixelFormat != PixelFormat.Format32bppArgb) - throw new NotSupportedException("Only support Format24bppRgb and Format32bppArgb pixelFormat."); - - // Setup the input data, allocating a the bitmap, width and height - bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, bmp.PixelFormat); - if (UnsafeNativeMethods.WebPPictureInitInternal(ref wpic) != 1) - throw new Exception("Can´t init WebPPictureInit"); - wpic.width = (int)bmp.Width; - wpic.height = (int)bmp.Height; - wpic.use_argb = 1; - - if (bmp.PixelFormat == PixelFormat.Format32bppArgb) - { - //Put the bitmap componets in wpic - int result = UnsafeNativeMethods.WebPPictureImportBGRA(ref wpic, bmpData.Scan0, bmpData.Stride); - if (result != 1) - throw new Exception("Can´t allocate memory in WebPPictureImportBGRA"); - wpic.colorspace = (uint)WEBP_CSP_MODE.MODE_bgrA; - dataWebpSize = bmp.Width * bmp.Height * 32; - dataWebp = new byte[bmp.Width * bmp.Height * 32]; //Memory for WebP output - } - else - { - //Put the bitmap componets in wpic - int result = UnsafeNativeMethods.WebPPictureImportBGR(ref wpic, bmpData.Scan0, bmpData.Stride); - if (result != 1) - throw new Exception("Can´t allocate memory in WebPPictureImportBGR"); - dataWebpSize = bmp.Width * bmp.Height * 24; - - } - - //Set up statistics of compresion - if (info) - { - stats = new WebPAuxStats(); - ptrStats = Marshal.AllocHGlobal(Marshal.SizeOf(stats)); - Marshal.StructureToPtr(stats, ptrStats, false); - wpic.stats = ptrStats; - } - - //Memory for WebP output - - if (dataWebpSize > 2147483591) - dataWebpSize = 2147483591; - dataWebp = new byte[bmp.Width * bmp.Height * 32]; - pinnedArrayHandle = GCHandle.Alloc(dataWebp, GCHandleType.Pinned); - IntPtr initPtr = pinnedArrayHandle.AddrOfPinnedObject(); - wpic.custom_ptr = initPtr; - - // Set up a byte-writing method (write-to-memory, in this case) - UnsafeNativeMethods.OnCallback = new UnsafeNativeMethods.WebPMemoryWrite(MyWriter); - wpic.writer = Marshal.GetFunctionPointerForDelegate(UnsafeNativeMethods.OnCallback); - - //compress the input samples - if (UnsafeNativeMethods.WebPEncode(ref config, ref wpic) != 1) - throw new Exception("Encoding error: " + ((WebPEncodingError)wpic.error_code).ToString()); - - //Remove OnCallback - UnsafeNativeMethods.OnCallback = null; - - //Unlock the pixels - bmp.UnlockBits(bmpData); - bmpData = null; - - //Copy webpData to rawWebP - int size = (int)((long)wpic.custom_ptr - (long)initPtr); - rawWebP = new byte[size]; - Array.Copy(dataWebp, rawWebP, size); - - //Remove compression data - pinnedArrayHandle.Free(); - dataWebp = null; - - //Show statistics - if (info) - { - stats = (WebPAuxStats)Marshal.PtrToStructure(ptrStats, typeof(WebPAuxStats)); - MessageBox.Show("Dimension: " + wpic.width + " x " + wpic.height + " pixels\n" + - "Output: " + stats.coded_size + " bytes\n" + - "PSNR Y: " + stats.PSNRY + " db\n" + - "PSNR u: " + stats.PSNRU + " db\n" + - "PSNR v: " + stats.PSNRV + " db\n" + - "PSNR ALL: " + stats.PSNRALL + " db\n" + - "Block intra4: " + stats.block_count_intra4 + "\n" + - "Block intra16: " + stats.block_count_intra16 + "\n" + - "Block skipped: " + stats.block_count_skipped + "\n" + - "Header size: " + stats.header_bytes + " bytes\n" + - "Mode-partition: " + stats.mode_partition_0 + " bytes\n" + - "Macroblocks 0: " + stats.segment_size_segments0 + " residuals bytes\n" + - "Macroblocks 1: " + stats.segment_size_segments1 + " residuals bytes\n" + - "Macroblocks 2: " + stats.segment_size_segments2 + " residuals bytes\n" + - "Macroblocks 3: " + stats.segment_size_segments3 + " residuals bytes\n" + - "Quantizer 0: " + stats.segment_quant_segments0 + " residuals bytes\n" + - "Quantizer 1: " + stats.segment_quant_segments1 + " residuals bytes\n" + - "Quantizer 2: " + stats.segment_quant_segments2 + " residuals bytes\n" + - "Quantizer 3: " + stats.segment_quant_segments3 + " residuals bytes\n" + - "Filter level 0: " + stats.segment_level_segments0 + " residuals bytes\n" + - "Filter level 1: " + stats.segment_level_segments1 + " residuals bytes\n" + - "Filter level 2: " + stats.segment_level_segments2 + " residuals bytes\n" + - "Filter level 3: " + stats.segment_level_segments3 + " residuals bytes\n", "Compression statistics"); - } - - return rawWebP; - } - catch (Exception ex) { throw new Exception(ex.Message + "\r\nIn WebP.AdvancedEncode"); } - finally - { - //Free temporal compress memory - if (pinnedArrayHandle.IsAllocated) - { - pinnedArrayHandle.Free(); - } - - //Free statistics memory - if (ptrStats != IntPtr.Zero) - { - Marshal.FreeHGlobal(ptrStats); - } - - //Unlock the pixels - if (bmpData != null) - { - bmp.UnlockBits(bmpData); - } - - //Free memory - if (wpic.argb != IntPtr.Zero) - { - UnsafeNativeMethods.WebPPictureFree(ref wpic); - } - } - } - - private int MyWriter([InAttribute()] IntPtr data, UIntPtr data_size, ref WebPPicture picture) - { - UnsafeNativeMethods.CopyMemory(picture.custom_ptr, data, (uint)data_size); - //picture.custom_ptr = IntPtr.Add(picture.custom_ptr, (int)data_size); //Only in .NET > 4.0 - picture.custom_ptr = new IntPtr(picture.custom_ptr.ToInt64() + (int)data_size); - return 1; - } - - private delegate int MyWriterDelegate([InAttribute()] IntPtr data, UIntPtr data_size, ref WebPPicture picture); - #endregion - - #region | Destruction | - /// Free memory - public void Dispose() - { - GC.SuppressFinalize(this); - } - #endregion - } - - #region | Import libwebp functions | - [SuppressUnmanagedCodeSecurityAttribute] - internal sealed partial class UnsafeNativeMethods - { - - [DllImport("kernel32.dll", EntryPoint = "CopyMemory", SetLastError = false)] - public static extern void CopyMemory(IntPtr dest, IntPtr src, uint count); - - private static readonly int WEBP_DECODER_ABI_VERSION = 0x0208; - - /// This function will initialize the configuration according to a predefined set of parameters (referred to by 'preset') and a given quality factor. - /// The WebPConfig struct - /// Type of image - /// Quality of compresion - /// 0 if error - public static int WebPConfigInit(ref WebPConfig config, WebPPreset preset, float quality) - { - switch (IntPtr.Size) - { - case 4: - return WebPConfigInitInternal_x86(ref config, preset, quality, WEBP_DECODER_ABI_VERSION); - case 8: - return WebPConfigInitInternal_x64(ref config, preset, quality, WEBP_DECODER_ABI_VERSION); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPConfigInitInternal")] - private static extern int WebPConfigInitInternal_x86(ref WebPConfig config, WebPPreset preset, float quality, int WEBP_DECODER_ABI_VERSION); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPConfigInitInternal")] - private static extern int WebPConfigInitInternal_x64(ref WebPConfig config, WebPPreset preset, float quality, int WEBP_DECODER_ABI_VERSION); - - /// Get info of WepP image - /// Bytes[] of webp image - /// Size of rawWebP - /// Features of WebP image - /// VP8StatusCode - public static VP8StatusCode WebPGetFeatures(IntPtr rawWebP, int data_size, ref WebPBitstreamFeatures features) - { - switch (IntPtr.Size) - { - case 4: - return WebPGetFeaturesInternal_x86(rawWebP, (UIntPtr)data_size, ref features, WEBP_DECODER_ABI_VERSION); - case 8: - return WebPGetFeaturesInternal_x64(rawWebP, (UIntPtr)data_size, ref features, WEBP_DECODER_ABI_VERSION); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPGetFeaturesInternal")] - private static extern VP8StatusCode WebPGetFeaturesInternal_x86([InAttribute()] IntPtr rawWebP, UIntPtr data_size, ref WebPBitstreamFeatures features, int WEBP_DECODER_ABI_VERSION); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPGetFeaturesInternal")] - private static extern VP8StatusCode WebPGetFeaturesInternal_x64([InAttribute()] IntPtr rawWebP, UIntPtr data_size, ref WebPBitstreamFeatures features, int WEBP_DECODER_ABI_VERSION); - - /// Activate the lossless compression mode with the desired efficiency. - /// The WebPConfig struct - /// between 0 (fastest, lowest compression) and 9 (slower, best compression) - /// 0 in case of parameter errorr - public static int WebPConfigLosslessPreset(ref WebPConfig config, int level) - { - switch (IntPtr.Size) - { - case 4: - return WebPConfigLosslessPreset_x86(ref config, level); - case 8: - return WebPConfigLosslessPreset_x64(ref config, level); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPConfigLosslessPreset")] - private static extern int WebPConfigLosslessPreset_x86(ref WebPConfig config, int level); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPConfigLosslessPreset")] - private static extern int WebPConfigLosslessPreset_x64(ref WebPConfig config, int level); - - /// Check that 'config' is non-NULL and all configuration parameters are within their valid ranges. - /// The WebPConfig struct - /// 1 if config are OK - public static int WebPValidateConfig(ref WebPConfig config) - { - switch (IntPtr.Size) - { - case 4: - return WebPValidateConfig_x86(ref config); - case 8: - return WebPValidateConfig_x64(ref config); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPValidateConfig")] - private static extern int WebPValidateConfig_x86(ref WebPConfig config); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPValidateConfig")] - private static extern int WebPValidateConfig_x64(ref WebPConfig config); - - /// Init the struct WebPPicture ckecking the dll version - /// The WebPPicture struct - /// 1 if not error - public static int WebPPictureInitInternal(ref WebPPicture wpic) - { - switch (IntPtr.Size) - { - case 4: - return WebPPictureInitInternal_x86(ref wpic, WEBP_DECODER_ABI_VERSION); - case 8: - return WebPPictureInitInternal_x64(ref wpic, WEBP_DECODER_ABI_VERSION); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPPictureInitInternal")] - private static extern int WebPPictureInitInternal_x86(ref WebPPicture wpic, int WEBP_DECODER_ABI_VERSION); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPPictureInitInternal")] - private static extern int WebPPictureInitInternal_x64(ref WebPPicture wpic, int WEBP_DECODER_ABI_VERSION); - - /// Colorspace conversion function to import RGB samples. - /// The WebPPicture struct - /// Point to BGR data - /// stride of BGR data - /// Returns 0 in case of memory error. - public static int WebPPictureImportBGR(ref WebPPicture wpic, IntPtr bgr, int stride) - { - switch (IntPtr.Size) - { - case 4: - return WebPPictureImportBGR_x86(ref wpic, bgr, stride); - case 8: - return WebPPictureImportBGR_x64(ref wpic, bgr, stride); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPPictureImportBGR")] - private static extern int WebPPictureImportBGR_x86(ref WebPPicture wpic, IntPtr bgr, int stride); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPPictureImportBGR")] - private static extern int WebPPictureImportBGR_x64(ref WebPPicture wpic, IntPtr bgr, int stride); - - /// Colorspace conversion function to import RGB samples. - /// The WebPPicture struct - /// Point to BGRA data - /// stride of BGRA data - /// Returns 0 in case of memory error. - public static int WebPPictureImportBGRA(ref WebPPicture wpic, IntPtr bgra, int stride) - { - switch (IntPtr.Size) - { - case 4: - return WebPPictureImportBGRA_x86(ref wpic, bgra, stride); - case 8: - return WebPPictureImportBGRA_x64(ref wpic, bgra, stride); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPPictureImportBGRA")] - private static extern int WebPPictureImportBGRA_x86(ref WebPPicture wpic, IntPtr bgra, int stride); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPPictureImportBGRA")] - private static extern int WebPPictureImportBGRA_x64(ref WebPPicture wpic, IntPtr bgra, int stride); - - /// Colorspace conversion function to import RGB samples. - /// The WebPPicture struct - /// Point to BGR data - /// stride of BGR data - /// Returns 0 in case of memory error. - public static int WebPPictureImportBGRX(ref WebPPicture wpic, IntPtr bgr, int stride) - { - switch (IntPtr.Size) - { - case 4: - return WebPPictureImportBGRX_x86(ref wpic, bgr, stride); - case 8: - return WebPPictureImportBGRX_x64(ref wpic, bgr, stride); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPPictureImportBGRX")] - private static extern int WebPPictureImportBGRX_x86(ref WebPPicture wpic, IntPtr bgr, int stride); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPPictureImportBGRX")] - private static extern int WebPPictureImportBGRX_x64(ref WebPPicture wpic, IntPtr bgr, int stride); - - /// The writer type for output compress data - /// Data returned - /// Size of data returned - /// Picture struct - /// - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate int WebPMemoryWrite([In()] IntPtr data, UIntPtr data_size, ref WebPPicture wpic); - public static WebPMemoryWrite OnCallback; - - /// Compress to webp format - /// The config struct for compresion parameters - /// 'picture' hold the source samples in both YUV(A) or ARGB input - /// Returns 0 in case of error, 1 otherwise. In case of error, picture->error_code is updated accordingly. - public static int WebPEncode(ref WebPConfig config, ref WebPPicture picture) - { - switch (IntPtr.Size) - { - case 4: - return WebPEncode_x86(ref config, ref picture); - case 8: - return WebPEncode_x64(ref config, ref picture); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPEncode")] - private static extern int WebPEncode_x86(ref WebPConfig config, ref WebPPicture picture); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPEncode")] - private static extern int WebPEncode_x64(ref WebPConfig config, ref WebPPicture picture); - - /// Release the memory allocated by WebPPictureAlloc() or WebPPictureImport*() - /// Note that this function does _not_ free the memory used by the 'picture' object itself. - /// Besides memory (which is reclaimed) all other fields of 'picture' are preserved. - /// Picture struct - public static void WebPPictureFree(ref WebPPicture picture) - { - switch (IntPtr.Size) - { - case 4: - WebPPictureFree_x86(ref picture); - break; - case 8: - WebPPictureFree_x64(ref picture); - break; - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPPictureFree")] - private static extern void WebPPictureFree_x86(ref WebPPicture wpic); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPPictureFree")] - private static extern void WebPPictureFree_x64(ref WebPPicture wpic); - - /// Validate the WebP image header and retrieve the image height and width. Pointers *width and *height can be passed NULL if deemed irrelevant - /// Pointer to WebP image data - /// This is the size of the memory block pointed to by data containing the image data - /// The range is limited currently from 1 to 16383 - /// The range is limited currently from 1 to 16383 - /// 1 if success, otherwise error code returned in the case of (a) formatting error(s). - public static int WebPGetInfo(IntPtr data, int data_size, out int width, out int height) - { - switch (IntPtr.Size) - { - case 4: - return WebPGetInfo_x86(data, (UIntPtr)data_size, out width, out height); - case 8: - return WebPGetInfo_x64(data, (UIntPtr)data_size, out width, out height); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPGetInfo")] - private static extern int WebPGetInfo_x86([InAttribute()] IntPtr data, UIntPtr data_size, out int width, out int height); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPGetInfo")] - private static extern int WebPGetInfo_x64([InAttribute()] IntPtr data, UIntPtr data_size, out int width, out int height); - - /// Decode WEBP image pointed to by *data and returns BGR samples into a pre-allocated buffer - /// Pointer to WebP image data - /// This is the size of the memory block pointed to by data containing the image data - /// Pointer to decoded WebP image - /// Size of allocated buffer - /// Specifies the distance between scanlines - /// output_buffer if function succeeds; NULL otherwise - public static int WebPDecodeBGRInto(IntPtr data, int data_size, IntPtr output_buffer, int output_buffer_size, int output_stride) - { - switch (IntPtr.Size) - { - case 4: - return WebPDecodeBGRInto_x86(data, (UIntPtr)data_size, output_buffer, output_buffer_size, output_stride); - case 8: - return WebPDecodeBGRInto_x64(data, (UIntPtr)data_size, output_buffer, output_buffer_size, output_stride); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPDecodeBGRInto")] - private static extern int WebPDecodeBGRInto_x86([InAttribute()] IntPtr data, UIntPtr data_size, IntPtr output_buffer, int output_buffer_size, int output_stride); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPDecodeBGRInto")] - private static extern int WebPDecodeBGRInto_x64([InAttribute()] IntPtr data, UIntPtr data_size, IntPtr output_buffer, int output_buffer_size, int output_stride); - - /// Decode WEBP image pointed to by *data and returns BGR samples into a pre-allocated buffer - /// Pointer to WebP image data - /// This is the size of the memory block pointed to by data containing the image data - /// Pointer to decoded WebP image - /// Size of allocated buffer - /// Specifies the distance between scanlines - /// output_buffer if function succeeds; NULL otherwise - public static int WebPDecodeBGRAInto(IntPtr data, int data_size, IntPtr output_buffer, int output_buffer_size, int output_stride) - { - switch (IntPtr.Size) - { - case 4: - return WebPDecodeBGRAInto_x86(data, (UIntPtr)data_size, output_buffer, output_buffer_size, output_stride); - case 8: - return WebPDecodeBGRAInto_x64(data, (UIntPtr)data_size, output_buffer, output_buffer_size, output_stride); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPDecodeBGRAInto")] - private static extern int WebPDecodeBGRAInto_x86([InAttribute()] IntPtr data, UIntPtr data_size, IntPtr output_buffer, int output_buffer_size, int output_stride); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPDecodeBGRAInto")] - private static extern int WebPDecodeBGRAInto_x64([InAttribute()] IntPtr data, UIntPtr data_size, IntPtr output_buffer, int output_buffer_size, int output_stride); - - /// Initialize the configuration as empty. This function must always be called first, unless WebPGetFeatures() is to be called. - /// Configuration struct - /// False in case of mismatched version. - public static int WebPInitDecoderConfig(ref WebPDecoderConfig webPDecoderConfig) - { - switch (IntPtr.Size) - { - case 4: - return WebPInitDecoderConfigInternal_x86(ref webPDecoderConfig, WEBP_DECODER_ABI_VERSION); - case 8: - return WebPInitDecoderConfigInternal_x64(ref webPDecoderConfig, WEBP_DECODER_ABI_VERSION); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPInitDecoderConfigInternal")] - private static extern int WebPInitDecoderConfigInternal_x86(ref WebPDecoderConfig webPDecoderConfig, int WEBP_DECODER_ABI_VERSION); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPInitDecoderConfigInternal")] - private static extern int WebPInitDecoderConfigInternal_x64(ref WebPDecoderConfig webPDecoderConfig, int WEBP_DECODER_ABI_VERSION); - - /// Decodes the full data at once, taking 'config' into account. - /// WebP raw data to decode - /// Size of WebP data - /// Configuration struct - /// VP8_STATUS_OK if the decoding was successful - public static VP8StatusCode WebPDecode(IntPtr data, int data_size, ref WebPDecoderConfig webPDecoderConfig) - { - switch (IntPtr.Size) - { - case 4: - return WebPDecode_x86(data, (UIntPtr)data_size, ref webPDecoderConfig); - case 8: - return WebPDecode_x64(data, (UIntPtr)data_size, ref webPDecoderConfig); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPDecode")] - private static extern VP8StatusCode WebPDecode_x86(IntPtr data, UIntPtr data_size, ref WebPDecoderConfig config); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPDecode")] - private static extern VP8StatusCode WebPDecode_x64(IntPtr data, UIntPtr data_size, ref WebPDecoderConfig config); - - /// Free any memory associated with the buffer. Must always be called last. Doesn't free the 'buffer' structure itself. - /// WebPDecBuffer - public static void WebPFreeDecBuffer(ref WebPDecBuffer buffer) - { - switch (IntPtr.Size) - { - case 4: - WebPFreeDecBuffer_x86(ref buffer); - break; - case 8: - WebPFreeDecBuffer_x64(ref buffer); - break; - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPFreeDecBuffer")] - private static extern void WebPFreeDecBuffer_x86(ref WebPDecBuffer buffer); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPFreeDecBuffer")] - private static extern void WebPFreeDecBuffer_x64(ref WebPDecBuffer buffer); - - /// Lossy encoding images - /// Pointer to BGR image data - /// The range is limited currently from 1 to 16383 - /// The range is limited currently from 1 to 16383 - /// Specifies the distance between scanlines - /// Ranges from 0 (lower quality) to 100 (highest quality). Controls the loss and quality during compression - /// output_buffer with WebP image - /// Size of WebP Image or 0 if an error occurred - public static int WebPEncodeBGR(IntPtr bgr, int width, int height, int stride, float quality_factor, out IntPtr output) - { - switch (IntPtr.Size) - { - case 4: - return WebPEncodeBGR_x86(bgr, width, height, stride, quality_factor, out output); - case 8: - return WebPEncodeBGR_x64(bgr, width, height, stride, quality_factor, out output); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPEncodeBGR")] - private static extern int WebPEncodeBGR_x86([InAttribute()] IntPtr bgr, int width, int height, int stride, float quality_factor, out IntPtr output); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPEncodeBGR")] - private static extern int WebPEncodeBGR_x64([InAttribute()] IntPtr bgr, int width, int height, int stride, float quality_factor, out IntPtr output); - - /// Lossy encoding images - /// Pointer to BGRA image data - /// The range is limited currently from 1 to 16383 - /// The range is limited currently from 1 to 16383 - /// Specifies the distance between scanlines - /// Ranges from 0 (lower quality) to 100 (highest quality). Controls the loss and quality during compression - /// output_buffer with WebP image - /// Size of WebP Image or 0 if an error occurred - public static int WebPEncodeBGRA(IntPtr bgra, int width, int height, int stride, float quality_factor, out IntPtr output) - { - switch (IntPtr.Size) - { - case 4: - return WebPEncodeBGRA_x86(bgra, width, height, stride, quality_factor, out output); - case 8: - return WebPEncodeBGRA_x64(bgra, width, height, stride, quality_factor, out output); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPEncodeBGRA")] - private static extern int WebPEncodeBGRA_x86([InAttribute()] IntPtr bgra, int width, int height, int stride, float quality_factor, out IntPtr output); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPEncodeBGRA")] - private static extern int WebPEncodeBGRA_x64([InAttribute()] IntPtr bgra, int width, int height, int stride, float quality_factor, out IntPtr output); - - /// Lossless encoding images pointed to by *data in WebP format - /// Pointer to BGR image data - /// The range is limited currently from 1 to 16383 - /// The range is limited currently from 1 to 16383 - /// Specifies the distance between scanlines - /// output_buffer with WebP image - /// Size of WebP Image or 0 if an error occurred - public static int WebPEncodeLosslessBGR(IntPtr bgr, int width, int height, int stride, out IntPtr output) - { - switch (IntPtr.Size) - { - case 4: - return WebPEncodeLosslessBGR_x86(bgr, width, height, stride, out output); - case 8: - return WebPEncodeLosslessBGR_x64(bgr, width, height, stride, out output); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPEncodeLosslessBGR")] - private static extern int WebPEncodeLosslessBGR_x86([InAttribute()] IntPtr bgr, int width, int height, int stride, out IntPtr output); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPEncodeLosslessBGR")] - private static extern int WebPEncodeLosslessBGR_x64([InAttribute()] IntPtr bgr, int width, int height, int stride, out IntPtr output); - - /// Lossless encoding images pointed to by *data in WebP format - /// Pointer to BGR image data - /// The range is limited currently from 1 to 16383 - /// The range is limited currently from 1 to 16383 - /// Specifies the distance between scanlines - /// output_buffer with WebP image - /// Size of WebP Image or 0 if an error occurred - public static int WebPEncodeLosslessBGRA(IntPtr bgra, int width, int height, int stride, out IntPtr output) - { - switch (IntPtr.Size) - { - case 4: - return WebPEncodeLosslessBGRA_x86(bgra, width, height, stride, out output); - case 8: - return WebPEncodeLosslessBGRA_x64(bgra, width, height, stride, out output); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPEncodeLosslessBGRA")] - private static extern int WebPEncodeLosslessBGRA_x86([InAttribute()] IntPtr bgra, int width, int height, int stride, out IntPtr output); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPEncodeLosslessBGRA")] - private static extern int WebPEncodeLosslessBGRA_x64([InAttribute()] IntPtr bgra, int width, int height, int stride, out IntPtr output); - - /// Releases memory returned by the WebPEncode - /// Pointer to memory - public static void WebPFree(IntPtr p) - { - switch (IntPtr.Size) - { - case 4: - WebPFree_x86(p); - break; - case 8: - WebPFree_x64(p); - break; - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPFree")] - private static extern void WebPFree_x86(IntPtr p); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPFree")] - private static extern void WebPFree_x64(IntPtr p); - - /// Get the webp version library - /// 8bits for each of major/minor/revision packet in integer. E.g: v2.5.7 is 0x020507 - public static int WebPGetDecoderVersion() - { - switch (IntPtr.Size) - { - case 4: - return WebPGetDecoderVersion_x86(); - case 8: - return WebPGetDecoderVersion_x64(); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPGetDecoderVersion")] - private static extern int WebPGetDecoderVersion_x86(); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPGetDecoderVersion")] - private static extern int WebPGetDecoderVersion_x64(); - - /// Compute PSNR, SSIM or LSIM distortion metric between two pictures. - /// Picture to measure - /// Reference picture - /// 0 = PSNR, 1 = SSIM, 2 = LSIM - /// dB in the Y/U/V/Alpha/All order - /// False in case of error (src and ref don't have same dimension, ...) - public static int WebPPictureDistortion(ref WebPPicture srcPicture, ref WebPPicture refPicture, int metric_type, IntPtr pResult) - { - switch (IntPtr.Size) - { - case 4: - return WebPPictureDistortion_x86(ref srcPicture, ref refPicture, metric_type, pResult); - case 8: - return WebPPictureDistortion_x64(ref srcPicture, ref refPicture, metric_type, pResult); - default: - throw new InvalidOperationException("Invalid platform. Can not find proper function"); - } - } - [DllImport("libwebp_x86.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPPictureDistortion")] - private static extern int WebPPictureDistortion_x86(ref WebPPicture srcPicture, ref WebPPicture refPicture, int metric_type, IntPtr pResult); - [DllImport("libwebp_x64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "WebPPictureDistortion")] - private static extern int WebPPictureDistortion_x64(ref WebPPicture srcPicture, ref WebPPicture refPicture, int metric_type, IntPtr pResult); - } - #endregion - - #region | Predefined | - /// Enumerate some predefined settings for WebPConfig, depending on the type of source picture. These presets are used when calling WebPConfigPreset(). - public enum WebPPreset - { - /// Default preset. - WEBP_PRESET_DEFAULT = 0, - /// Digital picture, like portrait, inner shot. - WEBP_PRESET_PICTURE, - /// Outdoor photograph, with natural lighting. - WEBP_PRESET_PHOTO, - /// Hand or line drawing, with high-contrast details. - WEBP_PRESET_DRAWING, - /// Small-sized colorful images. - WEBP_PRESET_ICON, - /// Text-like. - WEBP_PRESET_TEXT - }; - - /// Encoding error conditions. - public enum WebPEncodingError - { - /// No error. - VP8_ENC_OK = 0, - /// Memory error allocating objects. - VP8_ENC_ERROR_OUT_OF_MEMORY, - /// Memory error while flushing bits. - VP8_ENC_ERROR_BITSTREAM_OUT_OF_MEMORY, - /// A pointer parameter is NULL. - VP8_ENC_ERROR_NULL_PARAMETER, - /// Configuration is invalid. - VP8_ENC_ERROR_INVALID_CONFIGURATION, - /// Picture has invalid width/height. - VP8_ENC_ERROR_BAD_DIMENSION, - /// Partition is bigger than 512k. - VP8_ENC_ERROR_PARTITION0_OVERFLOW, - /// Partition is bigger than 16M. - VP8_ENC_ERROR_PARTITION_OVERFLOW, - /// Error while flushing bytes. - VP8_ENC_ERROR_BAD_WRITE, - /// File is bigger than 4G. - VP8_ENC_ERROR_FILE_TOO_BIG, - /// Abort request by user. - VP8_ENC_ERROR_USER_ABORT, - /// List terminator. always last. - VP8_ENC_ERROR_LAST, - } - - /// Enumeration of the status codes. - public enum VP8StatusCode - { - /// No error. - VP8_STATUS_OK = 0, - /// Memory error allocating objects. - VP8_STATUS_OUT_OF_MEMORY, - /// Configuration is invalid. - VP8_STATUS_INVALID_PARAM, - VP8_STATUS_BITSTREAM_ERROR, - /// Configuration is invalid. - VP8_STATUS_UNSUPPORTED_FEATURE, - VP8_STATUS_SUSPENDED, - /// Abort request by user. - VP8_STATUS_USER_ABORT, - VP8_STATUS_NOT_ENOUGH_DATA, - } - - /// Image characteristics hint for the underlying encoder. - public enum WebPImageHint - { - /// Default preset. - WEBP_HINT_DEFAULT = 0, - /// Digital picture, like portrait, inner shot - WEBP_HINT_PICTURE, - /// Outdoor photograph, with natural lighting - WEBP_HINT_PHOTO, - /// Discrete tone image (graph, map-tile etc). - WEBP_HINT_GRAPH, - /// list terminator. always last. - WEBP_HINT_LAST - }; - - /// Describes the byte-ordering of packed samples in memory. - public enum WEBP_CSP_MODE - { - /// Byte-order: R,G,B,R,G,B,... - MODE_RGB = 0, - /// Byte-order: R,G,B,A,R,G,B,A,... - MODE_RGBA = 1, - /// Byte-order: B,G,R,B,G,R,... - MODE_BGR = 2, - /// Byte-order: B,G,R,A,B,G,R,A,... - MODE_BGRA = 3, - /// Byte-order: A,R,G,B,A,R,G,B,... - MODE_ARGB = 4, - /// Byte-order: RGB-565: [a4 a3 a2 a1 a0 r5 r4 r3], [r2 r1 r0 g4 g3 g2 g1 g0], ... - /// WEBP_SWAP_16BITS_CSP is defined, - /// Byte-order: RGB-565: [a4 a3 a2 a1 a0 b5 b4 b3], [b2 b1 b0 g4 g3 g2 g1 g0], ... - MODE_RGBA_4444 = 5, - /// Byte-order: RGB-565: [r4 r3 r2 r1 r0 g5 g4 g3], [g2 g1 g0 b4 b3 b2 b1 b0], ... - /// WEBP_SWAP_16BITS_CSP is defined, - /// Byte-order: [b3 b2 b1 b0 a3 a2 a1 a0], [r3 r2 r1 r0 g3 g2 g1 g0], ... - MODE_RGB_565 = 6, - /// RGB-premultiplied transparent modes (alpha value is preserved) - MODE_rgbA = 7, - /// RGB-premultiplied transparent modes (alpha value is preserved) - MODE_bgrA = 8, - /// RGB-premultiplied transparent modes (alpha value is preserved) - MODE_Argb = 9, - /// RGB-premultiplied transparent modes (alpha value is preserved) - MODE_rgbA_4444 = 10, - /// yuv 4:2:0 - MODE_YUV = 11, - /// yuv 4:2:0 - MODE_YUVA = 12, - /// MODE_LAST -> 13 - MODE_LAST = 13, - } - - /// - /// Decoding states. State normally flows as: - /// WEBP_HEADER->VP8_HEADER->VP8_PARTS0->VP8_DATA->DONE for a lossy image, and - /// WEBP_HEADER->VP8L_HEADER->VP8L_DATA->DONE for a lossless image. - /// If there is any error the decoder goes into state ERROR. - /// - enum DecState - { - STATE_WEBP_HEADER, // All the data before that of the VP8/VP8L chunk. - STATE_VP8_HEADER, // The VP8 Frame header (within the VP8 chunk). - STATE_VP8_PARTS0, - STATE_VP8_DATA, - STATE_VP8L_HEADER, - STATE_VP8L_DATA, - STATE_DONE, - STATE_ERROR - }; - #endregion - - #region | libwebp structs | - /// Features gathered from the bitstream - [StructLayoutAttribute(LayoutKind.Sequential)] - public struct WebPBitstreamFeatures - { - /// Width in pixels, as read from the bitstream. - public int Width; - /// Height in pixels, as read from the bitstream. - public int Height; - /// True if the bitstream contains an alpha channel. - public int Has_alpha; - /// True if the bitstream is an animation. - public int Has_animation; - /// 0 = undefined (/mixed), 1 = lossy, 2 = lossless - public int Format; - /// Padding for later use. - [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.U4)] - private readonly uint[] pad; - }; - - /// Compression parameters. - [StructLayoutAttribute(LayoutKind.Sequential)] - public struct WebPConfig - { - /// Lossless encoding (0=lossy(default), 1=lossless). - public int lossless; - /// Between 0 (smallest file) and 100 (biggest) - public float quality; - /// Quality/speed trade-off (0=fast, 6=slower-better) - public int method; - /// Hint for image type (lossless only for now). - public WebPImageHint image_hint; - /// If non-zero, set the desired target size in bytes. Takes precedence over the 'compression' parameter. - public int target_size; - /// If non-zero, specifies the minimal distortion to try to achieve. Takes precedence over target_size. - public float target_PSNR; - /// Maximum number of segments to use, in [1..4] - public int segments; - /// Spatial Noise Shaping. 0=off, 100=maximum. - public int sns_strength; - /// Range: [0 = off .. 100 = strongest] - public int filter_strength; - /// Range: [0 = off .. 7 = least sharp] - public int filter_sharpness; - /// Filtering type: 0 = simple, 1 = strong (only used if filter_strength > 0 or autofilter > 0) - public int filter_type; - /// Auto adjust filter's strength [0 = off, 1 = on] - public int autofilter; - /// Algorithm for encoding the alpha plane (0 = none, 1 = compressed with WebP lossless). Default is 1. - public int alpha_compression; - /// Predictive filtering method for alpha plane. 0: none, 1: fast, 2: best. Default if 1. - public int alpha_filtering; - /// Between 0 (smallest size) and 100 (lossless). Default is 100. - public int alpha_quality; - /// Number of entropy-analysis passes (in [1..10]). - public int pass; - /// If true, export the compressed picture back. In-loop filtering is not applied. - public int show_compressed; - /// Preprocessing filter (0=none, 1=segment-smooth, 2=pseudo-random dithering) - public int preprocessing; - /// Log2(number of token partitions) in [0..3] Default is set to 0 for easier progressive decoding. - public int partitions; - /// Quality degradation allowed to fit the 512k limit on prediction modes coding (0: no degradation, 100: maximum possible degradation). - public int partition_limit; - /// If true, compression parameters will be remapped to better match the expected output size from JPEG compression. Generally, the output size will be similar but the degradation will be lower. - public int emulate_jpeg_size; - /// If non-zero, try and use multi-threaded encoding. - public int thread_level; - /// If set, reduce memory usage (but increase CPU use). - public int low_memory; - /// Near lossless encoding [0 = max loss .. 100 = off (default)]. - public int near_lossless; - /// If non-zero, preserve the exact RGB values under transparent area. Otherwise, discard this invisible RGB information for better compression. The default value is 0. - public int exact; - /// Reserved for future lossless feature - public int delta_palettization; - /// if needed, use sharp (and slow) RGB->YUV conversion - public int use_sharp_yuv; - /// Padding for later use. - private readonly int pad1; - private readonly int pad2; - }; - - /// Main exchange structure (input samples, output bytes, statistics) - [StructLayoutAttribute(LayoutKind.Sequential)] - public struct WebPPicture : IDisposable - { - /// Main flag for encoder selecting between ARGB or YUV input. Recommended to use ARGB input (*argb, argb_stride) for lossless, and YUV input (*y, *u, *v, etc.) for lossy - public int use_argb; - /// colorspace: should be YUV420 for now (=Y'CbCr). Value = 0 - public UInt32 colorspace; - /// Width of picture (less or equal to WEBP_MAX_DIMENSION) - public int width; - /// Height of picture (less or equal to WEBP_MAX_DIMENSION) - public int height; - /// Pointer to luma plane. - public IntPtr y; - /// Pointer to chroma U plane. - public IntPtr u; - /// Pointer to chroma V plane. - public IntPtr v; - /// Luma stride. - public int y_stride; - /// Chroma stride. - public int uv_stride; - /// Pointer to the alpha plane - public IntPtr a; - /// stride of the alpha plane - public int a_stride; - /// Padding for later use. - [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.U4)] - private readonly uint[] pad1; - /// Pointer to argb (32 bit) plane. - public IntPtr argb; - /// This is stride in pixels units, not bytes. - public int argb_stride; - /// Padding for later use. - [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.U4)] - private readonly uint[] pad2; - /// Byte-emission hook, to store compressed bytes as they are ready. - public IntPtr writer; - /// Can be used by the writer. - public IntPtr custom_ptr; - // map for extra information (only for lossy compression mode) - /// 1: intra type, 2: segment, 3: quant, 4: intra-16 prediction mode, 5: chroma prediction mode, 6: bit cost, 7: distortion - public int extra_info_type; - /// if not NULL, points to an array of size ((width + 15) / 16) * ((height + 15) / 16) that will be filled with a macroblock map, depending on extra_info_type. - public IntPtr extra_info; - /// Pointer to side statistics (updated only if not NULL) - public IntPtr stats; - /// Error code for the latest error encountered during encoding - public UInt32 error_code; - /// If not NULL, report progress during encoding. - public IntPtr progress_hook; - /// this field is free to be set to any value and used during callbacks (like progress-report e.g.). - public IntPtr user_data; - /// Padding for later use. - [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 13, ArraySubType = UnmanagedType.U4)] - private readonly uint[] pad3; - /// Row chunk of memory for yuva planes - private readonly IntPtr memory_; - /// row chunk of memory for argb planes - private readonly IntPtr memory_argb_; - /// Padding for later use. - [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.U4)] - private readonly uint[] pad4; - - public void Dispose() - { - throw new NotImplementedException(); - } - }; - - /// Structure for storing auxiliary statistics (mostly for lossy encoding). - [StructLayoutAttribute(LayoutKind.Sequential)] - public struct WebPAuxStats - { - /// Final size - public int coded_size; - /// Peak-signal-to-noise ratio for Y - public float PSNRY; - /// Peak-signal-to-noise ratio for U - public float PSNRU; - /// Peak-signal-to-noise ratio for V - public float PSNRV; - /// Peak-signal-to-noise ratio for All - public float PSNRALL; - /// Peak-signal-to-noise ratio for Alpha - public float PSNRAlpha; - /// Number of intra4 - public int block_count_intra4; - /// Number of intra16 - public int block_count_intra16; - /// Number of skipped macroblocks - public int block_count_skipped; - /// Approximate number of bytes spent for header - public int header_bytes; - /// Approximate number of bytes spent for mode-partition #0 - public int mode_partition_0; - /// Approximate number of bytes spent for DC coefficients for segment 0. - public int residual_bytes_DC_segments0; - /// Approximate number of bytes spent for AC coefficients for segment 0. - public int residual_bytes_AC_segments0; - /// Approximate number of bytes spent for uv coefficients for segment 0. - public int residual_bytes_uv_segments0; - /// Approximate number of bytes spent for DC coefficients for segment 1. - public int residual_bytes_DC_segments1; - /// Approximate number of bytes spent for AC coefficients for segment 1. - public int residual_bytes_AC_segments1; - /// Approximate number of bytes spent for uv coefficients for segment 1. - public int residual_bytes_uv_segments1; - /// Approximate number of bytes spent for DC coefficients for segment 2. - public int residual_bytes_DC_segments2; - /// Approximate number of bytes spent for AC coefficients for segment 2. - public int residual_bytes_AC_segments2; - /// Approximate number of bytes spent for uv coefficients for segment 2. - public int residual_bytes_uv_segments2; - /// Approximate number of bytes spent for DC coefficients for segment 3. - public int residual_bytes_DC_segments3; - /// Approximate number of bytes spent for AC coefficients for segment 3. - public int residual_bytes_AC_segments3; - /// Approximate number of bytes spent for uv coefficients for segment 3. - public int residual_bytes_uv_segments3; - /// Number of macroblocks in segments 0 - public int segment_size_segments0; - /// Number of macroblocks in segments 1 - public int segment_size_segments1; - /// Number of macroblocks in segments 2 - public int segment_size_segments2; - /// Number of macroblocks in segments 3 - public int segment_size_segments3; - /// Quantizer values for segment 0 - public int segment_quant_segments0; - /// Quantizer values for segment 1 - public int segment_quant_segments1; - /// Quantizer values for segment 2 - public int segment_quant_segments2; - /// Quantizer values for segment 3 - public int segment_quant_segments3; - /// Filtering strength for segment 0 [0..63] - public int segment_level_segments0; - /// Filtering strength for segment 1 [0..63] - public int segment_level_segments1; - /// Filtering strength for segment 2 [0..63] - public int segment_level_segments2; - /// Filtering strength for segment 3 [0..63] - public int segment_level_segments3; - /// Size of the transparency data - public int alpha_data_size; - /// Size of the enhancement layer data - public int layer_data_size; - - // lossless encoder statistics - /// bit0:predictor bit1:cross-color transform bit2:subtract-green bit3:color indexing - public Int32 lossless_features; - /// Number of precision bits of histogram - public int histogram_bits; - /// Precision bits for transform - public int transform_bits; - /// Number of bits for color cache lookup - public int cache_bits; - /// Number of color in palette, if used - public int palette_size; - /// Final lossless size - public int lossless_size; - /// Lossless header (transform, huffman etc) size - public int lossless_hdr_size; - /// Lossless image data size - public int lossless_data_size; - /// Padding for later use. - [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.U4)] - private readonly uint[] pad; - }; - - [StructLayoutAttribute(LayoutKind.Sequential)] - public struct WebPDecoderConfig - { - /// Immutable bitstream features (optional) - public WebPBitstreamFeatures input; - /// Output buffer (can point to external mem) - public WebPDecBuffer output; - /// Decoding options - public WebPDecoderOptions options; - } - - /// Output buffer - [StructLayoutAttribute(LayoutKind.Sequential)] - public struct WebPDecBuffer - { - /// Colorspace. - public WEBP_CSP_MODE colorspace; - /// Width of image. - public int width; - /// Height of image. - public int height; - /// If non-zero, 'internal_memory' pointer is not used. If value is '2' or more, the external memory is considered 'slow' and multiple read/write will be avoided. - public int is_external_memory; - /// Output buffer parameters. - public RGBA_YUVA_Buffer u; - /// padding for later use. - private readonly UInt32 pad1; - /// padding for later use. - private readonly UInt32 pad2; - /// padding for later use. - private readonly UInt32 pad3; - /// padding for later use. - private readonly UInt32 pad4; - /// Internally allocated memory (only when is_external_memory is 0). Should not be used externally, but accessed via WebPRGBABuffer. - public IntPtr private_memory; - } - - /// Union of buffer parameters - [StructLayoutAttribute(LayoutKind.Explicit)] - public struct RGBA_YUVA_Buffer - { - [FieldOffsetAttribute(0)] - public WebPRGBABuffer RGBA; - - [FieldOffsetAttribute(0)] - public WebPYUVABuffer YUVA; - } - - [StructLayoutAttribute(LayoutKind.Sequential)] - public struct WebPYUVABuffer - { - /// Pointer to luma samples - public IntPtr y; - /// Pointer to chroma U samples - public IntPtr u; - /// Pointer to chroma V samples - public IntPtr v; - /// Pointer to alpha samples - public IntPtr a; - /// luma stride - public int y_stride; - /// chroma U stride - public int u_stride; - /// chroma V stride - public int v_stride; - /// alpha stride - public int a_stride; - /// luma plane size - public UIntPtr y_size; - /// chroma plane U size - public UIntPtr u_size; - /// chroma plane V size - public UIntPtr v_size; - /// alpha plane size - public UIntPtr a_size; - } - - /// Generic structure for describing the output sample buffer. - [StructLayoutAttribute(LayoutKind.Sequential)] - public struct WebPRGBABuffer - { - /// pointer to RGBA samples. - public IntPtr rgba; - /// stride in bytes from one scanline to the next. - public int stride; - /// total size of the rgba buffer. - public UIntPtr size; - } - - /// Decoding options - [StructLayoutAttribute(LayoutKind.Sequential)] - public struct WebPDecoderOptions - { - /// if true, skip the in-loop filtering. - public int bypass_filtering; - /// if true, use faster pointwise upsampler. - public int no_fancy_upsampling; - /// if true, cropping is applied _first_ - public int use_cropping; - /// left position for cropping. Will be snapped to even values. - public int crop_left; - /// top position for cropping. Will be snapped to even values. - public int crop_top; - /// width of the cropping area - public int crop_width; - /// height of the cropping area - public int crop_height; - /// if true, scaling is applied _afterward_ - public int use_scaling; - /// final width - public int scaled_width; - /// final height - public int scaled_height; - /// if true, use multi-threaded decoding - public int use_threads; - /// dithering strength (0=Off, 100=full) - public int dithering_strength; - /// flip output vertically - public int flip; - /// alpha dithering strength in [0..100] - public int alpha_dithering_strength; - /// padding for later use. - private readonly UInt32 pad1; - /// padding for later use. - private readonly UInt32 pad2; - /// padding for later use. - private readonly UInt32 pad3; - /// padding for later use. - private readonly UInt32 pad4; - /// padding for later use. - private readonly UInt32 pad5; - }; - #endregion -} \ No newline at end of file