diff --git a/Core/EmulationSettings.cpp b/Core/EmulationSettings.cpp index 7cace87cb..00f81f816 100644 --- a/Core/EmulationSettings.cpp +++ b/Core/EmulationSettings.cpp @@ -2,10 +2,10 @@ #include "EmulationSettings.h" #include "VsControlManager.h" -//Version 0.6.0 +//Version 0.6.1 uint16_t EmulationSettings::_versionMajor = 0; uint8_t EmulationSettings::_versionMinor = 6; -uint8_t EmulationSettings::_versionRevision = 0; +uint8_t EmulationSettings::_versionRevision = 1; Language EmulationSettings::_displayLanguage = Language::English; diff --git a/GUI.NET/Config/Configuration.cs b/GUI.NET/Config/Configuration.cs index 32b3b0bbd..f743ceb99 100644 --- a/GUI.NET/Config/Configuration.cs +++ b/GUI.NET/Config/Configuration.cs @@ -13,7 +13,7 @@ public class Configuration private const int MaxRecentFiles = 10; private bool _needToSave = false; - public string MesenVersion = "0.6.0"; + public string MesenVersion = "0.6.1"; public PreferenceInfo PreferenceInfo; public AudioInfo AudioInfo; public VideoInfo VideoInfo; diff --git a/GUI.NET/Dependencies/resources.es.xml b/GUI.NET/Dependencies/resources.es.xml index 34b889627..966c28c21 100644 --- a/GUI.NET/Dependencies/resources.es.xml +++ b/GUI.NET/Dependencies/resources.es.xml @@ -442,7 +442,8 @@ © 2016 M. Bibaud (aka Sour) Sitio web: www.mesen.ca - Version: 0.6.0 (Beta) + Version: 0.6.1 (Beta) + If you want to support Mesen, please consider donating. Thank you for your support! &OK
@@ -454,6 +455,7 @@ Última versión: Versión actual: Changelog + If you want to support Mesen, please consider donating. Thank you! Actualizar Cancelar
diff --git a/GUI.NET/Dependencies/resources.fr.xml b/GUI.NET/Dependencies/resources.fr.xml index 5cdefeb6d..2c087daf8 100644 --- a/GUI.NET/Dependencies/resources.fr.xml +++ b/GUI.NET/Dependencies/resources.fr.xml @@ -455,7 +455,8 @@ © 2016 M. Bibaud (aka Sour) Site web: www.mesen.ca - Version: 0.6.0 (Beta) + Version: 0.6.1 (Beta) + Si vous voulez supporter le développement de Mesen, vous pouvez faire une donation. Merci de votre support! &OK
@@ -467,6 +468,7 @@ Dernière version : Version courante : Changelog + Si vous voulez supporter Mesen, vous pouvez faire une donation. Merci! Mettre à jour Annuler
diff --git a/GUI.NET/Dependencies/resources.ja.xml b/GUI.NET/Dependencies/resources.ja.xml index 079d9a090..b11514225 100644 --- a/GUI.NET/Dependencies/resources.ja.xml +++ b/GUI.NET/Dependencies/resources.ja.xml @@ -442,13 +442,15 @@ © 2016 M. Bibaud (aka Sour) サイト: www.mesen.ca - バージョン: 0.6.0 (ベータ版) + バージョン: 0.6.1 (ベータ版) + 応援ありがとうございます! &OK
最新バージョン: 現在のバージョン: 更新歴 + 応援ありがとうございます! 更新 キャンセル
diff --git a/GUI.NET/Dependencies/resources.pt.xml b/GUI.NET/Dependencies/resources.pt.xml index ccd4f688b..0a7971818 100644 --- a/GUI.NET/Dependencies/resources.pt.xml +++ b/GUI.NET/Dependencies/resources.pt.xml @@ -442,7 +442,8 @@ © 2016 M. Bibaud (aka Sour) Sitio web: www.mesen.ca - Version: 0.6.0 (Beta) + Version: 0.6.1 (Beta) + If you want to support Mesen, please consider donating. Thank you for your support! &OK
@@ -454,6 +455,7 @@ Última versão: Versão atual: Changelog + If you want to support Mesen, please consider donating. Thank you! Atualizar Cancelar
diff --git a/GUI.NET/Dependencies/resources.ru.xml b/GUI.NET/Dependencies/resources.ru.xml index 0db79df83..bcdc1c810 100644 --- a/GUI.NET/Dependencies/resources.ru.xml +++ b/GUI.NET/Dependencies/resources.ru.xml @@ -446,7 +446,8 @@ © 2016 M. Bibaud (aka Sour) Сайт: www.mesen.ca - Версия: 0.6.0 (Beta) + Версия: 0.6.1 (Beta) + If you want to support Mesen, please consider donating. Thank you for your support! &OK
@@ -458,6 +459,7 @@ Последняя версия : Текущая версия : Changelog + If you want to support Mesen, please consider donating. Thank you! Обновить Отмена
diff --git a/GUI.NET/Dependencies/resources.uk.xml b/GUI.NET/Dependencies/resources.uk.xml index 7a28bb9a5..a9c71bfa2 100644 --- a/GUI.NET/Dependencies/resources.uk.xml +++ b/GUI.NET/Dependencies/resources.uk.xml @@ -445,7 +445,8 @@ © 2016 M. Bibaud (aka Sour) Сайт: www.mesen.ca - Версiя: 0.6.0 (Beta) + Версiя: 0.6.1 (Beta) + If you want to support Mesen, please consider donating. Thank you for your support! &OK
@@ -457,6 +458,7 @@ Остання версія : Поточна версія : Changelog + If you want to support Mesen, please consider donating. Thank you! Оновити Вiдмiна
diff --git a/GUI.NET/Forms/ResourceHelper.cs b/GUI.NET/Forms/ResourceHelper.cs index 264a296ad..5164c5ff3 100644 --- a/GUI.NET/Forms/ResourceHelper.cs +++ b/GUI.NET/Forms/ResourceHelper.cs @@ -38,6 +38,21 @@ public static Language GetCurrentLanguage() return _language; } + public static string GetLanguageCode() + { + switch(ResourceHelper.GetCurrentLanguage()) { + case Language.English: return "en"; + case Language.French: return "fr"; + case Language.Japanese: return "ja"; + case Language.Russian: return "ru"; + case Language.Spanish: return "es"; + case Language.Ukrainian: return "uk"; + case Language.Portuguese: return "pt"; + } + + return ""; + } + public static void UpdateEmuLanguage() { InteropEmu.SetDisplayLanguage(_language); diff --git a/GUI.NET/Forms/frmAbout.Designer.cs b/GUI.NET/Forms/frmAbout.Designer.cs index 6869bfdbb..88e4b429c 100644 --- a/GUI.NET/Forms/frmAbout.Designer.cs +++ b/GUI.NET/Forms/frmAbout.Designer.cs @@ -26,6 +26,7 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmAbout)); this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); this.logoPictureBox = new System.Windows.Forms.PictureBox(); this.labelProductName = new System.Windows.Forms.Label(); @@ -36,15 +37,18 @@ private void InitializeComponent() this.labelVersion = new System.Windows.Forms.Label(); this.okButton = new System.Windows.Forms.Button(); this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel(); + this.picDonate = new System.Windows.Forms.PictureBox(); + this.lblDonate = new System.Windows.Forms.Label(); this.tableLayoutPanel.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit(); this.flowLayoutPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picDonate)).BeginInit(); this.SuspendLayout(); // // tableLayoutPanel // this.tableLayoutPanel.ColumnCount = 2; - this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 70F)); + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 84F)); this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0); this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0); @@ -52,24 +56,28 @@ private void InitializeComponent() this.tableLayoutPanel.Controls.Add(this.flowLayoutPanel1, 1, 3); this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1); this.tableLayoutPanel.Controls.Add(this.okButton, 1, 5); - this.tableLayoutPanel.Controls.Add(this.flowLayoutPanel2, 0, 4); + this.tableLayoutPanel.Controls.Add(this.flowLayoutPanel2, 0, 6); + this.tableLayoutPanel.Controls.Add(this.picDonate, 0, 5); + this.tableLayoutPanel.Controls.Add(this.lblDonate, 0, 4); this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel.Location = new System.Drawing.Point(5, 5); this.tableLayoutPanel.Name = "tableLayoutPanel"; - this.tableLayoutPanel.RowCount = 6; + this.tableLayoutPanel.RowCount = 7; + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel.Size = new System.Drawing.Size(337, 102); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel.Size = new System.Drawing.Size(337, 134); this.tableLayoutPanel.TabIndex = 0; // // logoPictureBox // + this.logoPictureBox.Anchor = System.Windows.Forms.AnchorStyles.Top; this.logoPictureBox.Image = global::Mesen.GUI.Properties.Resources.MesenLogo; - this.logoPictureBox.Location = new System.Drawing.Point(3, 3); + this.logoPictureBox.Location = new System.Drawing.Point(10, 0); this.logoPictureBox.Margin = new System.Windows.Forms.Padding(0, 0, 0, 5); this.logoPictureBox.Name = "logoPictureBox"; this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 4); @@ -81,10 +89,10 @@ private void InitializeComponent() // this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill; this.labelProductName.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelProductName.Location = new System.Drawing.Point(76, 0); + this.labelProductName.Location = new System.Drawing.Point(90, 0); this.labelProductName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0); this.labelProductName.Name = "labelProductName"; - this.labelProductName.Size = new System.Drawing.Size(258, 17); + this.labelProductName.Size = new System.Drawing.Size(244, 17); this.labelProductName.TabIndex = 19; this.labelProductName.Text = "Mesen"; this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -93,10 +101,10 @@ private void InitializeComponent() // this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill; this.labelCopyright.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelCopyright.Location = new System.Drawing.Point(76, 34); + this.labelCopyright.Location = new System.Drawing.Point(90, 34); this.labelCopyright.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0); this.labelCopyright.Name = "labelCopyright"; - this.labelCopyright.Size = new System.Drawing.Size(258, 17); + this.labelCopyright.Size = new System.Drawing.Size(244, 17); this.labelCopyright.TabIndex = 21; this.labelCopyright.Text = "© 2016 M. Bibaud (aka Sour)"; this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -105,7 +113,7 @@ private void InitializeComponent() // this.flowLayoutPanel1.Controls.Add(this.lblWebsite); this.flowLayoutPanel1.Controls.Add(this.lblLink); - this.flowLayoutPanel1.Location = new System.Drawing.Point(70, 51); + this.flowLayoutPanel1.Location = new System.Drawing.Point(84, 51); this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(0); this.flowLayoutPanel1.Name = "flowLayoutPanel1"; this.flowLayoutPanel1.Size = new System.Drawing.Size(236, 18); @@ -139,19 +147,19 @@ private void InitializeComponent() // // labelVersion // - this.labelVersion.Location = new System.Drawing.Point(76, 17); + this.labelVersion.Location = new System.Drawing.Point(90, 17); this.labelVersion.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0); this.labelVersion.Name = "labelVersion"; this.labelVersion.Size = new System.Drawing.Size(146, 17); this.labelVersion.TabIndex = 0; - this.labelVersion.Text = "Version: 0.6.0 (Beta)"; + this.labelVersion.Text = "Version: 0.6.1 (Beta)"; this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // // okButton // this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.okButton.Location = new System.Drawing.Point(259, 76); + this.okButton.Location = new System.Drawing.Point(259, 108); this.okButton.Name = "okButton"; this.okButton.Size = new System.Drawing.Size(75, 23); this.okButton.TabIndex = 24; @@ -159,10 +167,35 @@ private void InitializeComponent() // // flowLayoutPanel2 // - this.flowLayoutPanel2.Location = new System.Drawing.Point(3, 74); + this.flowLayoutPanel2.Location = new System.Drawing.Point(3, 137); this.flowLayoutPanel2.Name = "flowLayoutPanel2"; this.flowLayoutPanel2.Size = new System.Drawing.Size(64, 1); this.flowLayoutPanel2.TabIndex = 27; + // + // picDonate + // + this.picDonate.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.picDonate.Cursor = System.Windows.Forms.Cursors.Hand; + this.picDonate.Image = ((System.Drawing.Image)(resources.GetObject("picDonate.Image"))); + this.picDonate.Location = new System.Drawing.Point(3, 108); + this.picDonate.Name = "picDonate"; + this.picDonate.Size = new System.Drawing.Size(78, 22); + this.picDonate.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; + this.picDonate.TabIndex = 29; + this.picDonate.TabStop = false; + this.picDonate.Click += new System.EventHandler(this.picDonate_Click); + // + // lblDonate + // + this.tableLayoutPanel.SetColumnSpan(this.lblDonate, 2); + this.lblDonate.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblDonate.Location = new System.Drawing.Point(0, 75); + this.lblDonate.Margin = new System.Windows.Forms.Padding(0, 5, 0, 0); + this.lblDonate.Name = "lblDonate"; + this.lblDonate.Size = new System.Drawing.Size(337, 30); + this.lblDonate.TabIndex = 30; + this.lblDonate.Text = "If you want to support Mesen, please consider donating.\r\nThank you for your suppo" + + "rt!"; // // frmAbout // @@ -170,7 +203,7 @@ private void InitializeComponent() this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.okButton; - this.ClientSize = new System.Drawing.Size(347, 112); + this.ClientSize = new System.Drawing.Size(347, 144); this.Controls.Add(this.tableLayoutPanel); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.MaximizeBox = false; @@ -181,9 +214,11 @@ private void InitializeComponent() this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "About - Mesen"; this.tableLayoutPanel.ResumeLayout(false); + this.tableLayoutPanel.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit(); this.flowLayoutPanel1.ResumeLayout(false); this.flowLayoutPanel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picDonate)).EndInit(); this.ResumeLayout(false); } @@ -200,5 +235,7 @@ private void InitializeComponent() private System.Windows.Forms.Label lblWebsite; private System.Windows.Forms.Label lblLink; private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2; + private System.Windows.Forms.PictureBox picDonate; + private System.Windows.Forms.Label lblDonate; } } diff --git a/GUI.NET/Forms/frmAbout.cs b/GUI.NET/Forms/frmAbout.cs index 8ef93aa86..37ddf3299 100644 --- a/GUI.NET/Forms/frmAbout.cs +++ b/GUI.NET/Forms/frmAbout.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.ComponentModel; +using System.Diagnostics; using System.Drawing; using System.Linq; using System.Reflection; @@ -18,7 +19,12 @@ public frmAbout() private void lblLink_Click(object sender, EventArgs e) { - System.Diagnostics.Process.Start("http://www.mesen.ca"); + Process.Start("http://www.mesen.ca"); + } + + private void picDonate_Click(object sender, EventArgs e) + { + Process.Start("http://www.mesen.ca/Donate.php?l=" + ResourceHelper.GetLanguageCode()); } } } diff --git a/GUI.NET/Forms/frmAbout.resx b/GUI.NET/Forms/frmAbout.resx index 8766f2983..cab5df301 100644 --- a/GUI.NET/Forms/frmAbout.resx +++ b/GUI.NET/Forms/frmAbout.resx @@ -120,4 +120,45 @@ 17, 17 + + + + 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 + + \ No newline at end of file diff --git a/GUI.NET/Forms/frmMain.cs b/GUI.NET/Forms/frmMain.cs index 3384fee3e..92b3d8cee 100644 --- a/GUI.NET/Forms/frmMain.cs +++ b/GUI.NET/Forms/frmMain.cs @@ -1442,25 +1442,18 @@ private void CheckForUpdates(bool displayResult) try { using(var client = new WebClient()) { XmlDocument xmlDoc = new XmlDocument(); - string langCode = ""; - switch(ResourceHelper.GetCurrentLanguage()) { - case Language.English: langCode = "en"; break; - case Language.French: langCode = "fr"; break; - case Language.Japanese: langCode = "ja"; break; - case Language.Russian: langCode = "ru"; break; - case Language.Spanish: langCode = "es"; break; - case Language.Ukrainian: langCode = "uk"; break; - } + string platform = Program.IsMono ? "linux" : "win"; - xmlDoc.LoadXml(client.DownloadString("http://www.mesen.ca/Services/GetLatestVersion.php?v=" + InteropEmu.GetMesenVersion() + "&p=" + platform + "&l=" + langCode)); + xmlDoc.LoadXml(client.DownloadString("http://www.mesen.ca/Services/GetLatestVersion.php?v=" + InteropEmu.GetMesenVersion() + "&p=" + platform + "&l=" + ResourceHelper.GetLanguageCode())); Version currentVersion = new Version(InteropEmu.GetMesenVersion()); Version latestVersion = new Version(xmlDoc.SelectSingleNode("VersionInfo/LatestVersion").InnerText); string changeLog = xmlDoc.SelectSingleNode("VersionInfo/ChangeLog").InnerText; string fileHash = xmlDoc.SelectSingleNode("VersionInfo/Sha1Hash").InnerText; + string donateText = xmlDoc.SelectSingleNode("VersionInfo/DonateText")?.InnerText; if(latestVersion > currentVersion) { this.BeginInvoke((MethodInvoker)(() => { - frmUpdatePrompt frmUpdate = new frmUpdatePrompt(currentVersion, latestVersion, changeLog, fileHash); + frmUpdatePrompt frmUpdate = new frmUpdatePrompt(currentVersion, latestVersion, changeLog, fileHash, donateText); if(frmUpdate.ShowDialog(null, this) == DialogResult.OK) { Application.Exit(); } diff --git a/GUI.NET/Forms/frmUpdatePrompt.Designer.cs b/GUI.NET/Forms/frmUpdatePrompt.Designer.cs index b91ea7156..b6415cecf 100644 --- a/GUI.NET/Forms/frmUpdatePrompt.Designer.cs +++ b/GUI.NET/Forms/frmUpdatePrompt.Designer.cs @@ -27,6 +27,7 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmUpdatePrompt)); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.lblLatestVersionString = new System.Windows.Forms.Label(); this.lblLatestVersion = new System.Windows.Forms.Label(); @@ -34,11 +35,18 @@ private void InitializeComponent() this.txtChangelog = new System.Windows.Forms.TextBox(); this.lblChangeLog = new System.Windows.Forms.Label(); this.lblCurrentVersionString = new System.Windows.Forms.Label(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); this.btnCancel = new System.Windows.Forms.Button(); this.btnUpdate = new System.Windows.Forms.Button(); + this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel(); + this.picDonate = new System.Windows.Forms.PictureBox(); + this.lblDonate = new System.Windows.Forms.Label(); this.tableLayoutPanel1.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); this.flowLayoutPanel1.SuspendLayout(); + this.flowLayoutPanel2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picDonate)).BeginInit(); this.SuspendLayout(); // // tableLayoutPanel1 @@ -54,7 +62,7 @@ private void InitializeComponent() this.tableLayoutPanel1.Controls.Add(this.txtChangelog, 0, 2); this.tableLayoutPanel1.Controls.Add(this.lblChangeLog, 0, 1); this.tableLayoutPanel1.Controls.Add(this.lblCurrentVersionString, 3, 0); - this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel1, 0, 3); + this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 3); this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; @@ -105,7 +113,7 @@ private void InitializeComponent() this.txtChangelog.Name = "txtChangelog"; this.txtChangelog.ReadOnly = true; this.txtChangelog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtChangelog.Size = new System.Drawing.Size(673, 273); + this.txtChangelog.Size = new System.Drawing.Size(673, 271); this.txtChangelog.TabIndex = 4; this.txtChangelog.TabStop = false; // @@ -129,23 +137,38 @@ private void InitializeComponent() this.lblCurrentVersionString.TabIndex = 6; this.lblCurrentVersionString.Text = "x.x.x"; // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.ColumnCount = 2; + this.tableLayoutPanel1.SetColumnSpan(this.tableLayoutPanel2, 4); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel2.Controls.Add(this.flowLayoutPanel1, 1, 0); + this.tableLayoutPanel2.Controls.Add(this.flowLayoutPanel2, 0, 0); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(5, 323); + this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(0); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 1; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(679, 31); + this.tableLayoutPanel2.TabIndex = 9; + // // flowLayoutPanel1 // - this.tableLayoutPanel1.SetColumnSpan(this.flowLayoutPanel1, 4); this.flowLayoutPanel1.Controls.Add(this.btnCancel); this.flowLayoutPanel1.Controls.Add(this.btnUpdate); - this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.RightToLeft; - this.flowLayoutPanel1.Location = new System.Drawing.Point(5, 325); + this.flowLayoutPanel1.Location = new System.Drawing.Point(520, 0); this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(0); this.flowLayoutPanel1.Name = "flowLayoutPanel1"; - this.flowLayoutPanel1.Size = new System.Drawing.Size(679, 29); + this.flowLayoutPanel1.Size = new System.Drawing.Size(159, 28); this.flowLayoutPanel1.TabIndex = 8; // // btnCancel // this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(605, 3); + this.btnCancel.Location = new System.Drawing.Point(85, 3); this.btnCancel.Name = "btnCancel"; this.btnCancel.Size = new System.Drawing.Size(71, 23); this.btnCancel.TabIndex = 1; @@ -155,7 +178,7 @@ private void InitializeComponent() // btnUpdate // this.btnUpdate.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnUpdate.Location = new System.Drawing.Point(524, 3); + this.btnUpdate.Location = new System.Drawing.Point(4, 3); this.btnUpdate.Name = "btnUpdate"; this.btnUpdate.Size = new System.Drawing.Size(75, 23); this.btnUpdate.TabIndex = 0; @@ -163,6 +186,42 @@ private void InitializeComponent() this.btnUpdate.UseVisualStyleBackColor = true; this.btnUpdate.Click += new System.EventHandler(this.btnUpdate_Click); // + // flowLayoutPanel2 + // + this.flowLayoutPanel2.Controls.Add(this.picDonate); + this.flowLayoutPanel2.Controls.Add(this.lblDonate); + this.flowLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.flowLayoutPanel2.Location = new System.Drawing.Point(0, 0); + this.flowLayoutPanel2.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel2.Name = "flowLayoutPanel2"; + this.flowLayoutPanel2.Size = new System.Drawing.Size(520, 31); + this.flowLayoutPanel2.TabIndex = 9; + this.flowLayoutPanel2.WrapContents = false; + // + // picDonate + // + this.picDonate.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.picDonate.Cursor = System.Windows.Forms.Cursors.Hand; + this.picDonate.Image = ((System.Drawing.Image)(resources.GetObject("picDonate.Image"))); + this.picDonate.Location = new System.Drawing.Point(3, 3); + this.picDonate.Name = "picDonate"; + this.picDonate.Size = new System.Drawing.Size(78, 22); + this.picDonate.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; + this.picDonate.TabIndex = 0; + this.picDonate.TabStop = false; + this.picDonate.Click += new System.EventHandler(this.picDonate_Click); + // + // lblDonate + // + this.lblDonate.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.lblDonate.AutoSize = true; + this.lblDonate.Location = new System.Drawing.Point(84, 7); + this.lblDonate.Margin = new System.Windows.Forms.Padding(0); + this.lblDonate.Name = "lblDonate"; + this.lblDonate.Size = new System.Drawing.Size(331, 13); + this.lblDonate.TabIndex = 1; + this.lblDonate.Text = "If you want to support Mesen, please consider donating. Thank you!"; + // // frmUpdatePrompt // this.AcceptButton = this.btnUpdate; @@ -180,7 +239,11 @@ private void InitializeComponent() this.Text = "Mesen - Update Available"; this.tableLayoutPanel1.ResumeLayout(false); this.tableLayoutPanel1.PerformLayout(); + this.tableLayoutPanel2.ResumeLayout(false); this.flowLayoutPanel1.ResumeLayout(false); + this.flowLayoutPanel2.ResumeLayout(false); + this.flowLayoutPanel2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picDonate)).EndInit(); this.ResumeLayout(false); } @@ -197,5 +260,9 @@ private void InitializeComponent() private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; private System.Windows.Forms.Button btnCancel; private System.Windows.Forms.Button btnUpdate; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2; + private System.Windows.Forms.PictureBox picDonate; + private System.Windows.Forms.Label lblDonate; } } \ No newline at end of file diff --git a/GUI.NET/Forms/frmUpdatePrompt.cs b/GUI.NET/Forms/frmUpdatePrompt.cs index 50fd80a2a..32a9ae8bc 100644 --- a/GUI.NET/Forms/frmUpdatePrompt.cs +++ b/GUI.NET/Forms/frmUpdatePrompt.cs @@ -18,11 +18,14 @@ namespace Mesen.GUI.Forms public partial class frmUpdatePrompt : BaseForm { private string _fileHash; + private string _donateText; - public frmUpdatePrompt(Version currentVersion, Version latestVersion, string changeLog, string fileHash) + public frmUpdatePrompt(Version currentVersion, Version latestVersion, string changeLog, string fileHash, string donateText) { InitializeComponent(); + _donateText = donateText; + this.txtChangelog.Font = new System.Drawing.Font(BaseControl.MonospaceFontFamily, 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); _fileHash = fileHash; @@ -36,6 +39,17 @@ protected override void OnLoad(EventArgs e) { base.OnLoad(e); + if(_donateText != null) { + if(!string.IsNullOrEmpty(_donateText)) { + this.lblDonate.Text = _donateText; + } + this.lblDonate.Visible = true; + this.picDonate.Visible = true; + } else { + this.lblDonate.Visible = false; + this.picDonate.Visible = false; + } + btnUpdate.Focus(); } @@ -80,5 +94,10 @@ private string GetSha1Hash(string filename) return sb.ToString(); } } + + private void picDonate_Click(object sender, EventArgs e) + { + Process.Start("http://www.mesen.ca/Donate.php?l=" + ResourceHelper.GetLanguageCode()); + } } } diff --git a/GUI.NET/Forms/frmUpdatePrompt.resx b/GUI.NET/Forms/frmUpdatePrompt.resx index 8766f2983..3550ecc4e 100644 --- a/GUI.NET/Forms/frmUpdatePrompt.resx +++ b/GUI.NET/Forms/frmUpdatePrompt.resx @@ -120,4 +120,45 @@ 17, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAAE4AAAAWCAYAAABud6qHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADr4AAA6+AepCscAAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTJDBGvs + AAAHzUlEQVRYR+2XeVDV1xXHSTqZpE4mY5q21pq0kxkrVTSoPFBZRBEUEEVkXFCUTXiACLiyuFcbxaRE + wAUe8BQeCAIqLuAaRzFiXUpsNLiAuG+JLQoSFfF+en+/hyRvhNSQ9i88M5957957zrn3fufeOb9r1ppR + MO4XwjDUXOS56tg0EvK9OhBjINcNsdPHXWRozJsl+e8m0qy0HImIpXw5XNsFddXQWAdPH3YMntRCbSVc + LoKyJYhjcVEitf/IZnlaN+mQII4uecKtz6HhGjy607FpuA63DiIOz78u0jRuzTKZmiraqU8f8a8vof7S + K56j3LhvjiP2zrglUvtpmuUymnI9xf7gJ9w5LI/pV5IzrzBBanLzAKLQq15k9Pu9KppaCIo0cXydBN8e + g3vt4+ndcmqvlPFtzWGVe5L7V8tovFPeqv//AyHXr8z37Gfs40c5FoXY5tYHM7PXzERGH3O2DkdU6RF3 + 5H1uJ8cOF2LhNZe3BoXx3pAIfj10Bv3Gx7BWr+N+zd5WY/6XNN0+yLl/bGdDrp67F3a36vOzOfsZ5Ngi + krq/aSb0VnpKXRDnkhG3SiRy0nZQUJhBV5dIQuZ/TF6+jty8NCZEL6WrcyR7S7Joulna4vvvqh1UVRTx + 4NJOkxw/pOHqLi6dLuLhlV0m/UoeJfbu+WKTnLXVO5g48y8Ex3/MN3Lsh/2K/8PLbc/10lQsRuywR+is + VpuRaY3YPUKW3emIK3mIm3LSdrAiOZE3bLSU7dPz7EaxysE9mXT3iGZ+wioaarbSdL2YrJx1OPrF0Xfc + XGx9Y/ls/WrVV8mRoktmiH88a9OTcdculCd2LrOXr+RuZYE6vr80k5GhC9VYGx95mqWfklcZcwmaz9v2 + 4XQbHsncvybI/i1kZq3FKTBe9feQcV+V57TM9ZOpljeyLABRMgx0Vpiht5HCuSL2jEScnCfFy0dcLfxJ + PLyYT/iCZfJ6RlB9Iqul/3SZHqvxc5gWu5S6C3nkbUrhXcfpuAfHs06XiMOUebzjEM62wrXcP5+H76zF + mFmFqDG6jNW4Sr8P3aM4tFsn4/PV/12dZ5CSmoid7zy6DIvgWoWB65KJUYvU2OFBcWzfsg79xiTjXCHx + LF61kveloN4RC3hUvdlk7S/F5VzEiVmyskqNpFboNFI45cSVOBkpHWZU9dIGKaB0fkluVGzAdVosTv4x + 3D79feypg2l8NHYmkYuWUn8hG/PR0fIERnG+PIOmmlz2FKfQaVAoAXMWceWUXm46RhXjTJmOpzU5LE9c + QU/PaI7tW6/me1Rl4HG1gdqvs/CXMYpQNScyeSY3ZjAk8jsZu2tLCk2y3WNUNJ1sQ7kq8ypzuwTG8LpG + S/357Jb1vRQ10r883KhNs07GE5epgZ32ppQ6w3FZQSr/JouGXHR1uhQzs03OHVlDb69owuIWyOqdpvY1 + VWeQvXEV79iHkWdI4NSBZPUqe4bKU90cV1ayWt3cuOmxnNiXhPmoKLSxC3hwVqeOjwyJYcjU2Vz8Yg1V + 5euZFD1f+sygm3MYvxykRTNuJrcrUlXf8PhFWI6N5uT+JCrL1tB5cDhvDdTiPm2uSnd3WbAcQ6mvNOZu + E2WvF+Welb3LU8bu4S/qowqXYQXF1hKbF1Gc9o2Cw76II/IktsHx3CApUCi6lX48OeTP40OBHMqZjsY7 + AvuxU6ne6sc/8/2kcCH4hGh5ejiQRukzMyZC7UtZ5ktp+jTettWSm+gnx/zVvF2GhjFVG0jdfj88/MN4 + 3TqEDSvGszfdH0tPLQGhAdTuM67BbkIYwycFcW2HP5WFfnS2D6aHWzCl6yZSlDSZ1BV+7FjjI+c25m4L + Dk2Se5bv8+2DWtdkmzxoRuH6Q1Fv2GLZLp4VWZK9dJh6bQZ7TWLClHGMnTye3q5T+JPLVEoSBtNY2JeG + /H70cfXlj07+fBrjysIoD37jEIj9GB9uZWlIihvBr+wD+XuKnZq3UjeQN6yDWRztrrYdvSbymiaET+a5 + MV07hk4Dp7Fslhvfbe6njivtQaMnUbJqCPdyrHD2nsC7dkEkzHUnLnIUTt4+am4h1/t87e2i0ALSpHDy + GTGK7I+goGe7aNrcizVxTlh7+JgwK9Sdk8nWPM7r1eL75RoNnhO8+a1DAB8M9WOqnyfVun6qz6o5zmr7 + ckZf1XfXSjuGeI2ndKWtsb3Cju7OU/jQaSpzwtwZLfMYljjypDm/EtvZNpCIEA/uZffhXGp/PCd602Vw + AD1cppAw24V7WX1a1tJu9H2Rz9P+ZmKdxpyNSkJzyZ/bhbLx+hwLE5Q+sdnUT2k35Pai1tCb+5LvNimb + /j6H0n7WHNOY35OHuRY8lb9Ku0n+1sm8Stwj6afkacwzjikoscqY0q/MI2Sf8l/pe2CwkAJ/79tuNkuN + 0vsbP4AVkwpGUuhgLAqvaB3l+23jAIRe84EqmmLKdRWbbG9wwAe+CIejrzDhiFYK54HYYHNUZFm/1yyb + 0US6lbvIc7rF0Ug4u1oiH/2vgDOJcDAIYRhcLHQ27zfLZWoiTWMtDI51HJJl+VIBXCvp2FRvgs8nI7Id + ytoU7bmJ9ZbdROEICwrkZ8CpJTLBbuSnOvJN1DG4VwFVufKKzoBs+UrY4fyHF67nj5kodX1TpA/4hPQB + spIM7EAo+5Xv90w7y5bq+YKZmf0HQhFtHlPKsgkAAAAASUVORK5CYII= + + \ No newline at end of file diff --git a/GUI.NET/GUI.NET.csproj b/GUI.NET/GUI.NET.csproj index 45b48d09a..eb0d28f52 100644 --- a/GUI.NET/GUI.NET.csproj +++ b/GUI.NET/GUI.NET.csproj @@ -214,7 +214,7 @@ - + @@ -599,7 +599,7 @@ frmServerConfig.cs - + @@ -873,7 +873,7 @@ Always Designer - + Always Designer @@ -882,6 +882,7 @@ Always + diff --git a/GUI.NET/Properties/AssemblyInfo.cs b/GUI.NET/Properties/AssemblyInfo.cs index a6a34b994..67085b604 100644 --- a/GUI.NET/Properties/AssemblyInfo.cs +++ b/GUI.NET/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // 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("0.6.0.0")] -[assembly: AssemblyFileVersion("0.6.0.0")] +[assembly: AssemblyVersion("0.6.1.0")] +[assembly: AssemblyFileVersion("0.6.1.0")] diff --git a/GUI.NET/Properties/Resources.Designer.cs b/GUI.NET/Properties/Resources.Designer.cs index 2b0f3499b..68d45474c 100644 --- a/GUI.NET/Properties/Resources.Designer.cs +++ b/GUI.NET/Properties/Resources.Designer.cs @@ -170,6 +170,16 @@ internal static System.Drawing.Bitmap DipSwitches { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Donate { + get { + object obj = ResourceManager.GetObject("Donate", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/GUI.NET/Properties/Resources.resx b/GUI.NET/Properties/Resources.resx index 0f26b54d4..2779013c0 100644 --- a/GUI.NET/Properties/Resources.resx +++ b/GUI.NET/Properties/Resources.resx @@ -241,4 +241,7 @@ ..\Resources\Dice.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Donate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/GUI.NET/Resources/Donate.png b/GUI.NET/Resources/Donate.png new file mode 100644 index 000000000..0765db912 Binary files /dev/null and b/GUI.NET/Resources/Donate.png differ