From 6958c950223e1b1db9648f92a40fe7dd925ca466 Mon Sep 17 00:00:00 2001 From: lempamo Date: Thu, 6 Jul 2017 00:28:38 -0400 Subject: New Installer for Win95 --- TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs (limited to 'TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs') diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs b/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs new file mode 100644 index 0000000..0ae74df --- /dev/null +++ b/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace TimeHACK.OS.Win95.Win95Apps +{ + public partial class Win95Installer : UserControl + { + public Win95Installer() + { + InitializeComponent(); + label1.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0))); + cancelbutton1.Paint += (sender, args) => Engine.Paintbrush.PaintClassicBorders(sender, args, 2); + nextbutton1.Paint += (sender, args) => Engine.Paintbrush.PaintClassicBorders(sender, args, 2); + backbutton1.Paint += (sender, args) => Engine.Paintbrush.PaintClassicBorders(sender, args, 2); + } + + private void Win95Installer_Load(object sender, EventArgs e) + { + label1.Text.Replace("GenericName", installname.Text); + } + } +} -- cgit v1.2.3 From e4ee95004a1655a61355d64818d633bcca00fd52 Mon Sep 17 00:00:00 2001 From: lempamo Date: Thu, 6 Jul 2017 10:41:05 -0400 Subject: Changed Installer and added EULA --- .../OS/Win95/Win95Apps/Win95Installer.Designer.cs | 61 +++++++++++++++++++++- TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs | 24 +++++++++ .../OS/Win95/Win95Apps/Win95Installer.resx | 17 ++++++ .../Win95Apps/WinClassicFTPClient.Designer.cs | 10 ++-- .../OS/Win95/Win95Apps/WinClassicFTPClient.cs | 7 ++- .../OS/Win95/Win95Apps/WinClassicFTPClient.resx | 2 +- TimeHACK.Main/OS/Win95/Win95Apps/WinClassicIE4.cs | 9 ++++ .../OS/Win95/Win95Apps/WinClassicIE4.resx | 1 + .../OS/Win95/Win95Apps/WinClassicThemePanel.cs | 2 +- TimeHACK.Main/Resources/IE4/padams.html | 1 + 10 files changed, 124 insertions(+), 10 deletions(-) (limited to 'TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs') diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.Designer.cs b/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.Designer.cs index 0bfab81..d19c533 100644 --- a/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.Designer.cs +++ b/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.Designer.cs @@ -36,8 +36,13 @@ this.cancelbutton1 = new System.Windows.Forms.Button(); this.nextbutton1 = new System.Windows.Forms.Button(); this.backbutton1 = new System.Windows.Forms.Button(); + this.label2 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.panel1 = new System.Windows.Forms.Panel(); ((System.ComponentModel.ISupportInitialize)(this.installPic)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.panel1.SuspendLayout(); this.SuspendLayout(); // // installPic @@ -97,23 +102,69 @@ this.nextbutton1.TabIndex = 5; this.nextbutton1.Text = "Next"; this.nextbutton1.UseVisualStyleBackColor = true; + this.nextbutton1.Click += new System.EventHandler(this.nextbutton1_Click); // // backbutton1 // this.backbutton1.Enabled = false; this.backbutton1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.backbutton1.Location = new System.Drawing.Point(241, 301); + this.backbutton1.Location = new System.Drawing.Point(235, 301); this.backbutton1.Name = "backbutton1"; this.backbutton1.Size = new System.Drawing.Size(75, 23); this.backbutton1.TabIndex = 6; this.backbutton1.Text = "Back"; this.backbutton1.UseVisualStyleBackColor = true; // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(-3, 0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(263, 13); + this.label2.TabIndex = 7; + this.label2.Text = "Please read and agree to the EULA before continuing."; + // + // textBox1 + // + this.textBox1.AcceptsReturn = true; + this.textBox1.BackColor = System.Drawing.Color.White; + this.textBox1.Location = new System.Drawing.Point(0, 28); + this.textBox1.Multiline = true; + this.textBox1.Name = "textBox1"; + this.textBox1.ReadOnly = true; + this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.textBox1.Size = new System.Drawing.Size(318, 209); + this.textBox1.TabIndex = 8; + this.textBox1.Text = resources.GetString("textBox1.Text"); + // + // checkBox1 + // + this.checkBox1.AutoSize = true; + this.checkBox1.Location = new System.Drawing.Point(0, 243); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Size = new System.Drawing.Size(215, 17); + this.checkBox1.TabIndex = 9; + this.checkBox1.Text = "I hereby agree to the terms in the EULA."; + this.checkBox1.UseVisualStyleBackColor = true; + this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + // + // panel1 + // + this.panel1.Controls.Add(this.checkBox1); + this.panel1.Controls.Add(this.label2); + this.panel1.Controls.Add(this.textBox1); + this.panel1.Location = new System.Drawing.Point(150, 16); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(318, 260); + this.panel1.TabIndex = 10; + this.panel1.Visible = false; + // // Win95Installer // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.Silver; + this.Controls.Add(this.panel1); this.Controls.Add(this.backbutton1); this.Controls.Add(this.nextbutton1); this.Controls.Add(this.cancelbutton1); @@ -122,10 +173,12 @@ this.Controls.Add(this.pictureBox1); this.Controls.Add(this.installPic); this.Name = "Win95Installer"; - this.Size = new System.Drawing.Size(488, 340); + this.Size = new System.Drawing.Size(483, 340); this.Load += new System.EventHandler(this.Win95Installer_Load); ((System.ComponentModel.ISupportInitialize)(this.installPic)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -140,5 +193,9 @@ private System.Windows.Forms.Button cancelbutton1; private System.Windows.Forms.Button nextbutton1; private System.Windows.Forms.Button backbutton1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.CheckBox checkBox1; + private System.Windows.Forms.Panel panel1; } } diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs b/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs index 0ae74df..8377d54 100644 --- a/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs +++ b/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs @@ -12,10 +12,14 @@ namespace TimeHACK.OS.Win95.Win95Apps { public partial class Win95Installer : UserControl { + public int installStage = 0; + public Win95Installer() { InitializeComponent(); label1.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0))); + label2.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0))); + checkBox1.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0))); cancelbutton1.Paint += (sender, args) => Engine.Paintbrush.PaintClassicBorders(sender, args, 2); nextbutton1.Paint += (sender, args) => Engine.Paintbrush.PaintClassicBorders(sender, args, 2); backbutton1.Paint += (sender, args) => Engine.Paintbrush.PaintClassicBorders(sender, args, 2); @@ -25,5 +29,25 @@ namespace TimeHACK.OS.Win95.Win95Apps { label1.Text.Replace("GenericName", installname.Text); } + + private void nextbutton1_Click(object sender, EventArgs e) + { + switch (installStage) + { + case 0: + label1.Hide(); + panel1.Show(); + backbutton1.Enabled = true; + nextbutton1.Enabled = false; + installStage = 1; + break; + } + } + + private void checkBox1_CheckedChanged(object sender, EventArgs e) + { + if (checkBox1.Checked) nextbutton1.Enabled = true; + else nextbutton1.Enabled = false; + } } } diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.resx b/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.resx index 3c5d753..535ee98 100644 --- a/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.resx +++ b/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.resx @@ -129,4 +129,21 @@ WARNING: This program is protected by copyright law and international treaties. Unauthorized reproduction or distribution of this program, or any portion of it, may result in severe civil and criminal penalties, and will be prosecuted to the maximum extent possible under law. + + By installing this software you agree that you will not try to reverse engineer it in anyway or claim it as your own work. + +You agree that you will not try to spread this software or any of its components to other companies without rightful permission from the owner. + +You agree that if you bought this program, you own it and that nobody else is allowed to use it on your computer or on their computer. + +You understand that trying to upload this software online or any other forms of spreading this software will result in the FBI coming into your home and killing you with knives. + +You agree that taking a picture of this software and sending it to someone will cause you to get 15 years in jail for software exposing. + +You agree that if you tell someone else about this software's features that you will wake up dead in the morning because the owner would have killed you in your sleep. + +You know that using this software will alert the maker of it and then cause him to monitor every moment of your life after you install this software. + +You agree to all of the above and will not commit any of the crimes otherwise you will go to Hell. + \ No newline at end of file diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicFTPClient.Designer.cs b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicFTPClient.Designer.cs index 485b982..2e83e62 100644 --- a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicFTPClient.Designer.cs +++ b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicFTPClient.Designer.cs @@ -30,11 +30,11 @@ { this.components = new System.ComponentModel.Container(); System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem(new string[] { - "/software/"}, -1, System.Drawing.Color.Black, System.Drawing.Color.Empty, null); + "/software/"}, 0, System.Drawing.Color.Black, System.Drawing.Color.Empty, null); System.Windows.Forms.ListViewItem listViewItem2 = new System.Windows.Forms.ListViewItem(new string[] { - "index.html"}, -1, System.Drawing.Color.Black, System.Drawing.Color.Empty, null); + "index.html"}, 1, System.Drawing.Color.Black, System.Drawing.Color.Empty, null); System.Windows.Forms.ListViewItem listViewItem3 = new System.Windows.Forms.ListViewItem(new string[] { - "???.html"}, -1, System.Drawing.Color.Black, System.Drawing.Color.Empty, null); + "???.html"}, 1, System.Drawing.Color.Black, System.Drawing.Color.Empty, null); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WinClassicFTPClient)); this.topBar = new System.Windows.Forms.Panel(); this.button1 = new System.Windows.Forms.Button(); @@ -180,10 +180,10 @@ this.panel1.Size = new System.Drawing.Size(762, 30); this.panel1.TabIndex = 9; // - // cancelButton + // button2 // this.button2.Location = new System.Drawing.Point(3, 2); - this.button2.Name = "cancelButton"; + this.button2.Name = "button2"; this.button2.Size = new System.Drawing.Size(75, 23); this.button2.TabIndex = 0; this.button2.Text = "cancelButton"; diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicFTPClient.cs b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicFTPClient.cs index ab7e61f..b1caef9 100644 --- a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicFTPClient.cs +++ b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicFTPClient.cs @@ -33,6 +33,7 @@ namespace TimeHACK.OS.Win95.Win95Apps infoLabel.Text = "[200] OK"; welcomeLabel.Hide(); infoLabel.Show(); + ftpFiles.Show(); } else { @@ -57,9 +58,13 @@ namespace TimeHACK.OS.Win95.Win95Apps { Point objDrawingPoint = ftpFiles.PointToClient(Cursor.Position); ListViewItem objListViewItem = new ListViewItem(); - if (objListViewItem.Text == "/software/") + if (objDrawingPoint != null) { + objListViewItem = ftpFiles.GetItemAt(objDrawingPoint.X, objDrawingPoint.Y); + if (objListViewItem.Text == "/software/") + { + } } } } diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicFTPClient.resx b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicFTPClient.resx index 7b49ca1..28053de 100644 --- a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicFTPClient.resx +++ b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicFTPClient.resx @@ -128,7 +128,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAO - DwAAAk1TRnQBSQFMAgEBAgEAAQgBAAEIAQABIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + DwAAAk1TRnQBSQFMAgEBAgEAARABAAEQAQABIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABgAMAASADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicIE4.cs b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicIE4.cs index d70b520..81b8504 100644 --- a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicIE4.cs +++ b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicIE4.cs @@ -206,6 +206,7 @@ namespace TimeHACK.OS.Win95.Win95Apps break; case "12PADAMS": webBrowser1.Document.GetElementById("wc_b").Click += new HtmlElementEventHandler(WCDownloadButton_Click); + webBrowser1.Document.GetElementById("ftp_b").Click += new HtmlElementEventHandler(FTPDownloadButton_Click); if (!TitleScreen.frm95.hiddenpadamsFound) webBrowser1.Document.GetElementById("distort").Style += "visibility:hidden;"; break; case "GOOGLE": @@ -221,6 +222,14 @@ namespace TimeHACK.OS.Win95.Win95Apps } } + private void FTPDownloadButton_Click(object sender, HtmlElementEventArgs e) + { + WinClassicDownloader opendownload = new WinClassicDownloader(); + WindowManager wm = new WindowManager(); + wm.StartWin95(opendownload, "Downloader", null, false, true); + opendownload.appName.Text = "Downloading: FTP Client"; + } + //TODO: Add more websites //TODO: Relabel Buttons And Things } diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicIE4.resx b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicIE4.resx index 02cc277..f508cca 100644 --- a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicIE4.resx +++ b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicIE4.resx @@ -301,6 +301,7 @@ Where do you want to go today?</p> <h1>Games/Software</h1> <p class="app" id="gtn">Guess the Number V1 <button id="gtn_b">Download</button></p> <p class="app" id="wc">Web Chat 1998 <button id="wc_b">Download</button></p> + <p class="app" id="ftp">FTP Client <button id="ftp_b">Download</button></p> <p class="app" id="distort">Time Distorter 0.1 <button id="distort_b">Download</button></p> </div></td> <td><div class="customize"> diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicThemePanel.cs b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicThemePanel.cs index 98ad7bc..4e731fe 100644 --- a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicThemePanel.cs +++ b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicThemePanel.cs @@ -103,7 +103,7 @@ namespace TimeHACK.OS.Win95.Win95Apps SaveSystem.CurrentSave.ThemeName = "insidepc"; SaveSystem.currentTheme = new InsideComputerTheme(); TitleScreen.frm95.BackgroundImage = Properties.Resources.ICTheme_BG; - TitleScreen.frm95.desktopicons.BackgroundImage = new Bitmap(Properties.Resources.DCTheme_BG, TitleScreen.frm95.desktopicons.Width, TitleScreen.frm95.desktopicons.Height); + TitleScreen.frm95.desktopicons.BackgroundImage = new Bitmap(Properties.Resources.ICTheme_BG, TitleScreen.frm95.desktopicons.Width, TitleScreen.frm95.desktopicons.Height); break; } ParentForm.Close(); diff --git a/TimeHACK.Main/Resources/IE4/padams.html b/TimeHACK.Main/Resources/IE4/padams.html index af12151..cc16191 100644 --- a/TimeHACK.Main/Resources/IE4/padams.html +++ b/TimeHACK.Main/Resources/IE4/padams.html @@ -50,6 +50,7 @@

Games/Software

Guess the Number V1

Web Chat 1998

+

FTP Client

Time Distorter 0.1

-- cgit v1.2.3 From 44a5fb97c89311364b013f5ed610d59de0b0ccf0 Mon Sep 17 00:00:00 2001 From: lempamo Date: Thu, 6 Jul 2017 12:34:00 -0400 Subject: Installer is nearly done --- .../OS/Win95/Win95Apps/Win95Installer.Designer.cs | 126 ++++++++++++++++++++- TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs | 65 ++++++++++- .../Win95Apps/WinClassicFTPClient.Designer.cs | 5 - 3 files changed, 189 insertions(+), 7 deletions(-) (limited to 'TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs') diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.Designer.cs b/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.Designer.cs index d19c533..29369e2 100644 --- a/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.Designer.cs +++ b/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.Designer.cs @@ -40,9 +40,21 @@ this.textBox1 = new System.Windows.Forms.TextBox(); this.checkBox1 = new System.Windows.Forms.CheckBox(); this.panel1 = new System.Windows.Forms.Panel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.panel3 = new System.Windows.Forms.Panel(); + this.label6 = new System.Windows.Forms.Label(); + this.panel4 = new System.Windows.Forms.Panel(); + this.label7 = new System.Windows.Forms.Label(); + this.progressBar1 = new TimeHACK.UI.ProgressBar(); ((System.ComponentModel.ISupportInitialize)(this.installPic)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.panel3.SuspendLayout(); + this.panel4.SuspendLayout(); this.SuspendLayout(); // // installPic @@ -92,6 +104,7 @@ this.cancelbutton1.TabIndex = 4; this.cancelbutton1.Text = "Cancel"; this.cancelbutton1.UseVisualStyleBackColor = true; + this.cancelbutton1.Click += new System.EventHandler(this.cancelbutton1_Click); // // nextbutton1 // @@ -108,12 +121,13 @@ // this.backbutton1.Enabled = false; this.backbutton1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.backbutton1.Location = new System.Drawing.Point(235, 301); + this.backbutton1.Location = new System.Drawing.Point(237, 301); this.backbutton1.Name = "backbutton1"; this.backbutton1.Size = new System.Drawing.Size(75, 23); this.backbutton1.TabIndex = 6; this.backbutton1.Text = "Back"; this.backbutton1.UseVisualStyleBackColor = true; + this.backbutton1.Click += new System.EventHandler(this.backbutton1_Click); // // label2 // @@ -159,11 +173,106 @@ this.panel1.TabIndex = 10; this.panel1.Visible = false; // + // panel2 + // + this.panel2.Controls.Add(this.label5); + this.panel2.Controls.Add(this.label4); + this.panel2.Controls.Add(this.label3); + this.panel2.Location = new System.Drawing.Point(150, 16); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(318, 260); + this.panel2.TabIndex = 11; + this.panel2.Visible = false; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(-3, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(268, 13); + this.label3.TabIndex = 0; + this.label3.Text = "Setup will install GenericName in the following directory:"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(23, 67); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(214, 13); + this.label4.TabIndex = 1; + this.label4.Text = "C:\\Program Files\\12padams\\GenericName\\"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(-3, 28); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(178, 13); + this.label5.TabIndex = 2; + this.label5.Text = "To install in this directory, click Next."; + // + // panel3 + // + this.panel3.Controls.Add(this.label6); + this.panel3.Controls.Add(this.progressBar1); + this.panel3.Location = new System.Drawing.Point(150, 16); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(318, 260); + this.panel3.TabIndex = 12; + this.panel3.Visible = false; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(4, 12); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(57, 13); + this.label6.TabIndex = 1; + this.label6.Text = "Installing..."; + // + // panel4 + // + this.panel4.Controls.Add(this.label7); + this.panel4.Location = new System.Drawing.Point(150, 16); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(318, 260); + this.panel4.TabIndex = 13; + this.panel4.Visible = false; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(7, 12); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(205, 13); + this.label7.TabIndex = 0; + this.label7.Text = "GenericName Setup has been completed."; + // + // progressBar1 + // + this.progressBar1.BlockSpacing = 5; + this.progressBar1.BlockWidth = 20; + this.progressBar1.Location = new System.Drawing.Point(3, 115); + this.progressBar1.MarqueeWidth = 125; + this.progressBar1.Maximum = 100D; + this.progressBar1.Minimum = 0D; + this.progressBar1.Name = "progressBar1"; + this.progressBar1.ProgressColor = System.Drawing.Color.Navy; + this.progressBar1.ShowText = false; + this.progressBar1.Size = new System.Drawing.Size(312, 28); + this.progressBar1.Style = System.Windows.Forms.ProgressBarStyle.Blocks; + this.progressBar1.TabIndex = 0; + this.progressBar1.Text = "progressBar1"; + this.progressBar1.Value = 0D; + // // Win95Installer // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.Silver; + this.Controls.Add(this.panel4); + this.Controls.Add(this.panel3); + this.Controls.Add(this.panel2); this.Controls.Add(this.panel1); this.Controls.Add(this.backbutton1); this.Controls.Add(this.nextbutton1); @@ -179,6 +288,12 @@ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.panel1.ResumeLayout(false); this.panel1.PerformLayout(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.panel3.ResumeLayout(false); + this.panel3.PerformLayout(); + this.panel4.ResumeLayout(false); + this.panel4.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -197,5 +312,14 @@ private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.CheckBox checkBox1; private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Panel panel3; + private UI.ProgressBar progressBar1; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.Label label7; } } diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs b/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs index 8377d54..e3924ee 100644 --- a/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs +++ b/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs @@ -13,12 +13,16 @@ namespace TimeHACK.OS.Win95.Win95Apps public partial class Win95Installer : UserControl { public int installStage = 0; + private Timer installbar = new Timer(); public Win95Installer() { InitializeComponent(); label1.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0))); label2.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0))); + label3.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0))); + label4.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0))); + label5.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0))); checkBox1.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0))); cancelbutton1.Paint += (sender, args) => Engine.Paintbrush.PaintClassicBorders(sender, args, 2); nextbutton1.Paint += (sender, args) => Engine.Paintbrush.PaintClassicBorders(sender, args, 2); @@ -28,6 +32,27 @@ namespace TimeHACK.OS.Win95.Win95Apps private void Win95Installer_Load(object sender, EventArgs e) { label1.Text.Replace("GenericName", installname.Text); + label3.Text.Replace("GenericName", installname.Text); + label4.Text.Replace("GenericName", installname.Text); + installbar.Tick += Installbar_Tick; + } + + private void Installbar_Tick(object sender, EventArgs e) + { + if (progressBar1.Value < 100) + { + progressBar1.Value = progressBar1.Value + 1; + } + else + { + panel3.Hide(); + panel4.Show(); + backbutton1.Hide(); + nextbutton1.Hide(); + cancelbutton1.Enabled = true; + cancelbutton1.Text = "Finish"; + installbar.Stop(); + } } private void nextbutton1_Click(object sender, EventArgs e) @@ -38,9 +63,22 @@ namespace TimeHACK.OS.Win95.Win95Apps label1.Hide(); panel1.Show(); backbutton1.Enabled = true; - nextbutton1.Enabled = false; + if (!checkBox1.Checked) nextbutton1.Enabled = false; installStage = 1; break; + case 1: + panel1.Hide(); + panel2.Show(); + installStage = 2; + break; + case 2: + panel2.Hide(); + panel3.Show(); + backbutton1.Enabled = false; + nextbutton1.Enabled = false; + cancelbutton1.Enabled = false; + installbar.Start(); + break; } } @@ -49,5 +87,30 @@ namespace TimeHACK.OS.Win95.Win95Apps if (checkBox1.Checked) nextbutton1.Enabled = true; else nextbutton1.Enabled = false; } + + private void backbutton1_Click(object sender, EventArgs e) + { + switch (installStage) + { + case 1: + panel1.Hide(); + label1.Show(); + backbutton1.Enabled = false; + nextbutton1.Enabled = true; + installStage = 0; + break; + case 2: + panel2.Hide(); + panel1.Show(); + if (!checkBox1.Checked) nextbutton1.Enabled = false; + installStage = 1; + break; + } + } + + private void cancelbutton1_Click(object sender, EventArgs e) + { + ParentForm.Close(); + } } } diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicFTPClient.Designer.cs b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicFTPClient.Designer.cs index 2e83e62..e7280ea 100644 --- a/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicFTPClient.Designer.cs +++ b/TimeHACK.Main/OS/Win95/Win95Apps/WinClassicFTPClient.Designer.cs @@ -209,11 +209,6 @@ this.ftpFiles.Cursor = System.Windows.Forms.Cursors.Default; this.ftpFiles.Dock = System.Windows.Forms.DockStyle.Fill; this.ftpFiles.ForeColor = System.Drawing.Color.White; - listViewItem1.StateImageIndex = 0; - listViewItem2.Checked = true; - listViewItem2.StateImageIndex = 1; - listViewItem3.Checked = true; - listViewItem3.StateImageIndex = 1; this.ftpFiles.Items.AddRange(new System.Windows.Forms.ListViewItem[] { listViewItem1, listViewItem2, -- cgit v1.2.3 From 77f783fe2b6999720c900aaf32103bec906f9da9 Mon Sep 17 00:00:00 2001 From: lempamo Date: Thu, 6 Jul 2017 13:17:41 -0400 Subject: You can install WebChat again --- TimeHACK.Main/OS/Win95/Win95.cs | 6 +++--- TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs | 11 ++++++++++- TimeHACK.Main/OS/Win98/Win98.cs | 18 +++++++++--------- 3 files changed, 22 insertions(+), 13 deletions(-) (limited to 'TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs') diff --git a/TimeHACK.Main/OS/Win95/Win95.cs b/TimeHACK.Main/OS/Win95/Win95.cs index c326c64..c5e7799 100644 --- a/TimeHACK.Main/OS/Win95/Win95.cs +++ b/TimeHACK.Main/OS/Win95/Win95.cs @@ -238,7 +238,7 @@ namespace TimeHACK.OS.Win95 private void installerTestToolStripMenuItem_Click(object sender, EventArgs e) { - Win95Installer openinstaller = new Win95Installer(); + Win95Installer openinstaller = new Win95Installer("Testing"); WinClassic app = wm.StartWin95(openinstaller, "Installer", null, false, true); AddTaskBarItem(app, app.Tag.ToString(), "Installer", null); @@ -278,8 +278,8 @@ namespace TimeHACK.OS.Win95 } else if (objListViewItem.Text == "Web Chat Setup") { - Win95Installer inst = new Win95Installer(); - inst.installname.Text = "Web Chat 1998"; + Win95Installer inst = new Win95Installer("Web Chat 1998"); + inst.InstallCompleted += (sendr, args) => WebChatToolStripMenuItem.Visible = true; WinClassic app = wm.StartWin95(inst, "Web Chat Setup", null, true, true); AddTaskBarItem(app, app.Tag.ToString(), "Web Chat Setup", null); app.BringToFront(); diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs b/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs index e3924ee..8178a30 100644 --- a/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs +++ b/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs @@ -13,9 +13,17 @@ namespace TimeHACK.OS.Win95.Win95Apps public partial class Win95Installer : UserControl { public int installStage = 0; + private string prog; private Timer installbar = new Timer(); - public Win95Installer() + public event EventHandler InstallCompleted; + + protected void OnInstallCompleted(EventArgs e) + { + if (InstallCompleted != null) InstallCompleted(this, e); + } + + public Win95Installer(string progName) { InitializeComponent(); label1.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0))); @@ -45,6 +53,7 @@ namespace TimeHACK.OS.Win95.Win95Apps } else { + OnInstallCompleted(EventArgs.Empty); panel3.Hide(); panel4.Show(); backbutton1.Hide(); diff --git a/TimeHACK.Main/OS/Win98/Win98.cs b/TimeHACK.Main/OS/Win98/Win98.cs index 198108d..175719a 100644 --- a/TimeHACK.Main/OS/Win98/Win98.cs +++ b/TimeHACK.Main/OS/Win98/Win98.cs @@ -218,12 +218,12 @@ namespace TimeHACK.OS.Win98 private void installerTestToolStripMenuItem_Click(object sender, EventArgs e) { - Win95Installer openinstaller = new Win95Installer(); - WinClassic app = wm.StartWin95(openinstaller, "Installer", null, false, true); + //Win95Installer openinstaller = new Win95Installer(); + //WinClassic app = wm.StartWin95(openinstaller, "Installer", null, false, true); - AddTaskBarItem(app, app.Tag.ToString(), "Installer", null); + //AddTaskBarItem(app, app.Tag.ToString(), "Installer", null); - app.BringToFront(); + //app.BringToFront(); startmenu.Hide(); } @@ -258,11 +258,11 @@ namespace TimeHACK.OS.Win98 } else if (objListViewItem.Text == "Web Chat Setup") { - Win95Installer inst = new Win95Installer(); - inst.installname.Text = "Web Chat 1998"; - WinClassic app = wm.StartWin95(inst, "Web Chat Setup", null, true, true); - AddTaskBarItem(app, app.Tag.ToString(), "Web Chat Setup", null); - app.BringToFront(); + //Win95Installer inst = new Win95Installer(); + //inst.installname.Text = "Web Chat 1998"; + //WinClassic app = wm.StartWin95(inst, "Web Chat Setup", null, true, true); + //AddTaskBarItem(app, app.Tag.ToString(), "Web Chat Setup", null); + //app.BringToFront(); startmenu.Hide(); } } -- cgit v1.2.3 From 88711b440b3a55d09118d2c42b1bb8930936eb90 Mon Sep 17 00:00:00 2001 From: lempamo Date: Thu, 6 Jul 2017 13:49:20 -0400 Subject: And you can install and open FTP Client --- TimeHACK.Main/GlobalPrograms/WinClassicDownloader.cs | 4 ++++ TimeHACK.Main/OS/Win95/Win95.Designer.cs | 16 +++++++++++++++- TimeHACK.Main/OS/Win95/Win95.cs | 17 +++++++++++++++++ TimeHACK.Main/OS/Win95/Win95.resx | 2 +- TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs | 10 +++++++--- 5 files changed, 44 insertions(+), 5 deletions(-) (limited to 'TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs') diff --git a/TimeHACK.Main/GlobalPrograms/WinClassicDownloader.cs b/TimeHACK.Main/GlobalPrograms/WinClassicDownloader.cs index 418444a..c5d00a2 100644 --- a/TimeHACK.Main/GlobalPrograms/WinClassicDownloader.cs +++ b/TimeHACK.Main/GlobalPrograms/WinClassicDownloader.cs @@ -67,6 +67,10 @@ namespace TimeHACK.OS.Win95.Win95Apps { Windows95.desktopicons.Items.Add("Time Distorter Setup", imageIndex: 13); } + if (appName.Text == "Downloading: FTP Client") + { + TitleScreen.frm95.desktopicons.Items.Add("FTP Client Setup", imageIndex: 11); + } ((Form)this.TopLevelControl).Close(); dlTimer.Stop(); } diff --git a/TimeHACK.Main/OS/Win95/Win95.Designer.cs b/TimeHACK.Main/OS/Win95/Win95.Designer.cs index 998ece1..46485ee 100644 --- a/TimeHACK.Main/OS/Win95/Win95.Designer.cs +++ b/TimeHACK.Main/OS/Win95/Win95.Designer.cs @@ -130,6 +130,7 @@ namespace TimeHACK.OS.Win95 this.BitmapImageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.MicrosoftDataLinkToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.PropertiesToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.FTPClientToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.panel1.SuspendLayout(); this.taskbar.SuspendLayout(); this.clockPanel.SuspendLayout(); @@ -265,7 +266,8 @@ namespace TimeHACK.OS.Win95 this.ErrorBlasterToolStripMenuItem, this.SkindowsToolStripMenuItem, this.WebChatToolStripMenuItem, - this.TimeDistorterToolStripMenuItem}); + this.TimeDistorterToolStripMenuItem, + this.FTPClientToolStripMenuItem}); this.ProgramsToolStripMenuItem.Image = global::TimeHACK.Properties.Resources.WinClassicPrograms; this.ProgramsToolStripMenuItem.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; this.ProgramsToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; @@ -725,6 +727,17 @@ namespace TimeHACK.OS.Win95 this.TimeDistorterToolStripMenuItem.Text = "Time Distorter"; this.TimeDistorterToolStripMenuItem.Click += new System.EventHandler(this.TimeDistorterToolStripMenuItem_Click); // + // FTPClientToolStripMenuItem + // + this.FTPClientToolStripMenuItem.BackColor = System.Drawing.Color.Silver; + this.FTPClientToolStripMenuItem.BackgroundImage = global::TimeHACK.Properties.Resources.sliversilver; + this.FTPClientToolStripMenuItem.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.FTPClientToolStripMenuItem.Name = "FTPClientToolStripMenuItem"; + this.FTPClientToolStripMenuItem.Size = new System.Drawing.Size(181, 28); + this.FTPClientToolStripMenuItem.Text = "FTP Client"; + this.FTPClientToolStripMenuItem.Visible = false; + this.FTPClientToolStripMenuItem.Click += new System.EventHandler(this.FTPClientToolStripMenuItem_Click); + // // DocumentsToolStripMenuItem // this.DocumentsToolStripMenuItem.BackColor = System.Drawing.Color.Silver; @@ -1267,5 +1280,6 @@ namespace TimeHACK.OS.Win95 private System.Windows.Forms.ToolStripMenuItem installerTestToolStripMenuItem; private System.Windows.Forms.Panel taskbarItems; private System.Windows.Forms.ToolStripMenuItem storyTest1ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem FTPClientToolStripMenuItem; } } \ No newline at end of file diff --git a/TimeHACK.Main/OS/Win95/Win95.cs b/TimeHACK.Main/OS/Win95/Win95.cs index c5e7799..32d619f 100644 --- a/TimeHACK.Main/OS/Win95/Win95.cs +++ b/TimeHACK.Main/OS/Win95/Win95.cs @@ -285,6 +285,15 @@ namespace TimeHACK.OS.Win95 app.BringToFront(); startmenu.Hide(); } + else if (objListViewItem.Text == "FTP Client Setup") + { + Win95Installer inst = new Win95Installer("FTP Client"); + inst.InstallCompleted += (sendr, args) => WebChatToolStripMenuItem.Visible = true; + WinClassic app = wm.StartWin95(inst, "FTP Client Setup", null, true, true); + AddTaskBarItem(app, app.Tag.ToString(), "FTP Client Setup", null); + app.BringToFront(); + startmenu.Hide(); + } } } } @@ -438,6 +447,14 @@ namespace TimeHACK.OS.Win95 app.BringToFront(); startmenu.Hide(); } + private void FTPClientToolStripMenuItem_Click(object sender, EventArgs e) + { + WinClassic app = wm.StartWin95(new WinClassicFTPClient(), "FTP Client", null, true, true); + + AddTaskBarItem(app, app.Tag.ToString(), "FTP Client", null); + app.BringToFront(); + startmenu.Hide(); + } } public class MyRenderer : ToolStripProfessionalRenderer { diff --git a/TimeHACK.Main/OS/Win95/Win95.resx b/TimeHACK.Main/OS/Win95/Win95.resx index e4cbaa8..8285d12 100644 --- a/TimeHACK.Main/OS/Win95/Win95.resx +++ b/TimeHACK.Main/OS/Win95/Win95.resx @@ -389,7 +389,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADq - ggAAAk1TRnQBSQFMAgEBDAEAAYABAQGAAQEBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA + ggAAAk1TRnQBSQFMAgEBDAEAAYgBAQGIAQEBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA AwABgAMAAQEBAAEgBwABAf8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AXAAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/x8AAf8DAAH/ diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs b/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs index 8178a30..c6e125f 100644 --- a/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs +++ b/TimeHACK.Main/OS/Win95/Win95Apps/Win95Installer.cs @@ -31,17 +31,21 @@ namespace TimeHACK.OS.Win95.Win95Apps label3.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0))); label4.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0))); label5.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0))); + label6.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0))); + label7.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0))); checkBox1.Font = new Font(TitleScreen.pfc.Families[0], 16F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0))); cancelbutton1.Paint += (sender, args) => Engine.Paintbrush.PaintClassicBorders(sender, args, 2); nextbutton1.Paint += (sender, args) => Engine.Paintbrush.PaintClassicBorders(sender, args, 2); backbutton1.Paint += (sender, args) => Engine.Paintbrush.PaintClassicBorders(sender, args, 2); + prog = progName; } private void Win95Installer_Load(object sender, EventArgs e) { - label1.Text.Replace("GenericName", installname.Text); - label3.Text.Replace("GenericName", installname.Text); - label4.Text.Replace("GenericName", installname.Text); + label1.Text = label1.Text.Replace("GenericName", prog); + label3.Text = label3.Text.Replace("GenericName", prog); + label4.Text = label4.Text.Replace("GenericName", prog); + label7.Text = label7.Text.Replace("GenericName", prog); installbar.Tick += Installbar_Tick; } -- cgit v1.2.3