├── EasyCPDLC
├── Artboard 1.ico
├── EasyCPDLC.zip
├── EZCPDLCIcon_64.ico
├── Resources
│ ├── Oxygen-Bold.ttf
│ ├── Stretchboard.png
│ ├── notification.wav
│ ├── B612Mono-Bold.ttf
│ ├── Oxygen-Regular.ttf
│ ├── B612Mono-Regular.ttf
│ └── cog-wheel-gear-setting.png
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Settings.settings
│ ├── Resources.Designer.cs
│ ├── Settings.Designer.cs
│ └── Resources.resx
├── CustomUI.cs
├── CPDLCMessage.cs
├── Contract.cs
├── App.config
├── FSUIPCData.cs
├── SimbriefJSON.cs
├── FlashWindow.cs
├── DataEntry.cs
├── UITextBox.cs
├── SettingsForm.resx
├── EasyCPDLC.csproj
├── VATSIMJSON.cs
├── SettingsForm.cs
├── SettingsForm.Designer.cs
├── DataEntry.resx
├── RequestForm.resx
├── TelexForm.cs
├── TelexForm.resx
├── MainForm.resx
├── DataEntry.Designer.cs
├── TelexForm.Designer.cs
└── MainForm.Designer.cs
├── EasyCPDLC.sln
├── README.md
├── .gitattributes
└── .gitignore
/EasyCPDLC/Artboard 1.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quassbutreally/EasyCPDLC/HEAD/EasyCPDLC/Artboard 1.ico
--------------------------------------------------------------------------------
/EasyCPDLC/EasyCPDLC.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quassbutreally/EasyCPDLC/HEAD/EasyCPDLC/EasyCPDLC.zip
--------------------------------------------------------------------------------
/EasyCPDLC/EZCPDLCIcon_64.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quassbutreally/EasyCPDLC/HEAD/EasyCPDLC/EZCPDLCIcon_64.ico
--------------------------------------------------------------------------------
/EasyCPDLC/Resources/Oxygen-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quassbutreally/EasyCPDLC/HEAD/EasyCPDLC/Resources/Oxygen-Bold.ttf
--------------------------------------------------------------------------------
/EasyCPDLC/Resources/Stretchboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quassbutreally/EasyCPDLC/HEAD/EasyCPDLC/Resources/Stretchboard.png
--------------------------------------------------------------------------------
/EasyCPDLC/Resources/notification.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quassbutreally/EasyCPDLC/HEAD/EasyCPDLC/Resources/notification.wav
--------------------------------------------------------------------------------
/EasyCPDLC/Resources/B612Mono-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quassbutreally/EasyCPDLC/HEAD/EasyCPDLC/Resources/B612Mono-Bold.ttf
--------------------------------------------------------------------------------
/EasyCPDLC/Resources/Oxygen-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quassbutreally/EasyCPDLC/HEAD/EasyCPDLC/Resources/Oxygen-Regular.ttf
--------------------------------------------------------------------------------
/EasyCPDLC/Resources/B612Mono-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quassbutreally/EasyCPDLC/HEAD/EasyCPDLC/Resources/B612Mono-Regular.ttf
--------------------------------------------------------------------------------
/EasyCPDLC/Resources/cog-wheel-gear-setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/quassbutreally/EasyCPDLC/HEAD/EasyCPDLC/Resources/cog-wheel-gear-setting.png
--------------------------------------------------------------------------------
/EasyCPDLC.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.30523.141
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EasyCPDLC", "EasyCPDLC\EasyCPDLC.csproj", "{B9CA396A-4CB3-4D9A-B985-946443322AB9}"
7 | EndProject
8 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B0FC0D1C-127C-4DC1-B043-F51B8A699CA5}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {B9CA396A-4CB3-4D9A-B985-946443322AB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {B9CA396A-4CB3-4D9A-B985-946443322AB9}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {B9CA396A-4CB3-4D9A-B985-946443322AB9}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {B9CA396A-4CB3-4D9A-B985-946443322AB9}.Release|Any CPU.Build.0 = Release|Any CPU
20 | EndGlobalSection
21 | GlobalSection(SolutionProperties) = preSolution
22 | HideSolutionNode = FALSE
23 | EndGlobalSection
24 | GlobalSection(ExtensibilityGlobals) = postSolution
25 | SolutionGuid = {668915C8-639F-4DDB-BC56-901E602F30BE}
26 | EndGlobalSection
27 | EndGlobal
28 |
--------------------------------------------------------------------------------
/EasyCPDLC/Program.cs:
--------------------------------------------------------------------------------
1 | /* EASYCPDLC: CPDLC Client for the VATSIM Network
2 | Copyright (C) 2021 Joshua Seagrave joshseagrave@googlemail.com
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see .
16 | */
17 |
18 |
19 | using System;
20 | using System.Windows.Forms;
21 |
22 | namespace EasyCPDLC
23 | {
24 | static class Program
25 | {
26 | ///
27 | /// The main entry point for the application.
28 | ///
29 | [STAThread]
30 | static void Main()
31 | {
32 | Application.EnableVisualStyles();
33 | Application.SetHighDpiMode(HighDpiMode.SystemAware);
34 | Application.SetCompatibleTextRenderingDefault(false);
35 | Application.Run(new MainForm());
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # EasyCPDLC
2 | Making CPDLC actually usable for pilots on VATSIM
3 |
4 | # What is EasyCPDLC?
5 | EasyCPDLC is a third-party CPDLC client designed for use with the Hoppie ACARS network and VATSIM. It allows users to communicate with ATC and other CPDLC-equipped aircraft even when not using an aircraft that natively supports CPDLC.
6 |
7 | # How does it work?
8 | The program requires only your VATSIM CID and Hoppie logon code. It uses this information to query the network and confirm your flight details, which it then stores and prefills into the relevant sections. From there, you can proceed to logon to a CPDLC unit, request a datalink clearance, or pursue any of the hundreds of other uses of CPDLC
9 |
10 | # Is there a tutorial?
11 | It's in development. The [wiki](https://github.com/josh-seagrave/EasyCPDLC/wiki) will contain full background information and user guides.
12 |
13 | # How do I get it?
14 | You can download the latest release [here.](https://github.com/josh-seagrave/EasyCPDLC/releases)
15 |
16 | # It's broken. What do I do?
17 | EasyCPDLC is still under active development. If you encounter crashes or a bug, please [submit an issue](https://github.com/josh-seagrave/EasyCPDLC/issues) with as much detail as possible so I can investigate.
18 |
19 | # Is it free?
20 | Yes, and it always will be.
21 |
22 | # I'd like to buy you a coffee, you seem like you need one.
23 | [that's very kind of you.](https://www.paypal.com/donate/?hosted_button_id=9MK7SMKEKGAZY)
24 |
--------------------------------------------------------------------------------
/EasyCPDLC/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.InteropServices;
3 |
4 | // General Information about an assembly is controlled through the following
5 | // set of attributes. Change these attribute values to modify the information
6 | // associated with an assembly.
7 | [assembly: AssemblyTitle("EasyCPDLC")]
8 | [assembly: AssemblyDescription("")]
9 | [assembly: AssemblyConfiguration("")]
10 | [assembly: AssemblyCompany("")]
11 | [assembly: AssemblyProduct("EasyCPDLC")]
12 | [assembly: AssemblyCopyright("Copyright © 2022")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | [assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("windows7.0")]
17 |
18 | // Setting ComVisible to false makes the types in this assembly not visible
19 | // to COM components. If you need to access a type in this assembly from
20 | // COM, set the ComVisible attribute to true on that type.
21 | [assembly: ComVisible(false)]
22 |
23 | // The following GUID is for the ID of the typelib if this project is exposed to COM
24 | [assembly: Guid("b9ca396a-4cb3-4d9a-b985-946443322ab9")]
25 |
26 | // Version information for an assembly consists of the following four values:
27 | //
28 | // Major Version
29 | // Minor Version
30 | // Build Number
31 | // Revision
32 | //
33 | // You can specify all the values or you can default the Build and Revision Numbers
34 | // by using the '*' as shown below:
35 | // [assembly: AssemblyVersion("1.0.*")]
36 | [assembly: AssemblyVersion("0.2.0")]
37 | [assembly: AssemblyFileVersion("0.2.0.0")]
38 |
--------------------------------------------------------------------------------
/EasyCPDLC/CustomUI.cs:
--------------------------------------------------------------------------------
1 | using System.Drawing;
2 | using System.Windows.Forms;
3 |
4 | namespace EasyCPDLC
5 | {
6 | public class CustomUI
7 | {
8 | public static UITextBox CreateTextBox(string _text, int _maxLength, Color _controlFrontColor, Color _controlBackColor, Font _font)
9 | {
10 | UITextBox _temp = new(_controlFrontColor)
11 | {
12 | BackColor = _controlBackColor,
13 | ForeColor = _controlFrontColor,
14 | Font = _font,
15 | MaxLength = _maxLength,
16 | BorderStyle = BorderStyle.None,
17 | Text = _text,
18 | CharacterCasing = CharacterCasing.Upper,
19 | Top = 10,
20 | Padding = new Padding(3, 0, 3, -10),
21 | Margin = new Padding(3, 5, 3, -10),
22 | Height = 20,
23 | TextAlign = HorizontalAlignment.Center
24 | };
25 |
26 | using (Graphics G = _temp.CreateGraphics())
27 | {
28 | _temp.Width = (int)(_temp.MaxLength *
29 | G.MeasureString("x", _temp.Font).Width);
30 | }
31 |
32 | return _temp;
33 | }
34 |
35 | public static Label CreateTemplate(string _text, Color _controlFrontColor, Color _controlBackColor, Font _font)
36 | {
37 | Label _temp = new()
38 | {
39 | BackColor = _controlBackColor,
40 | ForeColor = _controlFrontColor,
41 | Font = _font,
42 | AutoSize = true,
43 | Text = _text,
44 | Top = 10,
45 | Height = 20,
46 | TextAlign = ContentAlignment.MiddleLeft,
47 | Padding = new Padding(0, 10, 0, 0),
48 | Margin = new Padding(0, 0, 0, 0)
49 | };
50 |
51 | return _temp;
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/EasyCPDLC/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | False
7 |
8 |
9 | True
10 |
11 |
12 |
13 |
14 |
15 | False
16 |
17 |
18 | 0, 0
19 |
20 |
21 | 0, 0
22 |
23 |
24 | 0, 0
25 |
26 |
27 | 0, 0
28 |
29 |
30 | 0, 0
31 |
32 |
33 | 0, 0
34 |
35 |
36 | 0
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/EasyCPDLC/CPDLCMessage.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Drawing;
3 | using System.Windows.Forms;
4 |
5 | namespace EasyCPDLC
6 | {
7 | public class CPDLCMessage : Label
8 | {
9 |
10 | public string type;
11 | public bool acknowledged = false;
12 | public string recipient;
13 | public string message;
14 | public bool outbound;
15 | private string storedText;
16 |
17 | public CPDLCResponse header;
18 |
19 | public CPDLCMessage()
20 | {
21 |
22 | }
23 | public CPDLCMessage(string _type, string _recipient, string _message, bool _outbound = false, CPDLCResponse _header = null)
24 | {
25 | type = _type;
26 | recipient = _recipient;
27 | message = _message;
28 | outbound = _outbound;
29 | header = _header;
30 | SetStyle(ControlStyles.Selectable, true);
31 | }
32 |
33 | public void OverrideText(string newText)
34 | {
35 | storedText = Text;
36 | Console.WriteLine(storedText);
37 | Invoke(new Action(() => Text = newText));
38 | }
39 |
40 | public void RestoreText()
41 | {
42 | Invoke(new Action(() => Text = storedText));
43 | }
44 |
45 | protected override void OnEnter(EventArgs e)
46 | {
47 | ForeColor = Color.Orange;
48 | }
49 |
50 | protected override void OnLeave(EventArgs e)
51 | {
52 | ForeColor = SystemColors.ControlDark;
53 | }
54 | }
55 |
56 | public class CPDLCResponse
57 | {
58 | public string DataType { get; set; }
59 | public int MessageID { get; set; }
60 | public int ResponseID { get; set; }
61 | public string Responses { get; set; }
62 |
63 | }
64 |
65 | public class AccessibleLabel : Label
66 | {
67 | private readonly Color foreColor;
68 | public AccessibleLabel(Color _foreColor)
69 | {
70 | SetStyle(ControlStyles.Selectable, true);
71 | foreColor = _foreColor;
72 | }
73 |
74 | protected override void OnEnter(EventArgs e)
75 | {
76 | ForeColor = Color.Orange;
77 | }
78 |
79 | protected override void OnLeave(EventArgs e)
80 | {
81 | ForeColor = foreColor;
82 | }
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/EasyCPDLC/Contract.cs:
--------------------------------------------------------------------------------
1 | /* EASYCPDLC: CPDLC Client for the VATSIM Network
2 | Copyright (C) 2021 Joshua Seagrave joshseagrave@googlemail.com
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see .
16 | */
17 |
18 | using System;
19 | using System.Timers;
20 |
21 | namespace EasyCPDLC
22 | {
23 | class Contract
24 | {
25 | public string sender;
26 | public string contractLength;
27 | private Timer timer;
28 | readonly private MainForm parent;
29 |
30 | public Contract(MainForm _parent, string _sender, string _timeSpan)
31 | {
32 | parent = _parent;
33 | sender = _sender;
34 | contractLength = _timeSpan;
35 | }
36 |
37 | public void StartContract()
38 | {
39 | timer = new Timer(Convert.ToInt32(contractLength) * 1000)
40 | {
41 | AutoReset = true
42 | };
43 | timer.Elapsed += new ElapsedEventHandler(SendReply);
44 | timer.Start();
45 | }
46 |
47 | private async void SendReply(Object source, ElapsedEventArgs e)
48 | {
49 | try
50 | {
51 | if (MainForm.UseFSUIPC)
52 | {
53 | string message = String.Format("REPORT {0} {1} {2} {3} {4}",
54 | parent.callsign,
55 | DateTime.UtcNow.ToString("ddHHmm"),
56 | Math.Round(parent.fsuipc.position.Latitude.DecimalDegrees, 5),
57 | Math.Round(parent.fsuipc.position.Longitude.DecimalDegrees, 5),
58 | Math.Round(parent.fsuipc.altitude.Feet / 100));
59 | await parent.SendCPDLCMessage(sender, "ADS-C", message, false);
60 | }
61 | }
62 | catch { }
63 | }
64 |
65 | public void StopContract()
66 | {
67 | timer.Stop();
68 | timer.Dispose();
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/EasyCPDLC/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | False
24 |
25 |
26 | True
27 |
28 |
29 |
30 |
31 |
32 | False
33 |
34 |
35 | 0, 0
36 |
37 |
38 | 0, 0
39 |
40 |
41 | 0, 0
42 |
43 |
44 | 0, 0
45 |
46 |
47 | 0, 0
48 |
49 |
50 | 0, 0
51 |
52 |
53 | 0
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/EasyCPDLC/FSUIPCData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using FSUIPC;
7 |
8 | namespace EasyCPDLC
9 | {
10 | public class FSUIPCData
11 | {
12 | public FsAltitude altitude;
13 | public int groundspeed;
14 | public FsLatLonPoint position;
15 | FsLatitude latitude;
16 | FsLongitude longitude;
17 | int pDelta;
18 |
19 | readonly Offset altOffset = new(0x3324);
20 | readonly Offset pOffset = new(0x0330);
21 | readonly Offset gsOffset = new(0x02B4);
22 | readonly Offset feetOrMeters = new(0x0C18);
23 | readonly Offset latOffset = new(0x0560);
24 | readonly Offset lonOffset = new(0x0568);
25 |
26 | public static bool OpenConnection()
27 | {
28 | try
29 | {
30 | FSUIPCConnection.Open();
31 | if (FSUIPCConnection.IsOpen)
32 | {
33 | return true;
34 | }
35 | return false;
36 | }
37 | catch
38 | {
39 | return false;
40 | }
41 |
42 | }
43 |
44 | public static bool CloseConnection()
45 | {
46 | {
47 | try
48 | {
49 | FSUIPCConnection.Close();
50 | return false;
51 | }
52 | catch
53 | {
54 | return false;
55 | }
56 |
57 | }
58 | }
59 |
60 | public Task RefreshData()
61 | {
62 | if (FSUIPCConnection.IsOpen)
63 | {
64 | FSUIPCConnection.Process();
65 | latitude = new FsLatitude(latOffset.Value);
66 | longitude = new FsLongitude(lonOffset.Value);
67 | position = new FsLatLonPoint(latitude, longitude);
68 | pDelta = pOffset.Value / 16 - 1013;
69 | altitude = feetOrMeters.Value > 1 ? FsAltitude.FromMetres(altOffset.Value - (10 * pDelta)) : FsAltitude.FromFeet(altOffset.Value - (30 * pDelta));
70 | groundspeed = (int)Math.Round(gsOffset.Value / 65536 * 1.94384);
71 |
72 | }
73 | else
74 | {
75 | throw new FSUIPCException(FSUIPCError.FSUIPC_ERR_NOTOPEN, "Can't Refresh, Connection isn't open");
76 | }
77 |
78 | return Task.CompletedTask;
79 | }
80 |
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/EasyCPDLC/SimbriefJSON.cs:
--------------------------------------------------------------------------------
1 | #pragma warning disable IDE1006 // Naming Styles
2 |
3 | /* EASYCPDLC: CPDLC Client for the VATSIM Network
4 | Copyright (C) 2021 Joshua Seagrave joshseagrave@googlemail.com
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see .
18 | */
19 |
20 | namespace EasyCPDLC
21 | {
22 |
23 | public class Navlog
24 | {
25 | public Fix[] fix { get; set; }
26 | }
27 |
28 | public class Fix
29 | {
30 | public string ident { get; set; }
31 | public string name { get; set; }
32 | public string type { get; set; }
33 | public object frequency { get; set; }
34 | public string pos_lat { get; set; }
35 | public string pos_long { get; set; }
36 | public string stage { get; set; }
37 | public string via_airway { get; set; }
38 | public string is_sid_star { get; set; }
39 | public string distance { get; set; }
40 | public string track_true { get; set; }
41 | public string track_mag { get; set; }
42 | public string heading_true { get; set; }
43 | public string heading_mag { get; set; }
44 | public string altitude_feet { get; set; }
45 | public string ind_airspeed { get; set; }
46 | public string true_airspeed { get; set; }
47 | public string mach { get; set; }
48 | public string mach_thousandths { get; set; }
49 | public string wind_component { get; set; }
50 | public string groundspeed { get; set; }
51 | public string time_leg { get; set; }
52 | public string time_total { get; set; }
53 | public string fuel_flow { get; set; }
54 | public string fuel_leg { get; set; }
55 | public string fuel_totalused { get; set; }
56 | public string fuel_min_onboard { get; set; }
57 | public string fuel_plan_onboard { get; set; }
58 | public string oat { get; set; }
59 | public string oat_isa_dev { get; set; }
60 | public string wind_dir { get; set; }
61 | public string wind_spd { get; set; }
62 | public string shear { get; set; }
63 | public string tropopause_feet { get; set; }
64 | public string ground_height { get; set; }
65 | public string mora { get; set; }
66 | public string fir { get; set; }
67 | public string fir_units { get; set; }
68 | public string fir_valid_levels { get; set; }
69 | public object wind_data { get; set; }
70 | public object fir_crossing { get; set; }
71 | }
72 | }
--------------------------------------------------------------------------------
/EasyCPDLC/FlashWindow.cs:
--------------------------------------------------------------------------------
1 | /* EASYCPDLC: CPDLC Client for the VATSIM Network
2 | Copyright (C) 2021 Joshua Seagrave joshseagrave@googlemail.com
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see .
16 | */
17 | using System;
18 | using System.Runtime.InteropServices;
19 |
20 | namespace EasyCPDLC
21 | {
22 | public static class FlashWindow
23 | {
24 | [DllImport("user32.dll")]
25 | [return: MarshalAs(UnmanagedType.Bool)]
26 | private static extern bool FlashWindowEx(ref FLASHWINFO pwfi);
27 |
28 | [StructLayout(LayoutKind.Sequential)]
29 | private struct FLASHWINFO
30 | {
31 | public uint cbSize;
32 | public IntPtr hwnd;
33 | public uint dwFlags;
34 | public uint uCount;
35 | public uint dwTimeout;
36 | }
37 | public const uint FLASHW_STOP = 0;
38 | public const uint FLASHW_CAPTION = 1;
39 | public const uint FLASHW_TRAY = 2;
40 | public const uint FLASHW_ALL = 3;
41 | public const uint FLASHW_TIMER = 4;
42 | public const uint FLASHW_TIMERNOFG = 12;
43 |
44 | public static bool Flash(System.Windows.Forms.Form form)
45 | {
46 | // Make sure we're running under Windows 2000 or later
47 | if (Win2000OrLater)
48 | {
49 | FLASHWINFO fi = Create_FLASHWINFO(form.Handle, FLASHW_ALL | FLASHW_TIMERNOFG, uint.MaxValue, 0);
50 | return FlashWindowEx(ref fi);
51 | }
52 | return false;
53 | }
54 |
55 | private static FLASHWINFO Create_FLASHWINFO(IntPtr handle, uint flags, uint count, uint timeout)
56 | {
57 | FLASHWINFO fi = new();
58 | fi.cbSize = Convert.ToUInt32(Marshal.SizeOf(fi));
59 | fi.hwnd = handle;
60 | fi.dwFlags = flags;
61 | fi.uCount = count;
62 | fi.dwTimeout = timeout;
63 | return fi;
64 | }
65 | public static bool Flash(System.Windows.Forms.Form form, uint count)
66 | {
67 | if (Win2000OrLater)
68 | {
69 | FLASHWINFO fi = Create_FLASHWINFO(form.Handle, FLASHW_ALL, count, 0);
70 | return FlashWindowEx(ref fi);
71 | }
72 | return false;
73 | }
74 |
75 | public static bool Start(System.Windows.Forms.Form form)
76 | {
77 | if (Win2000OrLater)
78 | {
79 | FLASHWINFO fi = Create_FLASHWINFO(form.Handle, FLASHW_ALL, uint.MaxValue, 0);
80 | return FlashWindowEx(ref fi);
81 | }
82 | return false;
83 | }
84 | public static bool Stop(System.Windows.Forms.Form form)
85 | {
86 | if (Win2000OrLater)
87 | {
88 | FLASHWINFO fi = Create_FLASHWINFO(form.Handle, FLASHW_STOP, uint.MaxValue, 0);
89 | return FlashWindowEx(ref fi);
90 | }
91 | return false;
92 | }
93 | private static bool Win2000OrLater
94 | {
95 | get { return System.Environment.OSVersion.Version.Major >= 5; }
96 | }
97 | }
98 |
99 | }
100 |
--------------------------------------------------------------------------------
/EasyCPDLC/DataEntry.cs:
--------------------------------------------------------------------------------
1 | /* EASYCPDLC: CPDLC Client for the VATSIM Network
2 | Copyright (C) 2021 Joshua Seagrave joshseagrave@googlemail.com
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see .
16 | */
17 |
18 |
19 |
20 | using System;
21 | using System.Windows.Forms;
22 |
23 | namespace EasyCPDLC
24 | {
25 | public partial class DataEntry : Form
26 | {
27 | public const int WM_NCLBUTTONDOWN = 0xA1;
28 | public const int HT_CAPTION = 0x2;
29 |
30 | [System.Runtime.InteropServices.DllImport("user32.dll")]
31 | private static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
32 | [System.Runtime.InteropServices.DllImport("user32.dll")]
33 | private static extern bool ReleaseCapture();
34 | public string HoppieLogonCode { get; set; }
35 | public int VatsimCID { get; set; }
36 | public bool Remember { get; set; }
37 | public DataEntry(object _hoppieLogonCode = null, object _vatsimCID = null)
38 | {
39 | InitializeComponent();
40 |
41 | try
42 | {
43 |
44 | if (_hoppieLogonCode is not null)
45 | {
46 | hoppieCodeTextBox.Text = _hoppieLogonCode.ToString();
47 | }
48 | else
49 | {
50 | throw new Exception();
51 | }
52 | if (_vatsimCID is not null)
53 | {
54 | vatsimCIDTextBox.Text = _vatsimCID.ToString();
55 | }
56 | else
57 | {
58 | throw new Exception();
59 | }
60 | rememberCheckBox.Checked = true;
61 | }
62 |
63 | catch (Exception)
64 | {
65 | hoppieCodeTextBox.Text = "";
66 | vatsimCIDTextBox.Text = "";
67 | rememberCheckBox.Checked = false;
68 | }
69 | }
70 |
71 | private void ExitButton_Click(object sender, EventArgs e)
72 | {
73 | this.Close();
74 | }
75 |
76 | private void ConnectButton_Click(object sender, EventArgs e)
77 | {
78 | try
79 | {
80 | HoppieLogonCode = hoppieCodeTextBox.Text;
81 | VatsimCID = Convert.ToInt32(vatsimCIDTextBox.Text);
82 | Remember = rememberCheckBox.Checked;
83 |
84 | this.DialogResult = DialogResult.OK;
85 | }
86 | catch (FormatException)
87 | {
88 | MessageBox.Show("Invalid CID/Code, please check and try again.", "Error!", MessageBoxButtons.OK);
89 | }
90 |
91 | }
92 |
93 | private void HoppieCodeTextBox_TextChanged(object sender, EventArgs e)
94 | {
95 | try
96 | {
97 | if (vatsimCIDTextBox.Text.Length < 1 || hoppieCodeTextBox.Text.Length < 1)
98 | {
99 | throw new FormatException();
100 | }
101 |
102 | Convert.ToInt32(vatsimCIDTextBox.Text);
103 | connectButton.Enabled = true;
104 |
105 | }
106 | catch (FormatException)
107 | {
108 | connectButton.Enabled = false;
109 | }
110 | }
111 |
112 | private void VatsimCIDTextBox_TextChanged(object sender, EventArgs e)
113 | {
114 | try
115 | {
116 | if (vatsimCIDTextBox.Text.Length < 1 || hoppieCodeTextBox.Text.Length < 1)
117 | {
118 | throw new FormatException();
119 | }
120 |
121 | Convert.ToInt32(vatsimCIDTextBox.Text);
122 | connectButton.Enabled = true;
123 |
124 | }
125 | catch (FormatException)
126 | {
127 | connectButton.Enabled = false;
128 | }
129 | }
130 |
131 | private void DataEntry_MouseDown(object sender, MouseEventArgs e)
132 | {
133 | if (e.Button == MouseButtons.Left)
134 | {
135 | ReleaseCapture();
136 | _ = SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
137 | }
138 | }
139 |
140 | private void NumsOnly(object sender, KeyPressEventArgs e)
141 | {
142 | if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
143 | {
144 | e.Handled = true;
145 | }
146 | }
147 | }
148 | }
149 |
--------------------------------------------------------------------------------
/EasyCPDLC/UITextBox.cs:
--------------------------------------------------------------------------------
1 | /* EASYCPDLC: CPDLC Client for the VATSIM Network
2 | Copyright (C) 2021 Joshua Seagrave joshseagrave@googlemail.com
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see .
16 | */
17 |
18 |
19 |
20 | using System;
21 | using System.Drawing;
22 | using System.Windows.Forms;
23 |
24 | namespace EasyCPDLC
25 | {
26 | public class UITextBox : TextBox
27 | {
28 |
29 | public UITextBox(Color _color)
30 | {
31 | BorderStyle = BorderStyle.None;
32 | AutoSize = false;
33 | Margin = new Padding(0, 5, 0, -5);
34 | //Controls.Add(new Label()
35 | //{ Height = 1, Dock = DockStyle.Bottom, BackColor = _color, Margin = new Padding(0, -10, 0, 0) });
36 | }
37 | }
38 |
39 | public partial class TabControlWithoutHeader : TabControl
40 | {
41 | public TabControlWithoutHeader()
42 | {
43 | if (!this.DesignMode) this.Multiline = true;
44 | }
45 |
46 | protected override void WndProc(ref Message m)
47 | {
48 | if (m.Msg == 0x1328 && !this.DesignMode)
49 | m.Result = new IntPtr(1);
50 | else
51 | base.WndProc(ref m);
52 | }
53 | }
54 |
55 | public class TimerLabel : Label
56 | {
57 | readonly Timer blinkTimer = new();
58 | private bool _canFlash = false;
59 | public bool CanFlash
60 | {
61 | get
62 | {
63 | return _canFlash;
64 | }
65 | set
66 | {
67 | _canFlash = value;
68 | if(_canFlash)
69 | {
70 | blinkTimer.Start();
71 | }
72 | else
73 | {
74 | blinkTimer.Stop();
75 | ForeColor = SystemColors.ControlLight;
76 | }
77 | }
78 | }
79 | public TimerLabel()
80 | {
81 | blinkTimer.Interval = 500;
82 | blinkTimer.Tick += new EventHandler(FlashElement);
83 | SetStyle(ControlStyles.Selectable, true);
84 | }
85 |
86 | public void FlashElement(object sender, EventArgs e)
87 | {
88 | this.ForeColor = this.ForeColor == Color.Orange ? SystemColors.ControlLight : Color.Orange;
89 | }
90 | }
91 |
92 | public class RoundPanel : Panel
93 | {
94 | [System.Runtime.InteropServices.DllImport("gdi32.dll", EntryPoint = "CreateRoundRectRgn")]
95 | private static extern IntPtr CreateRoundRectRgn
96 | (
97 | int nLeftRect, // X-coordinate of upper-left corner or padding at start
98 | int nTopRect,// Y-coordinate of upper-left corner or padding at the top of the textbox
99 | int nRightRect, // X-coordinate of lower-right corner or Width of the object
100 | int nBottomRect,// Y-coordinate of lower-right corner or Height of the object
101 | //RADIUS, how round do you want it to be?
102 | int nheightRect, //height of ellipse
103 | int nweightRect //width of ellipse
104 | );
105 | protected override void OnResize(EventArgs e)
106 | {
107 | base.OnCreateControl();
108 | this.Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(2, 3, this.Width, this.Height, 15, 15));
109 | this.BorderStyle = BorderStyle.FixedSingle;
110 | }
111 | }
112 |
113 | public class UICheckBox : CheckBox
114 | {
115 | public string group;
116 | public UICheckBox(string _group)
117 | {
118 | group = _group;
119 | FlatStyle = FlatStyle.Flat;
120 | TextAlign = ContentAlignment.MiddleRight;
121 | FlatAppearance.BorderSize = 0;
122 | AutoSize = false;
123 | Margin = new Padding(0, 5, 0, -10);
124 | }
125 |
126 | protected override void OnPaint(PaintEventArgs pevent)
127 | {
128 | pevent.Graphics.Clear(BackColor);
129 |
130 | using (SolidBrush brush = new(ForeColor))
131 | pevent.Graphics.DrawString(Text, Font, brush, 27, 4);
132 |
133 | Point pt = new(4, 4);
134 | Rectangle rect = new(pt, new Size(16, 16));
135 |
136 | pevent.Graphics.FillRectangle(new SolidBrush(BackColor), rect);
137 |
138 | if (Checked)
139 | {
140 | using SolidBrush brush = new(ForeColor);
141 | pevent.Graphics.FillEllipse(brush, pt.X + 4, pt.Y + 4, 8, 8);
142 | }
143 | pevent.Graphics.DrawRectangle(SystemPens.ControlLight, rect);
144 | }
145 | }
146 | }
147 |
--------------------------------------------------------------------------------
/EasyCPDLC/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace EasyCPDLC.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EasyCPDLC.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 |
63 | ///
64 | /// Looks up a localized resource of type System.Byte[].
65 | ///
66 | internal static byte[] B612Mono_Bold {
67 | get {
68 | object obj = ResourceManager.GetObject("B612Mono_Bold", resourceCulture);
69 | return ((byte[])(obj));
70 | }
71 | }
72 |
73 | ///
74 | /// Looks up a localized resource of type System.Byte[].
75 | ///
76 | internal static byte[] B612Mono_Regular {
77 | get {
78 | object obj = ResourceManager.GetObject("B612Mono_Regular", resourceCulture);
79 | return ((byte[])(obj));
80 | }
81 | }
82 |
83 | ///
84 | /// Looks up a localized resource of type System.Drawing.Bitmap.
85 | ///
86 | internal static System.Drawing.Bitmap cog_wheel_gear_setting {
87 | get {
88 | object obj = ResourceManager.GetObject("cog_wheel_gear_setting", resourceCulture);
89 | return ((System.Drawing.Bitmap)(obj));
90 | }
91 | }
92 |
93 | ///
94 | /// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream.
95 | ///
96 | internal static System.IO.UnmanagedMemoryStream notification {
97 | get {
98 | return ResourceManager.GetStream("notification", resourceCulture);
99 | }
100 | }
101 |
102 | ///
103 | /// Looks up a localized resource of type System.Byte[].
104 | ///
105 | internal static byte[] Oxygen_Bold {
106 | get {
107 | object obj = ResourceManager.GetObject("Oxygen_Bold", resourceCulture);
108 | return ((byte[])(obj));
109 | }
110 | }
111 |
112 | ///
113 | /// Looks up a localized resource of type System.Byte[].
114 | ///
115 | internal static byte[] Oxygen_Regular {
116 | get {
117 | object obj = ResourceManager.GetObject("Oxygen_Regular", resourceCulture);
118 | return ((byte[])(obj));
119 | }
120 | }
121 |
122 | ///
123 | /// Looks up a localized resource of type System.Drawing.Bitmap.
124 | ///
125 | internal static System.Drawing.Bitmap Stretchboard {
126 | get {
127 | object obj = ResourceManager.GetObject("Stretchboard", resourceCulture);
128 | return ((System.Drawing.Bitmap)(obj));
129 | }
130 | }
131 | }
132 | }
133 |
--------------------------------------------------------------------------------
/EasyCPDLC/SettingsForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/EasyCPDLC/EasyCPDLC.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | net6.0-windows
4 | win-x64
5 | WinExe
6 | false
7 | false
8 | Publish\
9 | true
10 | Disk
11 | false
12 | Foreground
13 | 7
14 | Days
15 | false
16 | false
17 | true
18 | 4
19 | 0.2.0.0
20 | false
21 | true
22 | true
23 | false
24 | true
25 | true
26 | true
27 |
28 |
29 |
30 |
31 |
32 |
33 | none
34 |
35 |
36 |
37 |
38 | EZCPDLCIcon_64.ico
39 |
40 |
41 | EasyCPDLC.Program
42 |
43 |
44 | F339CE3C5CA372BD21B7D46BC9C1A2CD4DDD37C0
45 |
46 |
47 | EasyCPDLC_TemporaryKey.pfx
48 |
49 |
50 | true
51 |
52 |
53 | false
54 |
55 |
56 |
57 |
58 |
59 |
60 | true
61 | False
62 |
63 |
64 |
65 |
66 |
67 |
68 | Component
69 |
70 |
71 | True
72 | True
73 | Resources.resx
74 |
75 |
76 | True
77 | True
78 | Settings.settings
79 |
80 |
81 | Component
82 |
83 |
84 |
85 | PreserveNewest
86 |
87 |
88 | Never
89 |
90 |
91 | Never
92 |
93 |
94 | Never
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 | False
105 | Microsoft .NET Framework 4.7.2 %28x86 and x64%29
106 | true
107 |
108 |
109 | False
110 | .NET Framework 3.5 SP1
111 | false
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 | all
125 |
126 |
127 |
128 |
129 |
130 | ResXFileCodeGenerator
131 | Resources.Designer.cs
132 |
133 |
134 |
135 |
136 | SettingsSingleFileGenerator
137 | Settings.Designer.cs
138 |
139 |
140 | Never
141 |
142 |
143 |
--------------------------------------------------------------------------------
/EasyCPDLC/VATSIMJSON.cs:
--------------------------------------------------------------------------------
1 | #pragma warning disable IDE1006 // Naming Styles
2 |
3 | /* EASYCPDLC: CPDLC Client for the VATSIM Network
4 | Copyright (C) 2022 Joshua Seagrave joshseagrave@googlemail.com
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see .
18 | */
19 |
20 | using System;
21 |
22 | namespace EasyCPDLC
23 | {
24 |
25 | public class VATSIMRootobject
26 | {
27 | public VATSIMGeneral general { get; set; }
28 | public Pilot[] pilots { get; set; }
29 | public Controller[] controllers { get; set; }
30 | public Atis[] atis { get; set; }
31 | public Server[] servers { get; set; }
32 | public Prefile[] prefiles { get; set; }
33 | public Facility[] facilities { get; set; }
34 | public Rating[] ratings { get; set; }
35 | public Pilot_Ratings[] pilot_ratings { get; set; }
36 | }
37 |
38 | public class VATSIMGeneral
39 | {
40 |
41 | public int version { get; set; }
42 | public int reload { get; set; }
43 | public string update { get; set; }
44 | public DateTime update_timestamp { get; set; }
45 | public int connected_clients { get; set; }
46 | public int unique_users { get; set; }
47 | }
48 |
49 | public class Pilot
50 | {
51 | public int cid { get; set; }
52 | public string name { get; set; }
53 | public string callsign { get; set; }
54 | public string server { get; set; }
55 | public int pilot_rating { get; set; }
56 | public float latitude { get; set; }
57 | public float longitude { get; set; }
58 | public int altitude { get; set; }
59 | public int groundspeed { get; set; }
60 | public string transponder { get; set; }
61 | public int heading { get; set; }
62 | public float qnh_i_hg { get; set; }
63 | public int qnh_mb { get; set; }
64 | public Flight_Plan flight_plan { get; set; }
65 | public DateTime logon_time { get; set; }
66 | public DateTime last_updated { get; set; }
67 | }
68 |
69 | public class Flight_Plan
70 | {
71 | public string flight_rules { get; set; }
72 | public string aircraft { get; set; }
73 | public string aircraft_faa { get; set; }
74 | public string aircraft_short { get; set; }
75 | public string departure { get; set; }
76 | public string arrival { get; set; }
77 | public string alternate { get; set; }
78 | public string cruise_tas { get; set; }
79 | public string altitude { get; set; }
80 | public string deptime { get; set; }
81 | public string enroute_time { get; set; }
82 | public string fuel_time { get; set; }
83 | public string remarks { get; set; }
84 | public string route { get; set; }
85 | public int revision_id { get; set; }
86 | public string assigned_transponder { get; set; }
87 | }
88 |
89 | public class Controller
90 | {
91 | public int cid { get; set; }
92 | public string name { get; set; }
93 | public string callsign { get; set; }
94 | public string frequency { get; set; }
95 | public int facility { get; set; }
96 | public int rating { get; set; }
97 | public string server { get; set; }
98 | public int visual_range { get; set; }
99 | public string[] text_atis { get; set; }
100 | public DateTime last_updated { get; set; }
101 | public DateTime logon_time { get; set; }
102 | }
103 |
104 | public class Atis
105 | {
106 | public int cid { get; set; }
107 | public string name { get; set; }
108 | public string callsign { get; set; }
109 | public string frequency { get; set; }
110 | public int facility { get; set; }
111 | public int rating { get; set; }
112 | public string server { get; set; }
113 | public int visual_range { get; set; }
114 | public string atis_code { get; set; }
115 | public string[] text_atis { get; set; }
116 | public DateTime last_updated { get; set; }
117 | public DateTime logon_time { get; set; }
118 | }
119 |
120 | public class Server
121 | {
122 | public string ident { get; set; }
123 | public string hostname_or_ip { get; set; }
124 | public string location { get; set; }
125 | public string name { get; set; }
126 | public int clients_connection_allowed { get; set; }
127 | public bool client_connections_allowed { get; set; }
128 | public bool is_sweatbox { get; set; }
129 | }
130 |
131 | public class Prefile
132 | {
133 | public int cid { get; set; }
134 | public string name { get; set; }
135 | public string callsign { get; set; }
136 | public VATSIMFlight_Plan flight_plan { get; set; }
137 | public DateTime last_updated { get; set; }
138 | }
139 |
140 | public class VATSIMFlight_Plan
141 | {
142 | public string flight_rules { get; set; }
143 | public string aircraft { get; set; }
144 | public string aircraft_faa { get; set; }
145 | public string aircraft_short { get; set; }
146 | public string departure { get; set; }
147 | public string arrival { get; set; }
148 | public string alternate { get; set; }
149 | public string cruise_tas { get; set; }
150 | public string altitude { get; set; }
151 | public string deptime { get; set; }
152 | public string enroute_time { get; set; }
153 | public string fuel_time { get; set; }
154 | public string remarks { get; set; }
155 | public string route { get; set; }
156 | public int revision_id { get; set; }
157 | public string assigned_transponder { get; set; }
158 | }
159 |
160 | public class Facility
161 | {
162 | public int id { get; set; }
163 | public string _short { get; set; }
164 | public string _long { get; set; }
165 | }
166 |
167 | public class Rating
168 | {
169 | public int id { get; set; }
170 | public string _short { get; set; }
171 | public string _long { get; set; }
172 | }
173 |
174 | public class Pilot_Ratings
175 | {
176 | public int id { get; set; }
177 | public string short_name { get; set; }
178 | public string long_name { get; set; }
179 | }
180 |
181 | }
--------------------------------------------------------------------------------
/EasyCPDLC/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace EasyCPDLC.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.2.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 |
26 | [global::System.Configuration.UserScopedSettingAttribute()]
27 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
28 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
29 | public bool StayOnTop {
30 | get {
31 | return ((bool)(this["StayOnTop"]));
32 | }
33 | set {
34 | this["StayOnTop"] = value;
35 | }
36 | }
37 |
38 | [global::System.Configuration.UserScopedSettingAttribute()]
39 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
40 | [global::System.Configuration.DefaultSettingValueAttribute("True")]
41 | public bool PlayAudibleAlert {
42 | get {
43 | return ((bool)(this["PlayAudibleAlert"]));
44 | }
45 | set {
46 | this["PlayAudibleAlert"] = value;
47 | }
48 | }
49 |
50 | [global::System.Configuration.UserScopedSettingAttribute()]
51 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
52 | [global::System.Configuration.DefaultSettingValueAttribute("")]
53 | public string SimbriefUsername {
54 | get {
55 | return ((string)(this["SimbriefUsername"]));
56 | }
57 | set {
58 | this["SimbriefUsername"] = value;
59 | }
60 | }
61 |
62 | [global::System.Configuration.UserScopedSettingAttribute()]
63 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
64 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
65 | public bool UseFSUIPC {
66 | get {
67 | return ((bool)(this["UseFSUIPC"]));
68 | }
69 | set {
70 | this["UseFSUIPC"] = value;
71 | }
72 | }
73 |
74 | [global::System.Configuration.UserScopedSettingAttribute()]
75 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
76 | [global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
77 | public global::System.Drawing.Point MainWindowLocation {
78 | get {
79 | return ((global::System.Drawing.Point)(this["MainWindowLocation"]));
80 | }
81 | set {
82 | this["MainWindowLocation"] = value;
83 | }
84 | }
85 |
86 | [global::System.Configuration.UserScopedSettingAttribute()]
87 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
88 | [global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
89 | public global::System.Drawing.Size MainWindowSize {
90 | get {
91 | return ((global::System.Drawing.Size)(this["MainWindowSize"]));
92 | }
93 | set {
94 | this["MainWindowSize"] = value;
95 | }
96 | }
97 |
98 | [global::System.Configuration.UserScopedSettingAttribute()]
99 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
100 | [global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
101 | public global::System.Drawing.Point TelexWindowLocation {
102 | get {
103 | return ((global::System.Drawing.Point)(this["TelexWindowLocation"]));
104 | }
105 | set {
106 | this["TelexWindowLocation"] = value;
107 | }
108 | }
109 |
110 | [global::System.Configuration.UserScopedSettingAttribute()]
111 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
112 | [global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
113 | public global::System.Drawing.Size TelexWindowSize {
114 | get {
115 | return ((global::System.Drawing.Size)(this["TelexWindowSize"]));
116 | }
117 | set {
118 | this["TelexWindowSize"] = value;
119 | }
120 | }
121 |
122 | [global::System.Configuration.UserScopedSettingAttribute()]
123 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
124 | [global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
125 | public global::System.Drawing.Point CPDLCWindowLocation {
126 | get {
127 | return ((global::System.Drawing.Point)(this["CPDLCWindowLocation"]));
128 | }
129 | set {
130 | this["CPDLCWindowLocation"] = value;
131 | }
132 | }
133 |
134 | [global::System.Configuration.UserScopedSettingAttribute()]
135 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
136 | [global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
137 | public global::System.Drawing.Size CPDLCWindowSize {
138 | get {
139 | return ((global::System.Drawing.Size)(this["CPDLCWindowSize"]));
140 | }
141 | set {
142 | this["CPDLCWindowSize"] = value;
143 | }
144 | }
145 |
146 | [global::System.Configuration.UserScopedSettingAttribute()]
147 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
148 | [global::System.Configuration.DefaultSettingValueAttribute("0")]
149 | public int CID {
150 | get {
151 | return ((int)(this["CID"]));
152 | }
153 | set {
154 | this["CID"] = value;
155 | }
156 | }
157 |
158 | [global::System.Configuration.UserScopedSettingAttribute()]
159 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
160 | [global::System.Configuration.DefaultSettingValueAttribute("")]
161 | public string HoppieCode {
162 | get {
163 | return ((string)(this["HoppieCode"]));
164 | }
165 | set {
166 | this["HoppieCode"] = value;
167 | }
168 | }
169 | }
170 | }
171 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.rsuser
8 | *.suo
9 | *.user
10 | *.userosscache
11 | *.sln.docstates
12 |
13 | # User-specific files (MonoDevelop/Xamarin Studio)
14 | *.userprefs
15 |
16 | # Build results
17 | [Dd]ebug/
18 | [Dd]ebugPublic/
19 | [Rr]elease/
20 | [Rr]eleases/
21 | x64/
22 | x86/
23 | [Aa][Rr][Mm]/
24 | [Aa][Rr][Mm]64/
25 | bld/
26 | [Bb]in/
27 | [Oo]bj/
28 | [Ll]og/
29 |
30 | # Visual Studio 2015/2017 cache/options directory
31 | .vs/
32 | # Uncomment if you have tasks that create the project's static files in wwwroot
33 | #wwwroot/
34 |
35 | # Visual Studio 2017 auto generated files
36 | Generated\ Files/
37 |
38 | # MSTest test Results
39 | [Tt]est[Rr]esult*/
40 | [Bb]uild[Ll]og.*
41 |
42 | # NUNIT
43 | *.VisualState.xml
44 | TestResult.xml
45 |
46 | # Build Results of an ATL Project
47 | [Dd]ebugPS/
48 | [Rr]eleasePS/
49 | dlldata.c
50 |
51 | # Benchmark Results
52 | BenchmarkDotNet.Artifacts/
53 |
54 | # .NET Core
55 | project.lock.json
56 | project.fragment.lock.json
57 | artifacts/
58 |
59 | # StyleCop
60 | StyleCopReport.xml
61 |
62 | # Files built by Visual Studio
63 | *_i.c
64 | *_p.c
65 | *_h.h
66 | *.ilk
67 | *.meta
68 | *.obj
69 | *.iobj
70 | *.pch
71 | *.pdb
72 | *.ipdb
73 | *.pgc
74 | *.pgd
75 | *.rsp
76 | *.sbr
77 | *.tlb
78 | *.tli
79 | *.tlh
80 | *.tmp
81 | *.tmp_proj
82 | *_wpftmp.csproj
83 | *.log
84 | *.vspscc
85 | *.vssscc
86 | .builds
87 | *.pidb
88 | *.svclog
89 | *.scc
90 |
91 | # Chutzpah Test files
92 | _Chutzpah*
93 |
94 | # Visual C++ cache files
95 | ipch/
96 | *.aps
97 | *.ncb
98 | *.opendb
99 | *.opensdf
100 | *.sdf
101 | *.cachefile
102 | *.VC.db
103 | *.VC.VC.opendb
104 |
105 | # Visual Studio profiler
106 | *.psess
107 | *.vsp
108 | *.vspx
109 | *.sap
110 |
111 | # Visual Studio Trace Files
112 | *.e2e
113 |
114 | # TFS 2012 Local Workspace
115 | $tf/
116 |
117 | # Guidance Automation Toolkit
118 | *.gpState
119 |
120 | # ReSharper is a .NET coding add-in
121 | _ReSharper*/
122 | *.[Rr]e[Ss]harper
123 | *.DotSettings.user
124 |
125 | # JustCode is a .NET coding add-in
126 | .JustCode
127 |
128 | # TeamCity is a build add-in
129 | _TeamCity*
130 |
131 | # DotCover is a Code Coverage Tool
132 | *.dotCover
133 |
134 | # AxoCover is a Code Coverage Tool
135 | .axoCover/*
136 | !.axoCover/settings.json
137 |
138 | # Visual Studio code coverage results
139 | *.coverage
140 | *.coveragexml
141 |
142 | # NCrunch
143 | _NCrunch_*
144 | .*crunch*.local.xml
145 | nCrunchTemp_*
146 |
147 | # MightyMoose
148 | *.mm.*
149 | AutoTest.Net/
150 |
151 | # Web workbench (sass)
152 | .sass-cache/
153 |
154 | # Installshield output folder
155 | [Ee]xpress/
156 |
157 | # DocProject is a documentation generator add-in
158 | DocProject/buildhelp/
159 | DocProject/Help/*.HxT
160 | DocProject/Help/*.HxC
161 | DocProject/Help/*.hhc
162 | DocProject/Help/*.hhk
163 | DocProject/Help/*.hhp
164 | DocProject/Help/Html2
165 | DocProject/Help/html
166 |
167 | # Click-Once directory
168 | publish/
169 |
170 | # Publish Web Output
171 | *.[Pp]ublish.xml
172 | *.azurePubxml
173 | # Note: Comment the next line if you want to checkin your web deploy settings,
174 | # but database connection strings (with potential passwords) will be unencrypted
175 | *.pubxml
176 | *.publishproj
177 |
178 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
179 | # checkin your Azure Web App publish settings, but sensitive information contained
180 | # in these scripts will be unencrypted
181 | PublishScripts/
182 |
183 | # NuGet Packages
184 | *.nupkg
185 | # The packages folder can be ignored because of Package Restore
186 | **/[Pp]ackages/*
187 | # except build/, which is used as an MSBuild target.
188 | !**/[Pp]ackages/build/
189 | # Uncomment if necessary however generally it will be regenerated when needed
190 | #!**/[Pp]ackages/repositories.config
191 | # NuGet v3's project.json files produces more ignorable files
192 | *.nuget.props
193 | *.nuget.targets
194 |
195 | # Microsoft Azure Build Output
196 | csx/
197 | *.build.csdef
198 |
199 | # Microsoft Azure Emulator
200 | ecf/
201 | rcf/
202 |
203 | # Windows Store app package directories and files
204 | AppPackages/
205 | BundleArtifacts/
206 | Package.StoreAssociation.xml
207 | _pkginfo.txt
208 | *.appx
209 |
210 | # Visual Studio cache files
211 | # files ending in .cache can be ignored
212 | *.[Cc]ache
213 | # but keep track of directories ending in .cache
214 | !?*.[Cc]ache/
215 |
216 | # Others
217 | ClientBin/
218 | ~$*
219 | *~
220 | *.dbmdl
221 | *.dbproj.schemaview
222 | *.jfm
223 | *.pfx
224 | *.publishsettings
225 | orleans.codegen.cs
226 |
227 | # Including strong name files can present a security risk
228 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
229 | #*.snk
230 |
231 | # Since there are multiple workflows, uncomment next line to ignore bower_components
232 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
233 | #bower_components/
234 |
235 | # RIA/Silverlight projects
236 | Generated_Code/
237 |
238 | # Backup & report files from converting an old project file
239 | # to a newer Visual Studio version. Backup files are not needed,
240 | # because we have git ;-)
241 | _UpgradeReport_Files/
242 | Backup*/
243 | UpgradeLog*.XML
244 | UpgradeLog*.htm
245 | ServiceFabricBackup/
246 | *.rptproj.bak
247 |
248 | # SQL Server files
249 | *.mdf
250 | *.ldf
251 | *.ndf
252 |
253 | # Business Intelligence projects
254 | *.rdl.data
255 | *.bim.layout
256 | *.bim_*.settings
257 | *.rptproj.rsuser
258 | *- Backup*.rdl
259 |
260 | # Microsoft Fakes
261 | FakesAssemblies/
262 |
263 | # GhostDoc plugin setting file
264 | *.GhostDoc.xml
265 |
266 | # Node.js Tools for Visual Studio
267 | .ntvs_analysis.dat
268 | node_modules/
269 |
270 | # Visual Studio 6 build log
271 | *.plg
272 |
273 | # Visual Studio 6 workspace options file
274 | *.opt
275 |
276 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
277 | *.vbw
278 |
279 | # Visual Studio LightSwitch build output
280 | **/*.HTMLClient/GeneratedArtifacts
281 | **/*.DesktopClient/GeneratedArtifacts
282 | **/*.DesktopClient/ModelManifest.xml
283 | **/*.Server/GeneratedArtifacts
284 | **/*.Server/ModelManifest.xml
285 | _Pvt_Extensions
286 |
287 | # Paket dependency manager
288 | .paket/paket.exe
289 | paket-files/
290 |
291 | # FAKE - F# Make
292 | .fake/
293 |
294 | # JetBrains Rider
295 | .idea/
296 | *.sln.iml
297 |
298 | # CodeRush personal settings
299 | .cr/personal
300 |
301 | # Python Tools for Visual Studio (PTVS)
302 | __pycache__/
303 | *.pyc
304 |
305 | # Cake - Uncomment if you are using it
306 | # tools/**
307 | # !tools/packages.config
308 |
309 | # Tabs Studio
310 | *.tss
311 |
312 | # Telerik's JustMock configuration file
313 | *.jmconfig
314 |
315 | # BizTalk build output
316 | *.btp.cs
317 | *.btm.cs
318 | *.odx.cs
319 | *.xsd.cs
320 |
321 | # OpenCover UI analysis results
322 | OpenCover/
323 |
324 | # Azure Stream Analytics local run output
325 | ASALocalRun/
326 |
327 | # MSBuild Binary and Structured Log
328 | *.binlog
329 |
330 | # NVidia Nsight GPU debugger configuration file
331 | *.nvuser
332 |
333 | # MFractors (Xamarin productivity tool) working folder
334 | .mfractor/
335 |
336 | # Local History for Visual Studio
337 | .localhistory/
338 |
339 | # BeatPulse healthcheck temp database
340 | healthchecksdb
--------------------------------------------------------------------------------
/EasyCPDLC/SettingsForm.cs:
--------------------------------------------------------------------------------
1 | /* EASYCPDLC: CPDLC Client for the VATSIM Network
2 | Copyright (C) 2021 Joshua Seagrave joshseagrave@googlemail.com
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see .
16 | */
17 |
18 | using System;
19 | using System.Drawing;
20 | using System.Windows.Forms;
21 |
22 | namespace EasyCPDLC
23 | {
24 |
25 | public partial class SettingsForm : Form
26 | {
27 |
28 | UICheckBox stayOnTopBox;
29 | UICheckBox audiblePingBox;
30 | UICheckBox useFSUIPCBox;
31 | UITextBox simbriefTextBox;
32 |
33 | private readonly MainForm parent;
34 |
35 | public const int WM_NCLBUTTONDOWN = 0xA1;
36 | public const int HT_CAPTION = 0x2;
37 | private const int cGrip = 16;
38 | private const int cCaption = 32;
39 | [System.Runtime.InteropServices.DllImport("user32.dll")]
40 | private static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
41 | [System.Runtime.InteropServices.DllImport("user32.dll")]
42 | private static extern bool ReleaseCapture();
43 |
44 | public SettingsForm(MainForm _parent)
45 | {
46 | parent = _parent;
47 | InitializeComponent();
48 | InitialiseSettings();
49 | }
50 |
51 | private void InitialiseSettings()
52 | {
53 | settingsFormatPanel.Controls.Clear();
54 | stayOnTopBox = CreateCheckBox("Keep Window On Top", "0");
55 | stayOnTopBox.Checked = parent.StayOnTop;
56 | audiblePingBox = CreateCheckBox("Play Sound on Message Receive", "1");
57 | audiblePingBox.Checked = MainForm.PlaySound;
58 | useFSUIPCBox = CreateCheckBox("Use Simulator Connection (req. FSUIPC/XPUIPC)", "2");
59 | useFSUIPCBox.Checked = MainForm.UseFSUIPC;
60 | simbriefTextBox = CreateTextBox(MainForm.SimbriefID, 7, false, true);
61 |
62 | settingsFormatPanel.Controls.Add(stayOnTopBox);
63 | settingsFormatPanel.SetFlowBreak(stayOnTopBox, true);
64 | settingsFormatPanel.Controls.Add(audiblePingBox);
65 | settingsFormatPanel.SetFlowBreak(audiblePingBox, true);
66 | settingsFormatPanel.Controls.Add(useFSUIPCBox);
67 | settingsFormatPanel.SetFlowBreak(useFSUIPCBox, true);
68 | settingsFormatPanel.Controls.Add(CreateTemplate("SIMBRIEF PILOT ID: "));
69 | settingsFormatPanel.Controls.Add(simbriefTextBox);
70 | }
71 |
72 | private UICheckBox CreateCheckBox(string _text, string _group)
73 | {
74 | UICheckBox _temp = new(_group)
75 | {
76 | BackColor = parent.controlBackColor,
77 | ForeColor = parent.controlFrontColor,
78 | Font = parent.textFont,
79 | Text = _text,
80 | Padding = new Padding(3, 10, 3, -30),
81 | AutoSize = true
82 | };
83 | return _temp;
84 | }
85 |
86 | private Label CreateTemplate(string _text)
87 | {
88 | Label _temp = new()
89 | {
90 | BackColor = parent.controlBackColor,
91 | ForeColor = parent.controlFrontColor,
92 | Font = parent.textFont,
93 | AutoSize = true,
94 | Text = _text,
95 | Top = 10,
96 | Height = 20,
97 | TextAlign = ContentAlignment.MiddleLeft,
98 | Padding = new Padding(0, 10, 0, 0),
99 | Margin = new Padding(0, 0, 0, 0)
100 | };
101 |
102 | return _temp;
103 | }
104 |
105 | private UITextBox CreateTextBox(string _text, int _maxLength, bool _readOnly = false, bool _numsOnly = false)
106 | {
107 | UITextBox _temp = new(parent.controlFrontColor)
108 | {
109 | BackColor = parent.controlBackColor,
110 | ForeColor = parent.controlFrontColor,
111 | Font = parent.textFontBold,
112 | MaxLength = _maxLength,
113 | BorderStyle = BorderStyle.None,
114 | Text = _text,
115 | CharacterCasing = CharacterCasing.Upper,
116 | Top = 10,
117 | Padding = new Padding(3, 0, 3, -10),
118 | Height = 20,
119 | ReadOnly = _readOnly,
120 | TextAlign = HorizontalAlignment.Center
121 | };
122 |
123 | if (_numsOnly)
124 | {
125 | _temp.KeyPress += NumsOnly;
126 | }
127 |
128 | using (Graphics G = _temp.CreateGraphics())
129 | {
130 | _temp.Width = (int)(_temp.MaxLength *
131 | G.MeasureString("x", _temp.Font).Width);
132 | }
133 |
134 | return _temp;
135 | }
136 |
137 | private void NumsOnly(object sender, KeyPressEventArgs e)
138 | {
139 | if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
140 | {
141 | e.Handled = true;
142 | }
143 | }
144 |
145 | private void CancelButton_Click(object sender, EventArgs e)
146 | {
147 | this.Close();
148 | }
149 |
150 | private void OkButton_Click(object sender, EventArgs e)
151 | {
152 | parent.StayOnTop = stayOnTopBox.Checked;
153 | MainForm.PlaySound = audiblePingBox.Checked;
154 | MainForm.UseFSUIPC = useFSUIPCBox.Checked;
155 | MainForm.SimbriefID = simbriefTextBox.Text;
156 |
157 | Properties.Settings.Default.Save();
158 | this.Close();
159 | }
160 |
161 | private void ExitButton_Click(object sender, EventArgs e)
162 | {
163 | this.Close();
164 | }
165 |
166 | private void WindowDrag(object sender, MouseEventArgs e)
167 | {
168 | if (e.Button == MouseButtons.Left)
169 | {
170 | ReleaseCapture();
171 | _ = SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
172 | }
173 | }
174 |
175 | protected override void WndProc(ref Message m)
176 | {
177 | if (m.Msg == 0x84)
178 | { // Trap WM_NCHITTEST
179 | Point pos = new(m.LParam.ToInt32());
180 | pos = this.PointToClient(pos);
181 | if (pos.Y < cCaption)
182 | {
183 | m.Result = (IntPtr)2; // HTCAPTION
184 | return;
185 | }
186 | if (pos.X >= this.ClientSize.Width - cGrip && pos.Y >= this.ClientSize.Height - cGrip)
187 | {
188 | m.Result = (IntPtr)17; // HTBOTTOMRIGHT
189 | return;
190 | }
191 | }
192 | base.WndProc(ref m);
193 | }
194 | }
195 | }
196 |
--------------------------------------------------------------------------------
/EasyCPDLC/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 |
122 | ..\resources\b612mono-regular.ttf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
123 |
124 |
125 | ..\Resources\Stretchboard.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
126 |
127 |
128 | ..\resources\oxygen-regular.ttf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
129 |
130 |
131 | ..\Resources\cog-wheel-gear-setting.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
132 |
133 |
134 | ..\Resources\Notification.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
135 |
136 |
137 | ..\Resources\Oxygen-Bold.ttf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
138 |
139 |
140 | ..\Resources\B612Mono-Bold.ttf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
141 |
142 |
--------------------------------------------------------------------------------
/EasyCPDLC/SettingsForm.Designer.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace EasyCPDLC
3 | {
4 | partial class SettingsForm
5 | {
6 | ///
7 | /// Required designer variable.
8 | ///
9 | private System.ComponentModel.IContainer components = null;
10 |
11 | ///
12 | /// Clean up any resources being used.
13 | ///
14 | /// true if managed resources should be disposed; otherwise, false.
15 | protected override void Dispose(bool disposing)
16 | {
17 | if (disposing && (components != null))
18 | {
19 | components.Dispose();
20 | }
21 | base.Dispose(disposing);
22 | }
23 |
24 | #region Windows Form Designer generated code
25 |
26 | ///
27 | /// Required method for Designer support - do not modify
28 | /// the contents of this method with the code editor.
29 | ///
30 | private void InitializeComponent()
31 | {
32 | this.exitButton = new System.Windows.Forms.Button();
33 | this.titleLabel = new System.Windows.Forms.Label();
34 | this.settingsFormatPanel = new System.Windows.Forms.FlowLayoutPanel();
35 | this.cancelButton = new System.Windows.Forms.Button();
36 | this.okButton = new System.Windows.Forms.Button();
37 | this.SuspendLayout();
38 | //
39 | // exitButton
40 | //
41 | this.exitButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
42 | this.exitButton.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
43 | this.exitButton.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(28)))), ((int)(((byte)(28)))));
44 | this.exitButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
45 | this.exitButton.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
46 | this.exitButton.ForeColor = System.Drawing.SystemColors.ControlLight;
47 | this.exitButton.Location = new System.Drawing.Point(514, -1);
48 | this.exitButton.Name = "exitButton";
49 | this.exitButton.Size = new System.Drawing.Size(24, 24);
50 | this.exitButton.TabIndex = 10;
51 | this.exitButton.Text = "X";
52 | this.exitButton.UseVisualStyleBackColor = true;
53 | this.exitButton.Click += new System.EventHandler(this.ExitButton_Click);
54 | //
55 | // titleLabel
56 | //
57 | this.titleLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
58 | this.titleLabel.AutoSize = true;
59 | this.titleLabel.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
60 | this.titleLabel.ForeColor = System.Drawing.SystemColors.ControlLight;
61 | this.titleLabel.Location = new System.Drawing.Point(335, -1);
62 | this.titleLabel.Name = "titleLabel";
63 | this.titleLabel.Size = new System.Drawing.Size(186, 41);
64 | this.titleLabel.TabIndex = 9;
65 | this.titleLabel.Text = "EasyCPDLC";
66 | this.titleLabel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.WindowDrag);
67 | //
68 | // settingsFormatPanel
69 | //
70 | this.settingsFormatPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
71 | | System.Windows.Forms.AnchorStyles.Left)
72 | | System.Windows.Forms.AnchorStyles.Right)));
73 | this.settingsFormatPanel.AutoScroll = true;
74 | this.settingsFormatPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5)))));
75 | this.settingsFormatPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
76 | this.settingsFormatPanel.Location = new System.Drawing.Point(11, 43);
77 | this.settingsFormatPanel.Name = "settingsFormatPanel";
78 | this.settingsFormatPanel.Padding = new System.Windows.Forms.Padding(10, 0, 0, 30);
79 | this.settingsFormatPanel.Size = new System.Drawing.Size(510, 176);
80 | this.settingsFormatPanel.TabIndex = 13;
81 | //
82 | // cancelButton
83 | //
84 | this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
85 | this.cancelButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
86 | this.cancelButton.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 12F, System.Drawing.FontStyle.Bold);
87 | this.cancelButton.ForeColor = System.Drawing.SystemColors.ControlLight;
88 | this.cancelButton.ImageAlign = System.Drawing.ContentAlignment.TopCenter;
89 | this.cancelButton.Location = new System.Drawing.Point(307, 225);
90 | this.cancelButton.Name = "cancelButton";
91 | this.cancelButton.Size = new System.Drawing.Size(104, 37);
92 | this.cancelButton.TabIndex = 15;
93 | this.cancelButton.Text = "CANCEL";
94 | this.cancelButton.UseVisualStyleBackColor = true;
95 | this.cancelButton.Click += new System.EventHandler(this.CancelButton_Click);
96 | //
97 | // okButton
98 | //
99 | this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
100 | this.okButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
101 | this.okButton.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 12F, System.Drawing.FontStyle.Bold);
102 | this.okButton.ForeColor = System.Drawing.SystemColors.ControlLight;
103 | this.okButton.ImageAlign = System.Drawing.ContentAlignment.TopCenter;
104 | this.okButton.Location = new System.Drawing.Point(417, 225);
105 | this.okButton.Name = "okButton";
106 | this.okButton.Size = new System.Drawing.Size(104, 37);
107 | this.okButton.TabIndex = 14;
108 | this.okButton.Text = "OK";
109 | this.okButton.UseVisualStyleBackColor = true;
110 | this.okButton.Click += new System.EventHandler(this.OkButton_Click);
111 | //
112 | // SettingsForm
113 | //
114 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
115 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
116 | this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(28)))), ((int)(((byte)(28)))));
117 | this.ClientSize = new System.Drawing.Size(537, 274);
118 | this.Controls.Add(this.cancelButton);
119 | this.Controls.Add(this.okButton);
120 | this.Controls.Add(this.settingsFormatPanel);
121 | this.Controls.Add(this.exitButton);
122 | this.Controls.Add(this.titleLabel);
123 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
124 | this.MinimumSize = new System.Drawing.Size(537, 274);
125 | this.Name = "SettingsForm";
126 | this.Text = "Settings";
127 | this.ResumeLayout(false);
128 | this.PerformLayout();
129 |
130 | }
131 |
132 | #endregion
133 | private System.Windows.Forms.Button exitButton;
134 | private System.Windows.Forms.Label titleLabel;
135 | private System.Windows.Forms.FlowLayoutPanel settingsFormatPanel;
136 | private System.Windows.Forms.Button cancelButton;
137 | private System.Windows.Forms.Button okButton;
138 | }
139 | }
--------------------------------------------------------------------------------
/EasyCPDLC/DataEntry.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | text/microsoft-resx
50 |
51 |
52 | 2.0
53 |
54 |
55 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
56 |
57 |
58 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
59 |
60 |
61 |
62 |
63 | AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAIkFAACJBQAAAAAAAAAA
64 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
65 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
66 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
67 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
68 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
69 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
70 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
71 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
72 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
73 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MG4+PjHePj40Hj4+Nf4+PjauPj42fj4+NO4+PjKuPj
74 | 4wzj4+MA4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
75 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MM4+PjTOPj45/j4+PU4+Pj3OPj49Pj4+PH4+PjzuPj
76 | 49rj4+Pb4+Pjt+Pj42vj4+Md4+PjAOPj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
77 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MB4+PjNOPj46zj4+Ph4+PjsOPj42bj4+My4+PjGOPj
78 | 4xHj4+MT4+PjJePj41Pj4+OY4+Pj3OPj48rj4+NZ4+PjCePj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
79 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADj4+MA4+PjAOPj407j4+PZ4+PjwOPj40jj4+MI4+PjAuPj
80 | 4xXj4+Mx4+PjRePj4znj4+Mf4+PjB+Pj4wPj4+Ms4+PjluPj4+Xj4+OH4+PjC+Pj4wAAAAAAAAAAAAAA
81 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+ME4+PjeOPj45Lj4+MZ4+PjA+Pj
82 | 4zjj4+OU4+Pjz+Pj49vj4+PZ4+Pj2ePj49fj4+Ou4+PjWuPj4wzj4+MH4+PjaOPj46rj4+Ma4+PjAAAA
83 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MI4+PjCOPj
84 | 4wvj4+N54+Pj4OPj47/j4+Nu4+PjPuPj4ybj4+My4+PjXOPj46Tj4+Ph4+Pjp+Pj4yXj4+MC4+PjDePj
85 | 4wHj4+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
86 | AADj4+MA4+PjI+Pj47nj4+N34+PjEuPj4wXj4+Mh4+PjNOPj4yvj4+MM4+PjBuPj40nj4+O+4+PjWePj
87 | 4wDj4+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
88 | AAAAAAAAAAAAAOPj4wDj4+MD4+PjGePj4wPj4+Me4+PjmOPj49rj4+PZ4+Pj2+Pj47rj4+ND4+PjAePj
89 | 4xTj4+MJ4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
90 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4+PjAOPj4z3j4+O04+PjY+Pj4zLj4+NH4+PjpePj
91 | 43bj4+MD4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
92 | AAAAAAAA4+PjAOPj4wLj4+MK4+PjDOPj4wzj4+MM4+PjDOPj4wzj4+ML4+PjBePj4wzj4+MY4+PjWePj
93 | 4yzj4+MJ4+PjCePj4wLj4+MD4+PjA+Pj4wPj4+ME4+PjA+Pj4wPj4+MB4+PjAAAAAAAAAAAAAAAAAAAA
94 | AADj4+MA4+PjAePj4xDj4+NG4+PjjOPj47Lj4+O24+PjtuPj47bj4+O24+Pjt+Pj46jj4+Mm4+PjAOPj
95 | 43fj4+P/4+PjtePj4w7j4+MB4+PjXuPj46Dj4+Od4+PjnePj45/j4+Oe4+PjnePj44bj4+Mz4+PjAePj
96 | 4wDj4+MA4+PjB+Pj4yvj4+Nz4+PjwOPj49/j4+O+4+PjjuPj44Lj4+OD4+Pjg+Pj44Pj4+OE4+PjeePj
97 | 4xvj4+MA4+PjWePj4+Hj4+Oa4+PjCuPj4wHj4+Ne4+PjoOPj453j4+Od4+Pjn+Pj453j4+Oe4+PjyuPj
98 | 49Pj4+M54+PjAOPj4wHj4+Nr4+Pj3OPj49Lj4+OQ4+PjQePj4w/j4+MB4+PjAAAAAAAAAAAAAAAAAAAA
99 | AAAAAAAAAAAAAOPj4wDj4+MG4+PjIePj4xDj4+MA4+PjAOPj4wHj4+MD4+PjA+Pj4wPj4+ME4+PjA+Pj
100 | 4wLj4+Md4+PjuuPj46Pj4+MI4+PjBOPj45vj4+O24+PjIuPj4wPj4+MAAAAAAAAAAAAAAAAAAAAAAAAA
101 | AADj4+MA4+PjA+Pj4yDj4+MQ4+PjAAAAAAAAAAAAAAAAAOPj4wDj4+Mo4+PjROPj4wTj4+MAAAAAAAAA
102 | AAAAAAAA4+PjAOPj4wDj4+Nw4+Pjx+Pj4xbj4+ME4+PjnOPj45zj4+MD4+PjAAAAAAAAAAAAAAAAAAAA
103 | AAAAAAAAAAAAAOPj4wDj4+MS4+PjtuPj42fj4+MAAAAAAAAAAADj4+MA4+PjCePj46Hj4+O14+PjDePj
104 | 4wAAAAAAAAAAAAAAAADj4+MA4+PjAOPj44bj4+PB4+PjE+Pj4wTj4+Oc4+PjnePj4wPj4+MA4+PjAOPj
105 | 4wDj4+M74+PjauPj42nj4+Nk4+PjHuPj4ynj4+Pb4+PjTuPj4wAAAAAA4+PjAOPj4wDj4+NR4+Pj5OPj
106 | 41Xj4+MP4+PjHePj4x3j4+Md4+PjHePj4yLj4+Nj4+Pj4OPj433j4+MB4+PjBOPj45zj4+Oc4+PjA+Pj
107 | 4wDj4+MA4+PjFOPj47/j4+Pd4+Pjx+Pj477j4+M54+PjUePj49vj4+Mn4+PjAAAAAADj4+MA4+PjF+Pj
108 | 48Hj4+Oh4+PjDOPj44Dj4+Pb4+Pj2OPj49jj4+PY4+Pj2ePj493j4+OS4+PjFePj4wDj4+MA4+PjkePj
109 | 46nj4+MH4+PjAOPj4wDj4+NY4+Pj3uPj40Lj4+MS4+PjE+Pj4wPj4+N/4+PjwePj4xDj4+MA4+PjAOPj
110 | 4wDj4+Nz4+Pj3OPj4zTj4+MA4+PjMOPj41Hj4+NQ4+PjUOPj41Dj4+NO4+PjLePj4wnj4+MAAAAAAOPj
111 | 4wDj4+OC4+Pjt+Pj4wzj4+MA4+PjC+Pj47Hj4+Ol4+PjB+Pj4wDj4+MA4+PjB+Pj46nj4+OY4+PjAuPj
112 | 4wDj4+MA4+PjLOPj49Xj4+OA4+PjAuPj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
113 | AAAAAAAA4+PjAOPj44Lj4+O24+PjDOPj4wDj4+NE4+Pj3+Pj40rj4+MA4+PjAOPj4wDj4+MX4+PjzuPj
114 | 423j4+MA4+PjAOPj4wbj4+OY4+PjyOPj4x3j4+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
115 | AAAAAAAAAAAAAAAAAADj4+MA4+PjguPj47bj4+ML4+PjB+Pj45/j4+O54+PjD+Pj4wAAAAAA4+PjAOPj
116 | 4zTj4+Pb4+PjQuPj4wDj4+MA4+PjR+Pj4+Pj4+Nd4+PjAOPj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
117 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+OB4+PjxOPj41Lj4+OQ4+Pj6ePj413j4+MA4+PjAAAA
118 | AADj4+MA4+PjYOPj49Tj4+Me4+PjAOPj4xLj4+O44+PjrOPj4wzj4+MAAAAAAAAAAAAAAAAAAAAAAAAA
119 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4+PjAOPj43/j4+P44+Pj3OPj48Xj4+Ny4+PjC+Pj
120 | 4wAAAAAA4+PjAOPj4wDj4+OM4+Pjt+Pj4wzj4+MA4+Pja+Pj4+Dj4+M74+PjAAAAAAAAAAAAAAAAAAAA
121 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADj4+MA4+PjPuPj42Pj4+Mw4+PjEuPj
122 | 4wLj4+MAAAAAAAAAAADj4+MA4+PjDOPj47Xj4+PF4+PjaePj44Pj4+Pg4+PjhePj4wTj4+MAAAAAAAAA
123 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
124 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MT4+PjquPj48rj4+PH4+PjwuPj43vj4+MT4+PjAAAA
125 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
126 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4+PjAOPj4wLj4+MS4+PjFOPj4xTj4+MR4+PjA+Pj
127 | 4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
128 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
129 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
130 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
131 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
132 | AAAAAAAAAAAAAAAAAAAAAAAA///////////////////////4A///4AD//4AAP/+AAB//AAAf/4AAH//g
133 | AP//4AD///wD//wAAAfgAQABgAEAAQD/GAAH8fH4D/Hh+A4B4AAMAcABjAHEA4hhh/+I4w//gOMf/4Hi
134 | H/+B4j//g8A////Af///wP////////////8=
135 |
136 |
137 |
--------------------------------------------------------------------------------
/EasyCPDLC/RequestForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | text/microsoft-resx
50 |
51 |
52 | 2.0
53 |
54 |
55 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
56 |
57 |
58 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
59 |
60 |
61 |
62 |
63 | AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAIkFAACJBQAAAAAAAAAA
64 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
65 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
66 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
67 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
68 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
69 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
70 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
71 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
72 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
73 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MG4+PjHePj40Hj4+Nf4+PjauPj42fj4+NO4+PjKuPj
74 | 4wzj4+MA4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
75 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MM4+PjTOPj45/j4+PU4+Pj3OPj49Pj4+PH4+PjzuPj
76 | 49rj4+Pb4+Pjt+Pj42vj4+Md4+PjAOPj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
77 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MB4+PjNOPj46zj4+Ph4+PjsOPj42bj4+My4+PjGOPj
78 | 4xHj4+MT4+PjJePj41Pj4+OY4+Pj3OPj48rj4+NZ4+PjCePj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
79 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADj4+MA4+PjAOPj407j4+PZ4+PjwOPj40jj4+MI4+PjAuPj
80 | 4xXj4+Mx4+PjRePj4znj4+Mf4+PjB+Pj4wPj4+Ms4+PjluPj4+Xj4+OH4+PjC+Pj4wAAAAAAAAAAAAAA
81 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+ME4+PjeOPj45Lj4+MZ4+PjA+Pj
82 | 4zjj4+OU4+Pjz+Pj49vj4+PZ4+Pj2ePj49fj4+Ou4+PjWuPj4wzj4+MH4+PjaOPj46rj4+Ma4+PjAAAA
83 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MI4+PjCOPj
84 | 4wvj4+N54+Pj4OPj47/j4+Nu4+PjPuPj4ybj4+My4+PjXOPj46Tj4+Ph4+Pjp+Pj4yXj4+MC4+PjDePj
85 | 4wHj4+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
86 | AADj4+MA4+PjI+Pj47nj4+N34+PjEuPj4wXj4+Mh4+PjNOPj4yvj4+MM4+PjBuPj40nj4+O+4+PjWePj
87 | 4wDj4+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
88 | AAAAAAAAAAAAAOPj4wDj4+MD4+PjGePj4wPj4+Me4+PjmOPj49rj4+PZ4+Pj2+Pj47rj4+ND4+PjAePj
89 | 4xTj4+MJ4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
90 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4+PjAOPj4z3j4+O04+PjY+Pj4zLj4+NH4+PjpePj
91 | 43bj4+MD4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
92 | AAAAAAAA4+PjAOPj4wLj4+MK4+PjDOPj4wzj4+MM4+PjDOPj4wzj4+ML4+PjBePj4wzj4+MY4+PjWePj
93 | 4yzj4+MJ4+PjCePj4wLj4+MD4+PjA+Pj4wPj4+ME4+PjA+Pj4wPj4+MB4+PjAAAAAAAAAAAAAAAAAAAA
94 | AADj4+MA4+PjAePj4xDj4+NG4+PjjOPj47Lj4+O24+PjtuPj47bj4+O24+Pjt+Pj46jj4+Mm4+PjAOPj
95 | 43fj4+P/4+PjtePj4w7j4+MB4+PjXuPj46Dj4+Od4+PjnePj45/j4+Oe4+PjnePj44bj4+Mz4+PjAePj
96 | 4wDj4+MA4+PjB+Pj4yvj4+Nz4+PjwOPj49/j4+O+4+PjjuPj44Lj4+OD4+Pjg+Pj44Pj4+OE4+PjeePj
97 | 4xvj4+MA4+PjWePj4+Hj4+Oa4+PjCuPj4wHj4+Ne4+PjoOPj453j4+Od4+Pjn+Pj453j4+Oe4+PjyuPj
98 | 49Pj4+M54+PjAOPj4wHj4+Nr4+Pj3OPj49Lj4+OQ4+PjQePj4w/j4+MB4+PjAAAAAAAAAAAAAAAAAAAA
99 | AAAAAAAAAAAAAOPj4wDj4+MG4+PjIePj4xDj4+MA4+PjAOPj4wHj4+MD4+PjA+Pj4wPj4+ME4+PjA+Pj
100 | 4wLj4+Md4+PjuuPj46Pj4+MI4+PjBOPj45vj4+O24+PjIuPj4wPj4+MAAAAAAAAAAAAAAAAAAAAAAAAA
101 | AADj4+MA4+PjA+Pj4yDj4+MQ4+PjAAAAAAAAAAAAAAAAAOPj4wDj4+Mo4+PjROPj4wTj4+MAAAAAAAAA
102 | AAAAAAAA4+PjAOPj4wDj4+Nw4+Pjx+Pj4xbj4+ME4+PjnOPj45zj4+MD4+PjAAAAAAAAAAAAAAAAAAAA
103 | AAAAAAAAAAAAAOPj4wDj4+MS4+PjtuPj42fj4+MAAAAAAAAAAADj4+MA4+PjCePj46Hj4+O14+PjDePj
104 | 4wAAAAAAAAAAAAAAAADj4+MA4+PjAOPj44bj4+PB4+PjE+Pj4wTj4+Oc4+PjnePj4wPj4+MA4+PjAOPj
105 | 4wDj4+M74+PjauPj42nj4+Nk4+PjHuPj4ynj4+Pb4+PjTuPj4wAAAAAA4+PjAOPj4wDj4+NR4+Pj5OPj
106 | 41Xj4+MP4+PjHePj4x3j4+Md4+PjHePj4yLj4+Nj4+Pj4OPj433j4+MB4+PjBOPj45zj4+Oc4+PjA+Pj
107 | 4wDj4+MA4+PjFOPj47/j4+Pd4+Pjx+Pj477j4+M54+PjUePj49vj4+Mn4+PjAAAAAADj4+MA4+PjF+Pj
108 | 48Hj4+Oh4+PjDOPj44Dj4+Pb4+Pj2OPj49jj4+PY4+Pj2ePj493j4+OS4+PjFePj4wDj4+MA4+PjkePj
109 | 46nj4+MH4+PjAOPj4wDj4+NY4+Pj3uPj40Lj4+MS4+PjE+Pj4wPj4+N/4+PjwePj4xDj4+MA4+PjAOPj
110 | 4wDj4+Nz4+Pj3OPj4zTj4+MA4+PjMOPj41Hj4+NQ4+PjUOPj41Dj4+NO4+PjLePj4wnj4+MAAAAAAOPj
111 | 4wDj4+OC4+Pjt+Pj4wzj4+MA4+PjC+Pj47Hj4+Ol4+PjB+Pj4wDj4+MA4+PjB+Pj46nj4+OY4+PjAuPj
112 | 4wDj4+MA4+PjLOPj49Xj4+OA4+PjAuPj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
113 | AAAAAAAA4+PjAOPj44Lj4+O24+PjDOPj4wDj4+NE4+Pj3+Pj40rj4+MA4+PjAOPj4wDj4+MX4+PjzuPj
114 | 423j4+MA4+PjAOPj4wbj4+OY4+PjyOPj4x3j4+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
115 | AAAAAAAAAAAAAAAAAADj4+MA4+PjguPj47bj4+ML4+PjB+Pj45/j4+O54+PjD+Pj4wAAAAAA4+PjAOPj
116 | 4zTj4+Pb4+PjQuPj4wDj4+MA4+PjR+Pj4+Pj4+Nd4+PjAOPj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
117 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+OB4+PjxOPj41Lj4+OQ4+Pj6ePj413j4+MA4+PjAAAA
118 | AADj4+MA4+PjYOPj49Tj4+Me4+PjAOPj4xLj4+O44+PjrOPj4wzj4+MAAAAAAAAAAAAAAAAAAAAAAAAA
119 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4+PjAOPj43/j4+P44+Pj3OPj48Xj4+Ny4+PjC+Pj
120 | 4wAAAAAA4+PjAOPj4wDj4+OM4+Pjt+Pj4wzj4+MA4+Pja+Pj4+Dj4+M74+PjAAAAAAAAAAAAAAAAAAAA
121 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADj4+MA4+PjPuPj42Pj4+Mw4+PjEuPj
122 | 4wLj4+MAAAAAAAAAAADj4+MA4+PjDOPj47Xj4+PF4+PjaePj44Pj4+Pg4+PjhePj4wTj4+MAAAAAAAAA
123 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
124 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MT4+PjquPj48rj4+PH4+PjwuPj43vj4+MT4+PjAAAA
125 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
126 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4+PjAOPj4wLj4+MS4+PjFOPj4xTj4+MR4+PjA+Pj
127 | 4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
128 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
129 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
130 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
131 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
132 | AAAAAAAAAAAAAAAAAAAAAAAA///////////////////////4A///4AD//4AAP/+AAB//AAAf/4AAH//g
133 | AP//4AD///wD//wAAAfgAQABgAEAAQD/GAAH8fH4D/Hh+A4B4AAMAcABjAHEA4hhh/+I4w//gOMf/4Hi
134 | H/+B4j//g8A////Af///wP////////////8=
135 |
136 |
137 |
--------------------------------------------------------------------------------
/EasyCPDLC/TelexForm.cs:
--------------------------------------------------------------------------------
1 | /* EASYCPDLC: CPDLC Client for the VATSIM Network
2 | Copyright (C) 2021 Joshua Seagrave joshseagrave@googlemail.com
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see .
16 | */
17 |
18 |
19 |
20 | using System;
21 | using System.Drawing;
22 | using System.Linq;
23 | using System.Threading.Tasks;
24 | using System.Windows.Forms;
25 | using FSUIPC;
26 |
27 | namespace EasyCPDLC
28 | {
29 |
30 | public partial class TelexForm : Form
31 | {
32 |
33 | public const int WM_NCLBUTTONDOWN = 0xA1;
34 | public const int HT_CAPTION = 0x2;
35 | private const int cGrip = 16;
36 | private const int cCaption = 32;
37 |
38 | [System.Runtime.InteropServices.DllImport("user32.dll")]
39 | private static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
40 | [System.Runtime.InteropServices.DllImport("user32.dll")]
41 | private static extern bool ReleaseCapture();
42 |
43 | private bool isReply = false;
44 |
45 | private readonly MainForm parent;
46 | private readonly Color controlBackColor;
47 | private readonly Color controlFrontColor;
48 | private readonly Font textFont;
49 | private readonly Font textFontBold;
50 | private readonly string recipient;
51 | public TelexForm(MainForm _parent, string _recipient = null)
52 | {
53 | InitializeComponent();
54 | parent = _parent;
55 | controlBackColor = parent.controlBackColor;
56 | controlFrontColor = parent.controlFrontColor;
57 | textFont = parent.textFont;
58 | textFontBold = parent.textFontBold;
59 | recipient = _recipient is null ? null : _recipient;
60 | isReply = _recipient is not null;
61 |
62 | this.TopMost = parent.TopMost;
63 | }
64 |
65 | private AccessibleLabel CreateTemplate(string _text)
66 | {
67 | AccessibleLabel _temp = new(controlFrontColor)
68 | {
69 | BackColor = controlBackColor,
70 | ForeColor = controlFrontColor,
71 | Font = textFont,
72 | AutoSize = true,
73 | Text = _text,
74 | Top = 10,
75 | Height = 20,
76 | TextAlign = ContentAlignment.MiddleLeft,
77 | Padding = new Padding(0, 10, 0, 0),
78 | Margin = new Padding(0, 0, 0, 0),
79 | TabStop = true,
80 | TabIndex = 0
81 | };
82 |
83 | return _temp;
84 | }
85 |
86 | private UITextBox CreateTextBox(string _text, int _maxLength)
87 | {
88 | UITextBox _temp = new(controlFrontColor)
89 | {
90 | BackColor = controlBackColor,
91 | ForeColor = controlFrontColor,
92 | Font = textFontBold,
93 | MaxLength = _maxLength,
94 | BorderStyle = BorderStyle.None,
95 | Text = _text,
96 | CharacterCasing = CharacterCasing.Upper,
97 | Top = 10,
98 | PlaceholderText = new string('▯', _maxLength),
99 | Height = 30,
100 | TextAlign = HorizontalAlignment.Left,
101 | TabIndex = 0,
102 | Anchor = AnchorStyles.Left
103 | };
104 |
105 | using (Graphics G = _temp.CreateGraphics())
106 | {
107 | _temp.Width = (int)(_temp.MaxLength *
108 | G.MeasureString("▯", _temp.Font).Width * 1.5);
109 | }
110 |
111 | return _temp;
112 | }
113 |
114 |
115 | private UITextBox CreateMultiLineBox(string _text)
116 | {
117 | UITextBox _temp = new(controlFrontColor)
118 | {
119 | BackColor = controlBackColor,
120 | ForeColor = controlFrontColor,
121 | Font = textFontBold,
122 | BorderStyle = BorderStyle.None,
123 | Width = messageFormatPanel.Width - 50,
124 | Multiline = true,
125 | WordWrap = true,
126 | PlaceholderText = "Your message here...",
127 | Text = _text,
128 | MaxLength = 255,
129 | Height = 20,
130 | TabIndex = 0
131 | };
132 | _temp.TextChanged += ExpandMultiLineBox;
133 |
134 | _temp.CharacterCasing = CharacterCasing.Upper;
135 | _temp.Padding = new Padding(3, 0, 3, -10);
136 | _temp.Margin = new Padding(3, 5, 3, -10);
137 | _temp.TextAlign = HorizontalAlignment.Left;
138 |
139 | return _temp;
140 | }
141 |
142 | private void ExitButton_Click(object sender, EventArgs e)
143 | {
144 | this.Close();
145 | }
146 |
147 | private void WindowDrag(object sender, MouseEventArgs e)
148 | {
149 | if (e.Button == MouseButtons.Left)
150 | {
151 | ReleaseCapture();
152 | _ = SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
153 | }
154 | }
155 | private void ReloadPanel(object sender, EventArgs e)
156 | {
157 | if (Properties.Settings.Default.TelexWindowLocation != new Point(0, 0))
158 | {
159 | Location = Properties.Settings.Default.TelexWindowLocation;
160 | Size = Properties.Settings.Default.TelexWindowSize;
161 | }
162 | freeTextButton.PerformClick();
163 | }
164 |
165 | private void ResetPanel(object sender, EventArgs e)
166 | {
167 | freeTextButton.PerformClick();
168 | }
169 |
170 | private void ExpandMultiLineBox(object sender, EventArgs e)
171 | {
172 | TextBox _sender = (TextBox)sender;
173 | // amount of padding to add
174 | const int padding = 3;
175 | // get number of lines (first line is 0, so add 1)
176 | int numLines = _sender.GetLineFromCharIndex(_sender.TextLength) + 1;
177 | // get border thickness
178 | int border = _sender.Height - _sender.ClientSize.Height;
179 | // set height (height of one line * number of lines + spacing)
180 | _sender.Height = _sender.Font.Height * numLines + padding + border;
181 | ScrollToBottom(messageFormatPanel);
182 | }
183 |
184 | private static void ScrollToBottom(FlowLayoutPanel p)
185 | {
186 | using Control c = new() { Parent = p, Dock = DockStyle.Bottom };
187 | p.ScrollControlIntoView(c);
188 | c.Parent = null;
189 | }
190 |
191 | private void SendButton_Click(object sender, EventArgs e)
192 | {
193 | RadioButton radioBtn = radioContainer.Controls.OfType()
194 | .Where(x => x.Checked).FirstOrDefault();
195 |
196 | if (radioBtn != null || messageFormatPanel.Controls[1].Text.Length < 4)
197 | {
198 |
199 | string _recipient = messageFormatPanel.Controls[1].Text;
200 |
201 | switch (radioBtn.Name)
202 | {
203 | case "freeTextRadioButton":
204 | string _formatMessage = messageFormatPanel.Controls[3].Text;
205 | _ = Task.Run(() => this.parent.SendCPDLCMessage(_recipient, "TELEX", _formatMessage.Trim()));
206 | break;
207 |
208 | case "metarRadioButton":
209 | this.parent.WriteMessage("METAR REQUEST", "METAR", _recipient, true);
210 | this.parent.ArtificialDelay("METAR " + _recipient, "INFOREQ", "REQUEST");
211 |
212 | break;
213 |
214 | case "atisRadioButton":
215 |
216 | this.parent.WriteMessage("ATIS REQUEST", "ATIS", _recipient, true);
217 | this.parent.ArtificialDelay("VATATIS " + _recipient, "INFOREQ", "REQUEST");
218 |
219 | break;
220 |
221 | default:
222 | break;
223 | }
224 | if(isReply)
225 | {
226 | parent.ClearPreview();
227 | }
228 | this.Close();
229 |
230 |
231 | }
232 | else
233 | {
234 |
235 | }
236 |
237 |
238 | }
239 |
240 | protected override void WndProc(ref Message m)
241 | {
242 | if (m.Msg == 0x84)
243 | { // Trap WM_NCHITTEST
244 | Point pos = new(m.LParam.ToInt32());
245 | pos = this.PointToClient(pos);
246 | if (pos.Y < cCaption)
247 | {
248 | m.Result = (IntPtr)2; // HTCAPTION
249 | return;
250 | }
251 | if (pos.X >= this.ClientSize.Width - cGrip && pos.Y >= this.ClientSize.Height - cGrip)
252 | {
253 | m.Result = (IntPtr)17; // HTBOTTOMRIGHT
254 | return;
255 | }
256 | }
257 | base.WndProc(ref m);
258 | }
259 |
260 | private void FreeTextButton_Click(object sender, EventArgs e)
261 | {
262 | messageFormatPanel.Controls.Clear();
263 | messageFormatPanel.Controls.Add(CreateTemplate("RECIPIENT:"));
264 | messageFormatPanel.Controls.Add(CreateTextBox(recipient is null ? "" : recipient, 7));
265 | messageFormatPanel.SetFlowBreak(messageFormatPanel.Controls[messageFormatPanel.Controls.Count - 1], true);
266 | messageFormatPanel.Controls.Add(CreateTemplate("MSG:"));
267 | messageFormatPanel.SetFlowBreak(messageFormatPanel.Controls[messageFormatPanel.Controls.Count - 1], true);
268 | messageFormatPanel.Controls.Add(CreateMultiLineBox(""));
269 |
270 | freeTextRadioButton.Checked = true;
271 | }
272 |
273 | private void MetarButton_Click(object sender, EventArgs e)
274 | {
275 | messageFormatPanel.Controls.Clear();
276 | messageFormatPanel.Controls.Add(CreateTemplate("STATION:"));
277 | try
278 | {
279 | if (parent.fsuipc.groundspeed < 100)
280 | {
281 | messageFormatPanel.Controls.Add(CreateTextBox(parent.userVATSIMData.flight_plan.departure, 4));
282 | }
283 | else
284 | {
285 | messageFormatPanel.Controls.Add(CreateTextBox(parent.userVATSIMData.flight_plan.arrival, 4));
286 | }
287 | }
288 | catch
289 | {
290 | messageFormatPanel.Controls.Add(CreateTextBox("", 4));
291 | }
292 |
293 |
294 | metarRadioButton.Checked = true;
295 | }
296 |
297 | private void AtisButton_Click(object sender, EventArgs e)
298 | {
299 | messageFormatPanel.Controls.Clear();
300 | messageFormatPanel.Controls.Add(CreateTemplate("STATION:"));
301 | try
302 | {
303 | if (parent.fsuipc.groundspeed < 100)
304 | {
305 | messageFormatPanel.Controls.Add(CreateTextBox(parent.userVATSIMData.flight_plan.departure, 4));
306 | }
307 | else
308 | {
309 | messageFormatPanel.Controls.Add(CreateTextBox(parent.userVATSIMData.flight_plan.arrival, 4));
310 | }
311 | }
312 | catch
313 | {
314 | messageFormatPanel.Controls.Add(CreateTextBox("", 4));
315 | }
316 |
317 |
318 | atisRadioButton.Checked = true;
319 | }
320 |
321 | private void TelexForm_FormClosing(object sender, FormClosingEventArgs e)
322 | {
323 | Properties.Settings.Default.TelexWindowLocation = Location;
324 | Properties.Settings.Default.TelexWindowSize = Size;
325 | Properties.Settings.Default.Save();
326 | }
327 | }
328 | }
329 |
--------------------------------------------------------------------------------
/EasyCPDLC/TelexForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 |
122 |
123 | AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAIkFAACJBQAAAAAAAAAA
124 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
125 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
126 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
127 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
128 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
129 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
130 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
131 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
132 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
133 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MG4+PjHePj40Hj4+Nf4+PjauPj42fj4+NO4+PjKuPj
134 | 4wzj4+MA4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
135 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MM4+PjTOPj45/j4+PU4+Pj3OPj49Pj4+PH4+PjzuPj
136 | 49rj4+Pb4+Pjt+Pj42vj4+Md4+PjAOPj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
137 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MB4+PjNOPj46zj4+Ph4+PjsOPj42bj4+My4+PjGOPj
138 | 4xHj4+MT4+PjJePj41Pj4+OY4+Pj3OPj48rj4+NZ4+PjCePj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
139 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADj4+MA4+PjAOPj407j4+PZ4+PjwOPj40jj4+MI4+PjAuPj
140 | 4xXj4+Mx4+PjRePj4znj4+Mf4+PjB+Pj4wPj4+Ms4+PjluPj4+Xj4+OH4+PjC+Pj4wAAAAAAAAAAAAAA
141 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+ME4+PjeOPj45Lj4+MZ4+PjA+Pj
142 | 4zjj4+OU4+Pjz+Pj49vj4+PZ4+Pj2ePj49fj4+Ou4+PjWuPj4wzj4+MH4+PjaOPj46rj4+Ma4+PjAAAA
143 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MI4+PjCOPj
144 | 4wvj4+N54+Pj4OPj47/j4+Nu4+PjPuPj4ybj4+My4+PjXOPj46Tj4+Ph4+Pjp+Pj4yXj4+MC4+PjDePj
145 | 4wHj4+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
146 | AADj4+MA4+PjI+Pj47nj4+N34+PjEuPj4wXj4+Mh4+PjNOPj4yvj4+MM4+PjBuPj40nj4+O+4+PjWePj
147 | 4wDj4+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
148 | AAAAAAAAAAAAAOPj4wDj4+MD4+PjGePj4wPj4+Me4+PjmOPj49rj4+PZ4+Pj2+Pj47rj4+ND4+PjAePj
149 | 4xTj4+MJ4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
150 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4+PjAOPj4z3j4+O04+PjY+Pj4zLj4+NH4+PjpePj
151 | 43bj4+MD4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
152 | AAAAAAAA4+PjAOPj4wLj4+MK4+PjDOPj4wzj4+MM4+PjDOPj4wzj4+ML4+PjBePj4wzj4+MY4+PjWePj
153 | 4yzj4+MJ4+PjCePj4wLj4+MD4+PjA+Pj4wPj4+ME4+PjA+Pj4wPj4+MB4+PjAAAAAAAAAAAAAAAAAAAA
154 | AADj4+MA4+PjAePj4xDj4+NG4+PjjOPj47Lj4+O24+PjtuPj47bj4+O24+Pjt+Pj46jj4+Mm4+PjAOPj
155 | 43fj4+P/4+PjtePj4w7j4+MB4+PjXuPj46Dj4+Od4+PjnePj45/j4+Oe4+PjnePj44bj4+Mz4+PjAePj
156 | 4wDj4+MA4+PjB+Pj4yvj4+Nz4+PjwOPj49/j4+O+4+PjjuPj44Lj4+OD4+Pjg+Pj44Pj4+OE4+PjeePj
157 | 4xvj4+MA4+PjWePj4+Hj4+Oa4+PjCuPj4wHj4+Ne4+PjoOPj453j4+Od4+Pjn+Pj453j4+Oe4+PjyuPj
158 | 49Pj4+M54+PjAOPj4wHj4+Nr4+Pj3OPj49Lj4+OQ4+PjQePj4w/j4+MB4+PjAAAAAAAAAAAAAAAAAAAA
159 | AAAAAAAAAAAAAOPj4wDj4+MG4+PjIePj4xDj4+MA4+PjAOPj4wHj4+MD4+PjA+Pj4wPj4+ME4+PjA+Pj
160 | 4wLj4+Md4+PjuuPj46Pj4+MI4+PjBOPj45vj4+O24+PjIuPj4wPj4+MAAAAAAAAAAAAAAAAAAAAAAAAA
161 | AADj4+MA4+PjA+Pj4yDj4+MQ4+PjAAAAAAAAAAAAAAAAAOPj4wDj4+Mo4+PjROPj4wTj4+MAAAAAAAAA
162 | AAAAAAAA4+PjAOPj4wDj4+Nw4+Pjx+Pj4xbj4+ME4+PjnOPj45zj4+MD4+PjAAAAAAAAAAAAAAAAAAAA
163 | AAAAAAAAAAAAAOPj4wDj4+MS4+PjtuPj42fj4+MAAAAAAAAAAADj4+MA4+PjCePj46Hj4+O14+PjDePj
164 | 4wAAAAAAAAAAAAAAAADj4+MA4+PjAOPj44bj4+PB4+PjE+Pj4wTj4+Oc4+PjnePj4wPj4+MA4+PjAOPj
165 | 4wDj4+M74+PjauPj42nj4+Nk4+PjHuPj4ynj4+Pb4+PjTuPj4wAAAAAA4+PjAOPj4wDj4+NR4+Pj5OPj
166 | 41Xj4+MP4+PjHePj4x3j4+Md4+PjHePj4yLj4+Nj4+Pj4OPj433j4+MB4+PjBOPj45zj4+Oc4+PjA+Pj
167 | 4wDj4+MA4+PjFOPj47/j4+Pd4+Pjx+Pj477j4+M54+PjUePj49vj4+Mn4+PjAAAAAADj4+MA4+PjF+Pj
168 | 48Hj4+Oh4+PjDOPj44Dj4+Pb4+Pj2OPj49jj4+PY4+Pj2ePj493j4+OS4+PjFePj4wDj4+MA4+PjkePj
169 | 46nj4+MH4+PjAOPj4wDj4+NY4+Pj3uPj40Lj4+MS4+PjE+Pj4wPj4+N/4+PjwePj4xDj4+MA4+PjAOPj
170 | 4wDj4+Nz4+Pj3OPj4zTj4+MA4+PjMOPj41Hj4+NQ4+PjUOPj41Dj4+NO4+PjLePj4wnj4+MAAAAAAOPj
171 | 4wDj4+OC4+Pjt+Pj4wzj4+MA4+PjC+Pj47Hj4+Ol4+PjB+Pj4wDj4+MA4+PjB+Pj46nj4+OY4+PjAuPj
172 | 4wDj4+MA4+PjLOPj49Xj4+OA4+PjAuPj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
173 | AAAAAAAA4+PjAOPj44Lj4+O24+PjDOPj4wDj4+NE4+Pj3+Pj40rj4+MA4+PjAOPj4wDj4+MX4+PjzuPj
174 | 423j4+MA4+PjAOPj4wbj4+OY4+PjyOPj4x3j4+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
175 | AAAAAAAAAAAAAAAAAADj4+MA4+PjguPj47bj4+ML4+PjB+Pj45/j4+O54+PjD+Pj4wAAAAAA4+PjAOPj
176 | 4zTj4+Pb4+PjQuPj4wDj4+MA4+PjR+Pj4+Pj4+Nd4+PjAOPj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
177 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+OB4+PjxOPj41Lj4+OQ4+Pj6ePj413j4+MA4+PjAAAA
178 | AADj4+MA4+PjYOPj49Tj4+Me4+PjAOPj4xLj4+O44+PjrOPj4wzj4+MAAAAAAAAAAAAAAAAAAAAAAAAA
179 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4+PjAOPj43/j4+P44+Pj3OPj48Xj4+Ny4+PjC+Pj
180 | 4wAAAAAA4+PjAOPj4wDj4+OM4+Pjt+Pj4wzj4+MA4+Pja+Pj4+Dj4+M74+PjAAAAAAAAAAAAAAAAAAAA
181 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADj4+MA4+PjPuPj42Pj4+Mw4+PjEuPj
182 | 4wLj4+MAAAAAAAAAAADj4+MA4+PjDOPj47Xj4+PF4+PjaePj44Pj4+Pg4+PjhePj4wTj4+MAAAAAAAAA
183 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
184 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MT4+PjquPj48rj4+PH4+PjwuPj43vj4+MT4+PjAAAA
185 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
186 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4+PjAOPj4wLj4+MS4+PjFOPj4xTj4+MR4+PjA+Pj
187 | 4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
188 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
189 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
190 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
191 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
192 | AAAAAAAAAAAAAAAAAAAAAAAA///////////////////////4A///4AD//4AAP/+AAB//AAAf/4AAH//g
193 | AP//4AD///wD//wAAAfgAQABgAEAAQD/GAAH8fH4D/Hh+A4B4AAMAcABjAHEA4hhh/+I4w//gOMf/4Hi
194 | H/+B4j//g8A////Af///wP////////////8=
195 |
196 |
197 |
--------------------------------------------------------------------------------
/EasyCPDLC/MainForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | text/microsoft-resx
50 |
51 |
52 | 2.0
53 |
54 |
55 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
56 |
57 |
58 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
59 |
60 |
61 | 17, 17
62 |
63 |
64 |
65 | AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
66 | LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
67 | SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA4AcAAAJNU0Z0AUkBTAMBAQAB
68 | UAEAAVABAAESAQABEgEABP8BCQEACP8BQgFNATYBBAYAATYBBAIAASgDAAFIAwABEgMAAQEBAAEIBQAB
69 | EAEFGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEAAfABygGmAQABMwUAATMB
70 | AAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEAAYABfAH/AQACUAH/AQAB
71 | kwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFmAwABmQMAAcwCAAEzAwAC
72 | MwIAATMBZgIAATMBmQIAATMBzAIAATMB/wIAAWYDAAFmATMCAAJmAgABZgGZAgABZgHMAgABZgH/AgAB
73 | mQMAAZkBMwIAAZkBZgIAApkCAAGZAcwCAAGZAf8CAAHMAwABzAEzAgABzAFmAgABzAGZAgACzAIAAcwB
74 | /wIAAf8BZgIAAf8BmQIAAf8BzAEAATMB/wIAAf8BAAEzAQABMwEAAWYBAAEzAQABmQEAATMBAAHMAQAB
75 | MwEAAf8BAAH/ATMCAAMzAQACMwFmAQACMwGZAQACMwHMAQACMwH/AQABMwFmAgABMwFmATMBAAEzAmYB
76 | AAEzAWYBmQEAATMBZgHMAQABMwFmAf8BAAEzAZkCAAEzAZkBMwEAATMBmQFmAQABMwKZAQABMwGZAcwB
77 | AAEzAZkB/wEAATMBzAIAATMBzAEzAQABMwHMAWYBAAEzAcwBmQEAATMCzAEAATMBzAH/AQABMwH/ATMB
78 | AAEzAf8BZgEAATMB/wGZAQABMwH/AcwBAAEzAv8BAAFmAwABZgEAATMBAAFmAQABZgEAAWYBAAGZAQAB
79 | ZgEAAcwBAAFmAQAB/wEAAWYBMwIAAWYCMwEAAWYBMwFmAQABZgEzAZkBAAFmATMBzAEAAWYBMwH/AQAC
80 | ZgIAAmYBMwEAA2YBAAJmAZkBAAJmAcwBAAFmAZkCAAFmAZkBMwEAAWYBmQFmAQABZgKZAQABZgGZAcwB
81 | AAFmAZkB/wEAAWYBzAIAAWYBzAEzAQABZgHMAZkBAAFmAswBAAFmAcwB/wEAAWYB/wIAAWYB/wEzAQAB
82 | ZgH/AZkBAAFmAf8BzAEAAcwBAAH/AQAB/wEAAcwBAAKZAgABmQEzAZkBAAGZAQABmQEAAZkBAAHMAQAB
83 | mQMAAZkCMwEAAZkBAAFmAQABmQEzAcwBAAGZAQAB/wEAAZkBZgIAAZkBZgEzAQABmQEzAWYBAAGZAWYB
84 | mQEAAZkBZgHMAQABmQEzAf8BAAKZATMBAAKZAWYBAAOZAQACmQHMAQACmQH/AQABmQHMAgABmQHMATMB
85 | AAFmAcwBZgEAAZkBzAGZAQABmQLMAQABmQHMAf8BAAGZAf8CAAGZAf8BMwEAAZkBzAFmAQABmQH/AZkB
86 | AAGZAf8BzAEAAZkC/wEAAcwDAAGZAQABMwEAAcwBAAFmAQABzAEAAZkBAAHMAQABzAEAAZkBMwIAAcwC
87 | MwEAAcwBMwFmAQABzAEzAZkBAAHMATMBzAEAAcwBMwH/AQABzAFmAgABzAFmATMBAAGZAmYBAAHMAWYB
88 | mQEAAcwBZgHMAQABmQFmAf8BAAHMAZkCAAHMAZkBMwEAAcwBmQFmAQABzAKZAQABzAGZAcwBAAHMAZkB
89 | /wEAAswCAALMATMBAALMAWYBAALMAZkBAAPMAQACzAH/AQABzAH/AgABzAH/ATMBAAGZAf8BZgEAAcwB
90 | /wGZAQABzAH/AcwBAAHMAv8BAAHMAQABMwEAAf8BAAFmAQAB/wEAAZkBAAHMATMCAAH/AjMBAAH/ATMB
91 | ZgEAAf8BMwGZAQAB/wEzAcwBAAH/ATMB/wEAAf8BZgIAAf8BZgEzAQABzAJmAQAB/wFmAZkBAAH/AWYB
92 | zAEAAcwBZgH/AQAB/wGZAgAB/wGZATMBAAH/AZkBZgEAAf8CmQEAAf8BmQHMAQAB/wGZAf8BAAH/AcwC
93 | AAH/AcwBMwEAAf8BzAFmAQAB/wHMAZkBAAH/AswBAAH/AcwB/wEAAv8BMwEAAcwB/wFmAQAC/wGZAQAC
94 | /wHMAQACZgH/AQABZgH/AWYBAAFmAv8BAAH/AmYBAAH/AWYB/wEAAv8BZgEAASEBAAGlAQADXwEAA3cB
95 | AAOGAQADlgEAA8sBAAOyAQAD1wEAA90BAAPjAQAD6gEAA/EBAAP4AQAB8AH7Af8BAAGkAqABAAOAAwAB
96 | /wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA/9RAAPyQQAB/wHyAgAD8gIAAfIB/zwAAf8L8gH/OwAN
97 | 8jwAC/I9AATyAwAE8jsABfIFAAXyOQAF8gUABfI5AAXyBQAF8jsABPIDAATyPQAL8jwADPIB8zsAAfML
98 | 8gH/PAAB8wHyAgAD8gIAAfIB/0EAA/LNAAFCAU0BPgcAAT4DAAEoAwABSAMAARIDAAEBAQABAQUAAdgX
99 | AAP/AQAC/wHACQAB/wEfAcAJAAHzARkBwAkAAeABAAHACQAB4AEAAcAJAAHwAQEBwAkAAfAB4QHACQAB
100 | wQHwAUAJAAHBAfABQAkAAcEB8AFACQAB8AHhAcAJAAHwAQEBwAkAAeABAAHACQAB4AEAAcAJAAHzARkB
101 | wAkAAf8BHwHACQAC/wHACQAC/wHACQAL
102 |
103 |
104 |
105 |
106 |
107 | AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAIkFAACJBQAAAAAAAAAA
108 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
109 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
110 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
111 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
112 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
113 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
114 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
115 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
116 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
117 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MG4+PjHePj40Hj4+Nf4+PjauPj42fj4+NO4+PjKuPj
118 | 4wzj4+MA4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
119 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MM4+PjTOPj45/j4+PU4+Pj3OPj49Pj4+PH4+PjzuPj
120 | 49rj4+Pb4+Pjt+Pj42vj4+Md4+PjAOPj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
121 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MB4+PjNOPj46zj4+Ph4+PjsOPj42bj4+My4+PjGOPj
122 | 4xHj4+MT4+PjJePj41Pj4+OY4+Pj3OPj48rj4+NZ4+PjCePj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
123 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADj4+MA4+PjAOPj407j4+PZ4+PjwOPj40jj4+MI4+PjAuPj
124 | 4xXj4+Mx4+PjRePj4znj4+Mf4+PjB+Pj4wPj4+Ms4+PjluPj4+Xj4+OH4+PjC+Pj4wAAAAAAAAAAAAAA
125 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+ME4+PjeOPj45Lj4+MZ4+PjA+Pj
126 | 4zjj4+OU4+Pjz+Pj49vj4+PZ4+Pj2ePj49fj4+Ou4+PjWuPj4wzj4+MH4+PjaOPj46rj4+Ma4+PjAAAA
127 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MI4+PjCOPj
128 | 4wvj4+N54+Pj4OPj47/j4+Nu4+PjPuPj4ybj4+My4+PjXOPj46Tj4+Ph4+Pjp+Pj4yXj4+MC4+PjDePj
129 | 4wHj4+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
130 | AADj4+MA4+PjI+Pj47nj4+N34+PjEuPj4wXj4+Mh4+PjNOPj4yvj4+MM4+PjBuPj40nj4+O+4+PjWePj
131 | 4wDj4+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
132 | AAAAAAAAAAAAAOPj4wDj4+MD4+PjGePj4wPj4+Me4+PjmOPj49rj4+PZ4+Pj2+Pj47rj4+ND4+PjAePj
133 | 4xTj4+MJ4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
134 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4+PjAOPj4z3j4+O04+PjY+Pj4zLj4+NH4+PjpePj
135 | 43bj4+MD4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
136 | AAAAAAAA4+PjAOPj4wLj4+MK4+PjDOPj4wzj4+MM4+PjDOPj4wzj4+ML4+PjBePj4wzj4+MY4+PjWePj
137 | 4yzj4+MJ4+PjCePj4wLj4+MD4+PjA+Pj4wPj4+ME4+PjA+Pj4wPj4+MB4+PjAAAAAAAAAAAAAAAAAAAA
138 | AADj4+MA4+PjAePj4xDj4+NG4+PjjOPj47Lj4+O24+PjtuPj47bj4+O24+Pjt+Pj46jj4+Mm4+PjAOPj
139 | 43fj4+P/4+PjtePj4w7j4+MB4+PjXuPj46Dj4+Od4+PjnePj45/j4+Oe4+PjnePj44bj4+Mz4+PjAePj
140 | 4wDj4+MA4+PjB+Pj4yvj4+Nz4+PjwOPj49/j4+O+4+PjjuPj44Lj4+OD4+Pjg+Pj44Pj4+OE4+PjeePj
141 | 4xvj4+MA4+PjWePj4+Hj4+Oa4+PjCuPj4wHj4+Ne4+PjoOPj453j4+Od4+Pjn+Pj453j4+Oe4+PjyuPj
142 | 49Pj4+M54+PjAOPj4wHj4+Nr4+Pj3OPj49Lj4+OQ4+PjQePj4w/j4+MB4+PjAAAAAAAAAAAAAAAAAAAA
143 | AAAAAAAAAAAAAOPj4wDj4+MG4+PjIePj4xDj4+MA4+PjAOPj4wHj4+MD4+PjA+Pj4wPj4+ME4+PjA+Pj
144 | 4wLj4+Md4+PjuuPj46Pj4+MI4+PjBOPj45vj4+O24+PjIuPj4wPj4+MAAAAAAAAAAAAAAAAAAAAAAAAA
145 | AADj4+MA4+PjA+Pj4yDj4+MQ4+PjAAAAAAAAAAAAAAAAAOPj4wDj4+Mo4+PjROPj4wTj4+MAAAAAAAAA
146 | AAAAAAAA4+PjAOPj4wDj4+Nw4+Pjx+Pj4xbj4+ME4+PjnOPj45zj4+MD4+PjAAAAAAAAAAAAAAAAAAAA
147 | AAAAAAAAAAAAAOPj4wDj4+MS4+PjtuPj42fj4+MAAAAAAAAAAADj4+MA4+PjCePj46Hj4+O14+PjDePj
148 | 4wAAAAAAAAAAAAAAAADj4+MA4+PjAOPj44bj4+PB4+PjE+Pj4wTj4+Oc4+PjnePj4wPj4+MA4+PjAOPj
149 | 4wDj4+M74+PjauPj42nj4+Nk4+PjHuPj4ynj4+Pb4+PjTuPj4wAAAAAA4+PjAOPj4wDj4+NR4+Pj5OPj
150 | 41Xj4+MP4+PjHePj4x3j4+Md4+PjHePj4yLj4+Nj4+Pj4OPj433j4+MB4+PjBOPj45zj4+Oc4+PjA+Pj
151 | 4wDj4+MA4+PjFOPj47/j4+Pd4+Pjx+Pj477j4+M54+PjUePj49vj4+Mn4+PjAAAAAADj4+MA4+PjF+Pj
152 | 48Hj4+Oh4+PjDOPj44Dj4+Pb4+Pj2OPj49jj4+PY4+Pj2ePj493j4+OS4+PjFePj4wDj4+MA4+PjkePj
153 | 46nj4+MH4+PjAOPj4wDj4+NY4+Pj3uPj40Lj4+MS4+PjE+Pj4wPj4+N/4+PjwePj4xDj4+MA4+PjAOPj
154 | 4wDj4+Nz4+Pj3OPj4zTj4+MA4+PjMOPj41Hj4+NQ4+PjUOPj41Dj4+NO4+PjLePj4wnj4+MAAAAAAOPj
155 | 4wDj4+OC4+Pjt+Pj4wzj4+MA4+PjC+Pj47Hj4+Ol4+PjB+Pj4wDj4+MA4+PjB+Pj46nj4+OY4+PjAuPj
156 | 4wDj4+MA4+PjLOPj49Xj4+OA4+PjAuPj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
157 | AAAAAAAA4+PjAOPj44Lj4+O24+PjDOPj4wDj4+NE4+Pj3+Pj40rj4+MA4+PjAOPj4wDj4+MX4+PjzuPj
158 | 423j4+MA4+PjAOPj4wbj4+OY4+PjyOPj4x3j4+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
159 | AAAAAAAAAAAAAAAAAADj4+MA4+PjguPj47bj4+ML4+PjB+Pj45/j4+O54+PjD+Pj4wAAAAAA4+PjAOPj
160 | 4zTj4+Pb4+PjQuPj4wDj4+MA4+PjR+Pj4+Pj4+Nd4+PjAOPj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
161 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+OB4+PjxOPj41Lj4+OQ4+Pj6ePj413j4+MA4+PjAAAA
162 | AADj4+MA4+PjYOPj49Tj4+Me4+PjAOPj4xLj4+O44+PjrOPj4wzj4+MAAAAAAAAAAAAAAAAAAAAAAAAA
163 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4+PjAOPj43/j4+P44+Pj3OPj48Xj4+Ny4+PjC+Pj
164 | 4wAAAAAA4+PjAOPj4wDj4+OM4+Pjt+Pj4wzj4+MA4+Pja+Pj4+Dj4+M74+PjAAAAAAAAAAAAAAAAAAAA
165 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADj4+MA4+PjPuPj42Pj4+Mw4+PjEuPj
166 | 4wLj4+MAAAAAAAAAAADj4+MA4+PjDOPj47Xj4+PF4+PjaePj44Pj4+Pg4+PjhePj4wTj4+MAAAAAAAAA
167 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
168 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPj4wDj4+MT4+PjquPj48rj4+PH4+PjwuPj43vj4+MT4+PjAAAA
169 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
170 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4+PjAOPj4wLj4+MS4+PjFOPj4xTj4+MR4+PjA+Pj
171 | 4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
172 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
173 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
174 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
175 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
176 | AAAAAAAAAAAAAAAAAAAAAAAA///////////////////////4A///4AD//4AAP/+AAB//AAAf/4AAH//g
177 | AP//4AD///wD//wAAAfgAQABgAEAAQD/GAAH8fH4D/Hh+A4B4AAMAcABjAHEA4hhh/+I4w//gOMf/4Hi
178 | H/+B4j//g8A////Af///wP////////////8=
179 |
180 |
181 |
--------------------------------------------------------------------------------
/EasyCPDLC/DataEntry.Designer.cs:
--------------------------------------------------------------------------------
1 | /* EASYCPDLC: CPDLC Client for the VATSIM Network
2 | Copyright (C) 2021 Joshua Seagrave joshseagrave@googlemail.com
3 |
4 | This program is free software: you can redistribute it and/or modify
5 | it under the terms of the GNU General Public License as published by
6 | the Free Software Foundation, either version 3 of the License, or
7 | (at your option) any later version.
8 |
9 | This program is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | GNU General Public License for more details.
13 |
14 | You should have received a copy of the GNU General Public License
15 | along with this program. If not, see .
16 | */
17 |
18 |
19 |
20 | namespace EasyCPDLC
21 | {
22 | partial class DataEntry
23 | {
24 | ///
25 | /// Required designer variable.
26 | ///
27 | private System.ComponentModel.IContainer components = null;
28 |
29 | ///
30 | /// Clean up any resources being used.
31 | ///
32 | /// true if managed resources should be disposed; otherwise, false.
33 | protected override void Dispose(bool disposing)
34 | {
35 | if (disposing && (components != null))
36 | {
37 | components.Dispose();
38 | }
39 | base.Dispose(disposing);
40 | }
41 |
42 | #region Windows Form Designer generated code
43 |
44 | ///
45 | /// Required method for Designer support - do not modify
46 | /// the contents of this method with the code editor.
47 | ///
48 | private void InitializeComponent()
49 | {
50 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DataEntry));
51 | this.titleLabel = new System.Windows.Forms.Label();
52 | this.exitButton = new System.Windows.Forms.Button();
53 | this.hoppieLogonLabel = new System.Windows.Forms.Label();
54 | this.vatsimCIDLabel = new System.Windows.Forms.Label();
55 | this.rememberCheckBox = new System.Windows.Forms.CheckBox();
56 | this.connectButton = new System.Windows.Forms.Button();
57 | this.pictureBox1 = new System.Windows.Forms.PictureBox();
58 | this.roundPanel2 = new EasyCPDLC.RoundPanel();
59 | this.vatsimCIDTextBox = new System.Windows.Forms.TextBox();
60 | this.roundPanel1 = new EasyCPDLC.RoundPanel();
61 | this.hoppieCodeTextBox = new System.Windows.Forms.TextBox();
62 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
63 | this.roundPanel2.SuspendLayout();
64 | this.roundPanel1.SuspendLayout();
65 | this.SuspendLayout();
66 | //
67 | // titleLabel
68 | //
69 | this.titleLabel.AutoSize = true;
70 | this.titleLabel.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
71 | this.titleLabel.ForeColor = System.Drawing.SystemColors.ControlLight;
72 | this.titleLabel.Location = new System.Drawing.Point(28, 158);
73 | this.titleLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
74 | this.titleLabel.Name = "titleLabel";
75 | this.titleLabel.Size = new System.Drawing.Size(186, 41);
76 | this.titleLabel.TabIndex = 1;
77 | this.titleLabel.Text = "EasyCPDLC";
78 | //
79 | // exitButton
80 | //
81 | this.exitButton.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
82 | this.exitButton.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(28)))), ((int)(((byte)(28)))));
83 | this.exitButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
84 | this.exitButton.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
85 | this.exitButton.ForeColor = System.Drawing.SystemColors.ControlLight;
86 | this.exitButton.Location = new System.Drawing.Point(217, 0);
87 | this.exitButton.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
88 | this.exitButton.Name = "exitButton";
89 | this.exitButton.Size = new System.Drawing.Size(28, 28);
90 | this.exitButton.TabIndex = 2;
91 | this.exitButton.Text = "X";
92 | this.exitButton.UseVisualStyleBackColor = true;
93 | this.exitButton.Click += new System.EventHandler(this.ExitButton_Click);
94 | //
95 | // hoppieLogonLabel
96 | //
97 | this.hoppieLogonLabel.AutoSize = true;
98 | this.hoppieLogonLabel.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
99 | this.hoppieLogonLabel.ForeColor = System.Drawing.SystemColors.ControlLight;
100 | this.hoppieLogonLabel.Location = new System.Drawing.Point(48, 217);
101 | this.hoppieLogonLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
102 | this.hoppieLogonLabel.Name = "hoppieLogonLabel";
103 | this.hoppieLogonLabel.Size = new System.Drawing.Size(147, 19);
104 | this.hoppieLogonLabel.TabIndex = 3;
105 | this.hoppieLogonLabel.Text = "Hoppie Logon Code";
106 | //
107 | // vatsimCIDLabel
108 | //
109 | this.vatsimCIDLabel.AutoSize = true;
110 | this.vatsimCIDLabel.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
111 | this.vatsimCIDLabel.ForeColor = System.Drawing.SystemColors.ControlLight;
112 | this.vatsimCIDLabel.Location = new System.Drawing.Point(76, 280);
113 | this.vatsimCIDLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
114 | this.vatsimCIDLabel.Name = "vatsimCIDLabel";
115 | this.vatsimCIDLabel.Size = new System.Drawing.Size(90, 19);
116 | this.vatsimCIDLabel.TabIndex = 4;
117 | this.vatsimCIDLabel.Text = "VATSIM CID";
118 | //
119 | // rememberCheckBox
120 | //
121 | this.rememberCheckBox.AutoSize = true;
122 | this.rememberCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
123 | this.rememberCheckBox.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
124 | this.rememberCheckBox.ForeColor = System.Drawing.SystemColors.ControlLight;
125 | this.rememberCheckBox.Location = new System.Drawing.Point(56, 342);
126 | this.rememberCheckBox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
127 | this.rememberCheckBox.Name = "rememberCheckBox";
128 | this.rememberCheckBox.Size = new System.Drawing.Size(130, 23);
129 | this.rememberCheckBox.TabIndex = 7;
130 | this.rememberCheckBox.Text = "Remember Me?";
131 | this.rememberCheckBox.UseVisualStyleBackColor = true;
132 | //
133 | // connectButton
134 | //
135 | this.connectButton.Enabled = false;
136 | this.connectButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
137 | this.connectButton.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
138 | this.connectButton.ForeColor = System.Drawing.SystemColors.ControlLight;
139 | this.connectButton.Location = new System.Drawing.Point(40, 380);
140 | this.connectButton.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
141 | this.connectButton.Name = "connectButton";
142 | this.connectButton.Size = new System.Drawing.Size(163, 33);
143 | this.connectButton.TabIndex = 8;
144 | this.connectButton.Text = "Connect";
145 | this.connectButton.UseVisualStyleBackColor = true;
146 | this.connectButton.Click += new System.EventHandler(this.ConnectButton_Click);
147 | //
148 | // pictureBox1
149 | //
150 | this.pictureBox1.Image = global::EasyCPDLC.Properties.Resources.Stretchboard;
151 | this.pictureBox1.Location = new System.Drawing.Point(28, -18);
152 | this.pictureBox1.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
153 | this.pictureBox1.Name = "pictureBox1";
154 | this.pictureBox1.Size = new System.Drawing.Size(230, 173);
155 | this.pictureBox1.TabIndex = 9;
156 | this.pictureBox1.TabStop = false;
157 | this.pictureBox1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DataEntry_MouseDown);
158 | //
159 | // roundPanel2
160 | //
161 | this.roundPanel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5)))));
162 | this.roundPanel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
163 | this.roundPanel2.Controls.Add(this.vatsimCIDTextBox);
164 | this.roundPanel2.Location = new System.Drawing.Point(17, 302);
165 | this.roundPanel2.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
166 | this.roundPanel2.Name = "roundPanel2";
167 | this.roundPanel2.Size = new System.Drawing.Size(208, 34);
168 | this.roundPanel2.TabIndex = 11;
169 | //
170 | // vatsimCIDTextBox
171 | //
172 | this.vatsimCIDTextBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5)))));
173 | this.vatsimCIDTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
174 | this.vatsimCIDTextBox.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
175 | this.vatsimCIDTextBox.ForeColor = System.Drawing.SystemColors.ControlLight;
176 | this.vatsimCIDTextBox.Location = new System.Drawing.Point(7, 8);
177 | this.vatsimCIDTextBox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
178 | this.vatsimCIDTextBox.MaxLength = 7;
179 | this.vatsimCIDTextBox.Name = "vatsimCIDTextBox";
180 | this.vatsimCIDTextBox.Size = new System.Drawing.Size(192, 19);
181 | this.vatsimCIDTextBox.TabIndex = 1;
182 | this.vatsimCIDTextBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
183 | this.vatsimCIDTextBox.TextChanged += new System.EventHandler(this.VatsimCIDTextBox_TextChanged);
184 | this.vatsimCIDTextBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.NumsOnly);
185 | //
186 | // roundPanel1
187 | //
188 | this.roundPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5)))));
189 | this.roundPanel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
190 | this.roundPanel1.Controls.Add(this.hoppieCodeTextBox);
191 | this.roundPanel1.Location = new System.Drawing.Point(17, 239);
192 | this.roundPanel1.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
193 | this.roundPanel1.Name = "roundPanel1";
194 | this.roundPanel1.Size = new System.Drawing.Size(208, 34);
195 | this.roundPanel1.TabIndex = 10;
196 | //
197 | // hoppieCodeTextBox
198 | //
199 | this.hoppieCodeTextBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5)))));
200 | this.hoppieCodeTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
201 | this.hoppieCodeTextBox.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
202 | this.hoppieCodeTextBox.ForeColor = System.Drawing.SystemColors.ControlLight;
203 | this.hoppieCodeTextBox.Location = new System.Drawing.Point(7, 7);
204 | this.hoppieCodeTextBox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
205 | this.hoppieCodeTextBox.MaxLength = 18;
206 | this.hoppieCodeTextBox.Name = "hoppieCodeTextBox";
207 | this.hoppieCodeTextBox.Size = new System.Drawing.Size(192, 19);
208 | this.hoppieCodeTextBox.TabIndex = 0;
209 | this.hoppieCodeTextBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
210 | this.hoppieCodeTextBox.TextChanged += new System.EventHandler(this.HoppieCodeTextBox_TextChanged);
211 | //
212 | // DataEntry
213 | //
214 | this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
215 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
216 | this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(28)))), ((int)(((byte)(28)))));
217 | this.ClientSize = new System.Drawing.Size(244, 433);
218 | this.Controls.Add(this.roundPanel2);
219 | this.Controls.Add(this.roundPanel1);
220 | this.Controls.Add(this.connectButton);
221 | this.Controls.Add(this.rememberCheckBox);
222 | this.Controls.Add(this.vatsimCIDLabel);
223 | this.Controls.Add(this.hoppieLogonLabel);
224 | this.Controls.Add(this.exitButton);
225 | this.Controls.Add(this.titleLabel);
226 | this.Controls.Add(this.pictureBox1);
227 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
228 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
229 | this.KeyPreview = true;
230 | this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
231 | this.Name = "DataEntry";
232 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
233 | this.Text = "DataEntry";
234 | this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DataEntry_MouseDown);
235 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
236 | this.roundPanel2.ResumeLayout(false);
237 | this.roundPanel2.PerformLayout();
238 | this.roundPanel1.ResumeLayout(false);
239 | this.roundPanel1.PerformLayout();
240 | this.ResumeLayout(false);
241 | this.PerformLayout();
242 |
243 | }
244 |
245 | #endregion
246 |
247 | private System.Windows.Forms.Label titleLabel;
248 | private System.Windows.Forms.Button exitButton;
249 | private System.Windows.Forms.Label hoppieLogonLabel;
250 | private System.Windows.Forms.Label vatsimCIDLabel;
251 | private System.Windows.Forms.CheckBox rememberCheckBox;
252 | private System.Windows.Forms.Button connectButton;
253 | private System.Windows.Forms.PictureBox pictureBox1;
254 | private RoundPanel roundPanel1;
255 | private System.Windows.Forms.TextBox hoppieCodeTextBox;
256 | private RoundPanel roundPanel2;
257 | private System.Windows.Forms.TextBox vatsimCIDTextBox;
258 | }
259 | }
--------------------------------------------------------------------------------
/EasyCPDLC/TelexForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace EasyCPDLC
2 | {
3 | partial class TelexForm
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TelexForm));
32 | this.messageFormatPanel = new System.Windows.Forms.FlowLayoutPanel();
33 | this.clearButton = new System.Windows.Forms.Button();
34 | this.sendButton = new System.Windows.Forms.Button();
35 | this.exitButton = new System.Windows.Forms.Button();
36 | this.titleLabel = new System.Windows.Forms.Label();
37 | this.freeTextButton = new System.Windows.Forms.Button();
38 | this.metarButton = new System.Windows.Forms.Button();
39 | this.atisButton = new System.Windows.Forms.Button();
40 | this.radioContainer = new System.Windows.Forms.Panel();
41 | this.atisRadioButton = new System.Windows.Forms.RadioButton();
42 | this.metarRadioButton = new System.Windows.Forms.RadioButton();
43 | this.freeTextRadioButton = new System.Windows.Forms.RadioButton();
44 | this.radioContainer.SuspendLayout();
45 | this.SuspendLayout();
46 | //
47 | // messageFormatPanel
48 | //
49 | this.messageFormatPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
50 | | System.Windows.Forms.AnchorStyles.Left)
51 | | System.Windows.Forms.AnchorStyles.Right)));
52 | this.messageFormatPanel.AutoScroll = true;
53 | this.messageFormatPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5)))));
54 | this.messageFormatPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
55 | this.messageFormatPanel.Location = new System.Drawing.Point(14, 55);
56 | this.messageFormatPanel.Margin = new System.Windows.Forms.Padding(5);
57 | this.messageFormatPanel.Name = "messageFormatPanel";
58 | this.messageFormatPanel.Padding = new System.Windows.Forms.Padding(10, 0, 0, 30);
59 | this.messageFormatPanel.Size = new System.Drawing.Size(504, 127);
60 | this.messageFormatPanel.TabIndex = 3;
61 | //
62 | // clearButton
63 | //
64 | this.clearButton.AccessibleDescription = "Clear Telex";
65 | this.clearButton.AccessibleName = "Clear";
66 | this.clearButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
67 | this.clearButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
68 | this.clearButton.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 12F, System.Drawing.FontStyle.Bold);
69 | this.clearButton.ForeColor = System.Drawing.SystemColors.ControlLight;
70 | this.clearButton.ImageAlign = System.Drawing.ContentAlignment.TopCenter;
71 | this.clearButton.Location = new System.Drawing.Point(304, 190);
72 | this.clearButton.Name = "clearButton";
73 | this.clearButton.Size = new System.Drawing.Size(104, 37);
74 | this.clearButton.TabIndex = 4;
75 | this.clearButton.Text = "CLEAR";
76 | this.clearButton.UseVisualStyleBackColor = true;
77 | this.clearButton.Click += new System.EventHandler(this.ResetPanel);
78 | //
79 | // sendButton
80 | //
81 | this.sendButton.AccessibleDescription = "Send Telex Message";
82 | this.sendButton.AccessibleName = "Send";
83 | this.sendButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
84 | this.sendButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
85 | this.sendButton.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 12F, System.Drawing.FontStyle.Bold);
86 | this.sendButton.ForeColor = System.Drawing.SystemColors.ControlLight;
87 | this.sendButton.ImageAlign = System.Drawing.ContentAlignment.TopCenter;
88 | this.sendButton.Location = new System.Drawing.Point(414, 190);
89 | this.sendButton.Name = "sendButton";
90 | this.sendButton.Size = new System.Drawing.Size(104, 37);
91 | this.sendButton.TabIndex = 5;
92 | this.sendButton.Text = "SEND";
93 | this.sendButton.UseVisualStyleBackColor = true;
94 | this.sendButton.Click += new System.EventHandler(this.SendButton_Click);
95 | //
96 | // exitButton
97 | //
98 | this.exitButton.AccessibleDescription = "Exit Telex Form";
99 | this.exitButton.AccessibleName = "Exit";
100 | this.exitButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
101 | this.exitButton.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
102 | this.exitButton.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(28)))), ((int)(((byte)(28)))));
103 | this.exitButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
104 | this.exitButton.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
105 | this.exitButton.ForeColor = System.Drawing.SystemColors.ControlLight;
106 | this.exitButton.Location = new System.Drawing.Point(509, 0);
107 | this.exitButton.Name = "exitButton";
108 | this.exitButton.Size = new System.Drawing.Size(24, 24);
109 | this.exitButton.TabIndex = 6;
110 | this.exitButton.Text = "X";
111 | this.exitButton.UseVisualStyleBackColor = true;
112 | this.exitButton.Click += new System.EventHandler(this.ExitButton_Click);
113 | //
114 | // titleLabel
115 | //
116 | this.titleLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
117 | this.titleLabel.AutoSize = true;
118 | this.titleLabel.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
119 | this.titleLabel.ForeColor = System.Drawing.SystemColors.ControlLight;
120 | this.titleLabel.Location = new System.Drawing.Point(329, 9);
121 | this.titleLabel.Name = "titleLabel";
122 | this.titleLabel.Size = new System.Drawing.Size(186, 41);
123 | this.titleLabel.TabIndex = 0;
124 | this.titleLabel.Text = "EasyCPDLC";
125 | this.titleLabel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.WindowDrag);
126 | //
127 | // freeTextButton
128 | //
129 | this.freeTextButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
130 | this.freeTextButton.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 12F, System.Drawing.FontStyle.Bold);
131 | this.freeTextButton.ForeColor = System.Drawing.SystemColors.ControlLight;
132 | this.freeTextButton.ImageAlign = System.Drawing.ContentAlignment.TopCenter;
133 | this.freeTextButton.Location = new System.Drawing.Point(14, 10);
134 | this.freeTextButton.Name = "freeTextButton";
135 | this.freeTextButton.Size = new System.Drawing.Size(100, 37);
136 | this.freeTextButton.TabIndex = 0;
137 | this.freeTextButton.Text = "FREE TEXT";
138 | this.freeTextButton.UseVisualStyleBackColor = true;
139 | this.freeTextButton.Click += new System.EventHandler(this.FreeTextButton_Click);
140 | //
141 | // metarButton
142 | //
143 | this.metarButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
144 | this.metarButton.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 12F, System.Drawing.FontStyle.Bold);
145 | this.metarButton.ForeColor = System.Drawing.SystemColors.ControlLight;
146 | this.metarButton.ImageAlign = System.Drawing.ContentAlignment.TopCenter;
147 | this.metarButton.Location = new System.Drawing.Point(120, 10);
148 | this.metarButton.Name = "metarButton";
149 | this.metarButton.Size = new System.Drawing.Size(100, 37);
150 | this.metarButton.TabIndex = 1;
151 | this.metarButton.Text = "METAR";
152 | this.metarButton.UseVisualStyleBackColor = true;
153 | this.metarButton.Click += new System.EventHandler(this.MetarButton_Click);
154 | //
155 | // atisButton
156 | //
157 | this.atisButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
158 | this.atisButton.Font = new System.Drawing.Font(MainForm.fonts.Families[1], 12F, System.Drawing.FontStyle.Bold);
159 | this.atisButton.ForeColor = System.Drawing.SystemColors.ControlLight;
160 | this.atisButton.ImageAlign = System.Drawing.ContentAlignment.TopCenter;
161 | this.atisButton.Location = new System.Drawing.Point(226, 10);
162 | this.atisButton.Name = "atisButton";
163 | this.atisButton.Size = new System.Drawing.Size(100, 37);
164 | this.atisButton.TabIndex = 2;
165 | this.atisButton.Text = "ATIS";
166 | this.atisButton.UseVisualStyleBackColor = true;
167 | this.atisButton.Click += new System.EventHandler(this.AtisButton_Click);
168 | //
169 | // radioContainer
170 | //
171 | this.radioContainer.Controls.Add(this.atisRadioButton);
172 | this.radioContainer.Controls.Add(this.metarRadioButton);
173 | this.radioContainer.Controls.Add(this.freeTextRadioButton);
174 | this.radioContainer.Location = new System.Drawing.Point(198, 190);
175 | this.radioContainer.Name = "radioContainer";
176 | this.radioContainer.Size = new System.Drawing.Size(62, 26);
177 | this.radioContainer.TabIndex = 15;
178 | this.radioContainer.Visible = false;
179 | //
180 | // atisRadioButton
181 | //
182 | this.atisRadioButton.AutoSize = true;
183 | this.atisRadioButton.Location = new System.Drawing.Point(44, 7);
184 | this.atisRadioButton.Name = "atisRadioButton";
185 | this.atisRadioButton.Size = new System.Drawing.Size(14, 13);
186 | this.atisRadioButton.TabIndex = 2;
187 | this.atisRadioButton.TabStop = true;
188 | this.atisRadioButton.UseVisualStyleBackColor = true;
189 | this.atisRadioButton.Visible = false;
190 | //
191 | // metarRadioButton
192 | //
193 | this.metarRadioButton.AutoSize = true;
194 | this.metarRadioButton.Location = new System.Drawing.Point(24, 7);
195 | this.metarRadioButton.Name = "metarRadioButton";
196 | this.metarRadioButton.Size = new System.Drawing.Size(14, 13);
197 | this.metarRadioButton.TabIndex = 1;
198 | this.metarRadioButton.TabStop = true;
199 | this.metarRadioButton.UseVisualStyleBackColor = true;
200 | this.metarRadioButton.Visible = false;
201 | //
202 | // freeTextRadioButton
203 | //
204 | this.freeTextRadioButton.AutoSize = true;
205 | this.freeTextRadioButton.Location = new System.Drawing.Point(4, 7);
206 | this.freeTextRadioButton.Name = "freeTextRadioButton";
207 | this.freeTextRadioButton.Size = new System.Drawing.Size(14, 13);
208 | this.freeTextRadioButton.TabIndex = 0;
209 | this.freeTextRadioButton.TabStop = true;
210 | this.freeTextRadioButton.UseVisualStyleBackColor = true;
211 | this.freeTextRadioButton.Visible = false;
212 | //
213 | // TelexForm
214 | //
215 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
216 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
217 | this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
218 | this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(28)))), ((int)(((byte)(28)))));
219 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
220 | this.ClientSize = new System.Drawing.Size(532, 241);
221 | this.Controls.Add(this.radioContainer);
222 | this.Controls.Add(this.atisButton);
223 | this.Controls.Add(this.metarButton);
224 | this.Controls.Add(this.freeTextButton);
225 | this.Controls.Add(this.exitButton);
226 | this.Controls.Add(this.titleLabel);
227 | this.Controls.Add(this.sendButton);
228 | this.Controls.Add(this.clearButton);
229 | this.Controls.Add(this.messageFormatPanel);
230 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
231 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
232 | this.MinimumSize = new System.Drawing.Size(532, 241);
233 | this.Name = "TelexForm";
234 | this.Text = "TelexForm";
235 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.TelexForm_FormClosing);
236 | this.Load += new System.EventHandler(this.ReloadPanel);
237 | this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.WindowDrag);
238 | this.radioContainer.ResumeLayout(false);
239 | this.radioContainer.PerformLayout();
240 | this.ResumeLayout(false);
241 | this.PerformLayout();
242 |
243 | }
244 |
245 | #endregion
246 | private System.Windows.Forms.FlowLayoutPanel messageFormatPanel;
247 | private System.Windows.Forms.Button clearButton;
248 | private System.Windows.Forms.Button sendButton;
249 | private System.Windows.Forms.Button exitButton;
250 | private System.Windows.Forms.Label titleLabel;
251 | private System.Windows.Forms.Button freeTextButton;
252 | private System.Windows.Forms.Button metarButton;
253 | private System.Windows.Forms.Button atisButton;
254 | private System.Windows.Forms.Panel radioContainer;
255 | private System.Windows.Forms.RadioButton atisRadioButton;
256 | private System.Windows.Forms.RadioButton metarRadioButton;
257 | private System.Windows.Forms.RadioButton freeTextRadioButton;
258 | }
259 | }
--------------------------------------------------------------------------------
/EasyCPDLC/MainForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace EasyCPDLC
2 | {
3 | partial class MainForm
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.components = new System.ComponentModel.Container();
32 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
33 | this.titleLabel = new System.Windows.Forms.Label();
34 | this.exitButton = new System.Windows.Forms.Button();
35 | this.outputTable = new System.Windows.Forms.TableLayoutPanel();
36 | this.atcButton = new System.Windows.Forms.Button();
37 | this.telexButton = new System.Windows.Forms.Button();
38 | this.retrieveButton = new System.Windows.Forms.Button();
39 | this.atcUnitLabel = new System.Windows.Forms.Label();
40 | this.atcUnitDisplay = new System.Windows.Forms.Label();
41 | this.helpButton = new System.Windows.Forms.Button();
42 | this.messageFormatPanel = new System.Windows.Forms.FlowLayoutPanel();
43 | this.settingsButton = new System.Windows.Forms.Button();
44 | this.iconList = new System.Windows.Forms.ImageList(this.components);
45 | this.SendingProgress = new System.Windows.Forms.ProgressBar();
46 | this.SuspendLayout();
47 | //
48 | // titleLabel
49 | //
50 | this.titleLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
51 | this.titleLabel.AutoSize = true;
52 | this.titleLabel.Font = new System.Drawing.Font(fonts.Families[1], 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
53 | this.titleLabel.ForeColor = System.Drawing.SystemColors.ControlLight;
54 | this.titleLabel.Location = new System.Drawing.Point(397, 6);
55 | this.titleLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
56 | this.titleLabel.Name = "titleLabel";
57 | this.titleLabel.Size = new System.Drawing.Size(186, 41);
58 | this.titleLabel.TabIndex = 0;
59 | this.titleLabel.Text = "EasyCPDLC";
60 | this.titleLabel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.MoveWindow);
61 | //
62 | // exitButton
63 | //
64 | this.exitButton.AccessibleName = "Exit";
65 | this.exitButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
66 | this.exitButton.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
67 | this.exitButton.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(28)))), ((int)(((byte)(28)))));
68 | this.exitButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
69 | this.exitButton.Font = new System.Drawing.Font(fonts.Families[1], 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
70 | this.exitButton.ForeColor = System.Drawing.SystemColors.ControlLight;
71 | this.exitButton.Location = new System.Drawing.Point(617, 4);
72 | this.exitButton.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
73 | this.exitButton.Name = "exitButton";
74 | this.exitButton.Size = new System.Drawing.Size(28, 28);
75 | this.exitButton.TabIndex = 7;
76 | this.exitButton.Text = "X";
77 | this.exitButton.UseVisualStyleBackColor = true;
78 | this.exitButton.Click += new System.EventHandler(this.ExitButton_Click);
79 | //
80 | // outputTable
81 | //
82 | this.outputTable.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
83 | | System.Windows.Forms.AnchorStyles.Left)
84 | | System.Windows.Forms.AnchorStyles.Right)));
85 | this.outputTable.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5)))));
86 | this.outputTable.ColumnCount = 3;
87 | this.outputTable.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F));
88 | this.outputTable.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 77.5F));
89 | this.outputTable.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10F));
90 | this.outputTable.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5)))));
91 | this.outputTable.Location = new System.Drawing.Point(14, 76);
92 | this.outputTable.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
93 | this.outputTable.Name = "outputTable";
94 | this.outputTable.Padding = new System.Windows.Forms.Padding(0, 0, 12, 0);
95 | this.outputTable.RowCount = 1;
96 | this.outputTable.RowStyles.Add(new System.Windows.Forms.RowStyle());
97 | this.outputTable.Size = new System.Drawing.Size(616, 147);
98 | this.outputTable.TabIndex = 3;
99 | this.outputTable.TabStop = true;
100 | this.outputTable.Click += new System.EventHandler(this.OutputTable_Click);
101 | //
102 | // atcButton
103 | //
104 | this.atcButton.Enabled = false;
105 | this.atcButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
106 | this.atcButton.Font = new System.Drawing.Font(fonts.Families[1], 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
107 | this.atcButton.ForeColor = System.Drawing.SystemColors.ControlLight;
108 | this.atcButton.ImageAlign = System.Drawing.ContentAlignment.TopCenter;
109 | this.atcButton.Location = new System.Drawing.Point(284, 14);
110 | this.atcButton.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
111 | this.atcButton.Name = "atcButton";
112 | this.atcButton.Size = new System.Drawing.Size(105, 55);
113 | this.atcButton.TabIndex = 2;
114 | this.atcButton.Text = "ATC";
115 | this.atcButton.UseVisualStyleBackColor = true;
116 | this.atcButton.Click += new System.EventHandler(this.RequestButton_Click);
117 | //
118 | // telexButton
119 | //
120 | this.telexButton.Enabled = false;
121 | this.telexButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
122 | this.telexButton.Font = new System.Drawing.Font(fonts.Families[1], 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
123 | this.telexButton.ForeColor = System.Drawing.SystemColors.ControlLight;
124 | this.telexButton.ImageAlign = System.Drawing.ContentAlignment.TopCenter;
125 | this.telexButton.Location = new System.Drawing.Point(172, 14);
126 | this.telexButton.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
127 | this.telexButton.Name = "telexButton";
128 | this.telexButton.Size = new System.Drawing.Size(105, 55);
129 | this.telexButton.TabIndex = 1;
130 | this.telexButton.Text = "TELEX";
131 | this.telexButton.UseVisualStyleBackColor = true;
132 | this.telexButton.Click += new System.EventHandler(this.TelexButton_Click);
133 | //
134 | // retrieveButton
135 | //
136 | this.retrieveButton.Enabled = false;
137 | this.retrieveButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
138 | this.retrieveButton.Font = new System.Drawing.Font(fonts.Families[1], 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
139 | this.retrieveButton.ForeColor = System.Drawing.SystemColors.ControlLight;
140 | this.retrieveButton.ImageAlign = System.Drawing.ContentAlignment.TopCenter;
141 | this.retrieveButton.Location = new System.Drawing.Point(14, 14);
142 | this.retrieveButton.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
143 | this.retrieveButton.Name = "retrieveButton";
144 | this.retrieveButton.Size = new System.Drawing.Size(150, 55);
145 | this.retrieveButton.TabIndex = 0;
146 | this.retrieveButton.Text = "CONNECT";
147 | this.retrieveButton.UseVisualStyleBackColor = true;
148 | this.retrieveButton.Click += new System.EventHandler(this.RetrieveButton_Click);
149 | //
150 | // atcUnitLabel
151 | //
152 | this.atcUnitLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
153 | this.atcUnitLabel.AutoSize = true;
154 | this.atcUnitLabel.Font = new System.Drawing.Font(fonts.Families[1], 11F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
155 | this.atcUnitLabel.ForeColor = System.Drawing.SystemColors.ControlLight;
156 | this.atcUnitLabel.Location = new System.Drawing.Point(403, 49);
157 | this.atcUnitLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
158 | this.atcUnitLabel.Name = "atcUnitLabel";
159 | this.atcUnitLabel.Size = new System.Drawing.Size(134, 19);
160 | this.atcUnitLabel.TabIndex = 0;
161 | this.atcUnitLabel.Text = "Current ATS Unit: ";
162 | //
163 | // atcUnitDisplay
164 | //
165 | this.atcUnitDisplay.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
166 | this.atcUnitDisplay.AutoSize = true;
167 | this.atcUnitDisplay.Font = new System.Drawing.Font(fonts.Families[1], 11F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
168 | this.atcUnitDisplay.ForeColor = System.Drawing.SystemColors.ControlLight;
169 | this.atcUnitDisplay.Location = new System.Drawing.Point(551, 49);
170 | this.atcUnitDisplay.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
171 | this.atcUnitDisplay.Name = "atcUnitDisplay";
172 | this.atcUnitDisplay.Size = new System.Drawing.Size(29, 19);
173 | this.atcUnitDisplay.TabIndex = 0;
174 | this.atcUnitDisplay.Text = "----";
175 | //
176 | // helpButton
177 | //
178 | this.helpButton.AccessibleName = "About";
179 | this.helpButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
180 | this.helpButton.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
181 | this.helpButton.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(28)))), ((int)(((byte)(28)))));
182 | this.helpButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
183 | this.helpButton.Font = new System.Drawing.Font(fonts.Families[1], 11F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
184 | this.helpButton.ForeColor = System.Drawing.SystemColors.ControlLight;
185 | this.helpButton.Location = new System.Drawing.Point(598, 1);
186 | this.helpButton.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
187 | this.helpButton.Name = "helpButton";
188 | this.helpButton.Size = new System.Drawing.Size(27, 31);
189 | this.helpButton.TabIndex = 6;
190 | this.helpButton.Text = "?";
191 | this.helpButton.UseVisualStyleBackColor = true;
192 | this.helpButton.Click += new System.EventHandler(this.HelpButton_Click);
193 | //
194 | // messageFormatPanel
195 | //
196 | this.messageFormatPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
197 | | System.Windows.Forms.AnchorStyles.Left)
198 | | System.Windows.Forms.AnchorStyles.Right)));
199 | this.messageFormatPanel.AutoScroll = true;
200 | this.messageFormatPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5)))));
201 | this.messageFormatPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
202 | this.messageFormatPanel.Location = new System.Drawing.Point(14, 76);
203 | this.messageFormatPanel.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
204 | this.messageFormatPanel.Name = "messageFormatPanel";
205 | this.messageFormatPanel.Padding = new System.Windows.Forms.Padding(12, 0, 0, 35);
206 | this.messageFormatPanel.Size = new System.Drawing.Size(614, 146);
207 | this.messageFormatPanel.TabIndex = 4;
208 | this.messageFormatPanel.TabStop = true;
209 | this.messageFormatPanel.Visible = false;
210 | //
211 | // settingsButton
212 | //
213 | this.settingsButton.AccessibleName = "Settings";
214 | this.settingsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
215 | this.settingsButton.BackgroundImage = global::EasyCPDLC.Properties.Resources.cog_wheel_gear_setting;
216 | this.settingsButton.FlatAppearance.BorderSize = 0;
217 | this.settingsButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
218 | this.settingsButton.ImageIndex = 0;
219 | this.settingsButton.ImageList = this.iconList;
220 | this.settingsButton.Location = new System.Drawing.Point(576, 5);
221 | this.settingsButton.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
222 | this.settingsButton.Name = "settingsButton";
223 | this.settingsButton.Size = new System.Drawing.Size(23, 23);
224 | this.settingsButton.TabIndex = 5;
225 | this.settingsButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
226 | this.settingsButton.UseVisualStyleBackColor = true;
227 | this.settingsButton.Click += new System.EventHandler(this.SettingsButton_Click);
228 | //
229 | // iconList
230 | //
231 | this.iconList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
232 | this.iconList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("iconList.ImageStream")));
233 | this.iconList.TransparentColor = System.Drawing.Color.Transparent;
234 | this.iconList.Images.SetKeyName(0, "cog-wheel-gear-setting.png");
235 | //
236 | // SendingProgress
237 | //
238 | this.SendingProgress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
239 | | System.Windows.Forms.AnchorStyles.Right)));
240 | this.SendingProgress.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(28)))), ((int)(((byte)(28)))));
241 | this.SendingProgress.Location = new System.Drawing.Point(14, 223);
242 | this.SendingProgress.MarqueeAnimationSpeed = 10;
243 | this.SendingProgress.Maximum = 30;
244 | this.SendingProgress.Name = "SendingProgress";
245 | this.SendingProgress.Size = new System.Drawing.Size(614, 2);
246 | this.SendingProgress.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
247 | this.SendingProgress.TabIndex = 8;
248 | this.SendingProgress.Visible = false;
249 | //
250 | // MainForm
251 | //
252 | this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
253 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
254 | this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
255 | this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(28)))), ((int)(((byte)(28)))));
256 | this.ClientSize = new System.Drawing.Size(644, 233);
257 | this.Controls.Add(this.SendingProgress);
258 | this.Controls.Add(this.settingsButton);
259 | this.Controls.Add(this.atcUnitDisplay);
260 | this.Controls.Add(this.atcUnitLabel);
261 | this.Controls.Add(this.retrieveButton);
262 | this.Controls.Add(this.telexButton);
263 | this.Controls.Add(this.atcButton);
264 | this.Controls.Add(this.exitButton);
265 | this.Controls.Add(this.titleLabel);
266 | this.Controls.Add(this.helpButton);
267 | this.Controls.Add(this.messageFormatPanel);
268 | this.Controls.Add(this.outputTable);
269 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
270 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
271 | this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
272 | this.MinimumSize = new System.Drawing.Size(644, 233);
273 | this.Name = "MainForm";
274 | this.Text = "9";
275 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
276 | this.Load += new System.EventHandler(this.MainForm_Load);
277 | this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.MoveWindow);
278 | this.ResumeLayout(false);
279 | this.PerformLayout();
280 |
281 | }
282 |
283 | #endregion
284 |
285 | private System.Windows.Forms.Label titleLabel;
286 | private System.Windows.Forms.Button exitButton;
287 | private System.Windows.Forms.TableLayoutPanel outputTable;
288 | private System.Windows.Forms.Button atcButton;
289 | private System.Windows.Forms.Button telexButton;
290 | private System.Windows.Forms.Button retrieveButton;
291 | private System.Windows.Forms.Label atcUnitLabel;
292 | private System.Windows.Forms.Label atcUnitDisplay;
293 | private System.Windows.Forms.Button helpButton;
294 | private System.Windows.Forms.FlowLayoutPanel messageFormatPanel;
295 | private System.Windows.Forms.Button settingsButton;
296 | private System.Windows.Forms.ImageList iconList;
297 | private System.Windows.Forms.ProgressBar SendingProgress;
298 | }
299 | }
300 |
301 |
--------------------------------------------------------------------------------