diff --git a/.vs/quick-picture-viewer/v16/.suo b/.vs/quick-picture-viewer/v16/.suo index 08929383..c4dbfbf1 100644 Binary files a/.vs/quick-picture-viewer/v16/.suo and b/.vs/quick-picture-viewer/v16/.suo differ diff --git a/.vs/quick-picture-viewer/v16/Server/sqlite3/storage.ide b/.vs/quick-picture-viewer/v16/Server/sqlite3/storage.ide index e6843c68..c159c843 100644 Binary files a/.vs/quick-picture-viewer/v16/Server/sqlite3/storage.ide and b/.vs/quick-picture-viewer/v16/Server/sqlite3/storage.ide differ diff --git a/QuickPictureViewer-Setup/QuickPictureViewer-Setup.vdproj b/QuickPictureViewer-Setup/QuickPictureViewer-Setup.vdproj index 397aa238..16acf856 100644 --- a/QuickPictureViewer-Setup/QuickPictureViewer-Setup.vdproj +++ b/QuickPictureViewer-Setup/QuickPictureViewer-Setup.vdproj @@ -64,7 +64,7 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_602081345A8B570EE42EFE35A1D60858" + "OwnerKey" = "8:_9E165066DD6307D67C7B835ACD3F2087" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -76,7 +76,7 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_9E165066DD6307D67C7B835ACD3F2087" + "OwnerKey" = "8:_602081345A8B570EE42EFE35A1D60858" "MsmSig" = "8:_UNDEFINED" } } @@ -373,15 +373,15 @@ { "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:Quick Picture Viewer" - "ProductCode" = "8:{B3810BBD-C0B6-4EDE-A5D1-51D5475AE8B9}" - "PackageCode" = "8:{E00F1FBA-67B4-4B17-8A56-5BE69C24CCBB}" + "ProductCode" = "8:{B2FA8817-26BA-4186-8202-EBD9C5CDAA99}" + "PackageCode" = "8:{4BE7925D-0139-4943-8C39-4527037F1F29}" "UpgradeCode" = "8:{D9871B4D-DF1B-418F-A7BF-D5F44A9FCFCE}" "AspNetVersion" = "8:2.0.50727.0" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:TRUE" "DetectNewerInstalledVersion" = "11:TRUE" "InstallAllUsers" = "11:FALSE" - "ProductVersion" = "8:1.9.3" + "ProductVersion" = "8:1.9.4" "Manufacturer" = "8:Module Art" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:" diff --git a/QuickPictureViewer-Setup/Release/QuickPictureViewer-Setup.msi b/QuickPictureViewer-Setup/Release/QuickPictureViewer-Setup.msi index 5cf4fcaa..c4abd977 100644 Binary files a/QuickPictureViewer-Setup/Release/QuickPictureViewer-Setup.msi and b/QuickPictureViewer-Setup/Release/QuickPictureViewer-Setup.msi differ diff --git a/README.md b/README.md index 0ddaea99..1d06c194 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@

Install

- Windows 7, 8.1, 10 | Size: 1.1 MB | v1.9.3 | Download
+ Windows 7, 8.1, 10 | Size: 1.1 MB | v1.9.4 | Download
Uses .Net 4.7.2

@@ -39,8 +39,6 @@

Additional

- How to enable dark title bars with custom accent color in Windows 10:

-

How to uninstall built-in photos app in Windows 10:

diff --git a/docs/darkmode.png b/docs/darkmode.png deleted file mode 100644 index cf48973d..00000000 Binary files a/docs/darkmode.png and /dev/null differ diff --git a/quick-picture-viewer/AboutForm.cs b/quick-picture-viewer/AboutForm.cs index 9dd48053..6450fa7f 100644 --- a/quick-picture-viewer/AboutForm.cs +++ b/quick-picture-viewer/AboutForm.cs @@ -16,6 +16,8 @@ public AboutForm() if (ThemeManager.isDarkTheme()) { + ThemeManager.enableDarkTitlebar(this.Handle); + this.BackColor = ThemeManager.BackColorDark; this.ForeColor = Color.White; diff --git a/quick-picture-viewer/InfoForm.cs b/quick-picture-viewer/InfoForm.cs index ffc6bb88..3166262a 100644 --- a/quick-picture-viewer/InfoForm.cs +++ b/quick-picture-viewer/InfoForm.cs @@ -15,6 +15,8 @@ public InfoForm(Bitmap bitmap, string directoryName, string fileName) if (ThemeManager.isDarkTheme()) { + ThemeManager.enableDarkTitlebar(this.Handle); + this.BackColor = ThemeManager.BackColorDark; this.ForeColor = Color.White; diff --git a/quick-picture-viewer/MainForm.Designer.cs b/quick-picture-viewer/MainForm.Designer.cs index 754b32ef..517870ac 100644 --- a/quick-picture-viewer/MainForm.Designer.cs +++ b/quick-picture-viewer/MainForm.Designer.cs @@ -95,7 +95,7 @@ private void InitializeComponent() // // toolStrip1 // - this.toolStrip1.BackColor = System.Drawing.Color.Transparent; + this.toolStrip1.BackColor = System.Drawing.Color.White; this.toolStrip1.CanOverflow = false; this.toolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -207,9 +207,9 @@ private void InitializeComponent() // toolStripSeparator4 // this.toolStripSeparator4.AutoSize = false; - this.toolStripSeparator4.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.toolStripSeparator4.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(6, 16); + this.toolStripSeparator4.Size = new System.Drawing.Size(2, 16); // // prevButton // @@ -254,9 +254,9 @@ private void InitializeComponent() // toolStripSeparator1 // this.toolStripSeparator1.AutoSize = false; - this.toolStripSeparator1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.toolStripSeparator1.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(6, 16); + this.toolStripSeparator1.Size = new System.Drawing.Size(2, 16); // // autoZoomButton // @@ -337,9 +337,9 @@ private void InitializeComponent() // toolStripSeparator2 // this.toolStripSeparator2.AutoSize = false; - this.toolStripSeparator2.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.toolStripSeparator2.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(6, 16); + this.toolStripSeparator2.Size = new System.Drawing.Size(2, 16); // // rotateLeftButton // @@ -398,7 +398,7 @@ private void InitializeComponent() this.toolStripSeparator3.AutoSize = false; this.toolStripSeparator3.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); this.toolStripSeparator3.Name = "toolStripSeparator3"; - this.toolStripSeparator3.Size = new System.Drawing.Size(6, 16); + this.toolStripSeparator3.Size = new System.Drawing.Size(2, 16); // // screenshotButton // @@ -454,9 +454,9 @@ private void InitializeComponent() // toolStripSeparator5 // this.toolStripSeparator5.AutoSize = false; - this.toolStripSeparator5.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.toolStripSeparator5.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); this.toolStripSeparator5.Name = "toolStripSeparator5"; - this.toolStripSeparator5.Size = new System.Drawing.Size(6, 16); + this.toolStripSeparator5.Size = new System.Drawing.Size(2, 16); // // checkboardButton // @@ -498,9 +498,9 @@ private void InitializeComponent() // toolStripSeparator6 // this.toolStripSeparator6.AutoSize = false; - this.toolStripSeparator6.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.toolStripSeparator6.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); this.toolStripSeparator6.Name = "toolStripSeparator6"; - this.toolStripSeparator6.Size = new System.Drawing.Size(6, 16); + this.toolStripSeparator6.Size = new System.Drawing.Size(2, 16); // // setAsDesktopButton // @@ -573,6 +573,7 @@ private void InitializeComponent() // // statusStrip1 // + this.statusStrip1.BackColor = System.Drawing.SystemColors.ControlLight; this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.directoryLabel, this.fileLabel, @@ -671,7 +672,7 @@ private void InitializeComponent() this.AllowDrop = true; this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; - this.BackColor = System.Drawing.Color.White; + this.BackColor = System.Drawing.SystemColors.Control; this.ClientSize = new System.Drawing.Size(768, 493); this.Controls.Add(this.picturePanel); this.Controls.Add(this.toolStrip1); diff --git a/quick-picture-viewer/MainForm.cs b/quick-picture-viewer/MainForm.cs index d7220df8..4ede7174 100644 --- a/quick-picture-viewer/MainForm.cs +++ b/quick-picture-viewer/MainForm.cs @@ -84,7 +84,7 @@ private void MainForm_Load(object sender, EventArgs e) zoomComboBox.ComboBox.MouseWheel += new MouseEventHandler(zoomComboBox_MouseWheel); darkMode = ThemeManager.isDarkTheme(); - if(darkMode) + if (darkMode) { applyDarkTheme(); } @@ -1035,6 +1035,8 @@ private void externalButton_Click(object sender, EventArgs e) private void applyDarkTheme() { + ThemeManager.enableDarkTitlebar(this.Handle); + ThemeManager.setDarkModeToControl(picturePanel.Handle); this.ForeColor = Color.White; diff --git a/quick-picture-viewer/MainForm.resx b/quick-picture-viewer/MainForm.resx index fbedcc7e..d0ebc074 100644 --- a/quick-picture-viewer/MainForm.resx +++ b/quick-picture-viewer/MainForm.resx @@ -338,71 +338,6 @@ 477, 17 - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAALJJREFUOE/Nks0JAjEQRnPwLihahgpeRQ/amj9YhAcbsABr0DbUClxR0PftBDES - ltmTPnhkZtl8E0jC37DGKz7xgXtsopsbdqwMDdzivOycaHIdddolvtHHOnSxsNLwBuziKpI9n00PD3Gt - IhswwjOu8IRjFEM8Yr/sjGzABqdWhgkqTLdxwUXsNURkA74ZoCbrBGKGGiJcAVUke/SQWla6aGNyjXrK - d1SqR/2bPKRfEcILB30+ElJnYjsAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAKVJREFUOE/Nkj0KAjEUBl9rqwiCl7ATxNJLeAqPIXgZrbyLXkAsxUJFUOfbRFhD - 8mK5A0N+md0i1jk2eMN34gVnWOWBwzD9QZETzpuVgy7m0L7+4IwLbZTwAl+v2ihRCrRx73iH2zj+FRjj - Po4p1cAID7jDI06xHasGerhsVmYrfKFiiipeDaRM4qio4m5AD6kfplkGeA/TPHrKT9RXcupsjZ3B7AP8 - ljJY5GqjGgAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAGZJREFUOE/VjzEKgDAQBO9bKtio//+FmvgI3REECRa5KwIOTJFiJ5y14vwwRC9X - GQpMcpOddAcY75IxuALlGKoDs2TM7W7ajt83jTJLbq/mCfBzksP9ckBgkaExEDgkkRAESn+B2QXamyDY - CyfAWwAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAALVJREFUOE/V0r8OwVAUgPE7+rt6EBGC6ILRw5hsJJ7EK5DgEcTWxCLETAxWEgPf - 6bGd9LaVGHzJLz0d2t721v26AiY44oYDxsgjsSK2WKGNyue4xgZyc29TzHU0LSAr8XZCVUdTDfJa3u4o - 6Wgq46FjfDvUdTQ1sNcxvhGWOprkQyZ+gz5ekF2QleQgT061Cx1cMcAQIZ5I9R/0cIHseea6kItb0VnG - 5OIzmtHZF80Q6Pg/OfcGzhogaYnUQccAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAO5JREFUOE/N0j1qAlEYheEPiYJgq5B0UQT3YKULsNQuixAxVUSxdAsWNoFoYmGb - 1h3YmFjZBxHSpUre84k4OOOgjeTAA3MuzJ25P3aNPGKDKdIauCQdfKCEF7zj7EkGWCDrzSyBEebIaCAu - +vISt94OucEYr95ORC//ou4tnCK2u8dwnrDCA75QQTB3+ETL21H2a855MytDk9S8md1jjaa3o7Sh3dYX - gqlCk+iP9GddROYbhd1jKA1oT06+rLxhCB1VMDoFnUbPW0xSmGGCpAbIfs2RGxYV3TDdtGfkoT3p46Jo - Et35H2jdcf5FzP4AA64vkKyV2q0AAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAANpJREFUOE/F08EKAUEAh/E9kAPClfIeijwN8TZKilxR4gWEB6EIyUU5cxDff3a3 - 1TQ4yVe/ZqY0zc4u7xdVMcUZl2CcoIKPxdHDCjUUkAvGOtboIAZnfcyQNCu/RzCqFBbompWVjr1F2qyi - XjdQGexRNquXxtAx7ewNVBMjfxp1gp7VzrVBEUd/GnWDLtFOG4TCErj606h3J3DlPMG7O3DlvAPd6gb2 - W7DTW9ihZFZWbcyhH7nKYomWWTkKv0S9Zz1OHkpjAwd8/BLD9FENoaPeg3GAr/+Ff+R5T5lgLGc/X8aO - AAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAOZJREFUOE/F08+qAVEAx/EpVzaEnai7sOAZ1I2nId5GKbFHySOg+x63bv6EjbK2 - IL6/Y6ZmxplrFup+69PMGdNp5pzhvKuqe1QNjLHCCUfMUEdke1TQxxZNFJBHCS38QL9/4KkbzvhGRhfc - dN0rjQUGZhRKN8oOZV1w80+gstjgy4xiFJ5AdTB5nL7ONsEn9KSBLkg8TgN5r+afKAWtV6ADtNpxsj7B - FNqqOFnXQKv6C/8W2tIurFEzo1A9zKGbbOWwRNeMLCUxhPZZr1OE0rENfaGRX6I/77+gR726xxH+/C/8 - V45zBz6DLrd6wgPCAAAAAElFTkSuQmCC - - AAABAAUAYGAAAAEAIAColAAAVgAAAEBAAAABACAAKEIAAP6UAAAwMAAAAQAgAKglAAAm1wAAICAAAAEA @@ -1579,6 +1514,71 @@ 698, 17 + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAALJJREFUOE/Nks0JAjEQRnPwLihahgpeRQ/amj9YhAcbsABr0DbUClxR0PftBDES + ltmTPnhkZtl8E0jC37DGKz7xgXtsopsbdqwMDdzivOycaHIdddolvtHHOnSxsNLwBuziKpI9n00PD3Gt + IhswwjOu8IRjFEM8Yr/sjGzABqdWhgkqTLdxwUXsNURkA74ZoCbrBGKGGiJcAVUke/SQWla6aGNyjXrK + d1SqR/2bPKRfEcILB30+ElJnYjsAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAKVJREFUOE/Nkj0KAjEUBl9rqwiCl7ATxNJLeAqPIXgZrbyLXkAsxUJFUOfbRFhD + 8mK5A0N+md0i1jk2eMN34gVnWOWBwzD9QZETzpuVgy7m0L7+4IwLbZTwAl+v2ihRCrRx73iH2zj+FRjj + Po4p1cAID7jDI06xHasGerhsVmYrfKFiiipeDaRM4qio4m5AD6kfplkGeA/TPHrKT9RXcupsjZ3B7AP8 + ljJY5GqjGgAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAGZJREFUOE/VjzEKgDAQBO9bKtio//+FmvgI3REECRa5KwIOTJFiJ5y14vwwRC9X + GQpMcpOddAcY75IxuALlGKoDs2TM7W7ajt83jTJLbq/mCfBzksP9ckBgkaExEDgkkRAESn+B2QXamyDY + CyfAWwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAALVJREFUOE/V0r8OwVAUgPE7+rt6EBGC6ILRw5hsJJ7EK5DgEcTWxCLETAxWEgPf + 6bGd9LaVGHzJLz0d2t721v26AiY44oYDxsgjsSK2WKGNyue4xgZyc29TzHU0LSAr8XZCVUdTDfJa3u4o + 6Wgq46FjfDvUdTQ1sNcxvhGWOprkQyZ+gz5ekF2QleQgT061Cx1cMcAQIZ5I9R/0cIHseea6kItb0VnG + 5OIzmtHZF80Q6Pg/OfcGzhogaYnUQccAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAO5JREFUOE/N0j1qAlEYheEPiYJgq5B0UQT3YKULsNQuixAxVUSxdAsWNoFoYmGb + 1h3YmFjZBxHSpUre84k4OOOgjeTAA3MuzJ25P3aNPGKDKdIauCQdfKCEF7zj7EkGWCDrzSyBEebIaCAu + +vISt94OucEYr95ORC//ou4tnCK2u8dwnrDCA75QQTB3+ETL21H2a855MytDk9S8md1jjaa3o7Sh3dYX + gqlCk+iP9GddROYbhd1jKA1oT06+rLxhCB1VMDoFnUbPW0xSmGGCpAbIfs2RGxYV3TDdtGfkoT3p46Jo + Et35H2jdcf5FzP4AA64vkKyV2q0AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAANpJREFUOE/F08EKAUEAh/E9kAPClfIeijwN8TZKilxR4gWEB6EIyUU5cxDff3a3 + 1TQ4yVe/ZqY0zc4u7xdVMcUZl2CcoIKPxdHDCjUUkAvGOtboIAZnfcyQNCu/RzCqFBbompWVjr1F2qyi + XjdQGexRNquXxtAx7ewNVBMjfxp1gp7VzrVBEUd/GnWDLtFOG4TCErj606h3J3DlPMG7O3DlvAPd6gb2 + W7DTW9ihZFZWbcyhH7nKYomWWTkKv0S9Zz1OHkpjAwd8/BLD9FENoaPeg3GAr/+Ff+R5T5lgLGc/X8aO + AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAOZJREFUOE/F08+qAVEAx/EpVzaEnai7sOAZ1I2nId5GKbFHySOg+x63bv6EjbK2 + IL6/Y6ZmxplrFup+69PMGdNp5pzhvKuqe1QNjLHCCUfMUEdke1TQxxZNFJBHCS38QL9/4KkbzvhGRhfc + dN0rjQUGZhRKN8oOZV1w80+gstjgy4xiFJ5AdTB5nL7ONsEn9KSBLkg8TgN5r+afKAWtV6ADtNpxsj7B + FNqqOFnXQKv6C/8W2tIurFEzo1A9zKGbbOWwRNeMLCUxhPZZr1OE0rENfaGRX6I/77+gR726xxH+/C/8 + V45zBz6DLrd6wgPCAAAAAElFTkSuQmCC + + 834, 17 diff --git a/quick-picture-viewer/PrintForm.cs b/quick-picture-viewer/PrintForm.cs index 6b2ac193..71aad69f 100644 --- a/quick-picture-viewer/PrintForm.cs +++ b/quick-picture-viewer/PrintForm.cs @@ -13,6 +13,10 @@ public PrintForm(PrintDocument pd) if (ThemeManager.isDarkTheme()) { + ThemeManager.enableDarkTitlebar(this.Handle); + + ThemeManager.setDarkModeToControl(printPreviewControl1.Handle); + this.BackColor = ThemeManager.BackColorDark; this.ForeColor = Color.White; diff --git a/quick-picture-viewer/Properties/AssemblyInfo.cs b/quick-picture-viewer/Properties/AssemblyInfo.cs index e10d7f04..a8b724f5 100644 --- a/quick-picture-viewer/Properties/AssemblyInfo.cs +++ b/quick-picture-viewer/Properties/AssemblyInfo.cs @@ -32,6 +32,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.9.3")] -[assembly: AssemblyFileVersion("1.9.3")] +[assembly: AssemblyVersion("1.9.4")] +[assembly: AssemblyFileVersion("1.9.4")] [assembly: NeutralResourcesLanguage("en")] diff --git a/quick-picture-viewer/ThemeManager.cs b/quick-picture-viewer/ThemeManager.cs index 3268c188..f9bfb6a1 100644 --- a/quick-picture-viewer/ThemeManager.cs +++ b/quick-picture-viewer/ThemeManager.cs @@ -7,14 +7,82 @@ namespace quick_picture_viewer { class ThemeManager { - public static Color MainColorDark = Color.FromArgb(23, 23, 23); - public static Color BackColorDark = Color.FromArgb(37, 37, 37); - public static Color SecondColorDark = Color.FromArgb(56, 56, 56); + public static Color MainColorDark = Color.Black; + public static Color BackColorDark = Color.FromArgb(32, 32, 32); + public static Color SecondColorDark = Color.FromArgb(51, 51, 51); public static Color AccentColorDark = Color.FromArgb(73, 169, 207); + private enum WindowCompositionAttribute + { + WCA_UNDEFINED = 0, + WCA_NCRENDERING_ENABLED = 1, + WCA_NCRENDERING_POLICY = 2, + WCA_TRANSITIONS_FORCEDISABLED = 3, + WCA_ALLOW_NCPAINT = 4, + WCA_CAPTION_BUTTON_BOUNDS = 5, + WCA_NONCLIENT_RTL_LAYOUT = 6, + WCA_FORCE_ICONIC_REPRESENTATION = 7, + WCA_EXTENDED_FRAME_BOUNDS = 8, + WCA_HAS_ICONIC_BITMAP = 9, + WCA_THEME_ATTRIBUTES = 10, + WCA_NCRENDERING_EXILED = 11, + WCA_NCADORNMENTINFO = 12, + WCA_EXCLUDED_FROM_LIVEPREVIEW = 13, + WCA_VIDEO_OVERLAY_ACTIVE = 14, + WCA_FORCE_ACTIVEWINDOW_APPEARANCE = 15, + WCA_DISALLOW_PEEK = 16, + WCA_CLOAK = 17, + WCA_CLOAKED = 18, + WCA_ACCENT_POLICY = 19, + WCA_FREEZE_REPRESENTATION = 20, + WCA_EVER_UNCLOAKED = 21, + WCA_VISUAL_OWNER = 22, + WCA_HOLOGRAPHIC = 23, + WCA_EXCLUDED_FROM_DDA = 24, + WCA_PASSIVEUPDATEMODE = 25, + WCA_USEDARKMODECOLORS = 26, + WCA_LAST = 27 + }; + + private struct WindowCompositionAttribData + { + public WindowCompositionAttribute Attribute; + public IntPtr Data; + public int SizeOfData; + } + [DllImport("uxtheme.dll", SetLastError = true, ExactSpelling = true, CharSet = CharSet.Unicode)] private static extern int SetWindowTheme(IntPtr hWnd, string pszSubAppName, string pszSubIdList); + [DllImport("uxtheme.dll", EntryPoint = "#133", SetLastError = true, ExactSpelling = true, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] + private static extern bool AllowDarkModeForWindow(IntPtr hWnd, bool allow); + + [DllImport("uxtheme.dll", EntryPoint = "#135", SetLastError = true, ExactSpelling = true, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] + private static extern bool AllowDarkModeForApp(bool allow); + + [DllImport("user32.dll")] + private static extern int SetWindowCompositionAttribute(IntPtr hwnd, ref WindowCompositionAttribData data); + + public static void enableDarkTitlebar(IntPtr handle) + { + bool dark = true; + + AllowDarkModeForApp(dark); + AllowDarkModeForWindow(handle, dark); + + var sizeOfData = Marshal.SizeOf(dark); + var dataPtr = Marshal.AllocHGlobal(sizeOfData); + + var data = new WindowCompositionAttribData + { + Attribute = WindowCompositionAttribute.WCA_USEDARKMODECOLORS, + Data = dataPtr, + SizeOfData = sizeOfData + + }; + SetWindowCompositionAttribute(handle, ref data); + } + public static void setDarkModeToControl(IntPtr handle) { SetWindowTheme(handle, "DarkMode_Explorer", null); @@ -61,7 +129,8 @@ public static Color getAccentColor() { string root = "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\DWM"; string colorcode = Registry.GetValue(root, "AccentColor", null).ToString(); - return System.Drawing.ColorTranslator.FromHtml(colorcode); + int colorInt = Math.Abs(Convert.ToInt32(colorcode)); + return Color.FromArgb(colorInt); } else { diff --git a/quick-picture-viewer/UpdateForm.Designer.cs b/quick-picture-viewer/UpdateForm.Designer.cs index 002a3cf5..66527ec7 100644 --- a/quick-picture-viewer/UpdateForm.Designer.cs +++ b/quick-picture-viewer/UpdateForm.Designer.cs @@ -171,11 +171,13 @@ private void InitializeComponent() this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.KeyPreview = true; this.MinimumSize = new System.Drawing.Size(320, 39); this.Name = "UpdateForm"; this.ShowInTaskbar = false; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Update available!"; + this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.UpdateForm_KeyDown); this.ResumeLayout(false); this.PerformLayout(); diff --git a/quick-picture-viewer/UpdateForm.cs b/quick-picture-viewer/UpdateForm.cs index 07a804eb..6cbc405c 100644 --- a/quick-picture-viewer/UpdateForm.cs +++ b/quick-picture-viewer/UpdateForm.cs @@ -23,6 +23,8 @@ public UpdateForm(UpdateChecker checker, string appName) if (ThemeManager.isDarkTheme()) { + ThemeManager.enableDarkTitlebar(this.Handle); + this.BackColor = ThemeManager.BackColorDark; this.ForeColor = Color.White; @@ -50,5 +52,13 @@ async void boxReleaseNotes_CheckedChanged(object sender, EventArgs e) ReleaseNotes.DocumentText = await _checker.RenderReleaseNotes(); _loadednotes = true; } + + private void UpdateForm_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Escape) + { + this.Close(); + } + } } } \ No newline at end of file diff --git a/quick-picture-viewer/WallpaperForm.cs b/quick-picture-viewer/WallpaperForm.cs index b2038ac2..a564c1eb 100644 --- a/quick-picture-viewer/WallpaperForm.cs +++ b/quick-picture-viewer/WallpaperForm.cs @@ -15,6 +15,8 @@ public WallpaperForm(Bitmap bmp) if (ThemeManager.isDarkTheme()) { + ThemeManager.enableDarkTitlebar(this.Handle); + this.BackColor = ThemeManager.BackColorDark; this.ForeColor = Color.White; diff --git a/quick-picture-viewer/bin/Debug/quick-picture-viewer.exe b/quick-picture-viewer/bin/Debug/quick-picture-viewer.exe index 72fb685f..c3f56c68 100644 Binary files a/quick-picture-viewer/bin/Debug/quick-picture-viewer.exe and b/quick-picture-viewer/bin/Debug/quick-picture-viewer.exe differ diff --git a/quick-picture-viewer/bin/Debug/quick-picture-viewer.pdb b/quick-picture-viewer/bin/Debug/quick-picture-viewer.pdb index 199f5fd2..8290e47a 100644 Binary files a/quick-picture-viewer/bin/Debug/quick-picture-viewer.pdb and b/quick-picture-viewer/bin/Debug/quick-picture-viewer.pdb differ diff --git a/quick-picture-viewer/bin/Release/quick-picture-viewer.exe b/quick-picture-viewer/bin/Release/quick-picture-viewer.exe index b505fea2..87c56f97 100644 Binary files a/quick-picture-viewer/bin/Release/quick-picture-viewer.exe and b/quick-picture-viewer/bin/Release/quick-picture-viewer.exe differ diff --git a/quick-picture-viewer/bin/Release/quick-picture-viewer.pdb b/quick-picture-viewer/bin/Release/quick-picture-viewer.pdb index 021f3674..a6630464 100644 Binary files a/quick-picture-viewer/bin/Release/quick-picture-viewer.pdb and b/quick-picture-viewer/bin/Release/quick-picture-viewer.pdb differ diff --git a/quick-picture-viewer/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/quick-picture-viewer/obj/Debug/DesignTimeResolveAssemblyReferences.cache index 9b622753..f0bf0533 100644 Binary files a/quick-picture-viewer/obj/Debug/DesignTimeResolveAssemblyReferences.cache and b/quick-picture-viewer/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/quick-picture-viewer/obj/Debug/quick-picture-viewer.csproj.GenerateResource.cache b/quick-picture-viewer/obj/Debug/quick-picture-viewer.csproj.GenerateResource.cache index cbdabdd7..c8a3fadf 100644 Binary files a/quick-picture-viewer/obj/Debug/quick-picture-viewer.csproj.GenerateResource.cache and b/quick-picture-viewer/obj/Debug/quick-picture-viewer.csproj.GenerateResource.cache differ diff --git a/quick-picture-viewer/obj/Debug/quick-picture-viewer.csprojAssemblyReference.cache b/quick-picture-viewer/obj/Debug/quick-picture-viewer.csprojAssemblyReference.cache index 73a13a77..f0892106 100644 Binary files a/quick-picture-viewer/obj/Debug/quick-picture-viewer.csprojAssemblyReference.cache and b/quick-picture-viewer/obj/Debug/quick-picture-viewer.csprojAssemblyReference.cache differ diff --git a/quick-picture-viewer/obj/Debug/quick-picture-viewer.exe b/quick-picture-viewer/obj/Debug/quick-picture-viewer.exe index 72fb685f..c3f56c68 100644 Binary files a/quick-picture-viewer/obj/Debug/quick-picture-viewer.exe and b/quick-picture-viewer/obj/Debug/quick-picture-viewer.exe differ diff --git a/quick-picture-viewer/obj/Debug/quick-picture-viewer.pdb b/quick-picture-viewer/obj/Debug/quick-picture-viewer.pdb index 199f5fd2..8290e47a 100644 Binary files a/quick-picture-viewer/obj/Debug/quick-picture-viewer.pdb and b/quick-picture-viewer/obj/Debug/quick-picture-viewer.pdb differ diff --git a/quick-picture-viewer/obj/Debug/quick_picture_viewer.Properties.Resources.resources b/quick-picture-viewer/obj/Debug/quick_picture_viewer.Properties.Resources.resources index aa7f077b..008c90a2 100644 Binary files a/quick-picture-viewer/obj/Debug/quick_picture_viewer.Properties.Resources.resources and b/quick-picture-viewer/obj/Debug/quick_picture_viewer.Properties.Resources.resources differ diff --git a/quick-picture-viewer/obj/Release/DesignTimeResolveAssemblyReferences.cache b/quick-picture-viewer/obj/Release/DesignTimeResolveAssemblyReferences.cache index de4ce240..d26ed106 100644 Binary files a/quick-picture-viewer/obj/Release/DesignTimeResolveAssemblyReferences.cache and b/quick-picture-viewer/obj/Release/DesignTimeResolveAssemblyReferences.cache differ diff --git a/quick-picture-viewer/obj/Release/quick-picture-viewer.csproj.GenerateResource.cache b/quick-picture-viewer/obj/Release/quick-picture-viewer.csproj.GenerateResource.cache index dac829a1..50457319 100644 Binary files a/quick-picture-viewer/obj/Release/quick-picture-viewer.csproj.GenerateResource.cache and b/quick-picture-viewer/obj/Release/quick-picture-viewer.csproj.GenerateResource.cache differ diff --git a/quick-picture-viewer/obj/Release/quick-picture-viewer.csprojAssemblyReference.cache b/quick-picture-viewer/obj/Release/quick-picture-viewer.csprojAssemblyReference.cache index b98e54c0..df29444c 100644 Binary files a/quick-picture-viewer/obj/Release/quick-picture-viewer.csprojAssemblyReference.cache and b/quick-picture-viewer/obj/Release/quick-picture-viewer.csprojAssemblyReference.cache differ diff --git a/quick-picture-viewer/obj/Release/quick-picture-viewer.exe b/quick-picture-viewer/obj/Release/quick-picture-viewer.exe index b505fea2..87c56f97 100644 Binary files a/quick-picture-viewer/obj/Release/quick-picture-viewer.exe and b/quick-picture-viewer/obj/Release/quick-picture-viewer.exe differ diff --git a/quick-picture-viewer/obj/Release/quick-picture-viewer.pdb b/quick-picture-viewer/obj/Release/quick-picture-viewer.pdb index 021f3674..a6630464 100644 Binary files a/quick-picture-viewer/obj/Release/quick-picture-viewer.pdb and b/quick-picture-viewer/obj/Release/quick-picture-viewer.pdb differ diff --git a/quick-picture-viewer/obj/Release/quick_picture_viewer.Properties.Resources.resources b/quick-picture-viewer/obj/Release/quick_picture_viewer.Properties.Resources.resources index aa7f077b..008c90a2 100644 Binary files a/quick-picture-viewer/obj/Release/quick_picture_viewer.Properties.Resources.resources and b/quick-picture-viewer/obj/Release/quick_picture_viewer.Properties.Resources.resources differ diff --git a/quick-picture-viewer/resources/imgs/checkboard-dark.png b/quick-picture-viewer/resources/imgs/checkboard-dark.png index 17420ab6..845fd5c8 100644 Binary files a/quick-picture-viewer/resources/imgs/checkboard-dark.png and b/quick-picture-viewer/resources/imgs/checkboard-dark.png differ diff --git a/quick-picture-viewer/resources/imgs/checkboard-light.png b/quick-picture-viewer/resources/imgs/checkboard-light.png index 61a8c97c..ce7d2967 100644 Binary files a/quick-picture-viewer/resources/imgs/checkboard-light.png and b/quick-picture-viewer/resources/imgs/checkboard-light.png differ