Added fundamental tab support to IRC client

This commit is contained in:
Jaex 2015-08-31 13:57:51 +03:00
parent 85f921c38b
commit 223c651e16
6 changed files with 460 additions and 282 deletions

View file

@ -67,8 +67,8 @@ private void InitializeComponent()
this.btnMessagesMenu = new System.Windows.Forms.Button();
this.lblMessage = new System.Windows.Forms.Label();
this.lblChannel = new System.Windows.Forms.Label();
this.txtMessages = new System.Windows.Forms.TextBox();
this.txtChannel = new System.Windows.Forms.TextBox();
this.tcMessages = new System.Windows.Forms.TabControl();
this.cmsMessage.SuspendLayout();
this.tcMain.SuspendLayout();
this.tpMain.SuspendLayout();
@ -344,10 +344,10 @@ private void InitializeComponent()
//
// tpMessages
//
this.tpMessages.Controls.Add(this.tcMessages);
this.tpMessages.Controls.Add(this.btnMessagesMenu);
this.tpMessages.Controls.Add(this.lblMessage);
this.tpMessages.Controls.Add(this.lblChannel);
this.tpMessages.Controls.Add(this.txtMessages);
this.tpMessages.Controls.Add(this.txtChannel);
this.tpMessages.Controls.Add(this.txtMessage);
this.tpMessages.Controls.Add(this.btnMessageSend);
@ -372,18 +372,17 @@ private void InitializeComponent()
resources.ApplyResources(this.lblChannel, "lblChannel");
this.lblChannel.Name = "lblChannel";
//
// txtMessages
//
resources.ApplyResources(this.txtMessages, "txtMessages");
this.txtMessages.BackColor = System.Drawing.Color.White;
this.txtMessages.Name = "txtMessages";
this.txtMessages.ReadOnly = true;
//
// txtChannel
//
resources.ApplyResources(this.txtChannel, "txtChannel");
this.txtChannel.Name = "txtChannel";
//
// tcMessages
//
resources.ApplyResources(this.tcMessages, "tcMessages");
this.tcMessages.Name = "tcMessages";
this.tcMessages.SelectedIndex = 0;
//
// IRCClientForm
//
resources.ApplyResources(this, "$this");
@ -410,7 +409,6 @@ private void InitializeComponent()
private System.Windows.Forms.TabControl tcMain;
private System.Windows.Forms.TabPage tpOutput;
private System.Windows.Forms.TabPage tpMessages;
private System.Windows.Forms.TextBox txtMessages;
private System.Windows.Forms.TextBox txtChannel;
private System.Windows.Forms.Label lblChannel;
private System.Windows.Forms.Label lblMessage;
@ -443,6 +441,7 @@ private void InitializeComponent()
private System.Windows.Forms.ToolStripMenuItem tsmiColorPink;
private System.Windows.Forms.ToolStripMenuItem tsmiColorGrey;
private System.Windows.Forms.ToolStripMenuItem tsmiColorLightGrey;
private System.Windows.Forms.TabControl tcMessages;
}
}

View file

@ -35,6 +35,7 @@ public partial class IRCClientForm : Form
public IRCInfo Info { get; private set; }
public IRC IRC { get; private set; }
private TabManager tabManager;
private string lastCommand, lastMessage;
public IRCClientForm() : this(new IRCInfo())
@ -47,6 +48,8 @@ public IRCClientForm(IRCInfo info)
Icon = ShareXResources.Icon;
((ToolStripDropDownMenu)tsmiColors.DropDown).ShowImageMargin = false;
tabManager = new TabManager(tcMessages);
Info = info;
pgSettings.SelectedObject = Info;
@ -190,10 +193,7 @@ private bool CheckInfo()
private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
{
if (IRC.IsConnected)
{
IRC.Disconnect();
}
IRC.Disconnect();
}
private void btnConnect_Click(object sender, EventArgs e)
@ -376,7 +376,10 @@ private void IRC_Output(MessageInfo messageInfo)
private void IRC_Message(UserInfo user, string channel, string message)
{
WriteText($"{DateTime.Now:HH:mm:ss} - {user.Nickname} > {channel}: {message}", txtMessages);
this.InvokeSafe(() =>
{
tabManager.AddMessage(channel, $"{DateTime.Now:HH:mm:ss} - {user.Nickname}: {message}");
});
}
private void IRC_UserJoined(UserInfo user, string channel)

