←︎ asciipumper :: 85442fe


1
commit 85442fe428b867d19eeb405b306bee1d3198ccee (HEAD -> master)
2
Author: acidvegas <acid.vegas@acid.vegas>
3
Date:   Mon Jun 24 02:33:30 2019 -0400
4
5
    Initial commit
6
---
7
 README.md                               |   13 +
8
 asciipumper/AsciiPumper.exe             |  Bin 0 -> 141824 bytes
9
 asciipumper/AsciiPumper.exe.config      |  110 +++
10
 asciipumper/AsciiPumperSetup.msi        |  Bin 0 -> 327680 bytes
11
 asciipumper/MainIcon.ico                |  Bin 0 -> 1078 bytes
12
 asciipumper/setup.exe                   |  Bin 0 -> 430592 bytes
13
 screens/preview.png                     |  Bin 0 -> 100885 bytes
14
 source/AboutBox1.Designer.cs            |  187 +++++
15
 source/AboutBox1.cs                     |  165 ++++
16
 source/AboutBox1.resx                   |  610 +++++++++++++++
17
 source/AsciiPumper.csproj               |  190 +++++
18
 source/AsciiPumper.exe.config           |  110 +++
19
 source/CellInfo.cs                      |   69 ++
20
 source/ColorPalette.cs                  |   99 +++
21
 source/ColorSelector.Designer.cs        |  317 ++++++++
22
 source/ColorSelector.cs                 |  191 +++++
23
 source/ColorSelector.resx               |  120 +++
24
 source/ImageImporter.cs                 |   11 +
25
 source/KeypressAction.cs                |   60 ++
26
 source/MainForm.Designer.cs             |  536 +++++++++++++
27
 source/MainForm.cs                      |  575 ++++++++++++++
28
 source/MainForm.resx                    |  158 ++++
29
 source/OptionsForm.Designer.cs          |  444 +++++++++++
30
 source/OptionsForm.cs                   |  129 ++++
31
 source/OptionsForm.resx                 |  129 ++++
32
 source/PaintAction.cs                   |   53 ++
33
 source/PaintCanvas.Designer.cs          |   56 ++
34
 source/PaintCanvas.cs                   | 1265 +++++++++++++++++++++++++++++++
35
 source/PaintCanvas.resx                 |  120 +++
36
 source/Program.cs                       |   45 ++
37
 source/Properties/AssemblyInfo.cs       |   33 +
38
 source/Properties/Resources.Designer.cs |   70 ++
39
 source/Properties/Resources.resx        |  124 +++
40
 source/Properties/Settings.Designer.cs  |  220 ++++++
41
 source/PumpForm.Designer.cs             |  688 +++++++++++++++++
42
 source/PumpForm.cs                      |  474 ++++++++++++
43
 source/PumpForm.resx                    |  430 +++++++++++
44
 source/Settings.cs                      |   55 ++
45
 source/UndoableAction.cs                |   13 +
46
 39 files changed, 7869 insertions(+)
