diff options
author | Jakob Stendahl <jakob.stendahl@outlook.com> | 2018-01-09 15:01:04 +0100 |
---|---|---|
committer | Jakob Stendahl <jakob.stendahl@outlook.com> | 2018-01-09 15:01:04 +0100 |
commit | bb6e704ab011a497ac8c735afc0fd4c52a1425ce (patch) | |
tree | bed462d18c4f976f30c690b529d6de8b2a6ba2ff /love2dToAPK/Forms | |
parent | d2c375c015fe3e216234a887ab75e08d40f5f5db (diff) | |
download | Love2dToAPK-bb6e704ab011a497ac8c735afc0fd4c52a1425ce.tar.gz Love2dToAPK-bb6e704ab011a497ac8c735afc0fd4c52a1425ce.zip |
Added old project
Diffstat (limited to 'love2dToAPK/Forms')
-rw-r--r-- | love2dToAPK/Forms/baseForm.Designer.cs | 123 | ||||
-rw-r--r-- | love2dToAPK/Forms/baseForm.cs | 159 | ||||
-rw-r--r-- | love2dToAPK/Forms/baseForm.resx | 120 | ||||
-rw-r--r-- | love2dToAPK/Forms/frmFirstStartup.Designer.cs | 216 | ||||
-rw-r--r-- | love2dToAPK/Forms/frmFirstStartup.cs | 28 | ||||
-rw-r--r-- | love2dToAPK/Forms/frmFirstStartup.resx | 133 | ||||
-rw-r--r-- | love2dToAPK/Forms/frmMain.Designer.cs | 191 | ||||
-rw-r--r-- | love2dToAPK/Forms/frmMain.cs | 86 | ||||
-rw-r--r-- | love2dToAPK/Forms/frmMain.resx | 120 | ||||
-rw-r--r-- | love2dToAPK/Forms/frmOutput.Designer.cs | 54 | ||||
-rw-r--r-- | love2dToAPK/Forms/frmOutput.cs | 52 | ||||
-rw-r--r-- | love2dToAPK/Forms/frmOutput.resx | 120 | ||||
-rw-r--r-- | love2dToAPK/Forms/frmSettings.Designer.cs | 106 | ||||
-rw-r--r-- | love2dToAPK/Forms/frmSettings.cs | 35 | ||||
-rw-r--r-- | love2dToAPK/Forms/frmSettings.resx | 120 |
15 files changed, 1663 insertions, 0 deletions
diff --git a/love2dToAPK/Forms/baseForm.Designer.cs b/love2dToAPK/Forms/baseForm.Designer.cs new file mode 100644 index 0000000..9558a45 --- /dev/null +++ b/love2dToAPK/Forms/baseForm.Designer.cs @@ -0,0 +1,123 @@ +namespace love2dToAPK.Forms { + partial class baseForm { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() { + this.pnlTitleBar = new System.Windows.Forms.Panel(); + this.lblTitle = new System.Windows.Forms.Label(); + this.pnlFormActions = new System.Windows.Forms.Panel(); + this.btnMinimize = new love2dToAPK.Controls.minimalButton(); + this.btnClose = new love2dToAPK.Controls.minimalButton(); + this.pnlTitleBar.SuspendLayout(); + this.pnlFormActions.SuspendLayout(); + this.SuspendLayout(); + // + // pnlTitleBar + // + this.pnlTitleBar.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(49)))), ((int)(((byte)(110))))); + this.pnlTitleBar.Controls.Add(this.pnlFormActions); + this.pnlTitleBar.Controls.Add(this.lblTitle); + this.pnlTitleBar.Dock = System.Windows.Forms.DockStyle.Top; + this.pnlTitleBar.Location = new System.Drawing.Point(0, 0); + this.pnlTitleBar.Name = "pnlTitleBar"; + this.pnlTitleBar.Size = new System.Drawing.Size(284, 37); + this.pnlTitleBar.TabIndex = 0; + // + // lblTitle + // + this.lblTitle.AutoSize = true; + this.lblTitle.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblTitle.ForeColor = System.Drawing.Color.White; + this.lblTitle.Location = new System.Drawing.Point(12, 9); + this.lblTitle.Name = "lblTitle"; + this.lblTitle.Size = new System.Drawing.Size(68, 21); + this.lblTitle.TabIndex = 1; + this.lblTitle.Text = "<TITLE>"; + // + // pnlFormActions + // + this.pnlFormActions.Controls.Add(this.btnMinimize); + this.pnlFormActions.Controls.Add(this.btnClose); + this.pnlFormActions.Dock = System.Windows.Forms.DockStyle.Right; + this.pnlFormActions.Location = new System.Drawing.Point(211, 0); + this.pnlFormActions.Name = "pnlFormActions"; + this.pnlFormActions.Size = new System.Drawing.Size(73, 37); + this.pnlFormActions.TabIndex = 1; + // + // btnMinimize + // + this.btnMinimize.AutoSize = true; + this.btnMinimize.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(49)))), ((int)(((byte)(110))))); + this.btnMinimize.BackgroundColor = System.Drawing.SystemColors.Control; + this.btnMinimize.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnMinimize.ForeColor = System.Drawing.Color.White; + this.btnMinimize.ForegroundColor = System.Drawing.Color.White; + this.btnMinimize.Location = new System.Drawing.Point(12, 1); + this.btnMinimize.Name = "btnMinimize"; + this.btnMinimize.Padding = new System.Windows.Forms.Padding(1, 5, 2, 5); + this.btnMinimize.Size = new System.Drawing.Size(23, 35); + this.btnMinimize.TabIndex = 1; + this.btnMinimize.Text = "_"; + // + // btnClose + // + this.btnClose.AutoSize = true; + this.btnClose.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(49)))), ((int)(((byte)(110))))); + this.btnClose.BackgroundColor = System.Drawing.SystemColors.Control; + this.btnClose.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnClose.ForeColor = System.Drawing.Color.White; + this.btnClose.ForegroundColor = System.Drawing.Color.White; + this.btnClose.Location = new System.Drawing.Point(42, 1); + this.btnClose.Name = "btnClose"; + this.btnClose.Padding = new System.Windows.Forms.Padding(0, 5, 0, 5); + this.btnClose.Size = new System.Drawing.Size(23, 35); + this.btnClose.TabIndex = 3; + this.btnClose.Text = "X"; + // + // baseForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(284, 116); + this.Controls.Add(this.pnlTitleBar); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "baseForm"; + this.Text = "baseForm"; + this.Load += new System.EventHandler(this.baseForm_Load); + this.pnlTitleBar.ResumeLayout(false); + this.pnlTitleBar.PerformLayout(); + this.pnlFormActions.ResumeLayout(false); + this.pnlFormActions.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel pnlTitleBar; + private System.Windows.Forms.Panel pnlFormActions; + private System.Windows.Forms.Label lblTitle; + private Controls.minimalButton btnMinimize; + private Controls.minimalButton btnClose; + } +}
\ No newline at end of file diff --git a/love2dToAPK/Forms/baseForm.cs b/love2dToAPK/Forms/baseForm.cs new file mode 100644 index 0000000..31b92a2 --- /dev/null +++ b/love2dToAPK/Forms/baseForm.cs @@ -0,0 +1,159 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace love2dToAPK.Forms { + + public partial class baseForm : Form { + + #region localVariables + Panel overlayPanel; + #endregion + + #region properties + public string WindowTitle { + get { return lblTitle.Text; } + set { lblTitle.Text = value; } + } + + public bool MinimizeAble { + get { return btnMinimize.Enabled; } + set { + if (value) { + btnMinimize.Enabled = true; + btnMinimize.Show(); + } + else { + btnMinimize.Enabled = false; + btnMinimize.Hide(); + } + } + } + #endregion + + #region formShadow + protected override CreateParams CreateParams { + get { + const int CS_DROPSHADOW = 0x20000; + CreateParams cp = base.CreateParams; + cp.ClassStyle |= CS_DROPSHADOW; + return cp; + } + } + #endregion + + #region formMove + /* This region contains the code needed to make the form moveable */ + public const int WM_NCLBUTTONDOWN = 0xA1; + public const int HT_CAPTION = 0x2; + + [System.Runtime.InteropServices.DllImportAttribute("user32.dll")] + public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); + [System.Runtime.InteropServices.DllImportAttribute("user32.dll")] + public static extern bool ReleaseCapture(); + + private void baseForm_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { + if (e.Button == MouseButtons.Left) { + ReleaseCapture(); + SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); + } + } + #endregion + + public baseForm() { + InitializeComponent(); + + /* Add event handlers */ + // These ones are for moving the form + this.MouseDown += baseForm_MouseDown; + pnlTitleBar.MouseDown += baseForm_MouseDown; + pnlFormActions.MouseDown += baseForm_MouseDown; + lblTitle.MouseDown += baseForm_MouseDown; + // These are for the button hover effect on the action buttons + btnClose.MouseEnter += btn_mouseEnter; + btnClose.MouseLeave += btn_mouseLeave; + btnMinimize.MouseEnter += btn_mouseEnter; + btnMinimize.MouseLeave += btn_mouseLeave; + // These are for the actionButtons + btnClose.Click += btnClose_Click; + btnMinimize.Click += btnMinimize_Click; + // This make the form gray when onactive + this.EnabledChanged += baseForm_onEnabledChanged; + } + + #region EventHandlers + private void btnClose_Click(object sender, EventArgs e) { + /* Handles the exit-button click */ + this.Close(); + } + + private void btnMinimize_Click(object sender, EventArgs e) { + /* Handles the minimize-button click */ + this.WindowState = FormWindowState.Minimized; + } + + private void baseForm_onEnabledChanged(object sender, EventArgs e) { + /* Handles the enable/disable event */ + if (Enabled) { + this.Controls.Remove(overlayPanel); + overlayPanel.Dispose(); + overlayPanel = null; + } + else { + overlayPanel = new Panel(); + overlayPanel.Location = new Point(0, 0); + overlayPanel.Size = new Size(this.Width, this.Height); + overlayPanel.BackColor = Color.FromArgb(0, 255, 255, 255); + this.Controls.Add(overlayPanel); + //overlayPanel.BringToFront(); + this.Invalidate(); + } + } + #endregion + + #region ButtonHoverEffect + public void btn_mouseEnter(object sender, System.EventArgs e) { + /* This method handles mouseOver event on buttons */ + if (sender is Label) { + Label thisLabel = (Label)sender; + //thisLabel.BackColor = Program.UiTheme(thisLabel.Name + "_backgroundHover"); + } + else if (sender is PictureBox) { + PictureBox thisPicture = (PictureBox)sender; + //thisPicture.BackColor = Program.UiTheme(thisPicture.Name + "_backgroundHover"); + } + } + + public void btn_mouseLeave(object sender, System.EventArgs e) { + /* This method handles mouseOver event on buttons */ + if (sender is Label) { + Label thisLabel = (Label)sender; + //thisLabel.BackColor = Program.UiTheme(thisLabel.Name + "_background"); + } + else if (sender is PictureBox) { + PictureBox thisPicture = (PictureBox)sender; + //thisPicture.BackColor = Program.UiTheme(thisPicture.Name + "_background"); + } + } + #endregion + + private void baseForm_Load(object sender, EventArgs e) { + btnClose.BackgroundColor = ColorTranslator.FromHtml("#ea316e"); + btnMinimize.BackgroundColor = ColorTranslator.FromHtml("#ea316e"); + } + + public virtual void setColor(Color color) { + pnlTitleBar.BackColor = color; + pnlFormActions.BackColor = color; + btnClose.BackgroundColor = color; + btnMinimize.BackgroundColor = color; + } + } + +} diff --git a/love2dToAPK/Forms/baseForm.resx b/love2dToAPK/Forms/baseForm.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/love2dToAPK/Forms/baseForm.resx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root>
\ No newline at end of file diff --git a/love2dToAPK/Forms/frmFirstStartup.Designer.cs b/love2dToAPK/Forms/frmFirstStartup.Designer.cs new file mode 100644 index 0000000..037bfdb --- /dev/null +++ b/love2dToAPK/Forms/frmFirstStartup.Designer.cs @@ -0,0 +1,216 @@ +namespace love2dToAPK.Forms { + partial class frmFirstStartup { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmFirstStartup)); + this.panel1 = new System.Windows.Forms.Panel(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.linkLabel1 = new System.Windows.Forms.LinkLabel(); + this.label7 = new System.Windows.Forms.Label(); + this.linkLabel2 = new System.Windows.Forms.LinkLabel(); + this.label8 = new System.Windows.Forms.Label(); + this.btnContinue = new love2dToAPK.Controls.minimalButton(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.White; + this.panel1.Controls.Add(this.label8); + this.panel1.Controls.Add(this.linkLabel2); + this.panel1.Controls.Add(this.label7); + this.panel1.Controls.Add(this.linkLabel1); + this.panel1.Controls.Add(this.label6); + this.panel1.Controls.Add(this.label4); + this.panel1.Controls.Add(this.label5); + this.panel1.Controls.Add(this.label3); + this.panel1.Controls.Add(this.label2); + this.panel1.Controls.Add(this.label1); + this.panel1.Location = new System.Drawing.Point(12, 52); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(368, 407); + this.panel1.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Segoe UI", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(49)))), ((int)(((byte)(110))))); + this.label1.Location = new System.Drawing.Point(12, 10); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(179, 37); + this.label1.TabIndex = 0; + this.label1.Text = "Love2dToAPK"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.Location = new System.Drawing.Point(16, 53); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(314, 30); + this.label2.TabIndex = 1; + this.label2.Text = "It seems like this is the first time you have opened the app.\r\nSo here is a brief" + + " introduction!"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(49)))), ((int)(((byte)(110))))); + this.label3.Location = new System.Drawing.Point(14, 90); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(81, 25); + this.label3.TabIndex = 2; + this.label3.Text = "Purpose"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label5.Location = new System.Drawing.Point(16, 121); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(339, 60); + this.label5.TabIndex = 4; + this.label5.Text = resources.GetString("label5.Text"); + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(49)))), ((int)(((byte)(110))))); + this.label4.Location = new System.Drawing.Point(14, 190); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(64, 25); + this.label4.TabIndex = 5; + this.label4.Text = "Usage"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label6.Location = new System.Drawing.Point(16, 221); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(336, 75); + this.label6.TabIndex = 6; + this.label6.Text = resources.GetString("label6.Text"); + // + // linkLabel1 + // + this.linkLabel1.AutoSize = true; + this.linkLabel1.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.linkLabel1.Location = new System.Drawing.Point(16, 296); + this.linkLabel1.Name = "linkLabel1"; + this.linkLabel1.Size = new System.Drawing.Size(160, 13); + this.linkLabel1.TabIndex = 7; + this.linkLabel1.TabStop = true; + this.linkLabel1.Text = "https://aintnoguidehereguys/"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(49)))), ((int)(((byte)(110))))); + this.label7.Location = new System.Drawing.Point(14, 318); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(71, 25); + this.label7.TabIndex = 8; + this.label7.Text = "Credits"; + // + // linkLabel2 + // + this.linkLabel2.AutoSize = true; + this.linkLabel2.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.linkLabel2.Location = new System.Drawing.Point(16, 381); + this.linkLabel2.Name = "linkLabel2"; + this.linkLabel2.Size = new System.Drawing.Size(197, 13); + this.linkLabel2.TabIndex = 10; + this.linkLabel2.TabStop = true; + this.linkLabel2.Text = "http://qubodup.itch.io/startgamedev"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label8.Location = new System.Drawing.Point(16, 349); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(297, 26); + this.label8.TabIndex = 11; + this.label8.Text = "This app was created by Jakob Stendahl with the help of\r\nthese guys and resources" + + "."; + // + // btnContinue + // + this.btnContinue.AutoSize = true; + this.btnContinue.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(209)))), ((int)(((byte)(12))))); + this.btnContinue.BackgroundColor = System.Drawing.SystemColors.Control; + this.btnContinue.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnContinue.ForeColor = System.Drawing.Color.White; + this.btnContinue.ForegroundColor = System.Drawing.Color.White; + this.btnContinue.Location = new System.Drawing.Point(230, 469); + this.btnContinue.Name = "btnContinue"; + this.btnContinue.Padding = new System.Windows.Forms.Padding(5); + this.btnContinue.Size = new System.Drawing.Size(150, 31); + this.btnContinue.TabIndex = 2; + this.btnContinue.Text = "Start Love2dToAPK"; + this.btnContinue.Click += new System.EventHandler(this.btnContinue_Click); + // + // frmFirstStartup + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.ClientSize = new System.Drawing.Size(397, 512); + this.Controls.Add(this.btnContinue); + this.Controls.Add(this.panel1); + this.Name = "frmFirstStartup"; + this.Load += new System.EventHandler(this.frmFirstStartup_Load); + this.Controls.SetChildIndex(this.panel1, 0); + this.Controls.SetChildIndex(this.btnContinue, 0); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.LinkLabel linkLabel1; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.LinkLabel linkLabel2; + private System.Windows.Forms.Label label8; + private Controls.minimalButton btnContinue; + } +} diff --git a/love2dToAPK/Forms/frmFirstStartup.cs b/love2dToAPK/Forms/frmFirstStartup.cs new file mode 100644 index 0000000..61b026b --- /dev/null +++ b/love2dToAPK/Forms/frmFirstStartup.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace love2dToAPK.Forms { + public partial class frmFirstStartup : love2dToAPK.Forms.baseForm { + public frmFirstStartup() { + InitializeComponent(); + + WindowTitle = "Love2dToAPK"; + MinimizeAble = false; + } + + private void frmFirstStartup_Load(object sender, EventArgs e) { + btnContinue.BackgroundColor = ColorTranslator.FromHtml("#0cd10c"); + } + + private void btnContinue_Click(object sender, EventArgs e) { + Properties.Settings.Default.firstStart = false; + Properties.Settings.Default.Save(); + this.Close(); + } + } +} diff --git a/love2dToAPK/Forms/frmFirstStartup.resx b/love2dToAPK/Forms/frmFirstStartup.resx new file mode 100644 index 0000000..20d06c9 --- /dev/null +++ b/love2dToAPK/Forms/frmFirstStartup.resx @@ -0,0 +1,133 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <data name="label5.Text" xml:space="preserve"> + <value>This app wants to make the hassle of developing for Android, +a little less of a, hassle... +It automates the process of compiling the project to a APK-file, +installing it to a device and launching it.</value> + </data> + <data name="label6.Text" xml:space="preserve"> + <value>I have tried to make the app as simple and self-explanatory +as possible. Therfore i am only going to mention the +compile-hotkey here. With the app running in the background +you can press CTRL+SHIFT+F5 and the compiling will start. +A more detailed guide of the app can be found here;</value> + </data> +</root>
\ No newline at end of file diff --git a/love2dToAPK/Forms/frmMain.Designer.cs b/love2dToAPK/Forms/frmMain.Designer.cs new file mode 100644 index 0000000..02a9dfc --- /dev/null +++ b/love2dToAPK/Forms/frmMain.Designer.cs @@ -0,0 +1,191 @@ +namespace love2dToAPK.Forms { + partial class frmMain { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() { + this.panel1 = new System.Windows.Forms.Panel(); + this.btnCompile = new love2dToAPK.Controls.minimalButton(); + this.lblStatus = new System.Windows.Forms.Label(); + this.panel2 = new System.Windows.Forms.Panel(); + this.pbStatusImage = new System.Windows.Forms.PictureBox(); + this.btnSelectFolder = new love2dToAPK.Controls.minimalButton(); + this.btnSettings = new love2dToAPK.Controls.minimalButton(); + this.panel3 = new System.Windows.Forms.Panel(); + this.btnToolsFolder = new love2dToAPK.Controls.minimalButton(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbStatusImage)).BeginInit(); + this.panel3.SuspendLayout(); + this.SuspendLayout(); + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.White; + this.panel1.Controls.Add(this.btnCompile); + this.panel1.Controls.Add(this.lblStatus); + this.panel1.Controls.Add(this.panel2); + this.panel1.Location = new System.Drawing.Point(12, 62); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(229, 70); + this.panel1.TabIndex = 1; + // + // btnCompile + // + this.btnCompile.AutoSize = true; + this.btnCompile.BackColor = System.Drawing.SystemColors.Control; + this.btnCompile.BackgroundColor = System.Drawing.SystemColors.Control; + this.btnCompile.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnCompile.ForeColor = System.Drawing.Color.White; + this.btnCompile.ForegroundColor = System.Drawing.Color.White; + this.btnCompile.Location = new System.Drawing.Point(114, 45); + this.btnCompile.Name = "btnCompile"; + this.btnCompile.Padding = new System.Windows.Forms.Padding(2); + this.btnCompile.Size = new System.Drawing.Size(53, 17); + this.btnCompile.TabIndex = 2; + this.btnCompile.Text = "Compile"; + this.btnCompile.Click += new System.EventHandler(this.btnCompile_Click); + // + // lblStatus + // + this.lblStatus.AutoSize = true; + this.lblStatus.Font = new System.Drawing.Font("Segoe UI", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblStatus.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(49)))), ((int)(((byte)(110))))); + this.lblStatus.Location = new System.Drawing.Point(71, 3); + this.lblStatus.Name = "lblStatus"; + this.lblStatus.Size = new System.Drawing.Size(89, 37); + this.lblStatus.TabIndex = 1; + this.lblStatus.Text = "Ready"; + // + // panel2 + // + this.panel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(49)))), ((int)(((byte)(110))))); + this.panel2.Controls.Add(this.pbStatusImage); + this.panel2.Dock = System.Windows.Forms.DockStyle.Left; + this.panel2.Location = new System.Drawing.Point(0, 0); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(70, 70); + this.panel2.TabIndex = 0; + // + // pbStatusImage + // + this.pbStatusImage.Dock = System.Windows.Forms.DockStyle.Fill; + this.pbStatusImage.Image = global::love2dToAPK.Properties.Resources.ready; + this.pbStatusImage.Location = new System.Drawing.Point(0, 0); + this.pbStatusImage.Name = "pbStatusImage"; + this.pbStatusImage.Size = new System.Drawing.Size(70, 70); + this.pbStatusImage.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbStatusImage.TabIndex = 0; + this.pbStatusImage.TabStop = false; + // + // btnSelectFolder + // + this.btnSelectFolder.AutoSize = true; + this.btnSelectFolder.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(49)))), ((int)(((byte)(110))))); + this.btnSelectFolder.BackgroundColor = System.Drawing.SystemColors.Control; + this.btnSelectFolder.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnSelectFolder.ForeColor = System.Drawing.Color.White; + this.btnSelectFolder.ForegroundColor = System.Drawing.Color.White; + this.btnSelectFolder.Location = new System.Drawing.Point(13, 0); + this.btnSelectFolder.Name = "btnSelectFolder"; + this.btnSelectFolder.Padding = new System.Windows.Forms.Padding(2); + this.btnSelectFolder.Size = new System.Drawing.Size(114, 17); + this.btnSelectFolder.TabIndex = 3; + this.btnSelectFolder.Text = "Select project folder"; + this.btnSelectFolder.Click += new System.EventHandler(this.btnSelectFolder_Click); + // + // btnSettings + // + this.btnSettings.AutoSize = true; + this.btnSettings.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(49)))), ((int)(((byte)(110))))); + this.btnSettings.BackgroundColor = System.Drawing.SystemColors.Control; + this.btnSettings.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnSettings.ForeColor = System.Drawing.Color.White; + this.btnSettings.ForegroundColor = System.Drawing.Color.White; + this.btnSettings.Location = new System.Drawing.Point(131, 0); + this.btnSettings.Name = "btnSettings"; + this.btnSettings.Padding = new System.Windows.Forms.Padding(2); + this.btnSettings.Size = new System.Drawing.Size(53, 17); + this.btnSettings.TabIndex = 4; + this.btnSettings.Text = "Settings"; + this.btnSettings.Click += new System.EventHandler(this.btnSettings_Click); + // + // panel3 + // + this.panel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(49)))), ((int)(((byte)(110))))); + this.panel3.Controls.Add(this.btnToolsFolder); + this.panel3.Controls.Add(this.btnSelectFolder); + this.panel3.Controls.Add(this.btnSettings); + this.panel3.Location = new System.Drawing.Point(0, 37); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(253, 17); + this.panel3.TabIndex = 5; + // + // btnToolsFolder + // + this.btnToolsFolder.AutoSize = true; + this.btnToolsFolder.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(49)))), ((int)(((byte)(110))))); + this.btnToolsFolder.BackgroundColor = System.Drawing.SystemColors.Control; + this.btnToolsFolder.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnToolsFolder.ForeColor = System.Drawing.Color.White; + this.btnToolsFolder.ForegroundColor = System.Drawing.Color.White; + this.btnToolsFolder.Location = new System.Drawing.Point(188, 0); + this.btnToolsFolder.Name = "btnToolsFolder"; + this.btnToolsFolder.Padding = new System.Windows.Forms.Padding(2); + this.btnToolsFolder.Size = new System.Drawing.Size(25, 17); + this.btnToolsFolder.TabIndex = 5; + this.btnToolsFolder.Text = "dir"; + this.btnToolsFolder.Click += new System.EventHandler(this.btnToolsFolder_Click); + // + // frmMain + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.ClientSize = new System.Drawing.Size(250, 142); + this.Controls.Add(this.panel3); + this.Controls.Add(this.panel1); + this.Name = "frmMain"; + this.Load += new System.EventHandler(this.frmMain_Load); + this.Controls.SetChildIndex(this.panel1, 0); + this.Controls.SetChildIndex(this.panel3, 0); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pbStatusImage)).EndInit(); + this.panel3.ResumeLayout(false); + this.panel3.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Label lblStatus; + private Controls.minimalButton btnCompile; + private System.Windows.Forms.PictureBox pbStatusImage; + private Controls.minimalButton btnSelectFolder; + private Controls.minimalButton btnSettings; + private System.Windows.Forms.Panel panel3; + private Controls.minimalButton btnToolsFolder; + } +} diff --git a/love2dToAPK/Forms/frmMain.cs b/love2dToAPK/Forms/frmMain.cs new file mode 100644 index 0000000..59b1cbb --- /dev/null +++ b/love2dToAPK/Forms/frmMain.cs @@ -0,0 +1,86 @@ +using System; +using System.Drawing; +using System.Windows.Forms; +using Microsoft.WindowsAPICodePack.Dialogs; +using System.Runtime.InteropServices; +using System.Diagnostics; +using System.IO; + +namespace love2dToAPK.Forms { + public partial class frmMain : love2dToAPK.Forms.baseForm { + + [DllImport("user32.dll")] + private static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vk); + + [DllImport("user32.dll")] + private static extern bool UnregisterHotKey(IntPtr hWnd, int id); + + const int MOD_CONTROL = 0x0002; + const int MOD_SHIFT = 0x0004; + const int WM_HOTKEY = 0x0312; + + + public frmMain() { + InitializeComponent(); + + WindowTitle = "Love2dToAPK"; + RegisterHotKey(this.Handle, 1, MOD_CONTROL + MOD_SHIFT, (int)Keys.F5); + } + + private void frmMain_Load(object sender, EventArgs e) { + btnCompile.BackgroundColor = ColorTranslator.FromHtml("#ea316e"); + btnSelectFolder.BackgroundColor = ColorTranslator.FromHtml("#ea316e"); + btnSettings.BackgroundColor = ColorTranslator.FromHtml("#ea316e"); + btnToolsFolder.BackgroundColor = ColorTranslator.FromHtml("#ea316e"); + + this.TopMost = Properties.Settings.Default.alwaysOnTop; + } + + protected override void WndProc(ref Message m) { + if (m.Msg == WM_HOTKEY && (int)m.WParam == 1) + compileRoutine(); + base.WndProc(ref m); + } + + private void btnCompile_Click(object sender, EventArgs e) { + compileRoutine(); + } + + private void compileRoutine() { + // Open output console, deactivate self, reactivate self + this.lblStatus.Text = "Compiling..."; + this.Enabled = false; + Forms.frmOutput dlg = new Forms.frmOutput(); + Program.frmOutput = dlg; + dlg.projectPath = Properties.Settings.Default.projectPath; + DialogResult result = dlg.ShowDialog(); + Program.frmOutput = null; + this.Enabled = true; + this.lblStatus.Text = "Ready"; + } + + private void btnSelectFolder_Click(object sender, EventArgs e) { + CommonOpenFileDialog dialog = new CommonOpenFileDialog(); + //dialog.InitialDirectory = "C:\\Users"; + dialog.IsFolderPicker = true; + if (dialog.ShowDialog() == CommonFileDialogResult.Ok) { + Properties.Settings.Default.projectPath = dialog.FileName; + Properties.Settings.Default.Save(); + } + } + + private void btnSettings_Click(object sender, EventArgs e) { + this.Enabled = false; + Forms.frmSettings dlg = new Forms.frmSettings(); + dlg.ShowDialog(); + this.Enabled = true; + } + + private void btnToolsFolder_Click(object sender, EventArgs e) { + if (!Directory.Exists("tools")) { + Directory.CreateDirectory("tools"); + } + Process.Start("explorer.exe", AppDomain.CurrentDomain.BaseDirectory + "tools"); + } + } +} diff --git a/love2dToAPK/Forms/frmMain.resx b/love2dToAPK/Forms/frmMain.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/love2dToAPK/Forms/frmMain.resx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root>
\ No newline at end of file diff --git a/love2dToAPK/Forms/frmOutput.Designer.cs b/love2dToAPK/Forms/frmOutput.Designer.cs new file mode 100644 index 0000000..71aea87 --- /dev/null +++ b/love2dToAPK/Forms/frmOutput.Designer.cs @@ -0,0 +1,54 @@ +namespace love2dToAPK.Forms { + partial class frmOutput { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() { + this.txtOutput = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // txtOutput + // + this.txtOutput.Dock = System.Windows.Forms.DockStyle.Fill; + this.txtOutput.Location = new System.Drawing.Point(0, 37); + this.txtOutput.Multiline = true; + this.txtOutput.Name = "txtOutput"; + this.txtOutput.Size = new System.Drawing.Size(634, 249); + this.txtOutput.TabIndex = 3; + // + // frmOutput + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.ClientSize = new System.Drawing.Size(634, 286); + this.Controls.Add(this.txtOutput); + this.Name = "frmOutput"; + this.Load += new System.EventHandler(this.frmOutput_Load); + this.Controls.SetChildIndex(this.txtOutput, 0); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.TextBox txtOutput; + } +} diff --git a/love2dToAPK/Forms/frmOutput.cs b/love2dToAPK/Forms/frmOutput.cs new file mode 100644 index 0000000..5d63b71 --- /dev/null +++ b/love2dToAPK/Forms/frmOutput.cs @@ -0,0 +1,52 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.IO.Compression; +using System.Threading; +using System.Windows.Forms; + +namespace love2dToAPK.Forms { + public partial class frmOutput : love2dToAPK.Forms.baseForm { + + public string projectPath { get; set; } + public string responseCode { get; set; } + + private Thread _compilerThread; + private string _toolsPath = AppDomain.CurrentDomain.BaseDirectory; + + public frmOutput() { + InitializeComponent(); + + WindowTitle = "Output"; + MinimizeAble = false; + txtOutput.ScrollBars = ScrollBars.Vertical; + } + + private void frmOutput_Load(object sender, EventArgs e) { + _compilerThread = new Thread(compileRoutine); + _compilerThread.Start(); + + this.TopMost = Properties.Settings.Default.alwaysOnTop; + } + + private void compileRoutine() { + Compiler compiler = new Compiler(projectPath); + compiler.compile(); + + if (compiler.BuildSuccessful && Properties.Settings.Default.closeOnSuccess) { + this.Invoke((MethodInvoker)delegate { + this.Close(); + }); + } + } + + public void log(string str) { + if (InvokeRequired) { + this.Invoke(new Action<string>(log), new object[] { str }); + return; + } + txtOutput.AppendText(str + "\r\n"); + } + + } +} diff --git a/love2dToAPK/Forms/frmOutput.resx b/love2dToAPK/Forms/frmOutput.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/love2dToAPK/Forms/frmOutput.resx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root>
\ No newline at end of file diff --git a/love2dToAPK/Forms/frmSettings.Designer.cs b/love2dToAPK/Forms/frmSettings.Designer.cs new file mode 100644 index 0000000..4cf3cdd --- /dev/null +++ b/love2dToAPK/Forms/frmSettings.Designer.cs @@ -0,0 +1,106 @@ +namespace love2dToAPK.Forms { + partial class frmSettings { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() { + this.cbAlwaysOnTop = new System.Windows.Forms.CheckBox(); + this.cbCloseOnSuccess = new System.Windows.Forms.CheckBox(); + this.panel1 = new System.Windows.Forms.Panel(); + this.btnSave = new love2dToAPK.Controls.minimalButton(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // cbAlwaysOnTop + // + this.cbAlwaysOnTop.AutoSize = true; + this.cbAlwaysOnTop.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cbAlwaysOnTop.Location = new System.Drawing.Point(13, 13); + this.cbAlwaysOnTop.Name = "cbAlwaysOnTop"; + this.cbAlwaysOnTop.Size = new System.Drawing.Size(145, 17); + this.cbAlwaysOnTop.TabIndex = 1; + this.cbAlwaysOnTop.Text = "Window always on top"; + this.cbAlwaysOnTop.UseVisualStyleBackColor = true; + // + // cbCloseOnSuccess + // + this.cbCloseOnSuccess.AutoSize = true; + this.cbCloseOnSuccess.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cbCloseOnSuccess.Location = new System.Drawing.Point(13, 36); + this.cbCloseOnSuccess.Name = "cbCloseOnSuccess"; + this.cbCloseOnSuccess.Size = new System.Drawing.Size(260, 17); + this.cbCloseOnSuccess.TabIndex = 2; + this.cbCloseOnSuccess.Text = "Close output-window if build was successfull"; + this.cbCloseOnSuccess.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.cbCloseOnSuccess.UseVisualStyleBackColor = true; + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.White; + this.panel1.Controls.Add(this.cbAlwaysOnTop); + this.panel1.Controls.Add(this.cbCloseOnSuccess); + this.panel1.Location = new System.Drawing.Point(12, 55); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(289, 67); + this.panel1.TabIndex = 3; + // + // btnSave + // + this.btnSave.AutoSize = true; + this.btnSave.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); + this.btnSave.BackgroundColor = System.Drawing.SystemColors.Control; + this.btnSave.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnSave.ForeColor = System.Drawing.Color.White; + this.btnSave.ForegroundColor = System.Drawing.Color.White; + this.btnSave.Location = new System.Drawing.Point(239, 135); + this.btnSave.Name = "btnSave"; + this.btnSave.Padding = new System.Windows.Forms.Padding(5); + this.btnSave.Size = new System.Drawing.Size(61, 35); + this.btnSave.TabIndex = 4; + this.btnSave.Text = "Save"; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // frmSettings + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.ClientSize = new System.Drawing.Size(317, 183); + this.Controls.Add(this.btnSave); + this.Controls.Add(this.panel1); + this.Name = "frmSettings"; + this.Load += new System.EventHandler(this.frmSettings_Load); + this.Controls.SetChildIndex(this.panel1, 0); + this.Controls.SetChildIndex(this.btnSave, 0); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.CheckBox cbAlwaysOnTop; + private System.Windows.Forms.CheckBox cbCloseOnSuccess; + private System.Windows.Forms.Panel panel1; + private Controls.minimalButton btnSave; + } +} diff --git a/love2dToAPK/Forms/frmSettings.cs b/love2dToAPK/Forms/frmSettings.cs new file mode 100644 index 0000000..3b43381 --- /dev/null +++ b/love2dToAPK/Forms/frmSettings.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace love2dToAPK.Forms { + public partial class frmSettings : love2dToAPK.Forms.baseForm { + public frmSettings() { + InitializeComponent(); + + WindowTitle = "Settings"; + MinimizeAble = false; + + this.TopMost = Properties.Settings.Default.alwaysOnTop; + } + + private void frmSettings_Load(object sender, EventArgs e) { + btnSave.BackgroundColor = ColorTranslator.FromHtml("#0fdb0f"); + + cbAlwaysOnTop.Checked = Properties.Settings.Default.alwaysOnTop; + cbCloseOnSuccess.Checked = Properties.Settings.Default.closeOnSuccess; + } + + private void btnSave_Click(object sender, EventArgs e) { + Properties.Settings.Default.alwaysOnTop = cbAlwaysOnTop.Checked; + Properties.Settings.Default.closeOnSuccess = cbCloseOnSuccess.Checked; + Properties.Settings.Default.Save(); + MessageBox.Show("Restart the app for changes to take effect."); + this.Close(); + } + } +} diff --git a/love2dToAPK/Forms/frmSettings.resx b/love2dToAPK/Forms/frmSettings.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/love2dToAPK/Forms/frmSettings.resx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root>
\ No newline at end of file |