View file

@ -147,6 +147,15 @@
<metadata name="cmsMessage.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="cmsMessage.Size" type="System.Drawing.Size, System.Drawing">
<value>101, 114</value>
</data>
<data name="&gt;&gt;cmsMessage.Name" xml:space="preserve">
<value>cmsMessage</value>
</data>
<data name="&gt;&gt;cmsMessage.Type" xml:space="preserve">
<value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="tsmiMessageBold.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt, style=Bold</value>
</data>
@ -180,6 +189,12 @@
<data name="tsmiMessageNormal.Text" xml:space="preserve">
<value>Normal</value>
</data>
<data name="tsmiColors.Size" type="System.Drawing.Size, System.Drawing">
<value>100, 22</value>
</data>
<data name="tsmiColors.Text" xml:space="preserve">
<value>Colors</value>
</data>
<data name="tsmiColorWhite.Size" type="System.Drawing.Size, System.Drawing">
<value>135, 22</value>
</data>
@ -276,21 +291,6 @@
<data name="tsmiColorLightGrey.Text" xml:space="preserve">
<value>Light Grey</value>
</data>
<data name="tsmiColors.Size" type="System.Drawing.Size, System.Drawing">
<value>100, 22</value>
</data>
<data name="tsmiColors.Text" xml:space="preserve">
<value>Colors</value>
</data>
<data name="cmsMessage.Size" type="System.Drawing.Size, System.Drawing">
<value>101, 114</value>
</data>
<data name="&gt;&gt;cmsMessage.Name" xml:space="preserve">
<value>cmsMessage</value>
</data>
<data name="&gt;&gt;cmsMessage.Type" xml:space="preserve">
<value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="btnMessageSend.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Right</value>
</data>
@ -354,6 +354,306 @@
<data name="&gt;&gt;txtOutput.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="&gt;&gt;btnConnect.Name" xml:space="preserve">
<value>btnConnect</value>
</data>
<data name="&gt;&gt;btnConnect.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnConnect.Parent" xml:space="preserve">
<value>tpMain</value>
</data>
<data name="&gt;&gt;btnConnect.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;pgSettings.Name" xml:space="preserve">
<value>pgSettings</value>
</data>
<data name="&gt;&gt;pgSettings.Type" xml:space="preserve">
<value>System.Windows.Forms.PropertyGrid, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;pgSettings.Parent" xml:space="preserve">
<value>tpMain</value>
</data>
<data name="&gt;&gt;pgSettings.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tpMain.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value>
</data>
<data name="tpMain.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpMain.Size" type="System.Drawing.Size, System.Drawing">
<value>976, 635</value>
</data>
<data name="tpMain.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="tpMain.Text" xml:space="preserve">
<value>Main</value>
</data>
<data name="&gt;&gt;tpMain.Name" xml:space="preserve">
<value>tpMain</value>
</data>
<data name="&gt;&gt;tpMain.Type" xml:space="preserve">
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tpMain.Parent" xml:space="preserve">
<value>tcMain</value>
</data>
<data name="&gt;&gt;tpMain.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;txtCommand.Name" xml:space="preserve">
<value>txtCommand</value>
</data>
<data name="&gt;&gt;txtCommand.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txtCommand.Parent" xml:space="preserve">
<value>tpOutput</value>
</data>
<data name="&gt;&gt;txtCommand.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;lblCommand.Name" xml:space="preserve">
<value>lblCommand</value>
</data>
<data name="&gt;&gt;lblCommand.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblCommand.Parent" xml:space="preserve">
<value>tpOutput</value>
</data>
<data name="&gt;&gt;lblCommand.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;btnCommandSend.Name" xml:space="preserve">
<value>btnCommandSend</value>
</data>
<data name="&gt;&gt;btnCommandSend.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnCommandSend.Parent" xml:space="preserve">
<value>tpOutput</value>
</data>
<data name="&gt;&gt;btnCommandSend.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="tpOutput.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value>
</data>
<data name="tpOutput.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpOutput.Size" type="System.Drawing.Size, System.Drawing">
<value>976, 635</value>
</data>
<data name="tpOutput.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="tpOutput.Text" xml:space="preserve">
<value>IRC output</value>
</data>
<data name="&gt;&gt;tpOutput.Name" xml:space="preserve">
<value>tpOutput</value>
</data>
<data name="&gt;&gt;tpOutput.Type" xml:space="preserve">
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tpOutput.Parent" xml:space="preserve">
<value>tcMain</value>
</data>
<data name="&gt;&gt;tpOutput.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tcMessages.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="tcMessages.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tcMessages.Size" type="System.Drawing.Size, System.Drawing">
<value>976, 592</value>
</data>
<data name="tcMessages.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="&gt;&gt;tcMessages.Name" xml:space="preserve">
<value>tcMessages</value>
</data>
<data name="&gt;&gt;tcMessages.Type" xml:space="preserve">
<value>System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tcMessages.Parent" xml:space="preserve">
<value>tpMessages</value>
</data>
<data name="&gt;&gt;tcMessages.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="btnMessagesMenu.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Right</value>
</data>
<data name="btnMessagesMenu.Location" type="System.Drawing.Point, System.Drawing">
<value>856, 602</value>
</data>
<data name="btnMessagesMenu.Size" type="System.Drawing.Size, System.Drawing">
<value>24, 24</value>
</data>
<data name="btnMessagesMenu.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="btnMessagesMenu.Text" xml:space="preserve">
<value>...</value>
</data>
<data name="&gt;&gt;btnMessagesMenu.Name" xml:space="preserve">
<value>btnMessagesMenu</value>
</data>
<data name="&gt;&gt;btnMessagesMenu.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnMessagesMenu.Parent" xml:space="preserve">
<value>tpMessages</value>
</data>
<data name="&gt;&gt;btnMessagesMenu.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="lblMessage.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="lblMessage.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblMessage.Location" type="System.Drawing.Point, System.Drawing">
<value>192, 608</value>
</data>
<data name="lblMessage.Size" type="System.Drawing.Size, System.Drawing">
<value>53, 13</value>
</data>
<data name="lblMessage.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="lblMessage.Text" xml:space="preserve">
<value>Message:</value>
</data>
<data name="&gt;&gt;lblMessage.Name" xml:space="preserve">
<value>lblMessage</value>
</data>
<data name="&gt;&gt;lblMessage.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblMessage.Parent" xml:space="preserve">
<value>tpMessages</value>
</data>
<data name="&gt;&gt;lblMessage.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="lblChannel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="lblChannel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblChannel.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 608</value>
</data>
<data name="lblChannel.Size" type="System.Drawing.Size, System.Drawing">
<value>76, 13</value>
</data>
<data name="lblChannel.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="lblChannel.Text" xml:space="preserve">
<value>Channel/Nick:</value>
</data>
<data name="&gt;&gt;lblChannel.Name" xml:space="preserve">
<value>lblChannel</value>
</data>
<data name="&gt;&gt;lblChannel.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblChannel.Parent" xml:space="preserve">
<value>tpMessages</value>
</data>
<data name="&gt;&gt;lblChannel.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="txtChannel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="txtChannel.Location" type="System.Drawing.Point, System.Drawing">
<value>88, 604</value>
</data>
<data name="txtChannel.Size" type="System.Drawing.Size, System.Drawing">
<value>96, 20</value>
</data>
<data name="txtChannel.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;txtChannel.Name" xml:space="preserve">
<value>txtChannel</value>
</data>
<data name="&gt;&gt;txtChannel.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txtChannel.Parent" xml:space="preserve">
<value>tpMessages</value>
</data>
<data name="&gt;&gt;txtChannel.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="tpMessages.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value>
</data>
<data name="tpMessages.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpMessages.Size" type="System.Drawing.Size, System.Drawing">
<value>976, 635</value>
</data>
<data name="tpMessages.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tpMessages.Text" xml:space="preserve">
<value>Messages</value>
</data>
<data name="&gt;&gt;tpMessages.Name" xml:space="preserve">
<value>tpMessages</value>
</data>
<data name="&gt;&gt;tpMessages.Type" xml:space="preserve">
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tpMessages.Parent" xml:space="preserve">
<value>tcMain</value>
</data>
<data name="&gt;&gt;tpMessages.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="tcMain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tcMain.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tcMain.Size" type="System.Drawing.Size, System.Drawing">
<value>984, 661</value>
</data>
<data name="tcMain.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tcMain.Name" xml:space="preserve">
<value>tcMain</value>
</data>
<data name="&gt;&gt;tcMain.Type" xml:space="preserve">
<value>System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tcMain.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tcMain.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="btnConnect.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
@ -405,33 +705,6 @@
<data name="&gt;&gt;pgSettings.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tpMain.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value>
</data>
<data name="tpMain.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpMain.Size" type="System.Drawing.Size, System.Drawing">
<value>976, 635</value>
</data>
<data name="tpMain.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="tpMain.Text" xml:space="preserve">
<value>Main</value>
</data>
<data name="&gt;&gt;tpMain.Name" xml:space="preserve">
<value>tpMain</value>
</data>
<data name="&gt;&gt;tpMain.Type" xml:space="preserve">
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tpMain.Parent" xml:space="preserve">
<value>tcMain</value>
</data>
<data name="&gt;&gt;tpMain.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="txtCommand.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left, Right</value>
</data>
@ -516,228 +789,6 @@
<data name="&gt;&gt;btnCommandSend.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="tpOutput.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value>
</data>
<data name="tpOutput.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpOutput.Size" type="System.Drawing.Size, System.Drawing">
<value>976, 635</value>
</data>
<data name="tpOutput.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="tpOutput.Text" xml:space="preserve">
<value>IRC output</value>
</data>
<data name="&gt;&gt;tpOutput.Name" xml:space="preserve">
<value>tpOutput</value>
</data>
<data name="&gt;&gt;tpOutput.Type" xml:space="preserve">
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tpOutput.Parent" xml:space="preserve">
<value>tcMain</value>
</data>
<data name="&gt;&gt;tpOutput.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="btnMessagesMenu.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Right</value>
</data>
<data name="btnMessagesMenu.Location" type="System.Drawing.Point, System.Drawing">
<value>856, 602</value>
</data>
<data name="btnMessagesMenu.Size" type="System.Drawing.Size, System.Drawing">
<value>24, 24</value>
</data>
<data name="btnMessagesMenu.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="btnMessagesMenu.Text" xml:space="preserve">
<value>...</value>
<comment>@Invariant</comment></data>
<data name="&gt;&gt;btnMessagesMenu.Name" xml:space="preserve">
<value>btnMessagesMenu</value>
</data>
<data name="&gt;&gt;btnMessagesMenu.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnMessagesMenu.Parent" xml:space="preserve">
<value>tpMessages</value>
</data>
<data name="&gt;&gt;btnMessagesMenu.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="lblMessage.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="lblMessage.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblMessage.Location" type="System.Drawing.Point, System.Drawing">
<value>192, 608</value>
</data>
<data name="lblMessage.Size" type="System.Drawing.Size, System.Drawing">
<value>53, 13</value>
</data>
<data name="lblMessage.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="lblMessage.Text" xml:space="preserve">
<value>Message:</value>
</data>
<data name="&gt;&gt;lblMessage.Name" xml:space="preserve">
<value>lblMessage</value>
</data>
<data name="&gt;&gt;lblMessage.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblMessage.Parent" xml:space="preserve">
<value>tpMessages</value>
</data>
<data name="&gt;&gt;lblMessage.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="lblChannel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="lblChannel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblChannel.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 608</value>
</data>
<data name="lblChannel.Size" type="System.Drawing.Size, System.Drawing">
<value>76, 13</value>
</data>
<data name="lblChannel.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="lblChannel.Text" xml:space="preserve">
<value>Channel/Nick:</value>
</data>
<data name="&gt;&gt;lblChannel.Name" xml:space="preserve">
<value>lblChannel</value>
</data>
<data name="&gt;&gt;lblChannel.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblChannel.Parent" xml:space="preserve">
<value>tpMessages</value>
</data>
<data name="&gt;&gt;lblChannel.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="txtMessages.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="txtMessages.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 8</value>
</data>
<data name="txtMessages.Multiline" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="txtMessages.ScrollBars" type="System.Windows.Forms.ScrollBars, System.Windows.Forms">
<value>Both</value>
</data>
<data name="txtMessages.Size" type="System.Drawing.Size, System.Drawing">
<value>960, 584</value>
</data>
<data name="txtMessages.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="txtMessages.WordWrap" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;txtMessages.Name" xml:space="preserve">
<value>txtMessages</value>
</data>
<data name="&gt;&gt;txtMessages.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txtMessages.Parent" xml:space="preserve">
<value>tpMessages</value>
</data>
<data name="&gt;&gt;txtMessages.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="txtChannel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="txtChannel.Location" type="System.Drawing.Point, System.Drawing">
<value>88, 604</value>
</data>
<data name="txtChannel.Size" type="System.Drawing.Size, System.Drawing">
<value>96, 20</value>
</data>
<data name="txtChannel.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;txtChannel.Name" xml:space="preserve">
<value>txtChannel</value>
</data>
<data name="&gt;&gt;txtChannel.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txtChannel.Parent" xml:space="preserve">
<value>tpMessages</value>
</data>
<data name="&gt;&gt;txtChannel.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="tpMessages.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value>
</data>
<data name="tpMessages.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpMessages.Size" type="System.Drawing.Size, System.Drawing">
<value>976, 635</value>
</data>
<data name="tpMessages.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tpMessages.Text" xml:space="preserve">
<value>Messages</value>
</data>
<data name="&gt;&gt;tpMessages.Name" xml:space="preserve">
<value>tpMessages</value>
</data>
<data name="&gt;&gt;tpMessages.Type" xml:space="preserve">
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tpMessages.Parent" xml:space="preserve">
<value>tcMain</value>
</data>
<data name="&gt;&gt;tpMessages.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="tcMain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tcMain.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tcMain.Size" type="System.Drawing.Size, System.Drawing">
<value>984, 661</value>
</data>
<data name="tcMain.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tcMain.Name" xml:space="preserve">
<value>tcMain</value>
</data>
<data name="&gt;&gt;tcMain.Type" xml:space="preserve">
<value>System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tcMain.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tcMain.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>

