summaryrefslogtreecommitdiff
path: root/love2dToAPK/Forms
diff options
context:
space:
mode:
authorJakob Stendahl <jakob.stendahl@outlook.com>2018-01-09 15:01:04 +0100
committerJakob Stendahl <jakob.stendahl@outlook.com>2018-01-09 15:01:04 +0100
commitbb6e704ab011a497ac8c735afc0fd4c52a1425ce (patch)
treebed462d18c4f976f30c690b529d6de8b2a6ba2ff /love2dToAPK/Forms
parentd2c375c015fe3e216234a887ab75e08d40f5f5db (diff)
downloadLove2dToAPK-bb6e704ab011a497ac8c735afc0fd4c52a1425ce.tar.gz
Love2dToAPK-bb6e704ab011a497ac8c735afc0fd4c52a1425ce.zip
Added old project
Diffstat (limited to 'love2dToAPK/Forms')
-rw-r--r--love2dToAPK/Forms/baseForm.Designer.cs123
-rw-r--r--love2dToAPK/Forms/baseForm.cs159
-rw-r--r--love2dToAPK/Forms/baseForm.resx120
-rw-r--r--love2dToAPK/Forms/frmFirstStartup.Designer.cs216
-rw-r--r--love2dToAPK/Forms/frmFirstStartup.cs28
-rw-r--r--love2dToAPK/Forms/frmFirstStartup.resx133
-rw-r--r--love2dToAPK/Forms/frmMain.Designer.cs191
-rw-r--r--love2dToAPK/Forms/frmMain.cs86
-rw-r--r--love2dToAPK/Forms/frmMain.resx120
-rw-r--r--love2dToAPK/Forms/frmOutput.Designer.cs54
-rw-r--r--love2dToAPK/Forms/frmOutput.cs52
-rw-r--r--love2dToAPK/Forms/frmOutput.resx120
-rw-r--r--love2dToAPK/Forms/frmSettings.Designer.cs106
-rw-r--r--love2dToAPK/Forms/frmSettings.cs35
-rw-r--r--love2dToAPK/Forms/frmSettings.resx120
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