47
48
diff --git a/README.md b/README.md
49
new file mode 100644
50
index 0000000..df6f6a1
51
--- /dev/null
52
+++ b/README.md
53
@@ -0,0 +1,13 @@
54
+![](screens/preview.png)
55
+
56
+###### Requirements
57
+* [Microsoft .NET Framework Version 2.0 Redistributable](https://www.microsoft.com/en-us/download/details.aspx?id=6523)
58
+
59
+###### Mirrors
60
+- [acid.vegas](https://acid.vegas/asciipumper) *(main)*
61
+- [SuperNETs](https://git.supernets.org/ircart/asciipumper)
62
+- [GitHub](https://github.com/ircart/asciipumper)
63
+- [GitLab](https://gitlab.com/ircart/asciipumper)
64
+
65
+###### Credits
66
+* Lampiasis
67
diff --git a/asciipumper/AsciiPumper.exe b/asciipumper/AsciiPumper.exe
68
new file mode 100644
69
index 0000000..523960a
70
Binary files /dev/null and b/asciipumper/AsciiPumper.exe differ
71
diff --git a/asciipumper/AsciiPumper.exe.config b/asciipumper/AsciiPumper.exe.config
72
new file mode 100644
73
index 0000000..3da825c
74
--- /dev/null
75
+++ b/asciipumper/AsciiPumper.exe.config
76
@@ -0,0 +1,110 @@
77
+<?xml version="1.0" encoding="utf-8" ?>
78
+<configuration>
79
+    <configSections>
80
+        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
81
+            <section name="AsciiPumper.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
82
+            <section name="ColorPumper.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
83
+        </sectionGroup>
84
+    </configSections>
85
+    <userSettings>
86
+        <AsciiPumper.Properties.Settings>
87
+            <setting name="PaintFontName" serializeAs="String">
88
+                <value>Consolas</value>
89
+            </setting>
90
+            <setting name="LMBIsForeground" serializeAs="String">
91
+                <value>False</value>
92
+            </setting>
93
+            <setting name="MMBIsForeground" serializeAs="String">
94
+                <value>True</value>
95
+            </setting>
96
+            <setting name="RMBIsForeground" serializeAs="String">
97
+                <value>False</value>
98
+            </setting>
99
+            <setting name="CellHeight" serializeAs="String">
100
+                <value>20</value>
101
+            </setting>
102
+            <setting name="CellWidth" serializeAs="String">
103
+                <value>10</value>
104
+            </setting>
105
+            <setting name="HighlightColor" serializeAs="String">
106
+                <value>Salmon</value>
107
+            </setting>
108
+            <setting name="SeperatorColor" serializeAs="String">
109
+                <value>DimGray</value>
110
+            </setting>
111
+            <setting name="Columns" serializeAs="String">
112
+                <value>80</value>
113
+            </setting>
114
+            <setting name="Rows" serializeAs="String">
115
+                <value>15</value>
116
+            </setting>
117
+            <setting name="LMBColor" serializeAs="String">
118
+                <value>0</value>
119
+            </setting>
120
+            <setting name="MMBColor" serializeAs="String">
121
+                <value>4</value>
122
+            </setting>
123
+            <setting name="RMBColor" serializeAs="String">
124
+                <value>1</value>
125
+            </setting>
126
+            <setting name="PaintFontSize" serializeAs="String">
127
+                <value>10</value>
128
+            </setting>
129
+            <setting name="ShouldWatermark" serializeAs="String">
130
+                <value>True</value>
131
+            </setting>
132
+            <setting name="RecentFiles" serializeAs="Xml">
133
+                <value>
134
+                    <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
135
+                        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
136
+                        <string>asciipumper.txt</string>
137
+                    </ArrayOfString>
138
+                </value>
139
+            </setting>
140
+        </AsciiPumper.Properties.Settings>
141
+        <ColorPumper.Properties.Settings>
142
+            <setting name="PaintFontName" serializeAs="String">
143
+                <value>Consolas</value>
144
+            </setting>
145
+            <setting name="PaintFontSize" serializeAs="String">
146
+                <value>10</value>
147
+            </setting>
148
+            <setting name="LMBIsForeground" serializeAs="String">
149
+                <value>True</value>
150
+            </setting>
151
+            <setting name="MMBIsForeground" serializeAs="String">
152
+                <value>False</value>
153
+            </setting>
154
+            <setting name="RMBIsForeground" serializeAs="String">
155
+                <value>False</value>
156
+            </setting>
157
+            <setting name="CellHeight" serializeAs="String">
158
+                <value>20</value>
159
+            </setting>
160
+            <setting name="CellWidth" serializeAs="String">
161
+                <value>10</value>
162
+            </setting>
163
+            <setting name="HighlightColor" serializeAs="String">
164
+                <value>OldLace</value>
165
+            </setting>
166
+            <setting name="SeperatorColor" serializeAs="String">
167
+                <value>DarkGray</value>
168
+            </setting>
169
+            <setting name="Columns" serializeAs="String">
170
+                <value>80</value>
171
+            </setting>
172
+            <setting name="Rows" serializeAs="String">
173
+                <value>15</value>
174
+            </setting>
175
+            <setting name="LMBColor" serializeAs="String">
176
+                <value>0</value>
177
+            </setting>
178
+            <setting name="MMBColor" serializeAs="String">
179
+                <value>4</value>
180
+            </setting>
181
+            <setting name="RMBColor" serializeAs="String">
182
+                <value>1</value>
183
+            </setting>
184
+        </ColorPumper.Properties.Settings>
185
+    </userSettings>
186
+</configuration>
187
diff --git a/asciipumper/AsciiPumperSetup.msi b/asciipumper/AsciiPumperSetup.msi
188
new file mode 100644
189
index 0000000..1836483
190
Binary files /dev/null and b/asciipumper/AsciiPumperSetup.msi differ
191
diff --git a/asciipumper/MainIcon.ico b/asciipumper/MainIcon.ico
192
new file mode 100644
193
index 0000000..52a2c3c
194
Binary files /dev/null and b/asciipumper/MainIcon.ico differ
195
diff --git a/asciipumper/setup.exe b/asciipumper/setup.exe
196
new file mode 100644
197
index 0000000..9a8ae27
198
Binary files /dev/null and b/asciipumper/setup.exe differ
199
diff --git a/screens/preview.png b/screens/preview.png
200
new file mode 100644
201
index 0000000..0eb2729
202
Binary files /dev/null and b/screens/preview.png differ
203
diff --git a/source/AboutBox1.Designer.cs b/source/AboutBox1.Designer.cs
204
new file mode 100644
205
index 0000000..fd13fcd
206
--- /dev/null
207
+++ b/source/AboutBox1.Designer.cs
208
@@ -0,0 +1,187 @@
209
+namespace AsciiPumper
210
+{
211
+	partial class AboutBox1
212
+	{
213
+		/// <summary>
214
+		/// Required designer variable.
215
+		/// </summary>
216
+		private System.ComponentModel.IContainer components = null;
217
+
218
+		/// <summary>
219
+		/// Clean up any resources being used.
220
+		/// </summary>
221
+		protected override void Dispose(bool disposing)
222
+		{
223
+			if (disposing && (components != null))
224
+			{
225
+				components.Dispose();
226
+			}
227
+			base.Dispose(disposing);
228
+		}
229
+
230
+		#region Windows Form Designer generated code
231
+
232
+		/// <summary>
233
+		/// Required method for Designer support - do not modify
234
+		/// the contents of this method with the code editor.
235
+		/// </summary>
236
+		private void InitializeComponent()
237
+		{
238
+			System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutBox1));
239
+			this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
240
+			this.logoPictureBox = new System.Windows.Forms.PictureBox();
241
+			this.labelProductName = new System.Windows.Forms.Label();
242
+			this.labelVersion = new System.Windows.Forms.Label();
243
+			this.labelCopyright = new System.Windows.Forms.Label();
244
+			this.labelCompanyName = new System.Windows.Forms.Label();
245
+			this.textBoxDescription = new System.Windows.Forms.TextBox();
246
+			this.okButton = new System.Windows.Forms.Button();
247
+			this.tableLayoutPanel.SuspendLayout();
248
+			((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit();
249
+			this.SuspendLayout();
250
+			// 
251
+			// tableLayoutPanel
252
+			// 
253
+			this.tableLayoutPanel.ColumnCount = 2;
254
+			this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33F));
255
+			this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67F));
256
+			this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0);
257
+			this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0);
258
+			this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1);
259
+			this.tableLayoutPanel.Controls.Add(this.labelCopyright, 1, 2);
260
+			this.tableLayoutPanel.Controls.Add(this.labelCompanyName, 1, 3);
261
+			this.tableLayoutPanel.Controls.Add(this.textBoxDescription, 1, 4);
262
+			this.tableLayoutPanel.Controls.Add(this.okButton, 1, 5);
263
+			this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
264
+			this.tableLayoutPanel.Location = new System.Drawing.Point(9, 9);
265
+			this.tableLayoutPanel.Name = "tableLayoutPanel";
266
+			this.tableLayoutPanel.RowCount = 6;
267
+			this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
268
+			this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
269
+			this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
270
+			this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
271
+			this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
272
+			this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
273
+			this.tableLayoutPanel.Size = new System.Drawing.Size(694, 324);
274
+			this.tableLayoutPanel.TabIndex = 0;
275
+			// 
276
+			// logoPictureBox
277
+			// 
278
+			this.logoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
279
+			this.logoPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("logoPictureBox.Image")));
280
+			this.logoPictureBox.Location = new System.Drawing.Point(3, 3);
281
+			this.logoPictureBox.Name = "logoPictureBox";
282
+			this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 6);
283
+			this.logoPictureBox.Size = new System.Drawing.Size(223, 318);
284
+			this.logoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
285
+			this.logoPictureBox.TabIndex = 12;
286
+			this.logoPictureBox.TabStop = false;
287
+			// 
288
+			// labelProductName
289
+			// 
290
+			this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill;
291
+			this.labelProductName.Location = new System.Drawing.Point(235, 0);
292
+			this.labelProductName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
293
+			this.labelProductName.MaximumSize = new System.Drawing.Size(0, 17);
294
+			this.labelProductName.Name = "labelProductName";
295
+			this.labelProductName.Size = new System.Drawing.Size(456, 17);
296
+			this.labelProductName.TabIndex = 19;
297
+			this.labelProductName.Text = "Product Name";
298
+			this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
299
+			// 
300
+			// labelVersion
301
+			// 
302
+			this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill;
303
+			this.labelVersion.Location = new System.Drawing.Point(235, 32);
304
+			this.labelVersion.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
305
+			this.labelVersion.MaximumSize = new System.Drawing.Size(0, 17);
306
+			this.labelVersion.Name = "labelVersion";
307
+			this.labelVersion.Size = new System.Drawing.Size(456, 17);
308
+			this.labelVersion.TabIndex = 0;
309
+			this.labelVersion.Text = "Version";
310
+			this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
311
+			// 
312
+			// labelCopyright
313
+			// 
314
+			this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill;
315
+			this.labelCopyright.Location = new System.Drawing.Point(235, 64);
316
+			this.labelCopyright.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
317
+			this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 17);
318
+			this.labelCopyright.Name = "labelCopyright";
319
+			this.labelCopyright.Size = new System.Drawing.Size(456, 17);
320
+			this.labelCopyright.TabIndex = 21;
321
+			this.labelCopyright.Text = "Copyright";
322
+			this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
323
+			// 
324
+			// labelCompanyName
325
+			// 
326
+			this.labelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill;
327
+			this.labelCompanyName.Location = new System.Drawing.Point(235, 96);
328
+			this.labelCompanyName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
329
+			this.labelCompanyName.MaximumSize = new System.Drawing.Size(0, 17);
330
+			this.labelCompanyName.Name = "labelCompanyName";
331
+			this.labelCompanyName.Size = new System.Drawing.Size(456, 17);
332
+			this.labelCompanyName.TabIndex = 22;
333
+			this.labelCompanyName.Text = "Company Name";
334
+			this.labelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
335
+			// 
336
+			// textBoxDescription
337
+			// 
338
+			this.textBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill;
339
+			this.textBoxDescription.Location = new System.Drawing.Point(235, 131);
340
+			this.textBoxDescription.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3);
341
+			this.textBoxDescription.Multiline = true;
342
+			this.textBoxDescription.Name = "textBoxDescription";
343
+			this.textBoxDescription.ReadOnly = true;
344
+			this.textBoxDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both;
345
+			this.textBoxDescription.Size = new System.Drawing.Size(456, 156);
346
+			this.textBoxDescription.TabIndex = 23;
347
+			this.textBoxDescription.TabStop = false;
348
+			this.textBoxDescription.Text = "Description";
349
+			// 
350
+			// okButton
351
+			// 
352
+			this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
353
+			this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
354
+			this.okButton.Location = new System.Drawing.Point(616, 298);
355
+			this.okButton.Name = "okButton";
356
+			this.okButton.Size = new System.Drawing.Size(75, 23);
357
+			this.okButton.TabIndex = 24;
358
+			this.okButton.Text = "&OK";
359
+			// 
360
+			// AboutBox1
361
+			// 
362
+			this.AcceptButton = this.okButton;
363
+			this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
364
+			this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
365
+			this.ClientSize = new System.Drawing.Size(712, 342);
366
+			this.Controls.Add(this.tableLayoutPanel);
367
+			this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
368
+			this.MaximizeBox = false;
369
+			this.MinimizeBox = false;
370
+			this.Name = "AboutBox1";
371
+			this.Padding = new System.Windows.Forms.Padding(9);
372
+			this.ShowIcon = false;
373
+			this.ShowInTaskbar = false;
374
+			this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
375
+			this.Text = "About Ascii Pumper";
376
+			this.Load += new System.EventHandler(this.AboutBox1_Load);
377
+			this.tableLayoutPanel.ResumeLayout(false);
378
+			this.tableLayoutPanel.PerformLayout();
379
+			((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit();
380
+			this.ResumeLayout(false);
381
+
382
+		}
383
+
384
+		#endregion
385
+
386
+		private System.Windows.Forms.TableLayoutPanel tableLayoutPanel;
387
+		private System.Windows.Forms.PictureBox logoPictureBox;
388
+		private System.Windows.Forms.Label labelProductName;
389
+		private System.Windows.Forms.Label labelVersion;
390
+		private System.Windows.Forms.Label labelCopyright;
391
+		private System.Windows.Forms.Label labelCompanyName;
392
+		private System.Windows.Forms.TextBox textBoxDescription;
393
+		private System.Windows.Forms.Button okButton;
394
+	}
395
+}
396
diff --git a/source/AboutBox1.cs b/source/AboutBox1.cs
397
new file mode 100644
398
index 0000000..6804054
399
--- /dev/null
400
+++ b/source/AboutBox1.cs
401
@@ -0,0 +1,165 @@
402
+#region Copyright (c) 2007, PP4L Software
403
+/************************************************************************************
404
+
405
+Copyright  2007, PP4L Software
406
+Author:	Lampiasis <lampiasis@dvolker.com>
407
+
408
+This program is free software; you can redistribute it and/or modify
409
+it under the terms of the GNU General Public License as published by
410
+the Free Software Foundation; either version 2 of the License, or
411
+(at your option) any later version.
412
+
413
+This program is distributed in the hope that it will be useful,
414
+but WITHOUT ANY WARRANTY; without even the implied warranty of
415
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
416
+GNU General Public License for more details.
417
+
418
+You should have received a copy of the GNU General Public License
419
+along with this program; if not, write to the Free Software
420
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
421
+
422
+'***********************************************************************************/
423
+#endregion
424
+
425
+using System;
426
+using System.Collections.Generic;
427
+using System.ComponentModel;
428
+using System.Drawing;
429
+using System.Windows.Forms;
430
+using System.Reflection;
431
+
432
+namespace AsciiPumper
433
+{
434
+	partial class AboutBox1 : Form
435
+	{
436
+		public AboutBox1()
437
+		{
438
+			InitializeComponent();
439
+
440
+			//  Initialize the AboutBox to display the product information from the assembly information.
441
+			//  Change assembly information settings for your application through either:
442
+			//  - Project->Properties->Application->Assembly Information
443
+			//  - AssemblyInfo.cs
444
+			this.Text = String.Format("About {0}", AssemblyTitle);
445
+			//this.labelProductName.Text = AssemblyProduct;
446
+			this.labelProductName.Text = "Ascii Pumper";
447
+			this.labelVersion.Text = String.Format("Version {0}", AssemblyVersion);
448
+			this.labelCopyright.Text = AssemblyCopyright;
449
+			this.labelCompanyName.Text = AssemblyCompany;
450
+			this.textBoxDescription.Text = AssemblyDescription + "\r\n\r\nya we pumpin'!\r\n\r\n";
451
+			this.textBoxDescription.Text += @"
452
+Thanks vap0r for asciipumper.txt, ramprat for bug reports and all the 
453
+pumpers for their input.
454
+
455
+http://code.google.com/p/asciipumper/
456
+Copyright (C) 2007 Lampiasis <lampiasis@dvolker.com>
457
+
458
+This program is free software; you can redistribute it and/or modify
459
+it under the terms of the GNU General Public License as published by
460
+the Free Software Foundation; either version 2 of the License, or
461
+(at your option) any later version.
462
+
463
+This program is distributed in the hope that it will be useful,
464
+but WITHOUT ANY WARRANTY; without even the implied warranty of
465
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
466
+GNU General Public License for more details.
467
+
468
+You should have received a copy of the GNU General Public License
469
+along with this program; if not, write to the Free Software
470
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
471
+";
472
+		}
473
+
474
+		#region Assembly Attribute Accessors
475
+
476
+		public string AssemblyTitle
477
+		{
478
+			get
479
+			{
480
+				// Get all Title attributes on this assembly
481
+				object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
482
+				// If there is at least one Title attribute
483
+				if (attributes.Length > 0)
484
+				{
485
+					// Select the first one
486
+					AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
487
+					// If it is not an empty string, return it
488
+					if (titleAttribute.Title != "")
489
+						return titleAttribute.Title;
490
+				}
491
+				// If there was no Title attribute, or if the Title attribute was the empty string, return the .exe name
492
+				return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
493
+			}
494
+		}
495
+
496
+		public string AssemblyVersion
497
+		{
498
+			get
499
+			{
500
+				return Assembly.GetExecutingAssembly().GetName().Version.ToString();
501
+			}
502
+		}
503
+
504
+		public string AssemblyDescription
505
+		{
506
+			get
507
+			{
508
+				// Get all Description attributes on this assembly
509
+				object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
510
+				// If there aren't any Description attributes, return an empty string
511
+				if (attributes.Length == 0)
512
+					return "";
513
+				// If there is a Description attribute, return its value
514
+				return ((AssemblyDescriptionAttribute)attributes[0]).Description;
515
+			}
516
+		}
517
+
518
+		public string AssemblyProduct
519
+		{
520
+			get
521
+			{
522
+				// Get all Product attributes on this assembly
523
+				object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
524
+				// If there aren't any Product attributes, return an empty string
525
+				if (attributes.Length == 0)
526
+					return "";
527
+				// If there is a Product attribute, return its value
528
+				return ((AssemblyProductAttribute)attributes[0]).Product;
529
+			}
530
+		}
531
+
532
+		public string AssemblyCopyright
533
+		{
534
+			get
535
+			{
536
+				// Get all Copyright attributes on this assembly
537
+				object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
538
+				// If there aren't any Copyright attributes, return an empty string
539
+				if (attributes.Length == 0)
540
+					return "";
541
+				// If there is a Copyright attribute, return its value
542
+				return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
543
+			}
544
+		}
545
+
546
+		public string AssemblyCompany
547
+		{
548
+			get
549
+			{
550
+				// Get all Company attributes on this assembly
551
+				object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
552
+				// If there aren't any Company attributes, return an empty string
553
+				if (attributes.Length == 0)
554
+					return "";
555
+				// If there is a Company attribute, return its value
556
+				return ((AssemblyCompanyAttribute)attributes[0]).Company;
557
+			}
558
+		}
559
+		#endregion
560
+
561
+		private void AboutBox1_Load(object sender, EventArgs e)
562
+		{
563
+
564
+		}
565
+	}
566
+}
567
diff --git a/source/AboutBox1.resx b/source/AboutBox1.resx
568
new file mode 100644
569
index 0000000..3df4dcb
570
--- /dev/null
571
+++ b/source/AboutBox1.resx
572
@@ -0,0 +1,610 @@
573
+<?xml version="1.0" encoding="utf-8"?>
574
+<root>
575
+  <!-- 
576
+    Microsoft ResX Schema 
577
+    
578
+    Version 2.0
579
+    
580
+    The primary goals of this format is to allow a simple XML format 
581
+    that is mostly human readable. The generation and parsing of the 
582
+    various data types are done through the TypeConverter classes 
583
+    associated with the data types.
584
+    
585
+    Example:
586
+    
587
+    ... ado.net/XML headers & schema ...
588
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
589
+    <resheader name="version">2.0</resheader>
590
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
591
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
592
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
593
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
594
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
595
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
596
+    </data>
597
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
598
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
599
+        <comment>This is a comment</comment>
600
+    </data>
601
+                
602
+    There are any number of "resheader" rows that contain simple 
603
+    name/value pairs.
604
+    
605
+    Each data row contains a name, and value. The row also contains a 
606
+    type or mimetype. Type corresponds to a .NET class that support 
607
+    text/value conversion through the TypeConverter architecture. 
608
+    Classes that don't support this are serialized and stored with the 
609
+    mimetype set.
610
+    
611
+    The mimetype is used for serialized objects, and tells the 
612
+    ResXResourceReader how to depersist the object. This is currently not 
613
+    extensible. For a given mimetype the value must be set accordingly:
614
+    
615
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
616
+    that the ResXResourceWriter will generate, however the reader can 
617
+    read any of the formats listed below.
618
+    
619
+    mimetype: application/x-microsoft.net.object.binary.base64
620
+    value   : The object must be serialized with 
621
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
622
+            : and then encoded with base64 encoding.
623
+    
624
+    mimetype: application/x-microsoft.net.object.soap.base64
625
+    value   : The object must be serialized with 
626
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
627
+            : and then encoded with base64 encoding.
628
+
629
+    mimetype: application/x-microsoft.net.object.bytearray.base64
630
+    value   : The object must be serialized into a byte array 
631
+            : using a System.ComponentModel.TypeConverter
632
+            : and then encoded with base64 encoding.
633
+    -->
634
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
635
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
636
+    <xsd:element name="root" msdata:IsDataSet="true">
637
+      <xsd:complexType>
638
+        <xsd:choice maxOccurs="unbounded">
639
+          <xsd:element name="metadata">
640
+            <xsd:complexType>
641
+              <xsd:sequence>
642
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
643
+              </xsd:sequence>
644
+              <xsd:attribute name="name" use="required" type="xsd:string" />
645
+              <xsd:attribute name="type" type="xsd:string" />
646
+              <xsd:attribute name="mimetype" type="xsd:string" />
647
+              <xsd:attribute ref="xml:space" />
648
+            </xsd:complexType>
649
+          </xsd:element>
650
+          <xsd:element name="assembly">
651
+            <xsd:complexType>
652
+              <xsd:attribute name="alias" type="xsd:string" />
653
+              <xsd:attribute name="name" type="xsd:string" />
654
+            </xsd:complexType>
655
+          </xsd:element>
656
+          <xsd:element name="data">
657
+            <xsd:complexType>
658
+              <xsd:sequence>
659
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
660
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
661
+              </xsd:sequence>
662
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
663
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
664
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
665
+              <xsd:attribute ref="xml:space" />
666
+            </xsd:complexType>
667
+          </xsd:element>
668
+          <xsd:element name="resheader">
669
+            <xsd:complexType>
670
+              <xsd:sequence>
671
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
672
+              </xsd:sequence>
673
+              <xsd:attribute name="name" type="xsd:string" use="required" />
674
+            </xsd:complexType>
675
+          </xsd:element>
676
+        </xsd:choice>
677
+      </xsd:complexType>
678
+    </xsd:element>
679
+  </xsd:schema>
680
+  <resheader name="resmimetype">
681
+    <value>text/microsoft-resx</value>
682
+  </resheader>
683
+  <resheader name="version">
684
+    <value>2.0</value>
685
+  </resheader>
686
+  <resheader name="reader">
687
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
688
+  </resheader>
689
+  <resheader name="writer">
690
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
691
+  </resheader>
692
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
693
+  <data name="logoPictureBox.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
694
+    <value>
695
+        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
942
+        BwRdF6ADvrtf273r5q6dN3fufHXnjhs7tl3ftvDkQnWDWrlWqVilUGQpFJkKxQqFfDlH8FSZdKZUmiiV
943
+        TJZIJkrEEwyI9+jb4yWXl2Qv/vcwB1mmvw2yTWDd0JsBDWpv7GVXG25TFaypCdY0hNtu7e20K9Zz3wCv
944
+        o4N0p4Z4nxumvxjnc5nDWtT9f16wksZ4OqxqC24m3F7OZe7Olc5OtZ6e23x9m/39mYsICDjCBQM6MJBn
945
+        NEh9Ijj4ZHDwKU6Fz0EcoAyEda9er0dGvhEV9VZU1NsUvXtTvMUFnrwTHf1uTAzivZiYDyIjryECAzd5
946
+        ei61sxuhVHrGxsZCWOALId/oeGKiEGNBeGDOHoNY9BEP3FGWMCvhwDsH9r+zf9/b+1i8tW/vG3v33t47
947
+        6OggVb1KWaRUrlYq85XKPKVylVKZo1SsVMjT5LJ5MtlMmXS6VDpVKp3CIT5JIpkgsYyyRFaFoSRrcc9B
948
+        ttIMb9WGYG1ZgKrET7khSFMTZtsQ6dTUx2NbH4/tsZ47Yz139/Pc28/r0EDvE4O9zw7VX4jzAbVFWUF2
949
+        fa0sVRYBrjapLVgb2O3pVOTqWORgX+TqWqnT1ev1W319d/r5AWuIBsM6MPAohzLRmWf0yZCQU1ycDgk5
950
+        GxZ2Pjz8UkTENYgD+AvCEqDR0e8DTUSfPh9ycYeLj7j4uE+fT3r3vt279xsxMW/FxLzTp8970dE3Q0K2
951
+        +/hku7pOsLYOlkhkMHDQYqSOWD8hLJgPwgOTK0gR8xrzjn549Oido/h45IMjiEPvHTr47kHvQ97qjWpV
952
+        qUpVqFKtU6nWqhjiq5WKHIV8iVy+QC6fK5fPkgNuWaJMNl0mmSKxmGDRzbMbdmIh4XzxxRe7d+8p7fJi
953
+        fyvLlb5Wdb2c6qNcGqNdG6PdtsS4M6z7eu4wYO21p7/uwADv44O9zwDrYXpRYbjzmjDH4fYyqZmjo2Yq
954
+        Ye3ltN7VYZ2D/ToXlzJPzypM43GxUa/f7Ou7zc9vj7///oCAg4GBwPpYUBCCoRwcTHQ2AB0aihmo02Fh
955
+        hPXFiIgr0ISoqFeBYHT02zEx73PIftK37+/79v20b9+7sbF3+/VDfN6v3z0Eod+378f9+n3cv//HAwf+
956
+        fvDg38fFfTpixKejRn02dOjF2NimiIhVfn7T3dxira3d9Xo9Bg8HDBjghSzr9u6D7x089MGhIx8eYXAj
957
+        PjqadytPc1ADoNXlanWJWlWkUhYqFesUstUyaZbUcpGlxTyLnjN7dp/Wvdvkbi+Nf+nFhBd/N/p3L45+
958
+        6X/kv/Pw8O/TZ/jIkYnTp6ePHTs3LKyfg1Q8xkVTGAoNcd0U47Ypxn1LH/etfT2B9XbA3c9rd3+G9b4B
959
+        uqODvCEjotJeLoURDOupbirLLlIb+TBXh7WO9mtdXIo9PDbodOBylU5Xg2iBu8HHZ6uf305//2YO68NB
960
+        QUeDg49zAYgpThHKBHR4OOJcePiFiIhLkZFXo6Je6d37tejoNyERQLNv3084iO/17/9l//5fDxjw9cCB
961
+        Xw8ahI+fDRp0d8iQz4cO/Twu7t7w4fdGjvxizJgvxo37YsKELyZP/nLGjC9nzfpq/vyvUlO/Sku7t2DB
962
+        zVmzjvj4jBiXPHnfOweb3zmw9619e95s3nV7987Xd+64tSPqYNRL1S+9uPrFF3NefDGTxUsrX+qyskuX
963
+        ZV26LurWdW7XrrPMzBJ7dE/s2WOmhXmSpUWSRDxTZjFc2r27eVJSRmLisqSk5bNmZc6dmz1/fu7kyQsj
964
+        Ivrr1fIkL9v6aAb05j7A2gNYb4313B7rBax3cXA399cdHugtquztUhbJsF4b5jTaRfXb//xPS8tejo4r
965
+        vbwqEC1AM6y9vWv1+jq9Hryu9/Fp9PPb5u+/OzBwf1DQ4eDgoyEhx0NCToSGngwNBcqnwsIA8RkKDuiz
966
+        ERHnIiLOR0Rc7NXrclTUNcAdHf1aTMybkIXY2DuxsZ9yWDOIhwz5Ji7um/j4L4YP/2LUKID7ZULCl+PH
967
+        fzVp0tdTpnw9Y8bXSUlfz579TXLyN4sWfZOR8c2KFd+uWvWHgoI/5Od/IldZlx2qOfHp+RO/P3fi03Mn
968
+        Pzt38u65U1x4ndartmmV1VplhVZZzkJRqlGUaOTr1PJstWypSpamlC1USlOU0gVK6XwFQjJPYREpCQqK
969
+        Abhz5uTMm5ezYMHqhQsLFi1au2RJ8bJlZSjYhIT0jbZTLwtw3NzHA8GwjvVC8Fhvi/Fs6uUlQm0eWOeG
970
+        Og1z1drIxBC4/v37S6V6e/s5Xl6VFCC1tzfCgLWPz0Yfn3pfX2C9JSBgZ2Bgc3DwwZCQI8AaQIeFEcqn
971
+        w8MBsRBlAH2uV6/zXFyMjLzcwu6bMTFv9Onzbt++d/r1+7R//y8GDvwGWMfHfzV69FcJCd9MmPDN5Mnf
972
+        Tp36bVLSt3Pnfpec/F1q6ndpad8tW/bHrKw/5uX9ae3aP5WU/Lmy8i9z5mwZMCbu1N0Lpz6/cPrehTP3
973
+        Lp794uJZfLx3ceVbOepjVqrNLUAD6w0c1iUaxTqNPEstX66Spatki1WyRSpZqopHvKeHOC5u6oIFeSkp
974
+        q1NT1y5eXJieXrJsWXlmZlVOzsa8vMaCgi0TJiTbymQJ7jblka5b+no0QUBivTZFe9ZHeG4M86wL9agP
975
+        dRehTDzfzz7YRgnviZIjrgzAFiDszerZU21lNdzDYz1HagPWen2NXl/r41MHrDmgEZv8/bHdCOPVGLI+
976
+        HBqKCeAT4eGnwsMZ0BERIDIFQ5kHOjLyAhcM7qioK717v9y7942YmNf79Hm7b98PYmM/6d//cwjIsGHf
977
+        jBz57dixf5g8+Q/Tpn03e/Yfk5P/uGjRH9PT/7hixZ9WrfrTmjV/Li7+S0XFX2pr/7ply99iYqZl1uSd
978
+        /eLS2S8vnfvq8nkuzuH5l5cGXBui3melarRS1Vqpqrio1CIYqdcQ0Gr5kpZIMyAunarsKRODzosWrU9L
979
+        K8rIAIvLV6yozsmpy8/ftGbN1vXrdxYV7Sktbc7Orhk2bFKItTrZ27E23KM6hEVViHt1sFttCMJVNNrD
980
+        2kYhw04sXECwdu1aeKO8vDxsHcCCHh0drVCEOjkt9Pau5BhdpddXA2sfn1pf3zqkc35+Df7+AHpzQMAW
981
+        jFcHB+8NCTkQiimn8OPh4Ri7Ph0RQViDyBRE50fRgji0G4hf7d37enT0q4R4bOwH/fr9HgQfNAjs/jYh
982
+        gcGdlPTdvHkMa9A5O5sBXVr6l6qqvzY0/DU7+2xgVMSh908wlL80oExY7/v8oPM5d/VOK1U9B3Q1Fwxr
983
+        K2WpVpGvUWSpFSvU8gwu0rngQJcMUISGxi5ZUgQWL11atnx5ZXZ2bW5uQ0FBU2HhzpKSZlieysojWVmH
984
+        Z8w4MGTIAU/PTPOXJIOstPm+zpVBrlXBhqgB0Dh8GiX20tJSJAXYkI1aOxDHA5UHfH7ChAmWljY2NqO9
985
+        vAr1egBd5eMDoGt8fWv9/Db6+dX7+zOsOaAR2Gu0IySkOTT0YFjY0fDwExERp3r1OtOr11ku2oUb0Lfm
986
+        OEO8heNvgeP9+oHj9yApcXGM4FOmfDdz5ncLFjBqA+61a/9cVvaXwYPT5+Sknrl36UxrRgPoWbfnqY9Z
987
+        q5qsVHVWqhouOKyZWBdpFasAtEaxQqNYSvEIcUu9bPToWRyLKzIzQeSN+fmNa9ZsKyjYnZ6+b/r0g3Fx
988
+        h2NioJmHoZ/+/jvw/gZQKtVwvUQ+39WuMsilKtilMph9FKFbgQeyABhSPFAyx6OMewB9PNDsgGdSqUJd
989
+        XFJ8fKp9fYEyCz+/OmAdEFAfENAQEACssSUUG0OBNfbTEdwHwsOPcjsKTOE2prYJzaEql6AqLTSHjt8W
990
+        0Pwe0RygT53KJGXKlFccPfT1F3ee/OzSqbuXTn1+6TSP+JeXAy+FqputVJtMgMaSuE6ryOWAXq5RLBPE
991
+        Uo1shspCLsW6l55ekZxcPWNG7ZgxdYMHN8bEbAsN3QUXEBCwJyAAT2DA4As2A2UoKvemr7C1naXoJh5l
992
+        qwXKFCIUuvCgNgdq8PQRZWL+I30SO+UlEitb23idLh/5McLfv44LhnVgYENgYGNg4GbwugXrbSEhO0JD
993
+        92LTRlgYExMO8dMt1O4IaB50Ac0fgd7C9Df79mV2pV+/zyAvrq7ZCfNmHv7o0pGPLh39+NLRTy4d+/2l
994
+        459eOvHppZVvrJYfsZFuspJWa2WVWlkFCzk+lmtkRRrpKo00SyNdrpFmqCXpLMRL1JZpaovFarMouZ3d
995
+        wJCQ4oCAUhRhdDoKJqEQT2CKJYpk09/fEPgMFBV/i7e+i8tKqTSmt0qVo3dkQBOg1EZC9Z36RsIGB3oc
996
+        KBbjgYYIenoqlY+z83Q/vyp//9qAAKDMB4Mbh1JgWzlH7S20fTE4eDt2IoWF7QsPP4zNMq3hbkO1TXW8
997
+        TdxbNB2r6CuhoYfVNi4lBxoOfnj+4IcXDrG4aIg7F0NPDejRpO1RoelRrOlRqOlRpOlZyKLHGk33HI1Z
998
+        htosTW2WojZboO6WrBKE8gVbsZXVNDe3bDe3HC7yPDxWe3mt9/Yu9fau4MQTQAPibQEB2wMCdnAfEU2g
999
+        tq8vsg2YtA1q9WhvsSzFzU4EiNGjQ3cODQ7qbqCvgdI7dTGo+o6PeOCPqBdjwUQvytq6t4dHakBAHRcb