diff --git a/ShareX/Forms/ImageCombinerForm.Designer.cs b/ShareX/Forms/ImageCombinerForm.Designer.cs new file mode 100644 index 000000000..e6c6e656c --- /dev/null +++ b/ShareX/Forms/ImageCombinerForm.Designer.cs @@ -0,0 +1,198 @@ +namespace ShareX +{ + partial class ImageCombinerForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnAdd = new System.Windows.Forms.Button(); + this.btnRemove = new System.Windows.Forms.Button(); + this.btnMoveUp = new System.Windows.Forms.Button(); + this.btnMoveDown = new System.Windows.Forms.Button(); + this.myListView1 = new ShareX.HelpersLib.MyListView(); + this.chFilepath = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.btnCombine = new System.Windows.Forms.Button(); + this.lblSpace = new System.Windows.Forms.Label(); + this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); + this.lblOrientation = new System.Windows.Forms.Label(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); + this.SuspendLayout(); + // + // btnAdd + // + this.btnAdd.Location = new System.Drawing.Point(8, 8); + this.btnAdd.Name = "btnAdd"; + this.btnAdd.Size = new System.Drawing.Size(120, 23); + this.btnAdd.TabIndex = 0; + this.btnAdd.Text = "Add..."; + this.btnAdd.UseVisualStyleBackColor = true; + this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click); + // + // btnRemove + // + this.btnRemove.Location = new System.Drawing.Point(136, 8); + this.btnRemove.Name = "btnRemove"; + this.btnRemove.Size = new System.Drawing.Size(120, 23); + this.btnRemove.TabIndex = 1; + this.btnRemove.Text = "Remove"; + this.btnRemove.UseVisualStyleBackColor = true; + this.btnRemove.Click += new System.EventHandler(this.btnRemove_Click); + // + // btnMoveUp + // + this.btnMoveUp.Location = new System.Drawing.Point(264, 8); + this.btnMoveUp.Name = "btnMoveUp"; + this.btnMoveUp.Size = new System.Drawing.Size(120, 23); + this.btnMoveUp.TabIndex = 2; + this.btnMoveUp.Text = "Move up"; + this.btnMoveUp.UseVisualStyleBackColor = true; + this.btnMoveUp.Click += new System.EventHandler(this.btnMoveUp_Click); + // + // btnMoveDown + // + this.btnMoveDown.Location = new System.Drawing.Point(392, 8); + this.btnMoveDown.Name = "btnMoveDown"; + this.btnMoveDown.Size = new System.Drawing.Size(120, 23); + this.btnMoveDown.TabIndex = 3; + this.btnMoveDown.Text = "Move down"; + this.btnMoveDown.UseVisualStyleBackColor = true; + this.btnMoveDown.Click += new System.EventHandler(this.btnMoveDown_Click); + // + // myListView1 + // + this.myListView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.myListView1.AutoFillColumn = true; + this.myListView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.chFilepath}); + this.myListView1.FullRowSelect = true; + this.myListView1.Location = new System.Drawing.Point(8, 40); + this.myListView1.Name = "myListView1"; + this.myListView1.Size = new System.Drawing.Size(504, 368); + this.myListView1.TabIndex = 4; + this.myListView1.UseCompatibleStateImageBehavior = false; + this.myListView1.View = System.Windows.Forms.View.Details; + // + // chFilepath + // + this.chFilepath.Text = "Image file path"; + this.chFilepath.Width = 487; + // + // btnCombine + // + this.btnCombine.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnCombine.Location = new System.Drawing.Point(8, 472); + this.btnCombine.Name = "btnCombine"; + this.btnCombine.Size = new System.Drawing.Size(504, 31); + this.btnCombine.TabIndex = 5; + this.btnCombine.Text = "Combine images and save/upload"; + this.btnCombine.UseVisualStyleBackColor = true; + this.btnCombine.Click += new System.EventHandler(this.btnCombine_Click); + // + // lblSpace + // + this.lblSpace.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.lblSpace.AutoSize = true; + this.lblSpace.Location = new System.Drawing.Point(8, 448); + this.lblSpace.Name = "lblSpace"; + this.lblSpace.Size = new System.Drawing.Size(121, 13); + this.lblSpace.TabIndex = 6; + this.lblSpace.Text = "Space between images:"; + // + // numericUpDown1 + // + this.numericUpDown1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.numericUpDown1.Location = new System.Drawing.Point(200, 444); + this.numericUpDown1.Maximum = new decimal(new int[] { + 1000, + 0, + 0, + 0}); + this.numericUpDown1.Name = "numericUpDown1"; + this.numericUpDown1.Size = new System.Drawing.Size(64, 20); + this.numericUpDown1.TabIndex = 7; + this.numericUpDown1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // lblOrientation + // + this.lblOrientation.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.lblOrientation.AutoSize = true; + this.lblOrientation.Location = new System.Drawing.Point(8, 424); + this.lblOrientation.Name = "lblOrientation"; + this.lblOrientation.Size = new System.Drawing.Size(103, 13); + this.lblOrientation.TabIndex = 8; + this.lblOrientation.Text = "Combine orientation:"; + // + // comboBox1 + // + this.comboBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Location = new System.Drawing.Point(200, 420); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(121, 21); + this.comboBox1.TabIndex = 9; + // + // ImageCombinerForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(521, 514); + this.Controls.Add(this.comboBox1); + this.Controls.Add(this.lblOrientation); + this.Controls.Add(this.numericUpDown1); + this.Controls.Add(this.lblSpace); + this.Controls.Add(this.btnCombine); + this.Controls.Add(this.myListView1); + this.Controls.Add(this.btnMoveDown); + this.Controls.Add(this.btnMoveUp); + this.Controls.Add(this.btnRemove); + this.Controls.Add(this.btnAdd); + this.Name = "ImageCombinerForm"; + this.Text = "ShareX - Image combiner"; + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnAdd; + private System.Windows.Forms.Button btnRemove; + private System.Windows.Forms.Button btnMoveUp; + private System.Windows.Forms.Button btnMoveDown; + private HelpersLib.MyListView myListView1; + private System.Windows.Forms.Button btnCombine; + private System.Windows.Forms.Label lblSpace; + private System.Windows.Forms.NumericUpDown numericUpDown1; + private System.Windows.Forms.Label lblOrientation; + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.ColumnHeader chFilepath; + } +} \ No newline at end of file diff --git a/ShareX/Forms/ImageCombinerForm.cs b/ShareX/Forms/ImageCombinerForm.cs new file mode 100644 index 000000000..29e7c6c40 --- /dev/null +++ b/ShareX/Forms/ImageCombinerForm.cs @@ -0,0 +1,68 @@ +#region License Information (GPL v3) + +/* + ShareX - A program that allows you to take screenshots and share any file type + Copyright (c) 2007-2015 ShareX Team + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + Optionally you can also view the license at . +*/ + +#endregion License Information (GPL v3) + +using ShareX.HelpersLib; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace ShareX +{ + public partial class ImageCombinerForm : BaseForm + { + public ImageCombinerOptions Options { get; private set; } + + public ImageCombinerForm(ImageCombinerOptions options) + { + Options = options; + InitializeComponent(); + } + + private void btnAdd_Click(object sender, EventArgs e) + { + } + + private void btnRemove_Click(object sender, EventArgs e) + { + } + + private void btnMoveUp_Click(object sender, EventArgs e) + { + } + + private void btnMoveDown_Click(object sender, EventArgs e) + { + } + + private void btnCombine_Click(object sender, EventArgs e) + { + } + } +} \ No newline at end of file diff --git a/ShareX/Forms/ImageCombinerForm.resx b/ShareX/Forms/ImageCombinerForm.resx new file mode 100644 index 000000000..1af7de150 --- /dev/null +++ b/ShareX/Forms/ImageCombinerForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ShareX/Forms/MainForm.Designer.cs b/ShareX/Forms/MainForm.Designer.cs index 9d35805ae..32cf7d6e7 100644 --- a/ShareX/Forms/MainForm.Designer.cs +++ b/ShareX/Forms/MainForm.Designer.cs @@ -79,6 +79,7 @@ private void InitializeComponent() this.tsmiRuler = new System.Windows.Forms.ToolStripMenuItem(); this.tsmiAutomate = new System.Windows.Forms.ToolStripMenuItem(); this.tsmiIndexFolder = new System.Windows.Forms.ToolStripMenuItem(); + this.tsmiImageCombiner = new System.Windows.Forms.ToolStripMenuItem(); this.tsmiVideoThumbnailer = new System.Windows.Forms.ToolStripMenuItem(); this.tsmiFTPClient = new System.Windows.Forms.ToolStripMenuItem(); this.tsmiTweetMessage = new System.Windows.Forms.ToolStripMenuItem(); @@ -229,6 +230,7 @@ private void InitializeComponent() this.tsmiTrayShow = new System.Windows.Forms.ToolStripMenuItem(); this.tsmiTrayExit = new System.Windows.Forms.ToolStripMenuItem(); this.timerTraySingleClick = new System.Windows.Forms.Timer(this.components); + this.tsmiTrayImageCombiner = new System.Windows.Forms.ToolStripMenuItem(); ((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit(); this.scMain.Panel1.SuspendLayout(); this.scMain.Panel2.SuspendLayout(); @@ -564,6 +566,7 @@ private void InitializeComponent() this.tsmiRuler, this.tsmiAutomate, this.tsmiIndexFolder, + this.tsmiImageCombiner, this.tsmiVideoThumbnailer, this.tsmiFTPClient, this.tsmiTweetMessage, @@ -649,6 +652,13 @@ private void InitializeComponent() resources.ApplyResources(this.tsmiIndexFolder, "tsmiIndexFolder"); this.tsmiIndexFolder.Click += new System.EventHandler(this.tsmiIndexFolder_Click); // + // tsmiImageCombiner + // + this.tsmiImageCombiner.Image = global::ShareX.Properties.Resources.document_break; + this.tsmiImageCombiner.Name = "tsmiImageCombiner"; + resources.ApplyResources(this.tsmiImageCombiner, "tsmiImageCombiner"); + this.tsmiImageCombiner.Click += new System.EventHandler(this.tsmiImageCombiner_Click); + // // tsmiVideoThumbnailer // this.tsmiVideoThumbnailer.Image = global::ShareX.Properties.Resources.images_stack; @@ -1471,6 +1481,7 @@ private void InitializeComponent() this.tsmiTrayRuler, this.tsmiTrayAutomate, this.tsmiTrayIndexFolder, + this.tsmiTrayImageCombiner, this.tsmiTrayVideoThumbnailer, this.tsmiTrayFTPClient, this.tsmiTrayTweetMessage, @@ -1755,6 +1766,13 @@ private void InitializeComponent() // this.timerTraySingleClick.Tick += new System.EventHandler(this.timerTraySingleClick_Tick); // + // tsmiTrayImageCombiner + // + this.tsmiTrayImageCombiner.Image = global::ShareX.Properties.Resources.document_break; + this.tsmiTrayImageCombiner.Name = "tsmiTrayImageCombiner"; + resources.ApplyResources(this.tsmiTrayImageCombiner, "tsmiTrayImageCombiner"); + this.tsmiTrayImageCombiner.Click += new System.EventHandler(this.tsmiImageCombiner_Click); + // // MainForm // this.AllowDrop = true; @@ -1987,5 +2005,7 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem tsmiTrayIRCClient; private System.Windows.Forms.ToolStripMenuItem tsmiScrollingCapture; private System.Windows.Forms.ToolStripMenuItem tsmiTrayScrollingCapture; + private System.Windows.Forms.ToolStripMenuItem tsmiImageCombiner; + private System.Windows.Forms.ToolStripMenuItem tsmiTrayImageCombiner; } } \ No newline at end of file diff --git a/ShareX/Forms/MainForm.cs b/ShareX/Forms/MainForm.cs index 97bb234a2..15e6974df 100644 --- a/ShareX/Forms/MainForm.cs +++ b/ShareX/Forms/MainForm.cs @@ -1022,6 +1022,10 @@ private void tsmiIndexFolder_Click(object sender, EventArgs e) TaskHelpers.OpenIndexFolder(); } + private void tsmiImageCombiner_Click(object sender, EventArgs e) + { + TaskHelpers.OpenImageCombiner(); + } private void tsmiVideoThumbnailer_Click(object sender, EventArgs e) { TaskHelpers.OpenVideoThumbnailer(); @@ -2373,6 +2377,7 @@ private void tsmiTrayRectangleLight_Click(object sender, EventArgs e) CaptureRectangleLight(null, false); } + private void tsmiTrayRectangleTransparent_Click(object sender, EventArgs e) { CaptureRectangleTransparent(null, false); diff --git a/ShareX/Forms/MainForm.resx b/ShareX/Forms/MainForm.resx index c7c246150..310a27aa7 100644 --- a/ShareX/Forms/MainForm.resx +++ b/ShareX/Forms/MainForm.resx @@ -552,6 +552,12 @@ Index folder... + + 183, 22 + + + Image combiner... + 183, 22 @@ -1347,6 +1353,12 @@ Index folder... + + 183, 22 + + + Image combiner... + 183, 22 @@ -1809,6 +1821,12 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + tsmiImageCombiner + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + tsmiVideoThumbnailer @@ -2697,10 +2715,16 @@ System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + tsmiTrayImageCombiner + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + MainForm - ShareX.HotkeyForm, ShareX, Version=10.2.6.0, Culture=neutral, PublicKeyToken=null + ShareX.HotkeyForm, ShareX, Version=10.3.0.0, Culture=neutral, PublicKeyToken=null \ No newline at end of file diff --git a/ShareX/ImageCombinerOptions.cs b/ShareX/ImageCombinerOptions.cs new file mode 100644 index 000000000..04cddb22c --- /dev/null +++ b/ShareX/ImageCombinerOptions.cs @@ -0,0 +1,39 @@ +#region License Information (GPL v3) + +/* + ShareX - A program that allows you to take screenshots and share any file type + Copyright (c) 2007-2015 ShareX Team + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + Optionally you can also view the license at . +*/ + +#endregion License Information (GPL v3) + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace ShareX +{ + public class ImageCombinerOptions + { + public Orientation Orientation { get; set; } = Orientation.Vertical; + public int Space { get; set; } = 0; + } +} \ No newline at end of file diff --git a/ShareX/Properties/Resources.Designer.cs b/ShareX/Properties/Resources.Designer.cs index 462d40a6c..1e1041b6f 100644 --- a/ShareX/Properties/Resources.Designer.cs +++ b/ShareX/Properties/Resources.Designer.cs @@ -631,6 +631,16 @@ public static System.Drawing.Bitmap Diamond { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap document_break { + get { + object obj = ResourceManager.GetObject("document-break", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/ShareX/Properties/Resources.resx b/ShareX/Properties/Resources.resx index afc1c30c6..a54d45dfa 100644 --- a/ShareX/Properties/Resources.resx +++ b/ShareX/Properties/Resources.resx @@ -138,6 +138,9 @@ Are you sure you want to continue? Shorten URL ({0}) + + ..\Resources\layer-transparent.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + There is no valid CLI video encoder selected. @@ -163,15 +166,15 @@ Press 'No' to cancel the current upload and disable screenshot auto uploading. ..\Resources\google_plus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\toolbox.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\au.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a FFmpeg error + + ..\Resources\checkbox_check.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + FFmpeg successfully downloaded. @@ -220,6 +223,9 @@ Press 'No' to cancel the current upload and disable screenshot auto uploading. ..\Resources\folder-open-image.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\ui-scroll-pane-image.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\camcorder--pencil.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -260,6 +266,9 @@ Please select a different hotkey or quit the conflicting application and reopen Stop + + Left click to copy URL to clipboard. Right click to open URL. + ..\Resources\robot.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -302,9 +311,6 @@ Please select a different hotkey or quit the conflicting application and reopen You can single left click the ShareX tray icon to start region capture. - - ..\Resources\application-task.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - Task settings @@ -322,6 +328,9 @@ Would you like to automatically download it? ..\Resources\application-block.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Translators + ..\Resources\image-export.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -361,8 +370,8 @@ Press yes to open image from clipboard. Alternatively, press no to open image fi Hide menu - - Unable to create folder: + + ..\Resources\monitor.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Capture @@ -415,9 +424,6 @@ Press yes to open image from clipboard. Alternatively, press no to open image fi ..\Resources\kr.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\pencil.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - Error @@ -440,9 +446,6 @@ here hotkeys - - ..\Resources\arrow-270.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\drive.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -455,9 +458,6 @@ here ..\Resources\traffic-cone.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Issues - Path can't be empty. @@ -505,8 +505,8 @@ Please run ShareX as administrator to change personal folder path. FTP client only supports FTP or FTPS. - - ..\Resources\arrow-090.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\layers-arrange.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Choose folder path @@ -521,6 +521,9 @@ Would you like to restart ShareX? ..\Resources\layer-shape.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\eraser.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\image--pencil.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -533,6 +536,9 @@ Would you like to restart ShareX? ..\Resources\cn.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\categories.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Use new name: @@ -569,8 +575,8 @@ Would you like to restart ShareX? ..\Resources\folder-tree.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Translators + + ..\Resources\arrow-270.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\layer.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -578,9 +584,6 @@ Would you like to restart ShareX? ..\Resources\ruler-triangle.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - {0} is about to be uploaded to {1}. You may choose a different destination. - Start @@ -605,11 +608,8 @@ Would you like to restart ShareX? ..\Resources\clipboard.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\barcode-2d.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\gear.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Unable to create folder: Choose screenshots folder path @@ -620,11 +620,8 @@ Would you like to restart ShareX? ..\Resources\film.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Close - - - Left click to copy URL to clipboard. Right click to open URL. + + ..\Resources\arrow-090.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\clipboard-list.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -641,8 +638,8 @@ Would you like to restart ShareX? File upload - - Start screen color picker + + ..\Resources\cross.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\navigation-000-button.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -657,9 +654,6 @@ Would you like to restart ShareX? Download failed: {0} - - After upload: {0} - ..\Resources\layer-shape-ellipse.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -690,8 +684,8 @@ Would you like to restart ShareX? ..\Resources\layer-shape-polygon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\checkbox_check.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\toolbox.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Stopped @@ -708,18 +702,21 @@ Would you like to restart ShareX? Chrome support disabled. - - ..\Resources\cross.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Issues Chrome support enabled. - - ..\Resources\layer-transparent.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Close ..\Resources\wrench-screwdriver.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\application-browser.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\ErrorSound.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -729,8 +726,8 @@ Would you like to restart ShareX? Text upload test - - ..\Resources\application-browser.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\application-task.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\notebook.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -747,6 +744,9 @@ Would you like to restart ShareX? Downloading + + ..\Resources\gear.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Image editor - How to load image? @@ -768,20 +768,23 @@ Would you like to restart ShareX? ..\Resources\RoundedRectangle.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\monitor.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Unable to find valid Twitter account. + + + {0} is about to be uploaded to {1}. You may choose a different destination. Website - - ..\Resources\categories.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\pencil.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\layers-arrange.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + After upload: {0} - - ..\Resources\eraser.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\barcode-2d.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Fullscreen.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -799,10 +802,10 @@ Would you like to restart ShareX? Download of FFmpeg failed. - - Unable to find valid Twitter account. + + Start screen color picker - - ..\Resources\ui-scroll-pane-image.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\document-break.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/ShareX/Resources/document-break.png b/ShareX/Resources/document-break.png new file mode 100644 index 000000000..65a6a6bee Binary files /dev/null and b/ShareX/Resources/document-break.png differ diff --git a/ShareX/ShareX.csproj b/ShareX/ShareX.csproj index 1f6b423b9..3592c084a 100644 --- a/ShareX/ShareX.csproj +++ b/ShareX/ShareX.csproj @@ -166,6 +166,12 @@ AboutForm.cs + + Form + + + ImageCombinerForm.cs + Form @@ -178,6 +184,7 @@ FirstTimeConfigForm.cs + @@ -647,6 +654,9 @@ HotkeySettingsForm.cs + + ImageCombinerForm.cs + MainForm.cs @@ -1068,6 +1078,7 @@ + diff --git a/ShareX/TaskHelpers.cs b/ShareX/TaskHelpers.cs index 1983e3e8c..b0a60cd4d 100644 --- a/ShareX/TaskHelpers.cs +++ b/ShareX/TaskHelpers.cs @@ -584,6 +584,13 @@ public static void OpenIndexFolder() UploadManager.IndexFolder(); } + public static void OpenImageCombiner(TaskSettings taskSettings = null) + { + if (taskSettings == null) taskSettings = TaskSettings.GetDefaultTaskSettings(); + + new ImageCombinerForm(taskSettings.ToolsSettingsReference.ImageCombinerOptions).Show(); + } + public static void OpenVideoThumbnailer(TaskSettings taskSettings = null) { if (taskSettings == null) taskSettings = TaskSettings.GetDefaultTaskSettings(); diff --git a/ShareX/TaskSettings.cs b/ShareX/TaskSettings.cs index eb81aa857..ec2bb8496 100644 --- a/ShareX/TaskSettings.cs +++ b/ShareX/TaskSettings.cs @@ -364,6 +364,7 @@ public class TaskSettingsUpload public class TaskSettingsTools { public IndexerSettings IndexerSettings = new IndexerSettings(); + public ImageCombinerOptions ImageCombinerOptions = new ImageCombinerOptions(); public VideoThumbnailOptions VideoThumbnailOptions = new VideoThumbnailOptions(); public IRCInfo IRCSettings = new IRCInfo(); }