View file

@ -0,0 +1,63 @@
#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 <http://www.gnu.org/licenses/>.
*/
#endregion License Information (GPL v3)
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ShareX.IRCLib
{
internal class TabInfo
{
public string Name { get; private set; }
public TabPage Tab { get; private set; }
public TextBox TextBox { get; private set; }
public TabInfo(string name)
{
Name = name;
Tab = new TabPage(Name);
Tab.Tag = this;
TextBox = new TextBox()
{
BackColor = Color.White,
Dock = DockStyle.Fill,
Multiline = true,
ReadOnly = true,
ScrollBars = ScrollBars.Both,
WordWrap = false
};
Tab.Controls.Add(TextBox);
}
public void AppendText(string text)
{
TextBox.AppendText(text + "\r\n");
}
}
}

View file

@ -0,0 +1,60 @@
#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 <http://www.gnu.org/licenses/>.
*/
#endregion License Information (GPL v3)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ShareX.IRCLib
{
internal class TabManager
{
public List<TabInfo> Tabs { get; private set; }
private TabControl tc;
public TabManager(TabControl tabControl)
{
tc = tabControl;
Tabs = new List<TabInfo>();
}
public void AddMessage(string channel, string text)
{
TabInfo tabInfo = Tabs.FirstOrDefault(x => x.Name.Equals(channel, StringComparison.InvariantCultureIgnoreCase));
if (tabInfo == null)
{
tabInfo = new TabInfo(channel);
tc.Controls.Add(tabInfo.Tab);
Tabs.Add(tabInfo);
}
tabInfo.AppendText(text);
}
}
}

View file

@ -46,20 +46,22 @@
<Compile Include="AutoResponseInfo.cs" />
<Compile Include="Enums.cs" />
<Compile Include="IRC.cs" />
<Compile Include="IRCClientForm.cs">
<Compile Include="IRCClient\IRCClientForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="IRCClientForm.Designer.cs">
<Compile Include="IRCClient\IRCClientForm.Designer.cs">
<DependentUpon>IRCClientForm.cs</DependentUpon>
</Compile>
<Compile Include="IRCClient\TabInfo.cs" />
<Compile Include="IRCInfo.cs" />
<Compile Include="IRCText.cs" />
<Compile Include="MessageInfo.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="IRCClient\TabManager.cs" />
<Compile Include="UserInfo.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="IRCClientForm.resx">
<EmbeddedResource Include="IRCClient\IRCClientForm.resx">
<DependentUpon>IRCClientForm.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>