mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-29 17:02:05 +13:00
Added IRC client tool
This commit is contained in:
parent
7992791fa2
commit
a2b5a03246
23 changed files with 2740 additions and 413 deletions
109
ShareX.IRCLib/AutoResponseInfo.cs
Normal file
109
ShareX.IRCLib/AutoResponseInfo.cs
Normal file
|
@ -0,0 +1,109 @@
|
|||
#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 ShareX.HelpersLib;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing.Design;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace ShareX.IRCLib
|
||||
{
|
||||
public class AutoResponseInfo
|
||||
{
|
||||
[Editor("System.Windows.Forms.Design.StringCollectionEditor,System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
|
||||
public List<string> Messages { get; set; }
|
||||
|
||||
[Editor("System.Windows.Forms.Design.StringCollectionEditor,System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
|
||||
public List<string> Responses { get; set; }
|
||||
|
||||
[DefaultValue(IRCAutoResponseType.Contains)]
|
||||
public IRCAutoResponseType Type { get; set; }
|
||||
|
||||
private Stopwatch lastMatchTimer = new Stopwatch();
|
||||
|
||||
public AutoResponseInfo()
|
||||
{
|
||||
Messages = new List<string>();
|
||||
Responses = new List<string>();
|
||||
Type = IRCAutoResponseType.Contains;
|
||||
}
|
||||
|
||||
public AutoResponseInfo(List<string> message, List<string> response, IRCAutoResponseType type)
|
||||
{
|
||||
Messages = message;
|
||||
Responses = response;
|
||||
Type = type;
|
||||
}
|
||||
|
||||
public bool IsMatch(string message, string nick, string mynick)
|
||||
{
|
||||
bool isMatch = Messages.Select(m => m.Replace("$nick", nick).Replace("$mynick", mynick)).Any(x =>
|
||||
{
|
||||
switch (Type)
|
||||
{
|
||||
default:
|
||||
case IRCAutoResponseType.Contains:
|
||||
return Regex.IsMatch(message, $"\\b{Regex.Escape(x)}\\b", RegexOptions.Compiled | RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
|
||||
case IRCAutoResponseType.StartsWith:
|
||||
return message.StartsWith(x, StringComparison.InvariantCultureIgnoreCase);
|
||||
case IRCAutoResponseType.ExactMatch:
|
||||
return message.Equals(x, StringComparison.InvariantCultureIgnoreCase);
|
||||
}
|
||||
});
|
||||
|
||||
if (isMatch)
|
||||
{
|
||||
lastMatchTimer.Restart();
|
||||
}
|
||||
|
||||
return isMatch;
|
||||
}
|
||||
|
||||
public bool CheckLastMatchTimer(int milliseconds)
|
||||
{
|
||||
return milliseconds <= 0 || !lastMatchTimer.IsRunning || lastMatchTimer.Elapsed.TotalMilliseconds > milliseconds;
|
||||
}
|
||||
|
||||
public string RandomResponse(string nick, string mynick)
|
||||
{
|
||||
int index = MathHelpers.Random(Responses.Count - 1);
|
||||
return Responses.Select(r => r.Replace("$nick", nick).Replace("$mynick", mynick)).ElementAt(index);
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
if (Messages != null && Messages.Count > 0)
|
||||
{
|
||||
return string.Join(", ", Messages);
|
||||
}
|
||||
|
||||
return "...";
|
||||
}
|
||||
}
|
||||
}
|
61
ShareX.IRCLib/Enums.cs
Normal file
61
ShareX.IRCLib/Enums.cs
Normal file
|
@ -0,0 +1,61 @@
|
|||
#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)
|
||||
|
||||
namespace ShareX.IRCLib
|
||||
{
|
||||
public enum IRCAutoResponseType
|
||||
{
|
||||
Contains,
|
||||
StartsWith,
|
||||
ExactMatch
|
||||
}
|
||||
|
||||
public enum IRCUserType
|
||||
{
|
||||
Me,
|
||||
User,
|
||||
Server
|
||||
}
|
||||
|
||||
public enum IRCColors
|
||||
{
|
||||
White = 0,
|
||||
Black = 1,
|
||||
Blue = 2,
|
||||
Green = 3,
|
||||
LightRed = 4,
|
||||
Brown = 5,
|
||||
Purple = 6,
|
||||
Orange = 7,
|
||||
Yellow = 8,
|
||||
LightGreen = 9,
|
||||
Cyan = 10,
|
||||
LightCyan = 11,
|
||||
LightBlue = 12,
|
||||
Pink = 13,
|
||||
Grey = 14,
|
||||
LightGrey = 15
|
||||
}
|
||||
}
|
560
ShareX.IRCLib/IRC.cs
Normal file
560
ShareX.IRCLib/IRC.cs
Normal file
|
@ -0,0 +1,560 @@
|
|||
#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 ShareX.HelpersLib;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
|
||||
namespace ShareX.IRCLib
|
||||
{
|
||||
public class IRC : IDisposable
|
||||
{
|
||||
public event Action<MessageInfo> Output;
|
||||
public event Action Connected, Disconnected;
|
||||
public delegate void MessageEventHandler(UserInfo user, string channel, string message);
|
||||
public event MessageEventHandler Message;
|
||||
public event Action<UserInfo> WhoisResult;
|
||||
public delegate void UserEventHandler(UserInfo user, string channel);
|
||||
public event UserEventHandler UserJoined, UserLeft, UserQuit;
|
||||
public delegate void UserNickChangedEventHandler(UserInfo user, string newNick);
|
||||
public event UserNickChangedEventHandler UserNickChanged;
|
||||
public delegate void UserKickedEventHandler(UserInfo user, string channel, string kickedNick);
|
||||
public event UserKickedEventHandler UserKicked;
|
||||
|
||||
public IRCInfo Info { get; private set; }
|
||||
public bool IsConnected { get; private set; }
|
||||
public string LastChannel { get; private set; }
|
||||
|
||||
private TcpClient tcp;
|
||||
private StreamReader streamReader;
|
||||
private StreamWriter streamWriter;
|
||||
private bool disconnecting;
|
||||
private List<UserInfo> userList = new List<UserInfo>();
|
||||
|
||||
public IRC()
|
||||
{
|
||||
Info = new IRCInfo();
|
||||
}
|
||||
|
||||
public IRC(IRCInfo info)
|
||||
{
|
||||
Info = info;
|
||||
}
|
||||
|
||||
public IRC(string server, int port, string nickname, string username, string realname, bool invisible)
|
||||
{
|
||||
Info = new IRCInfo()
|
||||
{
|
||||
Server = server,
|
||||
Port = port,
|
||||
Nickname = nickname,
|
||||
Username = username,
|
||||
Realname = realname,
|
||||
Invisible = invisible
|
||||
};
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Disconnect();
|
||||
}
|
||||
|
||||
public void Connect()
|
||||
{
|
||||
if (IsConnected)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
IsConnected = true;
|
||||
disconnecting = false;
|
||||
|
||||
tcp = new TcpClient(Info.Server, Info.Port);
|
||||
NetworkStream networkStream = tcp.GetStream();
|
||||
streamReader = new StreamReader(networkStream);
|
||||
streamWriter = new StreamWriter(networkStream);
|
||||
|
||||
Thread connectionThread = new Thread(ConnectionThread);
|
||||
connectionThread.Start();
|
||||
|
||||
if (!string.IsNullOrEmpty(Info.Password))
|
||||
{
|
||||
SetPassword(Info.Password);
|
||||
}
|
||||
|
||||
SetUser(Info.Username, Info.Realname, Info.Invisible);
|
||||
ChangeNickname(Info.Nickname);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
IsConnected = false;
|
||||
Console.WriteLine(e.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public void Disconnect()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (IsConnected)
|
||||
{
|
||||
Quit(Info.QuitReason);
|
||||
disconnecting = true;
|
||||
}
|
||||
|
||||
if (streamReader != null) streamReader.Close();
|
||||
if (streamWriter != null) streamWriter.Close();
|
||||
if (tcp != null) tcp.Close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
private void Reconnect()
|
||||
{
|
||||
Disconnect();
|
||||
Connect();
|
||||
}
|
||||
|
||||
private void ConnectionThread()
|
||||
{
|
||||
try
|
||||
{
|
||||
string message;
|
||||
|
||||
while ((message = streamReader.ReadLine()) != null)
|
||||
{
|
||||
if (!CheckCommand(message)) break;
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e.ToString());
|
||||
}
|
||||
|
||||
OnDisconnected();
|
||||
}
|
||||
|
||||
public void SendRawMessage(string message)
|
||||
{
|
||||
streamWriter.WriteLine(message);
|
||||
streamWriter.Flush();
|
||||
|
||||
CheckCommand(message);
|
||||
}
|
||||
|
||||
private bool CheckCommand(string message)
|
||||
{
|
||||
MessageInfo messageInfo = MessageInfo.Parse(message);
|
||||
|
||||
//:sendak.freenode.net 375 Jaex :- sendak.freenode.net Message of the Day -
|
||||
//:sendak.freenode.net 372 Jaex :- Welcome to sendak.freenode.net in Vilnius, Lithuania, EU.
|
||||
if ((messageInfo.Command == "375" || messageInfo.Command == "372") && Info.SuppressMOTD)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (messageInfo.User.UserType == IRCUserType.Me)
|
||||
{
|
||||
messageInfo.User.Nickname = Info.Nickname;
|
||||
}
|
||||
|
||||
OnOutput(messageInfo);
|
||||
|
||||
switch (messageInfo.Command)
|
||||
{
|
||||
case "PING": //PING :sendak.freenode.net
|
||||
SendRawMessage("PONG :" + messageInfo.Message);
|
||||
break;
|
||||
case "376": //:sendak.freenode.net 376 Jaex :End of /MOTD command.
|
||||
OnConnected();
|
||||
break;
|
||||
case "PRIVMSG": //:Jaex!Jaex@unaffiliated/jaex PRIVMSG #ShareX :test
|
||||
CheckMessage(messageInfo);
|
||||
break;
|
||||
case "JOIN": //:Jaex!Jaex@unaffiliated/jaex JOIN #ShareX or :Jaex!Jaex@unaffiliated/jaex JOIN :#ShareX
|
||||
if (UserJoined != null) UserJoined(messageInfo.User, messageInfo.Parameters.Count > 0 ? messageInfo.Parameters[0] : messageInfo.Message);
|
||||
break;
|
||||
case "PART": //:Jaex!Jaex@unaffiliated/jaex PART #ShareX :"Leaving"
|
||||
if (UserLeft != null) UserLeft(messageInfo.User, messageInfo.Parameters[0]);
|
||||
break;
|
||||
case "QUIT": //:Jaex!Jaex@unaffiliated/jaex QUIT :Client Quit
|
||||
if (UserQuit != null) UserQuit(messageInfo.User, null);
|
||||
break;
|
||||
case "NICK": //:Jaex!Jaex@unaffiliated/jaex NICK :Jaex2
|
||||
if (UserNickChanged != null) UserNickChanged(messageInfo.User, messageInfo.Message);
|
||||
break;
|
||||
case "KICK": //:Jaex!Jaex@unaffiliated/jaex KICK #ShareX Jaex2 :Jaex2
|
||||
if (UserKicked != null) UserKicked(messageInfo.User, messageInfo.Parameters[0], messageInfo.Parameters[1]);
|
||||
if (Info.AutoRejoinOnKick) JoinChannel(messageInfo.Parameters[0]);
|
||||
break;
|
||||
case "311": //:sendak.freenode.net 311 Jaex ShareX ~ShareX unaffiliated/sharex * :realname
|
||||
case "319": //:sendak.freenode.net 319 Jaex ShareX :@#ShareX @#ShareX_Test
|
||||
case "312": //:sendak.freenode.net 312 Jaex ShareX sendak.freenode.net :Vilnius, Lithuania, EU
|
||||
case "671": //:sendak.freenode.net 671 Jaex ShareX :is using a secure connection
|
||||
case "317": //:sendak.freenode.net 317 Jaex ShareX 39110 1440201914 :seconds idle, signon time
|
||||
case "330": //:sendak.freenode.net 330 Jaex ShareX ShareX :is logged in as
|
||||
case "318": //:sendak.freenode.net 318 Jaex ShareX :End of /WHOIS list.
|
||||
ParseWHOIS(messageInfo);
|
||||
break;
|
||||
case "396": //:sendak.freenode.net 396 Jaex unaffiliated/jaex :is now your hidden host (set by services.)
|
||||
if (Info.AutoJoinWaitIdentify)
|
||||
{
|
||||
AutoJoinChannels();
|
||||
}
|
||||
break;
|
||||
case "ERROR":
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void CheckMessage(MessageInfo messageInfo)
|
||||
{
|
||||
string channel = messageInfo.Parameters[0];
|
||||
|
||||
OnMessage(messageInfo.User, channel, messageInfo.Message);
|
||||
|
||||
if (messageInfo.User.UserType == IRCUserType.User)
|
||||
{
|
||||
HandleAutoResponse(channel, messageInfo.User.Nickname, messageInfo.Message.ToLowerInvariant());
|
||||
}
|
||||
}
|
||||
|
||||
private void AutoJoinChannels()
|
||||
{
|
||||
foreach (string channel in Info.AutoJoinChannels)
|
||||
{
|
||||
JoinChannel(channel);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnOutput(MessageInfo messageInfo)
|
||||
{
|
||||
if (Output != null)
|
||||
{
|
||||
Output(messageInfo);
|
||||
}
|
||||
|
||||
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - {messageInfo.Content}");
|
||||
}
|
||||
|
||||
protected void OnConnected()
|
||||
{
|
||||
IsConnected = true;
|
||||
|
||||
if (Connected != null)
|
||||
{
|
||||
Connected();
|
||||
}
|
||||
|
||||
foreach (string command in Info.ConnectCommands)
|
||||
{
|
||||
SendRawMessage(command);
|
||||
}
|
||||
|
||||
if (!Info.AutoJoinWaitIdentify)
|
||||
{
|
||||
AutoJoinChannels();
|
||||
}
|
||||
}
|
||||
|
||||
protected void OnDisconnected()
|
||||
{
|
||||
IsConnected = false;
|
||||
|
||||
if (Disconnected != null)
|
||||
{
|
||||
Disconnected();
|
||||
}
|
||||
|
||||
if (!disconnecting && Info.AutoReconnect)
|
||||
{
|
||||
Thread.Sleep(Info.AutoReconnectDelay);
|
||||
Reconnect();
|
||||
}
|
||||
}
|
||||
|
||||
protected void OnMessage(UserInfo user, string channel, string message)
|
||||
{
|
||||
if (Message != null)
|
||||
{
|
||||
Message(user, channel, message);
|
||||
}
|
||||
}
|
||||
|
||||
protected void OnWhoisResult(UserInfo userInfo)
|
||||
{
|
||||
if (WhoisResult != null)
|
||||
{
|
||||
WhoisResult(userInfo);
|
||||
}
|
||||
}
|
||||
|
||||
#region Commands
|
||||
|
||||
// JOIN channel
|
||||
public void JoinChannel(string channel)
|
||||
{
|
||||
if (IsConnected)
|
||||
{
|
||||
SendRawMessage($"JOIN {channel}");
|
||||
LastChannel = channel;
|
||||
}
|
||||
else
|
||||
{
|
||||
Info.AutoJoinChannels.Add(channel);
|
||||
}
|
||||
}
|
||||
|
||||
// TOPIC channel :message
|
||||
public void SetTopic(string channel, string message)
|
||||
{
|
||||
SendRawMessage($"TOPIC {channel} :{message}");
|
||||
}
|
||||
|
||||
// NOTICE channel/nick :message
|
||||
public void SendNotice(string channelnick, string message)
|
||||
{
|
||||
SendRawMessage($"NOTICE {channelnick} :{message}");
|
||||
}
|
||||
|
||||
// PRIVMSG channel/nick :message
|
||||
public void SendMessage(string message, string channel = null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(channel))
|
||||
{
|
||||
channel = LastChannel;
|
||||
}
|
||||
|
||||
SendRawMessage($"PRIVMSG {channel} :{message}");
|
||||
}
|
||||
|
||||
// NICK nick
|
||||
public void ChangeNickname(string nick)
|
||||
{
|
||||
SendRawMessage($"NICK {nick}");
|
||||
Info.Nickname = nick;
|
||||
}
|
||||
|
||||
// PART channel :reason
|
||||
public void LeaveChannel(string channel, string reason = null)
|
||||
{
|
||||
SendRawMessage(AddReason($"PART {channel}", reason));
|
||||
}
|
||||
|
||||
// KICK nick :reason
|
||||
public void KickUser(string channel, string nick, string reason = null)
|
||||
{
|
||||
SendRawMessage(AddReason($"KICK {channel} {nick}", reason));
|
||||
}
|
||||
|
||||
// PASS password
|
||||
public void SetPassword(string password)
|
||||
{
|
||||
SendRawMessage($"PASS {password}");
|
||||
}
|
||||
|
||||
// USER username invisible * :realname
|
||||
public void SetUser(string username, string realname, bool invisible)
|
||||
{
|
||||
SendRawMessage($"USER {username} {(invisible ? 8 : 0)} * :{realname}");
|
||||
}
|
||||
|
||||
// WHOIS nick
|
||||
public void Whois(string nick, bool detailed = true)
|
||||
{
|
||||
string msg = $"WHOIS {nick}";
|
||||
if (detailed) msg += $" {nick}";
|
||||
SendRawMessage(msg);
|
||||
}
|
||||
|
||||
// QUIT :reason
|
||||
public void Quit(string reason = null)
|
||||
{
|
||||
SendRawMessage(AddReason("QUIT", reason));
|
||||
}
|
||||
|
||||
#endregion Commands
|
||||
|
||||
private string AddReason(string command, string reason)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(reason)) command += " :" + reason;
|
||||
return command;
|
||||
}
|
||||
|
||||
private bool HandleAutoResponse(string channel, string nick, string message)
|
||||
{
|
||||
if (Info.AutoResponse && nick != Info.Nickname)
|
||||
{
|
||||
foreach (AutoResponseInfo autoResponseInfo in Info.AutoResponseList)
|
||||
{
|
||||
if (autoResponseInfo.CheckLastMatchTimer(Info.AutoResponseDelay) && autoResponseInfo.IsMatch(message, nick, Info.Nickname))
|
||||
{
|
||||
// Is it whisper?
|
||||
if (!channel.StartsWith("#"))
|
||||
{
|
||||
channel = nick;
|
||||
}
|
||||
|
||||
string response = autoResponseInfo.RandomResponse(nick, Info.Nickname);
|
||||
SendMessage(response, channel);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private void ParseWHOIS(MessageInfo messageInfo)
|
||||
{
|
||||
UserInfo userInfo;
|
||||
|
||||
switch (messageInfo.Command)
|
||||
{
|
||||
case "311": //:sendak.freenode.net 311 Jaex ShareX ~ShareX unaffiliated/sharex * :realname
|
||||
if (messageInfo.Parameters.Count >= 4)
|
||||
{
|
||||
userInfo = new UserInfo();
|
||||
userInfo.Nickname = messageInfo.Parameters[1];
|
||||
|
||||
if (messageInfo.Parameters[2][1] == '~')
|
||||
{
|
||||
userInfo.Username = messageInfo.Parameters[2].Substring(1);
|
||||
}
|
||||
else // Ident
|
||||
{
|
||||
userInfo.Username = messageInfo.Parameters[2];
|
||||
}
|
||||
|
||||
userInfo.Host = messageInfo.Parameters[3];
|
||||
userInfo.Realname = messageInfo.Message;
|
||||
|
||||
userList.Add(userInfo);
|
||||
}
|
||||
break;
|
||||
case "319": //:sendak.freenode.net 319 Jaex ShareX :@#ShareX @#ShareX_Test
|
||||
if (messageInfo.Parameters.Count >= 2)
|
||||
{
|
||||
userInfo = FindUser(messageInfo.Parameters[1]);
|
||||
|
||||
if (userInfo != null)
|
||||
{
|
||||
userInfo.Channels.Clear();
|
||||
userInfo.Channels.AddRange(messageInfo.Message.Split());
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "312": //:sendak.freenode.net 312 Jaex ShareX sendak.freenode.net :Vilnius, Lithuania, EU
|
||||
if (messageInfo.Parameters.Count >= 3)
|
||||
{
|
||||
userInfo = FindUser(messageInfo.Parameters[1]);
|
||||
|
||||
if (userInfo != null)
|
||||
{
|
||||
userInfo.Server = messageInfo.Parameters[2];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "671": //:sendak.freenode.net 671 Jaex ShareX :is using a secure connection
|
||||
if (messageInfo.Parameters.Count >= 2)
|
||||
{
|
||||
userInfo = FindUser(messageInfo.Parameters[1]);
|
||||
|
||||
if (userInfo != null)
|
||||
{
|
||||
userInfo.SecureConnection = true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "317": //:sendak.freenode.net 317 Jaex ShareX 39110 1440201914 :seconds idle, signon time
|
||||
if (messageInfo.Parameters.Count >= 4)
|
||||
{
|
||||
userInfo = FindUser(messageInfo.Parameters[1]);
|
||||
|
||||
if (userInfo != null)
|
||||
{
|
||||
int idleTime;
|
||||
if (int.TryParse(messageInfo.Parameters[2], out idleTime))
|
||||
{
|
||||
userInfo.IdleTime = TimeSpan.FromSeconds(idleTime);
|
||||
}
|
||||
|
||||
int signOnTime;
|
||||
if (int.TryParse(messageInfo.Parameters[3], out signOnTime))
|
||||
{
|
||||
userInfo.SignOnDate = Helpers.UnixToDateTime(signOnTime).ToLocalTime();
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "330": //:sendak.freenode.net 330 Jaex ShareX ShareX :is logged in as
|
||||
if (messageInfo.Parameters.Count >= 3)
|
||||
{
|
||||
userInfo = FindUser(messageInfo.Parameters[1]);
|
||||
|
||||
if (userInfo != null)
|
||||
{
|
||||
userInfo.Identity = messageInfo.Parameters[2];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "318": //:sendak.freenode.net 318 Jaex ShareX :End of /WHOIS list.
|
||||
if (messageInfo.Parameters.Count >= 2)
|
||||
{
|
||||
userInfo = FindUser(messageInfo.Parameters[1]);
|
||||
|
||||
if (userInfo != null)
|
||||
{
|
||||
userList.Remove(userInfo);
|
||||
OnWhoisResult(userInfo);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private UserInfo FindUser(string nickname)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(nickname))
|
||||
{
|
||||
return userList.FirstOrDefault(user => user.Nickname == nickname);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
553
ShareX.IRCLib/IRCClientForm.Designer.cs
generated
Normal file
553
ShareX.IRCLib/IRCClientForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,553 @@
|
|||
namespace ShareX.IRCLib
|
||||
{
|
||||
partial class IRCClientForm
|
||||
{
|
||||
/// <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.components = new System.ComponentModel.Container();
|
||||
this.txtMessage = new System.Windows.Forms.TextBox();
|
||||
this.cmsMessage = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.tsmiMessageBold = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiMessageItalic = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiMessageUnderline = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiMessageNormal = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.btnMessageSend = new System.Windows.Forms.Button();
|
||||
this.txtOutput = new System.Windows.Forms.TextBox();
|
||||
this.tcMain = new System.Windows.Forms.TabControl();
|
||||
this.tpMain = new System.Windows.Forms.TabPage();
|
||||
this.btnConnect = new System.Windows.Forms.Button();
|
||||
this.pgSettings = new System.Windows.Forms.PropertyGrid();
|
||||
this.tpOutput = new System.Windows.Forms.TabPage();
|
||||
this.txtCommand = new System.Windows.Forms.TextBox();
|
||||
this.lblCommand = new System.Windows.Forms.Label();
|
||||
this.btnCommandSend = new System.Windows.Forms.Button();
|
||||
this.tpMessages = new System.Windows.Forms.TabPage();
|
||||
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.btnMessagesMenu = new System.Windows.Forms.Button();
|
||||
this.tsmiColors = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiColorWhite = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiColorBlack = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiColorBlue = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiColorGreen = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiColorLightRed = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiColorBrown = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiColorPurple = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiColorOrange = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiColorYellow = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiColorLightGreen = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiColorCyan = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiColorLightCyan = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiColorLightBlue = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiColorPink = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiColorGrey = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiColorLightGrey = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.cmsMessage.SuspendLayout();
|
||||
this.tcMain.SuspendLayout();
|
||||
this.tpMain.SuspendLayout();
|
||||
this.tpOutput.SuspendLayout();
|
||||
this.tpMessages.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// txtMessage
|
||||
//
|
||||
this.txtMessage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtMessage.Location = new System.Drawing.Point(64, 604);
|
||||
this.txtMessage.Name = "txtMessage";
|
||||
this.txtMessage.Size = new System.Drawing.Size(600, 20);
|
||||
this.txtMessage.TabIndex = 0;
|
||||
this.txtMessage.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtMessage_KeyDown);
|
||||
//
|
||||
// cmsMessage
|
||||
//
|
||||
this.cmsMessage.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.tsmiMessageBold,
|
||||
this.tsmiMessageItalic,
|
||||
this.tsmiMessageUnderline,
|
||||
this.tsmiMessageNormal,
|
||||
this.tsmiColors});
|
||||
this.cmsMessage.Name = "cmsMessage";
|
||||
this.cmsMessage.ShowImageMargin = false;
|
||||
this.cmsMessage.Size = new System.Drawing.Size(101, 114);
|
||||
//
|
||||
// tsmiMessageBold
|
||||
//
|
||||
this.tsmiMessageBold.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(162)));
|
||||
this.tsmiMessageBold.Name = "tsmiMessageBold";
|
||||
this.tsmiMessageBold.Size = new System.Drawing.Size(127, 22);
|
||||
this.tsmiMessageBold.Text = "Bold";
|
||||
this.tsmiMessageBold.Click += new System.EventHandler(this.tsmiMessageBold_Click);
|
||||
//
|
||||
// tsmiMessageItalic
|
||||
//
|
||||
this.tsmiMessageItalic.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(162)));
|
||||
this.tsmiMessageItalic.Name = "tsmiMessageItalic";
|
||||
this.tsmiMessageItalic.Size = new System.Drawing.Size(127, 22);
|
||||
this.tsmiMessageItalic.Text = "Italic";
|
||||
this.tsmiMessageItalic.Click += new System.EventHandler(this.tsmiMessageItalic_Click);
|
||||
//
|
||||
// tsmiMessageUnderline
|
||||
//
|
||||
this.tsmiMessageUnderline.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(162)));
|
||||
this.tsmiMessageUnderline.Name = "tsmiMessageUnderline";
|
||||
this.tsmiMessageUnderline.Size = new System.Drawing.Size(127, 22);
|
||||
this.tsmiMessageUnderline.Text = "Underline";
|
||||
this.tsmiMessageUnderline.Click += new System.EventHandler(this.tsmiMessageUnderline_Click);
|
||||
//
|
||||
// tsmiMessageNormal
|
||||
//
|
||||
this.tsmiMessageNormal.Name = "tsmiMessageNormal";
|
||||
this.tsmiMessageNormal.Size = new System.Drawing.Size(127, 22);
|
||||
this.tsmiMessageNormal.Text = "Normal";
|
||||
this.tsmiMessageNormal.Click += new System.EventHandler(this.tsmiMessageNormal_Click);
|
||||
//
|
||||
// btnMessageSend
|
||||
//
|
||||
this.btnMessageSend.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnMessageSend.Enabled = false;
|
||||
this.btnMessageSend.Location = new System.Drawing.Point(888, 602);
|
||||
this.btnMessageSend.Name = "btnMessageSend";
|
||||
this.btnMessageSend.Size = new System.Drawing.Size(80, 24);
|
||||
this.btnMessageSend.TabIndex = 2;
|
||||
this.btnMessageSend.Text = "Send";
|
||||
this.btnMessageSend.UseVisualStyleBackColor = true;
|
||||
this.btnMessageSend.Click += new System.EventHandler(this.btnMessageSend_Click);
|
||||
//
|
||||
// txtOutput
|
||||
//
|
||||
this.txtOutput.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.txtOutput.BackColor = System.Drawing.Color.White;
|
||||
this.txtOutput.Location = new System.Drawing.Point(8, 8);
|
||||
this.txtOutput.Multiline = true;
|
||||
this.txtOutput.Name = "txtOutput";
|
||||
this.txtOutput.ReadOnly = true;
|
||||
this.txtOutput.ScrollBars = System.Windows.Forms.ScrollBars.Both;
|
||||
this.txtOutput.Size = new System.Drawing.Size(960, 584);
|
||||
this.txtOutput.TabIndex = 2;
|
||||
this.txtOutput.WordWrap = false;
|
||||
//
|
||||
// tcMain
|
||||
//
|
||||
this.tcMain.Controls.Add(this.tpMain);
|
||||
this.tcMain.Controls.Add(this.tpOutput);
|
||||
this.tcMain.Controls.Add(this.tpMessages);
|
||||
this.tcMain.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tcMain.Location = new System.Drawing.Point(0, 0);
|
||||
this.tcMain.Name = "tcMain";
|
||||
this.tcMain.SelectedIndex = 0;
|
||||
this.tcMain.Size = new System.Drawing.Size(984, 661);
|
||||
this.tcMain.TabIndex = 0;
|
||||
//
|
||||
// tpMain
|
||||
//
|
||||
this.tpMain.Controls.Add(this.btnConnect);
|
||||
this.tpMain.Controls.Add(this.pgSettings);
|
||||
this.tpMain.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpMain.Name = "tpMain";
|
||||
this.tpMain.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpMain.Size = new System.Drawing.Size(976, 635);
|
||||
this.tpMain.TabIndex = 2;
|
||||
this.tpMain.Text = "Main";
|
||||
this.tpMain.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btnConnect
|
||||
//
|
||||
this.btnConnect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.btnConnect.Location = new System.Drawing.Point(8, 600);
|
||||
this.btnConnect.Name = "btnConnect";
|
||||
this.btnConnect.Size = new System.Drawing.Size(112, 24);
|
||||
this.btnConnect.TabIndex = 0;
|
||||
this.btnConnect.Text = "Connect";
|
||||
this.btnConnect.UseVisualStyleBackColor = true;
|
||||
this.btnConnect.Click += new System.EventHandler(this.btnConnect_Click);
|
||||
//
|
||||
// pgSettings
|
||||
//
|
||||
this.pgSettings.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.pgSettings.CategoryForeColor = System.Drawing.SystemColors.InactiveCaptionText;
|
||||
this.pgSettings.Location = new System.Drawing.Point(8, 8);
|
||||
this.pgSettings.Name = "pgSettings";
|
||||
this.pgSettings.PropertySort = System.Windows.Forms.PropertySort.NoSort;
|
||||
this.pgSettings.Size = new System.Drawing.Size(960, 584);
|
||||
this.pgSettings.TabIndex = 1;
|
||||
this.pgSettings.ToolbarVisible = false;
|
||||
//
|
||||
// tpOutput
|
||||
//
|
||||
this.tpOutput.Controls.Add(this.txtCommand);
|
||||
this.tpOutput.Controls.Add(this.lblCommand);
|
||||
this.tpOutput.Controls.Add(this.btnCommandSend);
|
||||
this.tpOutput.Controls.Add(this.txtOutput);
|
||||
this.tpOutput.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpOutput.Name = "tpOutput";
|
||||
this.tpOutput.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpOutput.Size = new System.Drawing.Size(976, 635);
|
||||
this.tpOutput.TabIndex = 0;
|
||||
this.tpOutput.Text = "IRC output";
|
||||
this.tpOutput.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// txtCommand
|
||||
//
|
||||
this.txtCommand.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtCommand.Location = new System.Drawing.Point(72, 604);
|
||||
this.txtCommand.Name = "txtCommand";
|
||||
this.txtCommand.Size = new System.Drawing.Size(808, 20);
|
||||
this.txtCommand.TabIndex = 0;
|
||||
this.txtCommand.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtCommand_KeyDown);
|
||||
//
|
||||
// lblCommand
|
||||
//
|
||||
this.lblCommand.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.lblCommand.AutoSize = true;
|
||||
this.lblCommand.Location = new System.Drawing.Point(8, 608);
|
||||
this.lblCommand.Name = "lblCommand";
|
||||
this.lblCommand.Size = new System.Drawing.Size(57, 13);
|
||||
this.lblCommand.TabIndex = 2;
|
||||
this.lblCommand.Text = "Command:";
|
||||
//
|
||||
// btnCommandSend
|
||||
//
|
||||
this.btnCommandSend.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnCommandSend.Enabled = false;
|
||||
this.btnCommandSend.Location = new System.Drawing.Point(888, 602);
|
||||
this.btnCommandSend.Name = "btnCommandSend";
|
||||
this.btnCommandSend.Size = new System.Drawing.Size(80, 24);
|
||||
this.btnCommandSend.TabIndex = 1;
|
||||
this.btnCommandSend.Text = "Send";
|
||||
this.btnCommandSend.UseVisualStyleBackColor = true;
|
||||
this.btnCommandSend.Click += new System.EventHandler(this.btnCommandSend_Click);
|
||||
//
|
||||
// tpMessages
|
||||
//
|
||||
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);
|
||||
this.tpMessages.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpMessages.Name = "tpMessages";
|
||||
this.tpMessages.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpMessages.Size = new System.Drawing.Size(976, 635);
|
||||
this.tpMessages.TabIndex = 1;
|
||||
this.tpMessages.Text = "Messages";
|
||||
this.tpMessages.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// lblMessage
|
||||
//
|
||||
this.lblMessage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.lblMessage.AutoSize = true;
|
||||
this.lblMessage.Location = new System.Drawing.Point(8, 608);
|
||||
this.lblMessage.Name = "lblMessage";
|
||||
this.lblMessage.Size = new System.Drawing.Size(53, 13);
|
||||
this.lblMessage.TabIndex = 0;
|
||||
this.lblMessage.Text = "Message:";
|
||||
//
|
||||
// lblChannel
|
||||
//
|
||||
this.lblChannel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblChannel.AutoSize = true;
|
||||
this.lblChannel.Location = new System.Drawing.Point(704, 608);
|
||||
this.lblChannel.Name = "lblChannel";
|
||||
this.lblChannel.Size = new System.Drawing.Size(76, 13);
|
||||
this.lblChannel.TabIndex = 2;
|
||||
this.lblChannel.Text = "Channel/Nick:";
|
||||
//
|
||||
// txtMessages
|
||||
//
|
||||
this.txtMessages.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.txtMessages.BackColor = System.Drawing.Color.White;
|
||||
this.txtMessages.Location = new System.Drawing.Point(8, 8);
|
||||
this.txtMessages.Multiline = true;
|
||||
this.txtMessages.Name = "txtMessages";
|
||||
this.txtMessages.ReadOnly = true;
|
||||
this.txtMessages.ScrollBars = System.Windows.Forms.ScrollBars.Both;
|
||||
this.txtMessages.Size = new System.Drawing.Size(960, 584);
|
||||
this.txtMessages.TabIndex = 3;
|
||||
this.txtMessages.WordWrap = false;
|
||||
//
|
||||
// txtChannel
|
||||
//
|
||||
this.txtChannel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtChannel.Location = new System.Drawing.Point(784, 604);
|
||||
this.txtChannel.Name = "txtChannel";
|
||||
this.txtChannel.Size = new System.Drawing.Size(96, 20);
|
||||
this.txtChannel.TabIndex = 1;
|
||||
//
|
||||
// btnMessagesMenu
|
||||
//
|
||||
this.btnMessagesMenu.Location = new System.Drawing.Point(672, 602);
|
||||
this.btnMessagesMenu.Name = "btnMessagesMenu";
|
||||
this.btnMessagesMenu.Size = new System.Drawing.Size(24, 24);
|
||||
this.btnMessagesMenu.TabIndex = 4;
|
||||
this.btnMessagesMenu.Text = "...";
|
||||
this.btnMessagesMenu.UseVisualStyleBackColor = true;
|
||||
this.btnMessagesMenu.MouseClick += new System.Windows.Forms.MouseEventHandler(this.btnMessagesMenu_MouseClick);
|
||||
//
|
||||
// tsmiColors
|
||||
//
|
||||
this.tsmiColors.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.tsmiColorWhite,
|
||||
this.tsmiColorBlack,
|
||||
this.tsmiColorBlue,
|
||||
this.tsmiColorGreen,
|
||||
this.tsmiColorLightRed,
|
||||
this.tsmiColorBrown,
|
||||
this.tsmiColorPurple,
|
||||
this.tsmiColorOrange,
|
||||
this.tsmiColorYellow,
|
||||
this.tsmiColorLightGreen,
|
||||
this.tsmiColorCyan,
|
||||
this.tsmiColorLightCyan,
|
||||
this.tsmiColorLightBlue,
|
||||
this.tsmiColorPink,
|
||||
this.tsmiColorGrey,
|
||||
this.tsmiColorLightGrey});
|
||||
this.tsmiColors.Name = "tsmiColors";
|
||||
this.tsmiColors.Size = new System.Drawing.Size(127, 22);
|
||||
this.tsmiColors.Text = "Colors";
|
||||
//
|
||||
// tsmiColorWhite
|
||||
//
|
||||
this.tsmiColorWhite.BackColor = System.Drawing.Color.White;
|
||||
this.tsmiColorWhite.ForeColor = System.Drawing.Color.Black;
|
||||
this.tsmiColorWhite.Name = "tsmiColorWhite";
|
||||
this.tsmiColorWhite.Size = new System.Drawing.Size(152, 22);
|
||||
this.tsmiColorWhite.Text = "White";
|
||||
this.tsmiColorWhite.Click += new System.EventHandler(this.tsmiColorWhite_Click);
|
||||
//
|
||||
// tsmiColorBlack
|
||||
//
|
||||
this.tsmiColorBlack.BackColor = System.Drawing.Color.Black;
|
||||
this.tsmiColorBlack.ForeColor = System.Drawing.Color.White;
|
||||
this.tsmiColorBlack.Name = "tsmiColorBlack";
|
||||
this.tsmiColorBlack.Size = new System.Drawing.Size(152, 22);
|
||||
this.tsmiColorBlack.Text = "Black";
|
||||
this.tsmiColorBlack.Click += new System.EventHandler(this.tsmiColorBlack_Click);
|
||||
//
|
||||
// tsmiColorBlue
|
||||
//
|
||||
this.tsmiColorBlue.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(127)))));
|
||||
this.tsmiColorBlue.ForeColor = System.Drawing.Color.White;
|
||||
this.tsmiColorBlue.Name = "tsmiColorBlue";
|
||||
this.tsmiColorBlue.Size = new System.Drawing.Size(152, 22);
|
||||
this.tsmiColorBlue.Text = "Blue";
|
||||
this.tsmiColorBlue.Click += new System.EventHandler(this.tsmiColorBlue_Click);
|
||||
//
|
||||
// tsmiColorGreen
|
||||
//
|
||||
this.tsmiColorGreen.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(147)))), ((int)(((byte)(0)))));
|
||||
this.tsmiColorGreen.ForeColor = System.Drawing.Color.White;
|
||||
this.tsmiColorGreen.Name = "tsmiColorGreen";
|
||||
this.tsmiColorGreen.Size = new System.Drawing.Size(152, 22);
|
||||
this.tsmiColorGreen.Text = "Green";
|
||||
this.tsmiColorGreen.Click += new System.EventHandler(this.tsmiColorGreen_Click);
|
||||
//
|
||||
// tsmiColorLightRed
|
||||
//
|
||||
this.tsmiColorLightRed.BackColor = System.Drawing.Color.Red;
|
||||
this.tsmiColorLightRed.ForeColor = System.Drawing.Color.White;
|
||||
this.tsmiColorLightRed.Name = "tsmiColorLightRed";
|
||||
this.tsmiColorLightRed.Size = new System.Drawing.Size(152, 22);
|
||||
this.tsmiColorLightRed.Text = "Light Red";
|
||||
this.tsmiColorLightRed.Click += new System.EventHandler(this.tsmiColorLightRed_Click);
|
||||
//
|
||||
// tsmiColorBrown
|
||||
//
|
||||
this.tsmiColorBrown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(127)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
|
||||
this.tsmiColorBrown.ForeColor = System.Drawing.Color.White;
|
||||
this.tsmiColorBrown.Name = "tsmiColorBrown";
|
||||
this.tsmiColorBrown.Size = new System.Drawing.Size(152, 22);
|
||||
this.tsmiColorBrown.Text = "Brown";
|
||||
this.tsmiColorBrown.Click += new System.EventHandler(this.tsmiColorBrown_Click);
|
||||
//
|
||||
// tsmiColorPurple
|
||||
//
|
||||
this.tsmiColorPurple.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(156)))), ((int)(((byte)(0)))), ((int)(((byte)(156)))));
|
||||
this.tsmiColorPurple.ForeColor = System.Drawing.Color.White;
|
||||
this.tsmiColorPurple.Name = "tsmiColorPurple";
|
||||
this.tsmiColorPurple.Size = new System.Drawing.Size(152, 22);
|
||||
this.tsmiColorPurple.Text = "Purple";
|
||||
this.tsmiColorPurple.Click += new System.EventHandler(this.tsmiColorPurple_Click);
|
||||
//
|
||||
// tsmiColorOrange
|
||||
//
|
||||
this.tsmiColorOrange.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(127)))), ((int)(((byte)(0)))));
|
||||
this.tsmiColorOrange.ForeColor = System.Drawing.Color.White;
|
||||
this.tsmiColorOrange.Name = "tsmiColorOrange";
|
||||
this.tsmiColorOrange.Size = new System.Drawing.Size(152, 22);
|
||||
this.tsmiColorOrange.Text = "Orange";
|
||||
this.tsmiColorOrange.Click += new System.EventHandler(this.tsmiColorOrange_Click);
|
||||
//
|
||||
// tsmiColorYellow
|
||||
//
|
||||
this.tsmiColorYellow.BackColor = System.Drawing.Color.Yellow;
|
||||
this.tsmiColorYellow.ForeColor = System.Drawing.Color.Black;
|
||||
this.tsmiColorYellow.Name = "tsmiColorYellow";
|
||||
this.tsmiColorYellow.Size = new System.Drawing.Size(152, 22);
|
||||
this.tsmiColorYellow.Text = "Yellow";
|
||||
this.tsmiColorYellow.Click += new System.EventHandler(this.tsmiColorYellow_Click);
|
||||
//
|
||||
// tsmiColorLightGreen
|
||||
//
|
||||
this.tsmiColorLightGreen.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(252)))), ((int)(((byte)(0)))));
|
||||
this.tsmiColorLightGreen.ForeColor = System.Drawing.Color.Black;
|
||||
this.tsmiColorLightGreen.Name = "tsmiColorLightGreen";
|
||||
this.tsmiColorLightGreen.Size = new System.Drawing.Size(152, 22);
|
||||
this.tsmiColorLightGreen.Text = "Light Green";
|
||||
this.tsmiColorLightGreen.Click += new System.EventHandler(this.tsmiColorLightGreen_Click);
|
||||
//
|
||||
// tsmiColorCyan
|
||||
//
|
||||
this.tsmiColorCyan.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(147)))), ((int)(((byte)(147)))));
|
||||
this.tsmiColorCyan.ForeColor = System.Drawing.Color.White;
|
||||
this.tsmiColorCyan.Name = "tsmiColorCyan";
|
||||
this.tsmiColorCyan.Size = new System.Drawing.Size(152, 22);
|
||||
this.tsmiColorCyan.Text = "Cyan";
|
||||
this.tsmiColorCyan.Click += new System.EventHandler(this.tsmiColorCyan_Click);
|
||||
//
|
||||
// tsmiColorLightCyan
|
||||
//
|
||||
this.tsmiColorLightCyan.BackColor = System.Drawing.Color.Aqua;
|
||||
this.tsmiColorLightCyan.ForeColor = System.Drawing.Color.Black;
|
||||
this.tsmiColorLightCyan.Name = "tsmiColorLightCyan";
|
||||
this.tsmiColorLightCyan.Size = new System.Drawing.Size(152, 22);
|
||||
this.tsmiColorLightCyan.Text = "Light Cyan";
|
||||
this.tsmiColorLightCyan.Click += new System.EventHandler(this.tsmiColorLightCyan_Click);
|
||||
//
|
||||
// tsmiColorLightBlue
|
||||
//
|
||||
this.tsmiColorLightBlue.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(252)))));
|
||||
this.tsmiColorLightBlue.ForeColor = System.Drawing.Color.White;
|
||||
this.tsmiColorLightBlue.Name = "tsmiColorLightBlue";
|
||||
this.tsmiColorLightBlue.Size = new System.Drawing.Size(152, 22);
|
||||
this.tsmiColorLightBlue.Text = "Light Blue";
|
||||
this.tsmiColorLightBlue.Click += new System.EventHandler(this.tsmiColorLightBlue_Click);
|
||||
//
|
||||
// tsmiColorPink
|
||||
//
|
||||
this.tsmiColorPink.BackColor = System.Drawing.Color.Fuchsia;
|
||||
this.tsmiColorPink.ForeColor = System.Drawing.Color.White;
|
||||
this.tsmiColorPink.Name = "tsmiColorPink";
|
||||
this.tsmiColorPink.Size = new System.Drawing.Size(152, 22);
|
||||
this.tsmiColorPink.Text = "Pink";
|
||||
this.tsmiColorPink.Click += new System.EventHandler(this.tsmiColorPink_Click);
|
||||
//
|
||||
// tsmiColorGrey
|
||||
//
|
||||
this.tsmiColorGrey.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(127)))), ((int)(((byte)(127)))), ((int)(((byte)(127)))));
|
||||
this.tsmiColorGrey.ForeColor = System.Drawing.Color.White;
|
||||
this.tsmiColorGrey.Name = "tsmiColorGrey";
|
||||
this.tsmiColorGrey.Size = new System.Drawing.Size(152, 22);
|
||||
this.tsmiColorGrey.Text = "Grey";
|
||||
this.tsmiColorGrey.Click += new System.EventHandler(this.tsmiColorGrey_Click);
|
||||
//
|
||||
// tsmiColorLightGrey
|
||||
//
|
||||
this.tsmiColorLightGrey.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(210)))), ((int)(((byte)(210)))), ((int)(((byte)(210)))));
|
||||
this.tsmiColorLightGrey.ForeColor = System.Drawing.Color.Black;
|
||||
this.tsmiColorLightGrey.Name = "tsmiColorLightGrey";
|
||||
this.tsmiColorLightGrey.Size = new System.Drawing.Size(152, 22);
|
||||
this.tsmiColorLightGrey.Text = "Light Grey";
|
||||
this.tsmiColorLightGrey.Click += new System.EventHandler(this.tsmiColorLightGrey_Click);
|
||||
//
|
||||
// IRCClientForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(984, 661);
|
||||
this.Controls.Add(this.tcMain);
|
||||
this.Name = "IRCClientForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "ShareX - IRC client";
|
||||
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.MainForm_FormClosed);
|
||||
this.cmsMessage.ResumeLayout(false);
|
||||
this.tcMain.ResumeLayout(false);
|
||||
this.tpMain.ResumeLayout(false);
|
||||
this.tpOutput.ResumeLayout(false);
|
||||
this.tpOutput.PerformLayout();
|
||||
this.tpMessages.ResumeLayout(false);
|
||||
this.tpMessages.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TextBox txtMessage;
|
||||
private System.Windows.Forms.Button btnMessageSend;
|
||||
private System.Windows.Forms.TextBox txtOutput;
|
||||
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;
|
||||
private System.Windows.Forms.TabPage tpMain;
|
||||
private System.Windows.Forms.PropertyGrid pgSettings;
|
||||
private System.Windows.Forms.Button btnConnect;
|
||||
private System.Windows.Forms.TextBox txtCommand;
|
||||
private System.Windows.Forms.Label lblCommand;
|
||||
private System.Windows.Forms.Button btnCommandSend;
|
||||
private System.Windows.Forms.ContextMenuStrip cmsMessage;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiMessageBold;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiMessageItalic;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiMessageUnderline;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiMessageNormal;
|
||||
private System.Windows.Forms.Button btnMessagesMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiColors;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiColorWhite;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiColorBlack;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiColorBlue;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiColorGreen;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiColorLightRed;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiColorBrown;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiColorPurple;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiColorOrange;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiColorYellow;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiColorLightGreen;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiColorCyan;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiColorLightCyan;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiColorLightBlue;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiColorPink;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiColorGrey;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiColorLightGrey;
|
||||
}
|
||||
}
|
||||
|
345
ShareX.IRCLib/IRCClientForm.cs
Normal file
345
ShareX.IRCLib/IRCClientForm.cs
Normal file
|
@ -0,0 +1,345 @@
|
|||
#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 ShareX.HelpersLib;
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace ShareX.IRCLib
|
||||
{
|
||||
public partial class IRCClientForm : Form
|
||||
{
|
||||
public IRCInfo Info { get; private set; }
|
||||
public IRC IRC { get; private set; }
|
||||
|
||||
private string lastCommand, lastMessage;
|
||||
|
||||
public IRCClientForm() : this(new IRCInfo())
|
||||
{
|
||||
}
|
||||
|
||||
public IRCClientForm(IRCInfo info)
|
||||
{
|
||||
InitializeComponent();
|
||||
Icon = ShareXResources.Icon;
|
||||
((ToolStripDropDownMenu)tsmiColors.DropDown).ShowImageMargin = false;
|
||||
|
||||
Info = info;
|
||||
pgSettings.SelectedObject = Info;
|
||||
|
||||
IRC = new IRC(Info);
|
||||
IRC.Disconnected += IRC_Disconnected;
|
||||
IRC.Output += IRC_Output;
|
||||
IRC.Message += IRC_Message;
|
||||
}
|
||||
|
||||
private void WriteText(string message, TextBox tb)
|
||||
{
|
||||
this.InvokeSafe(() =>
|
||||
{
|
||||
tb.AppendText($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - {message}\r\n");
|
||||
});
|
||||
}
|
||||
|
||||
private void AppendMessage(string message)
|
||||
{
|
||||
txtMessage.AppendTextToSelection(message);
|
||||
txtMessage.Focus();
|
||||
}
|
||||
|
||||
private void SendCommand()
|
||||
{
|
||||
string command = txtCommand.Text;
|
||||
|
||||
if (!string.IsNullOrEmpty(command))
|
||||
{
|
||||
lastCommand = command;
|
||||
|
||||
if (IRC.IsConnected)
|
||||
{
|
||||
SendCommand(command);
|
||||
}
|
||||
}
|
||||
|
||||
txtCommand.Clear();
|
||||
}
|
||||
|
||||
private void SendCommand(string command)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(command))
|
||||
{
|
||||
if (command.StartsWith("/"))
|
||||
{
|
||||
command = command.Substring(1);
|
||||
}
|
||||
|
||||
IRC.SendRawMessage(command);
|
||||
}
|
||||
}
|
||||
|
||||
private void SendMessage()
|
||||
{
|
||||
string message = txtMessage.Text;
|
||||
|
||||
if (!string.IsNullOrEmpty(message))
|
||||
{
|
||||
lastMessage = message;
|
||||
|
||||
if (IRC.IsConnected)
|
||||
{
|
||||
SendMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
txtMessage.Clear();
|
||||
}
|
||||
|
||||
private void SendMessage(string message)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(message))
|
||||
{
|
||||
if (message.StartsWith("/"))
|
||||
{
|
||||
IRC.SendRawMessage(message.Substring(1));
|
||||
}
|
||||
else
|
||||
{
|
||||
IRC.SendMessage(message, txtChannel.Text);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Connect()
|
||||
{
|
||||
btnConnect.Text = "Disconnect";
|
||||
btnCommandSend.Enabled = btnMessageSend.Enabled = true;
|
||||
tcMain.SelectedTab = tpOutput;
|
||||
IRC.Connect();
|
||||
}
|
||||
|
||||
private void Disconnect()
|
||||
{
|
||||
btnConnect.Text = "Connect";
|
||||
btnCommandSend.Enabled = btnMessageSend.Enabled = false;
|
||||
IRC.Disconnect();
|
||||
}
|
||||
|
||||
#region Form events
|
||||
|
||||
private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
|
||||
{
|
||||
if (IRC.IsConnected)
|
||||
{
|
||||
IRC.Disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
private void btnConnect_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!IRC.IsConnected)
|
||||
{
|
||||
Connect();
|
||||
}
|
||||
else
|
||||
{
|
||||
Disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
private void txtCommand_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.KeyCode == Keys.Enter)
|
||||
{
|
||||
SendCommand();
|
||||
e.SuppressKeyPress = true;
|
||||
}
|
||||
else if (e.KeyCode == Keys.Up && !string.IsNullOrEmpty(lastCommand))
|
||||
{
|
||||
txtCommand.Text = lastCommand;
|
||||
txtCommand.SelectionStart = txtCommand.TextLength;
|
||||
e.SuppressKeyPress = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void btnCommandSend_Click(object sender, EventArgs e)
|
||||
{
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
private void txtMessage_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.KeyCode == Keys.Enter)
|
||||
{
|
||||
SendMessage();
|
||||
e.SuppressKeyPress = true;
|
||||
}
|
||||
else if (e.KeyCode == Keys.Up && !string.IsNullOrEmpty(lastMessage))
|
||||
{
|
||||
txtMessage.Text = lastMessage;
|
||||
txtMessage.SelectionStart = txtMessage.TextLength;
|
||||
e.SuppressKeyPress = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void btnMessagesMenu_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
cmsMessage.Show(btnMessagesMenu, new Point(0, btnMessagesMenu.Height + 1));
|
||||
}
|
||||
|
||||
#region Message menu
|
||||
|
||||
private void tsmiMessageBold_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Bold);
|
||||
}
|
||||
|
||||
private void tsmiMessageItalic_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Italic);
|
||||
}
|
||||
|
||||
private void tsmiMessageUnderline_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Underline);
|
||||
}
|
||||
|
||||
private void tsmiMessageNormal_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Reset);
|
||||
}
|
||||
|
||||
private void tsmiColorWhite_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Color(IRCColors.White));
|
||||
}
|
||||
|
||||
private void tsmiColorBlack_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Color(IRCColors.Black));
|
||||
}
|
||||
|
||||
private void tsmiColorBlue_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Color(IRCColors.Blue));
|
||||
}
|
||||
|
||||
private void tsmiColorGreen_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Color(IRCColors.Green));
|
||||
}
|
||||
|
||||
private void tsmiColorLightRed_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Color(IRCColors.LightRed));
|
||||
}
|
||||
|
||||
private void tsmiColorBrown_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Color(IRCColors.Brown));
|
||||
}
|
||||
|
||||
private void tsmiColorPurple_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Color(IRCColors.Purple));
|
||||
}
|
||||
|
||||
private void tsmiColorOrange_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Color(IRCColors.Orange));
|
||||
}
|
||||
|
||||
private void tsmiColorYellow_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Color(IRCColors.Yellow));
|
||||
}
|
||||
|
||||
private void tsmiColorLightGreen_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Color(IRCColors.LightGreen));
|
||||
}
|
||||
|
||||
private void tsmiColorCyan_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Color(IRCColors.Cyan));
|
||||
}
|
||||
|
||||
private void tsmiColorLightCyan_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Color(IRCColors.LightCyan));
|
||||
}
|
||||
|
||||
private void tsmiColorLightBlue_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Color(IRCColors.LightBlue));
|
||||
}
|
||||
|
||||
private void tsmiColorPink_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Color(IRCColors.Pink));
|
||||
}
|
||||
|
||||
private void tsmiColorGrey_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Color(IRCColors.Grey));
|
||||
}
|
||||
|
||||
private void tsmiColorLightGrey_Click(object sender, EventArgs e)
|
||||
{
|
||||
AppendMessage(IRCText.Color(IRCColors.LightGrey));
|
||||
}
|
||||
|
||||
#endregion Message menu
|
||||
|
||||
private void btnMessageSend_Click(object sender, EventArgs e)
|
||||
{
|
||||
SendMessage();
|
||||
}
|
||||
|
||||
#endregion Form events
|
||||
|
||||
#region IRC events
|
||||
|
||||
private void IRC_Disconnected()
|
||||
{
|
||||
if (!Info.AutoReconnect)
|
||||
{
|
||||
Disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
private void IRC_Output(MessageInfo messageInfo)
|
||||
{
|
||||
WriteText(messageInfo.Content, txtOutput);
|
||||
}
|
||||
|
||||
private void IRC_Message(UserInfo user, string channel, string message)
|
||||
{
|
||||
WriteText($"{user.Nickname} > {channel}: {message}", txtMessages);
|
||||
}
|
||||
|
||||
#endregion IRC events
|
||||
}
|
||||
}
|
126
ShareX.IRCLib/IRCClientForm.resx
Normal file
126
ShareX.IRCLib/IRCClientForm.resx
Normal file
|
@ -0,0 +1,126 @@
|
|||
<?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>
|
||||
<metadata name="cmsMessage.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>62</value>
|
||||
</metadata>
|
||||
</root>
|
110
ShareX.IRCLib/IRCInfo.cs
Normal file
110
ShareX.IRCLib/IRCInfo.cs
Normal file
|
@ -0,0 +1,110 @@
|
|||
#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 ShareX.HelpersLib;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing.Design;
|
||||
|
||||
namespace ShareX.IRCLib
|
||||
{
|
||||
public class IRCInfo : SettingsBase<IRCInfo>
|
||||
{
|
||||
[Description("IRC server address."), DefaultValue("chat.freenode.net")]
|
||||
public string Server { get; set; } = "chat.freenode.net";
|
||||
|
||||
[Description("IRC server port."), DefaultValue(6667)]
|
||||
public int Port { get; set; } = 6667;
|
||||
|
||||
[Description("IRC server password."), PasswordPropertyText(true)]
|
||||
public string Password { get; set; }
|
||||
|
||||
[Description("Nickname.")]
|
||||
public string Nickname { get; set; }
|
||||
|
||||
[Description("Username."), DefaultValue("username")]
|
||||
public string Username { get; set; } = "username";
|
||||
|
||||
[Description("Realname."), DefaultValue("realname")]
|
||||
public string Realname { get; set; } = "realname";
|
||||
|
||||
[Description("IRC invisible mode."), DefaultValue(true)]
|
||||
public bool Invisible { get; set; } = true;
|
||||
|
||||
[Description("When disconnected from server auto reconnect."), DefaultValue(true)]
|
||||
public bool AutoReconnect { get; set; } = true;
|
||||
|
||||
[Description("Wait specific milliseconds before reconnecting."), DefaultValue(5000)]
|
||||
public int AutoReconnectDelay { get; set; } = 5000;
|
||||
|
||||
[Description("When got kicked auto rejoin channel."), DefaultValue(false)]
|
||||
public bool AutoRejoinOnKick { get; set; }
|
||||
|
||||
[Description("Don't show 'Message of the day' text."), DefaultValue(true)]
|
||||
public bool SuppressMOTD { get; set; } = true;
|
||||
|
||||
[Description("When you disconnect what message gonna show to other people."), DefaultValue("Leaving")]
|
||||
public string QuitReason { get; set; } = "Leaving";
|
||||
|
||||
[Description("When connected these commands will automatically execute."),
|
||||
Editor("System.Windows.Forms.Design.StringCollectionEditor,System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
|
||||
public List<string> ConnectCommands { get; set; } = new List<string>();
|
||||
|
||||
[Description("When connected automatically will join these channels."),
|
||||
Editor("System.Windows.Forms.Design.StringCollectionEditor,System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
|
||||
public List<string> AutoJoinChannels { get; set; } = new List<string>() { "#ShareX" };
|
||||
|
||||
[Description("Wait identify confirmation before auto join channels."), DefaultValue(false)]
|
||||
public bool AutoJoinWaitIdentify { get; set; }
|
||||
|
||||
[Description("Enable/Disable auto response system which using AutoResponseList."), DefaultValue(false)]
|
||||
public bool AutoResponse { get; set; }
|
||||
|
||||
[Description("After successful auto response match how much milliseconds wait for next auto response. Delay independant per message."), DefaultValue(10000)]
|
||||
public int AutoResponseDelay { get; set; } = 10000;
|
||||
|
||||
[Description("When specific message written in channel automatically will response with your message.")]
|
||||
public List<AutoResponseInfo> AutoResponseList { get; set; } = new List<AutoResponseInfo>();
|
||||
|
||||
public string GetAutoResponses()
|
||||
{
|
||||
List<string> messages = new List<string>();
|
||||
|
||||
foreach (AutoResponseInfo autoResponseInfo in AutoResponseList)
|
||||
{
|
||||
if (autoResponseInfo.Messages.Count > 1)
|
||||
{
|
||||
messages.Add($"[{string.Join(", ", autoResponseInfo.Messages)}]");
|
||||
}
|
||||
else if (autoResponseInfo.Messages.Count == 1)
|
||||
{
|
||||
messages.Add(autoResponseInfo.Messages[0]);
|
||||
}
|
||||
}
|
||||
|
||||
return string.Join(", ", messages);
|
||||
}
|
||||
}
|
||||
}
|
42
ShareX.IRCLib/IRCText.cs
Normal file
42
ShareX.IRCLib/IRCText.cs
Normal file
|
@ -0,0 +1,42 @@
|
|||
#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)
|
||||
|
||||
namespace ShareX.IRCLib
|
||||
{
|
||||
public static class IRCText
|
||||
{
|
||||
public const string Bold = "\x02";
|
||||
|
||||
public const string Italic = "\x1D";
|
||||
|
||||
public const string Underline = "\x1F";
|
||||
|
||||
public const string Reset = "\x0F";
|
||||
|
||||
public static string Color(IRCColors foregroundColor) => $"\x03{(int)foregroundColor:00}";
|
||||
|
||||
public static string Color(IRCColors foregroundColor, IRCColors backgroundColor) => $"\x03{(int)foregroundColor:00},{(int)backgroundColor:00}";
|
||||
}
|
||||
}
|
164
ShareX.IRCLib/MessageInfo.cs
Normal file
164
ShareX.IRCLib/MessageInfo.cs
Normal file
|
@ -0,0 +1,164 @@
|
|||
#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.Text;
|
||||
|
||||
namespace ShareX.IRCLib
|
||||
{
|
||||
public class MessageInfo
|
||||
{
|
||||
public string Content { get; private set; }
|
||||
public UserInfo User { get; private set; }
|
||||
public string Command { get; private set; }
|
||||
public List<string> Parameters { get; private set; }
|
||||
public string Message { get; private set; }
|
||||
|
||||
public MessageInfo(string content)
|
||||
{
|
||||
Content = content;
|
||||
User = new UserInfo();
|
||||
Parameters = new List<string>();
|
||||
}
|
||||
|
||||
public static MessageInfo Parse(string content)
|
||||
{
|
||||
MessageInfo messageInfo = new MessageInfo(content);
|
||||
|
||||
int index;
|
||||
string nickname = ParseSection(content, out index);
|
||||
|
||||
// Is it not my message?
|
||||
if (nickname.StartsWith(":"))
|
||||
{
|
||||
nickname = nickname.Substring(1);
|
||||
int usernameIndex = nickname.IndexOf("!", StringComparison.Ordinal);
|
||||
|
||||
// Is it not server?
|
||||
if (usernameIndex > -1)
|
||||
{
|
||||
//nickname!~username@host
|
||||
messageInfo.User.UserType = IRCUserType.User;
|
||||
messageInfo.User.Nickname = nickname.Remove(usernameIndex);
|
||||
|
||||
nickname = nickname.Substring(usernameIndex + 1);
|
||||
|
||||
if (nickname[0] == '~') // Remove Ident character
|
||||
{
|
||||
nickname = nickname.Substring(1);
|
||||
}
|
||||
|
||||
int hostIndex = nickname.IndexOf("@", StringComparison.Ordinal);
|
||||
messageInfo.User.Username = nickname.Remove(hostIndex);
|
||||
messageInfo.User.Host = nickname.Substring(hostIndex + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
//irc.freenode.net
|
||||
messageInfo.User.UserType = IRCUserType.Server;
|
||||
messageInfo.User.Host = nickname;
|
||||
}
|
||||
|
||||
content = content.Substring(index + 1);
|
||||
messageInfo.Command = ParseSection(content, out index);
|
||||
}
|
||||
else
|
||||
{
|
||||
// It is my command
|
||||
messageInfo.User.UserType = IRCUserType.Me;
|
||||
messageInfo.Command = nickname;
|
||||
}
|
||||
|
||||
while (index > -1)
|
||||
{
|
||||
content = content.Substring(index + 1);
|
||||
string check = ParseSection(content, out index);
|
||||
|
||||
// Is it parameter?
|
||||
if (!check.StartsWith(":"))
|
||||
{
|
||||
messageInfo.Parameters.Add(check);
|
||||
}
|
||||
else
|
||||
{
|
||||
// It is message
|
||||
messageInfo.Message = content.Substring(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return messageInfo;
|
||||
}
|
||||
|
||||
private static string ParseSection(string message, out int index)
|
||||
{
|
||||
index = message.IndexOf(' ');
|
||||
|
||||
if (index > -1)
|
||||
{
|
||||
return message.Remove(index);
|
||||
}
|
||||
|
||||
return message;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.AppendFormat("Type: {0}, ", User.UserType);
|
||||
|
||||
switch (User.UserType)
|
||||
{
|
||||
case IRCUserType.User:
|
||||
sb.AppendFormat("Nickname: {0}, Username: {1}, Host: {2}, ", User.Nickname, User.Username, User.Host);
|
||||
break;
|
||||
case IRCUserType.Server:
|
||||
sb.AppendFormat("Host: {0}, ", User.Host);
|
||||
break;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(Command))
|
||||
{
|
||||
sb.AppendFormat("Command: {0}, ", Command);
|
||||
}
|
||||
|
||||
foreach (string parameter in Parameters)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(parameter))
|
||||
{
|
||||
sb.AppendFormat("Parameter: {0}, ", parameter);
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(Message))
|
||||
{
|
||||
sb.AppendFormat("Message: {0}", Message);
|
||||
}
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
}
|
35
ShareX.IRCLib/Properties/AssemblyInfo.cs
Normal file
35
ShareX.IRCLib/Properties/AssemblyInfo.cs
Normal file
|
@ -0,0 +1,35 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("ShareX.IRCLib")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("ShareX Team")]
|
||||
[assembly: AssemblyProduct("ShareX")]
|
||||
[assembly: AssemblyCopyright("Copyright (c) 2007-2015 ShareX Team")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("ef7fcc3f-b776-4a5e-bddc-32329ab11a58")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
79
ShareX.IRCLib/ShareX.IRCLib.csproj
Normal file
79
ShareX.IRCLib/ShareX.IRCLib.csproj
Normal file
|
@ -0,0 +1,79 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{EF7FCC3F-B776-4A5E-BDDC-32329AB11A58}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ShareX.IRCLib</RootNamespace>
|
||||
<AssemblyName>ShareX.IRCLib</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="AutoResponseInfo.cs" />
|
||||
<Compile Include="Enums.cs" />
|
||||
<Compile Include="IRC.cs" />
|
||||
<Compile Include="IRCClientForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="IRCClientForm.Designer.cs">
|
||||
<DependentUpon>IRCClientForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="IRCInfo.cs" />
|
||||
<Compile Include="IRCText.cs" />
|
||||
<Compile Include="MessageInfo.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="UserInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\ShareX\ShareX.HelpersLib\ShareX.HelpersLib.csproj">
|
||||
<Project>{327750e1-9fb7-4cc3-8aea-9bc42180cad3}</Project>
|
||||
<Name>ShareX.HelpersLib</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="IRCClientForm.resx">
|
||||
<DependentUpon>IRCClientForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
57
ShareX.IRCLib/UserInfo.cs
Normal file
57
ShareX.IRCLib/UserInfo.cs
Normal file
|
@ -0,0 +1,57 @@
|
|||
#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;
|
||||
|
||||
namespace ShareX.IRCLib
|
||||
{
|
||||
public class UserInfo
|
||||
{
|
||||
public IRCUserType UserType { get; set; }
|
||||
|
||||
public string Nickname { get; set; }
|
||||
public string Username { get; set; }
|
||||
public string Realname { get; set; }
|
||||
public string Host { get; set; }
|
||||
public string Identity { get; set; }
|
||||
public List<string> Channels { get; set; }
|
||||
public string Server { get; set; }
|
||||
public bool SecureConnection { get; set; }
|
||||
public TimeSpan IdleTime { get; set; }
|
||||
public DateTime SignOnDate { get; set; }
|
||||
|
||||
public UserInfo()
|
||||
{
|
||||
Channels = new List<string>();
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
string channels = string.Join(" ", Channels);
|
||||
return $"Nickname: {Nickname}, Username: {Username}, Realname: {Realname}, Host: {Host}, Identity: {Identity}, Channels: {channels}";
|
||||
}
|
||||
}
|
||||
}
|
|
@ -30,6 +30,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ShareX.Setup", "ShareX.Setu
|
|||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ShareX.MediaLib", "ShareX.MediaLib\ShareX.MediaLib.csproj", "{1A190E53-1419-4CC2-B0E5-3BC7EA861C8B}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ShareX.IRCLib", "ShareX.IRCLib\ShareX.IRCLib.csproj", "{EF7FCC3F-B776-4A5E-BDDC-32329AB11A58}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
@ -74,6 +76,10 @@ Global
|
|||
{1A190E53-1419-4CC2-B0E5-3BC7EA861C8B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1A190E53-1419-4CC2-B0E5-3BC7EA861C8B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1A190E53-1419-4CC2-B0E5-3BC7EA861C8B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EF7FCC3F-B776-4A5E-BDDC-32329AB11A58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EF7FCC3F-B776-4A5E-BDDC-32329AB11A58}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EF7FCC3F-B776-4A5E-BDDC-32329AB11A58}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EF7FCC3F-B776-4A5E-BDDC-32329AB11A58}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
20
ShareX/Forms/MainForm.Designer.cs
generated
20
ShareX/Forms/MainForm.Designer.cs
generated
|
@ -79,6 +79,7 @@ private void InitializeComponent()
|
|||
this.tsmiIndexFolder = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiVideoThumbnailer = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiFTPClient = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiIRCClient = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTweetMessage = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiMonitorTest = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tssMain1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
|
@ -225,6 +226,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.tsmiTrayIRCClient = new System.Windows.Forms.ToolStripMenuItem();
|
||||
((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit();
|
||||
this.scMain.Panel1.SuspendLayout();
|
||||
this.scMain.Panel2.SuspendLayout();
|
||||
|
@ -553,6 +555,7 @@ private void InitializeComponent()
|
|||
this.tsmiIndexFolder,
|
||||
this.tsmiVideoThumbnailer,
|
||||
this.tsmiFTPClient,
|
||||
this.tsmiIRCClient,
|
||||
this.tsmiTweetMessage,
|
||||
this.tsmiMonitorTest});
|
||||
this.tsddbTools.Image = global::ShareX.Properties.Resources.toolbox;
|
||||
|
@ -643,6 +646,13 @@ private void InitializeComponent()
|
|||
resources.ApplyResources(this.tsmiFTPClient, "tsmiFTPClient");
|
||||
this.tsmiFTPClient.Click += new System.EventHandler(this.tsmiFTPClient_Click);
|
||||
//
|
||||
// tsmiIRCClient
|
||||
//
|
||||
this.tsmiIRCClient.Image = global::ShareX.Properties.Resources.balloon_white;
|
||||
this.tsmiIRCClient.Name = "tsmiIRCClient";
|
||||
resources.ApplyResources(this.tsmiIRCClient, "tsmiIRCClient");
|
||||
this.tsmiIRCClient.Click += new System.EventHandler(this.tsmiIRCClient_Click);
|
||||
//
|
||||
// tsmiTweetMessage
|
||||
//
|
||||
this.tsmiTweetMessage.Image = global::ShareX.Properties.Resources.Twitter;
|
||||
|
@ -1444,6 +1454,7 @@ private void InitializeComponent()
|
|||
this.tsmiTrayIndexFolder,
|
||||
this.tsmiTrayVideoThumbnailer,
|
||||
this.tsmiTrayFTPClient,
|
||||
this.tsmiTrayIRCClient,
|
||||
this.tsmiTrayTweetMessage,
|
||||
this.tsmiTrayMonitorTest});
|
||||
this.tsmiTrayTools.Image = global::ShareX.Properties.Resources.toolbox;
|
||||
|
@ -1719,6 +1730,13 @@ private void InitializeComponent()
|
|||
//
|
||||
this.timerTraySingleClick.Tick += new System.EventHandler(this.timerTraySingleClick_Tick);
|
||||
//
|
||||
// tsmiTrayIRCClient
|
||||
//
|
||||
this.tsmiTrayIRCClient.Image = global::ShareX.Properties.Resources.balloon_white;
|
||||
this.tsmiTrayIRCClient.Name = "tsmiTrayIRCClient";
|
||||
resources.ApplyResources(this.tsmiTrayIRCClient, "tsmiTrayIRCClient");
|
||||
this.tsmiTrayIRCClient.Click += new System.EventHandler(this.tsmiIRCClient_Click);
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AllowDrop = true;
|
||||
|
@ -1947,5 +1965,7 @@ private void InitializeComponent()
|
|||
private System.Windows.Forms.ToolStripMenuItem tsmiVideoThumbnailer;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiTrayVideoThumbnailer;
|
||||
private System.Windows.Forms.Timer timerTraySingleClick;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiIRCClient;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiTrayIRCClient;
|
||||
}
|
||||
}
|
|
@ -946,9 +946,14 @@ private void tsmiScreenColorPicker_Click(object sender, EventArgs e)
|
|||
TaskHelpers.OpenScreenColorPicker();
|
||||
}
|
||||
|
||||
private void tsmiFTPClient_Click(object sender, EventArgs e)
|
||||
private void tsmiImageEditor_Click(object sender, EventArgs e)
|
||||
{
|
||||
TaskHelpers.OpenFTPClient();
|
||||
TaskHelpers.OpenImageEditor();
|
||||
}
|
||||
|
||||
private void tsmiImageEffects_Click(object sender, EventArgs e)
|
||||
{
|
||||
TaskHelpers.OpenImageEffects();
|
||||
}
|
||||
|
||||
private void tsmiHashCheck_Click(object sender, EventArgs e)
|
||||
|
@ -956,6 +961,16 @@ private void tsmiHashCheck_Click(object sender, EventArgs e)
|
|||
TaskHelpers.OpenHashCheck();
|
||||
}
|
||||
|
||||
private void tsmiDNSChanger_Click(object sender, EventArgs e)
|
||||
{
|
||||
TaskHelpers.OpenDNSChanger();
|
||||
}
|
||||
|
||||
private void tsmiQRCode_Click(object sender, EventArgs e)
|
||||
{
|
||||
TaskHelpers.OpenQRCode();
|
||||
}
|
||||
|
||||
private void tsmiRuler_Click(object sender, EventArgs e)
|
||||
{
|
||||
TaskHelpers.OpenRuler();
|
||||
|
@ -976,29 +991,14 @@ private void tsmiVideoThumbnailer_Click(object sender, EventArgs e)
|
|||
TaskHelpers.OpenVideoThumbnailer();
|
||||
}
|
||||
|
||||
private void tsmiImageEditor_Click(object sender, EventArgs e)
|
||||
private void tsmiFTPClient_Click(object sender, EventArgs e)
|
||||
{
|
||||
TaskHelpers.OpenImageEditor();
|
||||
TaskHelpers.OpenFTPClient();
|
||||
}
|
||||
|
||||
private void tsmiImageEffects_Click(object sender, EventArgs e)
|
||||
private void tsmiIRCClient_Click(object sender, EventArgs e)
|
||||
{
|
||||
TaskHelpers.OpenImageEffects();
|
||||
}
|
||||
|
||||
private void tsmiMonitorTest_Click(object sender, EventArgs e)
|
||||
{
|
||||
TaskHelpers.OpenMonitorTest();
|
||||
}
|
||||
|
||||
private void tsmiDNSChanger_Click(object sender, EventArgs e)
|
||||
{
|
||||
TaskHelpers.OpenDNSChanger();
|
||||
}
|
||||
|
||||
private void tsmiQRCode_Click(object sender, EventArgs e)
|
||||
{
|
||||
TaskHelpers.OpenQRCode();
|
||||
TaskHelpers.OpenIRCClient();
|
||||
}
|
||||
|
||||
private void tsmiTweetMessage_Click(object sender, EventArgs e)
|
||||
|
@ -1006,6 +1006,11 @@ private void tsmiTweetMessage_Click(object sender, EventArgs e)
|
|||
TaskHelpers.TweetMessage();
|
||||
}
|
||||
|
||||
private void tsmiMonitorTest_Click(object sender, EventArgs e)
|
||||
{
|
||||
TaskHelpers.OpenMonitorTest();
|
||||
}
|
||||
|
||||
private void tsddbDestinations_DropDownOpened(object sender, EventArgs e)
|
||||
{
|
||||
UpdateDestinationStates();
|
||||
|
|
|
@ -180,45 +180,6 @@
|
|||
<data name=">>lblSplitter.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="chFilename.Text" xml:space="preserve">
|
||||
<value>Filename</value>
|
||||
</data>
|
||||
<data name="chFilename.Width" type="System.Int32, mscorlib">
|
||||
<value>150</value>
|
||||
</data>
|
||||
<data name="chStatus.Text" xml:space="preserve">
|
||||
<value>Status</value>
|
||||
</data>
|
||||
<data name="chProgress.Text" xml:space="preserve">
|
||||
<value>Progress</value>
|
||||
</data>
|
||||
<data name="chProgress.Width" type="System.Int32, mscorlib">
|
||||
<value>125</value>
|
||||
</data>
|
||||
<data name="chSpeed.Text" xml:space="preserve">
|
||||
<value>Speed</value>
|
||||
</data>
|
||||
<data name="chSpeed.Width" type="System.Int32, mscorlib">
|
||||
<value>75</value>
|
||||
</data>
|
||||
<data name="chElapsed.Text" xml:space="preserve">
|
||||
<value>Elapsed</value>
|
||||
</data>
|
||||
<data name="chElapsed.Width" type="System.Int32, mscorlib">
|
||||
<value>45</value>
|
||||
</data>
|
||||
<data name="chRemaining.Text" xml:space="preserve">
|
||||
<value>Remaining</value>
|
||||
</data>
|
||||
<data name="chRemaining.Width" type="System.Int32, mscorlib">
|
||||
<value>45</value>
|
||||
</data>
|
||||
<data name="chURL.Text" xml:space="preserve">
|
||||
<value>URL</value>
|
||||
</data>
|
||||
<data name="chURL.Width" type="System.Int32, mscorlib">
|
||||
<value>145</value>
|
||||
</data>
|
||||
<data name="lvUploads.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
|
@ -315,6 +276,45 @@
|
|||
<data name=">>scMain.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="chFilename.Text" xml:space="preserve">
|
||||
<value>Filename</value>
|
||||
</data>
|
||||
<data name="chFilename.Width" type="System.Int32, mscorlib">
|
||||
<value>150</value>
|
||||
</data>
|
||||
<data name="chStatus.Text" xml:space="preserve">
|
||||
<value>Status</value>
|
||||
</data>
|
||||
<data name="chProgress.Text" xml:space="preserve">
|
||||
<value>Progress</value>
|
||||
</data>
|
||||
<data name="chProgress.Width" type="System.Int32, mscorlib">
|
||||
<value>125</value>
|
||||
</data>
|
||||
<data name="chSpeed.Text" xml:space="preserve">
|
||||
<value>Speed</value>
|
||||
</data>
|
||||
<data name="chSpeed.Width" type="System.Int32, mscorlib">
|
||||
<value>75</value>
|
||||
</data>
|
||||
<data name="chElapsed.Text" xml:space="preserve">
|
||||
<value>Elapsed</value>
|
||||
</data>
|
||||
<data name="chElapsed.Width" type="System.Int32, mscorlib">
|
||||
<value>45</value>
|
||||
</data>
|
||||
<data name="chRemaining.Text" xml:space="preserve">
|
||||
<value>Remaining</value>
|
||||
</data>
|
||||
<data name="chRemaining.Width" type="System.Int32, mscorlib">
|
||||
<value>45</value>
|
||||
</data>
|
||||
<data name="chURL.Text" xml:space="preserve">
|
||||
<value>URL</value>
|
||||
</data>
|
||||
<data name="chURL.Width" type="System.Int32, mscorlib">
|
||||
<value>145</value>
|
||||
</data>
|
||||
<metadata name="tsMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
|
@ -324,6 +324,42 @@
|
|||
<data name="tsMain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Left</value>
|
||||
</data>
|
||||
<data name="tsMain.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="tsMain.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>6, 6, 6, 6</value>
|
||||
</data>
|
||||
<data name="tsMain.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>160, 407</value>
|
||||
</data>
|
||||
<data name="tsMain.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name=">>tsMain.Name" xml:space="preserve">
|
||||
<value>tsMain</value>
|
||||
</data>
|
||||
<data name=">>tsMain.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>tsMain.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>tsMain.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="tsddbCapture.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
</data>
|
||||
<data name="tsddbCapture.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
|
||||
<value>Magenta</value>
|
||||
</data>
|
||||
<data name="tsddbCapture.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>147, 20</value>
|
||||
</data>
|
||||
<data name="tsddbCapture.Text" xml:space="preserve">
|
||||
<value>Capture</value>
|
||||
</data>
|
||||
<data name="tsmiFullscreen.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
|
@ -414,17 +450,17 @@
|
|||
<data name="tsmiAutoCapture.Text" xml:space="preserve">
|
||||
<value>Auto capture...</value>
|
||||
</data>
|
||||
<data name="tsddbCapture.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<data name="tsddbUpload.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
</data>
|
||||
<data name="tsddbCapture.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
|
||||
<data name="tsddbUpload.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
|
||||
<value>Magenta</value>
|
||||
</data>
|
||||
<data name="tsddbCapture.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<data name="tsddbUpload.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>147, 20</value>
|
||||
</data>
|
||||
<data name="tsddbCapture.Text" xml:space="preserve">
|
||||
<value>Capture</value>
|
||||
<data name="tsddbUpload.Text" xml:space="preserve">
|
||||
<value>Upload</value>
|
||||
</data>
|
||||
<data name="tsmiUploadFile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>203, 22</value>
|
||||
|
@ -456,18 +492,6 @@
|
|||
<data name="tsmiUploadDragDrop.Text" xml:space="preserve">
|
||||
<value>Drag and drop upload...</value>
|
||||
</data>
|
||||
<data name="tsddbUpload.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
</data>
|
||||
<data name="tsddbUpload.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
|
||||
<value>Magenta</value>
|
||||
</data>
|
||||
<data name="tsddbUpload.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>147, 20</value>
|
||||
</data>
|
||||
<data name="tsddbUpload.Text" xml:space="preserve">
|
||||
<value>Upload</value>
|
||||
</data>
|
||||
<data name="tsddbWorkflows.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>BottomLeft</value>
|
||||
</data>
|
||||
|
@ -480,6 +504,18 @@
|
|||
<data name="tsddbWorkflows.Text" xml:space="preserve">
|
||||
<value>Workflows</value>
|
||||
</data>
|
||||
<data name="tsddbTools.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
</data>
|
||||
<data name="tsddbTools.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
|
||||
<value>Magenta</value>
|
||||
</data>
|
||||
<data name="tsddbTools.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>147, 20</value>
|
||||
</data>
|
||||
<data name="tsddbTools.Text" xml:space="preserve">
|
||||
<value>Tools</value>
|
||||
</data>
|
||||
<data name="tsmiColorPicker.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>183, 22</value>
|
||||
</data>
|
||||
|
@ -552,6 +588,12 @@
|
|||
<data name="tsmiFTPClient.Text" xml:space="preserve">
|
||||
<value>FTP client...</value>
|
||||
</data>
|
||||
<data name="tsmiIRCClient.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>183, 22</value>
|
||||
</data>
|
||||
<data name="tsmiIRCClient.Text" xml:space="preserve">
|
||||
<value>IRC client...</value>
|
||||
</data>
|
||||
<data name="tsmiTweetMessage.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>183, 22</value>
|
||||
</data>
|
||||
|
@ -564,18 +606,6 @@
|
|||
<data name="tsmiMonitorTest.Text" xml:space="preserve">
|
||||
<value>Monitor test...</value>
|
||||
</data>
|
||||
<data name="tsddbTools.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
</data>
|
||||
<data name="tsddbTools.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
|
||||
<value>Magenta</value>
|
||||
</data>
|
||||
<data name="tsddbTools.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>147, 20</value>
|
||||
</data>
|
||||
<data name="tsddbTools.Text" xml:space="preserve">
|
||||
<value>Tools</value>
|
||||
</data>
|
||||
<data name="tssMain1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>147, 6</value>
|
||||
</data>
|
||||
|
@ -603,6 +633,18 @@
|
|||
<data name="tsddbAfterUploadTasks.Text" xml:space="preserve">
|
||||
<value>After upload tasks</value>
|
||||
</data>
|
||||
<data name="tsddbDestinations.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
</data>
|
||||
<data name="tsddbDestinations.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
|
||||
<value>Magenta</value>
|
||||
</data>
|
||||
<data name="tsddbDestinations.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>147, 20</value>
|
||||
</data>
|
||||
<data name="tsddbDestinations.Text" xml:space="preserve">
|
||||
<value>Destinations</value>
|
||||
</data>
|
||||
<data name="tsmiImageUploaders.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>187, 22</value>
|
||||
</data>
|
||||
|
@ -642,18 +684,6 @@
|
|||
<data name="tsmiDestinationSettings.Text" xml:space="preserve">
|
||||
<value>Destination settings...</value>
|
||||
</data>
|
||||
<data name="tsddbDestinations.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
</data>
|
||||
<data name="tsddbDestinations.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
|
||||
<value>Magenta</value>
|
||||
</data>
|
||||
<data name="tsddbDestinations.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>147, 20</value>
|
||||
</data>
|
||||
<data name="tsddbDestinations.Text" xml:space="preserve">
|
||||
<value>Destinations</value>
|
||||
</data>
|
||||
<data name="tsbApplicationSettings.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
</data>
|
||||
|
@ -729,6 +759,18 @@
|
|||
<data name="tsbImageHistory.Text" xml:space="preserve">
|
||||
<value>Image history...</value>
|
||||
</data>
|
||||
<data name="tsddbDebug.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
</data>
|
||||
<data name="tsddbDebug.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
|
||||
<value>Magenta</value>
|
||||
</data>
|
||||
<data name="tsddbDebug.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>147, 20</value>
|
||||
</data>
|
||||
<data name="tsddbDebug.Text" xml:space="preserve">
|
||||
<value>Debug</value>
|
||||
</data>
|
||||
<data name="tsmiShowDebugLog.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>172, 22</value>
|
||||
</data>
|
||||
|
@ -765,18 +807,6 @@
|
|||
<data name="tsmiTestURLSharing.Text" xml:space="preserve">
|
||||
<value>Test URL sharing</value>
|
||||
</data>
|
||||
<data name="tsddbDebug.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
</data>
|
||||
<data name="tsddbDebug.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
|
||||
<value>Magenta</value>
|
||||
</data>
|
||||
<data name="tsddbDebug.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>147, 20</value>
|
||||
</data>
|
||||
<data name="tsddbDebug.Text" xml:space="preserve">
|
||||
<value>Debug</value>
|
||||
</data>
|
||||
<data name="tsmiDonate.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
</data>
|
||||
|
@ -801,33 +831,18 @@
|
|||
<data name="tsmiAbout.Text" xml:space="preserve">
|
||||
<value>About...</value>
|
||||
</data>
|
||||
<data name="tsMain.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="tsMain.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>6, 6, 6, 6</value>
|
||||
</data>
|
||||
<data name="tsMain.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>160, 407</value>
|
||||
</data>
|
||||
<data name="tsMain.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name=">>tsMain.Name" xml:space="preserve">
|
||||
<value>tsMain</value>
|
||||
</data>
|
||||
<data name=">>tsMain.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>tsMain.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>tsMain.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<metadata name="cmsTaskInfo.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>286, 17</value>
|
||||
</metadata>
|
||||
<data name="cmsTaskInfo.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>173, 318</value>
|
||||
</data>
|
||||
<data name=">>cmsTaskInfo.Name" xml:space="preserve">
|
||||
<value>cmsTaskInfo</value>
|
||||
</data>
|
||||
<data name=">>cmsTaskInfo.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="tsmiShowErrors.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>172, 22</value>
|
||||
</data>
|
||||
|
@ -840,6 +855,12 @@
|
|||
<data name="tsmiStopUpload.Text" xml:space="preserve">
|
||||
<value>Stop upload</value>
|
||||
</data>
|
||||
<data name="tsmiOpen.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>172, 22</value>
|
||||
</data>
|
||||
<data name="tsmiOpen.Text" xml:space="preserve">
|
||||
<value>Open</value>
|
||||
</data>
|
||||
<data name="tsmiOpenURL.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>156, 22</value>
|
||||
</data>
|
||||
|
@ -885,11 +906,11 @@
|
|||
<data name="tsmiOpenThumbnailFile.Text" xml:space="preserve">
|
||||
<value>Thumbnail file</value>
|
||||
</data>
|
||||
<data name="tsmiOpen.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<data name="tsmiCopy.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>172, 22</value>
|
||||
</data>
|
||||
<data name="tsmiOpen.Text" xml:space="preserve">
|
||||
<value>Open</value>
|
||||
<data name="tsmiCopy.Text" xml:space="preserve">
|
||||
<value>Copy</value>
|
||||
</data>
|
||||
<data name="tsmiCopyURL.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>233, 22</value>
|
||||
|
@ -1023,12 +1044,6 @@
|
|||
<data name="tssCopy5.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="tsmiCopy.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>172, 22</value>
|
||||
</data>
|
||||
<data name="tsmiCopy.Text" xml:space="preserve">
|
||||
<value>Copy</value>
|
||||
</data>
|
||||
<data name="tsmiUploadSelectedFile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>172, 22</value>
|
||||
</data>
|
||||
|
@ -1086,6 +1101,12 @@
|
|||
<data name="tsmiHideMenu.Text" xml:space="preserve">
|
||||
<value>Hide menu</value>
|
||||
</data>
|
||||
<data name="tsmiImagePreview.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>172, 22</value>
|
||||
</data>
|
||||
<data name="tsmiImagePreview.Text" xml:space="preserve">
|
||||
<value>Image preview</value>
|
||||
</data>
|
||||
<data name="tsmiImagePreviewShow.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>130, 22</value>
|
||||
</data>
|
||||
|
@ -1104,153 +1125,18 @@
|
|||
<data name="tsmiImagePreviewAutomatic.Text" xml:space="preserve">
|
||||
<value>Automatic</value>
|
||||
</data>
|
||||
<data name="tsmiImagePreview.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>172, 22</value>
|
||||
</data>
|
||||
<data name="tsmiImagePreview.Text" xml:space="preserve">
|
||||
<value>Image preview</value>
|
||||
</data>
|
||||
<data name="cmsTaskInfo.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>173, 318</value>
|
||||
</data>
|
||||
<data name=">>cmsTaskInfo.Name" xml:space="preserve">
|
||||
<value>cmsTaskInfo</value>
|
||||
</data>
|
||||
<data name=">>cmsTaskInfo.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<metadata name="niTray.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>105, 17</value>
|
||||
</metadata>
|
||||
<metadata name="cmsTray.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>190, 17</value>
|
||||
</metadata>
|
||||
<data name="tsmiTrayFullscreen.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayFullscreen.Text" xml:space="preserve">
|
||||
<value>Fullscreen</value>
|
||||
</data>
|
||||
<data name="tsmiTrayWindow.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayWindow.Text" xml:space="preserve">
|
||||
<value>Window</value>
|
||||
</data>
|
||||
<data name="tsmiTrayMonitor.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayMonitor.Text" xml:space="preserve">
|
||||
<value>Monitor</value>
|
||||
</data>
|
||||
<data name="tsmiTrayRectangle.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayRectangle.Text" xml:space="preserve">
|
||||
<value>Region</value>
|
||||
</data>
|
||||
<data name="tsmiTrayWindowRectangle.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayWindowRectangle.Text" xml:space="preserve">
|
||||
<value>Region (Objects)</value>
|
||||
</data>
|
||||
<data name="tsmiTrayRectangleAnnotate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayRectangleAnnotate.Text" xml:space="preserve">
|
||||
<value>Region (Annotate)</value>
|
||||
</data>
|
||||
<data name="tsmiTrayRectangleLight.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayRectangleLight.Text" xml:space="preserve">
|
||||
<value>Region (Light)</value>
|
||||
</data>
|
||||
<data name="tsmiTrayRectangleTransparent.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayRectangleTransparent.Text" xml:space="preserve">
|
||||
<value>Region (Transparent)</value>
|
||||
</data>
|
||||
<data name="tsmiTrayPolygon.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayPolygon.Text" xml:space="preserve">
|
||||
<value>Polygon</value>
|
||||
</data>
|
||||
<data name="tsmiTrayFreeHand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayFreeHand.Text" xml:space="preserve">
|
||||
<value>Freehand</value>
|
||||
</data>
|
||||
<data name="tsmiTrayLastRegion.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayLastRegion.Text" xml:space="preserve">
|
||||
<value>Last region</value>
|
||||
</data>
|
||||
<data name="tsmiTrayScreenRecordingFFmpeg.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayScreenRecordingFFmpeg.Text" xml:space="preserve">
|
||||
<value>Screen recording</value>
|
||||
</data>
|
||||
<data name="tsmiTrayScreenRecordingGIF.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayScreenRecordingGIF.Text" xml:space="preserve">
|
||||
<value>Screen recording (GIF)</value>
|
||||
</data>
|
||||
<data name="tsmiTrayWebpageCapture.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayWebpageCapture.Text" xml:space="preserve">
|
||||
<value>Webpage capture...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayAutoCapture.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayAutoCapture.Text" xml:space="preserve">
|
||||
<value>Auto capture...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayCapture.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>188, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayCapture.Text" xml:space="preserve">
|
||||
<value>Capture</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadFile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>203, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadFile.Text" xml:space="preserve">
|
||||
<value>Upload file...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadFolder.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>203, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadFolder.Text" xml:space="preserve">
|
||||
<value>Upload folder...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadClipboard.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>203, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadClipboard.Text" xml:space="preserve">
|
||||
<value>Upload from clipboard...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadURL.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>203, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadURL.Text" xml:space="preserve">
|
||||
<value>Upload from URL...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadDragDrop.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>203, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadDragDrop.Text" xml:space="preserve">
|
||||
<value>Drag and drop upload...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUpload.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>188, 22</value>
|
||||
</data>
|
||||
|
@ -1335,6 +1221,12 @@
|
|||
<data name="tsmiTrayFTPClient.Text" xml:space="preserve">
|
||||
<value>FTP client...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayIRCClient.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>183, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayIRCClient.Text" xml:space="preserve">
|
||||
<value>IRC client...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayTweetMessage.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>183, 22</value>
|
||||
</data>
|
||||
|
@ -1368,45 +1260,6 @@
|
|||
<data name="tsmiTrayAfterUploadTasks.Text" xml:space="preserve">
|
||||
<value>After upload</value>
|
||||
</data>
|
||||
<data name="tsmiTrayImageUploaders.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>187, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayImageUploaders.Text" xml:space="preserve">
|
||||
<value>Image uploaders</value>
|
||||
</data>
|
||||
<data name="tsmiTrayTextUploaders.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>187, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayTextUploaders.Text" xml:space="preserve">
|
||||
<value>Text uploaders</value>
|
||||
</data>
|
||||
<data name="tsmiTrayFileUploaders.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>187, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayFileUploaders.Text" xml:space="preserve">
|
||||
<value>File uploaders</value>
|
||||
</data>
|
||||
<data name="tsmiTrayURLShorteners.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>187, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayURLShorteners.Text" xml:space="preserve">
|
||||
<value>URL shorteners</value>
|
||||
</data>
|
||||
<data name="tsmiTrayURLSharingServices.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>187, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayURLSharingServices.Text" xml:space="preserve">
|
||||
<value>URL sharing services</value>
|
||||
</data>
|
||||
<data name="tssTrayDestinations1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>184, 6</value>
|
||||
</data>
|
||||
<data name="tsmiTrayDestinationSettings.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>187, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayDestinationSettings.Text" xml:space="preserve">
|
||||
<value>Destination settings...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayDestinations.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>188, 22</value>
|
||||
</data>
|
||||
|
@ -1505,7 +1358,166 @@
|
|||
</data>
|
||||
<data name="niTray.Text" xml:space="preserve">
|
||||
<value>ShareX</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="tsmiTrayFullscreen.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayFullscreen.Text" xml:space="preserve">
|
||||
<value>Fullscreen</value>
|
||||
</data>
|
||||
<data name="tsmiTrayWindow.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayWindow.Text" xml:space="preserve">
|
||||
<value>Window</value>
|
||||
</data>
|
||||
<data name="tsmiTrayMonitor.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayMonitor.Text" xml:space="preserve">
|
||||
<value>Monitor</value>
|
||||
</data>
|
||||
<data name="tsmiTrayRectangle.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayRectangle.Text" xml:space="preserve">
|
||||
<value>Region</value>
|
||||
</data>
|
||||
<data name="tsmiTrayWindowRectangle.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayWindowRectangle.Text" xml:space="preserve">
|
||||
<value>Region (Objects)</value>
|
||||
</data>
|
||||
<data name="tsmiTrayRectangleAnnotate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayRectangleAnnotate.Text" xml:space="preserve">
|
||||
<value>Region (Annotate)</value>
|
||||
</data>
|
||||
<data name="tsmiTrayRectangleLight.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayRectangleLight.Text" xml:space="preserve">
|
||||
<value>Region (Light)</value>
|
||||
</data>
|
||||
<data name="tsmiTrayRectangleTransparent.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayRectangleTransparent.Text" xml:space="preserve">
|
||||
<value>Region (Transparent)</value>
|
||||
</data>
|
||||
<data name="tsmiTrayPolygon.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayPolygon.Text" xml:space="preserve">
|
||||
<value>Polygon</value>
|
||||
</data>
|
||||
<data name="tsmiTrayFreeHand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayFreeHand.Text" xml:space="preserve">
|
||||
<value>Freehand</value>
|
||||
</data>
|
||||
<data name="tsmiTrayLastRegion.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayLastRegion.Text" xml:space="preserve">
|
||||
<value>Last region</value>
|
||||
</data>
|
||||
<data name="tsmiTrayScreenRecordingFFmpeg.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayScreenRecordingFFmpeg.Text" xml:space="preserve">
|
||||
<value>Screen recording</value>
|
||||
</data>
|
||||
<data name="tsmiTrayScreenRecordingGIF.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayScreenRecordingGIF.Text" xml:space="preserve">
|
||||
<value>Screen recording (GIF)</value>
|
||||
</data>
|
||||
<data name="tsmiTrayWebpageCapture.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayWebpageCapture.Text" xml:space="preserve">
|
||||
<value>Webpage capture...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayAutoCapture.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayAutoCapture.Text" xml:space="preserve">
|
||||
<value>Auto capture...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadFile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>203, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadFile.Text" xml:space="preserve">
|
||||
<value>Upload file...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadFolder.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>203, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadFolder.Text" xml:space="preserve">
|
||||
<value>Upload folder...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadClipboard.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>203, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadClipboard.Text" xml:space="preserve">
|
||||
<value>Upload from clipboard...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadURL.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>203, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadURL.Text" xml:space="preserve">
|
||||
<value>Upload from URL...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadDragDrop.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>203, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayUploadDragDrop.Text" xml:space="preserve">
|
||||
<value>Drag and drop upload...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayImageUploaders.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>187, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayImageUploaders.Text" xml:space="preserve">
|
||||
<value>Image uploaders</value>
|
||||
</data>
|
||||
<data name="tsmiTrayTextUploaders.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>187, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayTextUploaders.Text" xml:space="preserve">
|
||||
<value>Text uploaders</value>
|
||||
</data>
|
||||
<data name="tsmiTrayFileUploaders.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>187, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayFileUploaders.Text" xml:space="preserve">
|
||||
<value>File uploaders</value>
|
||||
</data>
|
||||
<data name="tsmiTrayURLShorteners.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>187, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayURLShorteners.Text" xml:space="preserve">
|
||||
<value>URL shorteners</value>
|
||||
</data>
|
||||
<data name="tsmiTrayURLSharingServices.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>187, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayURLSharingServices.Text" xml:space="preserve">
|
||||
<value>URL sharing services</value>
|
||||
</data>
|
||||
<data name="tssTrayDestinations1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>184, 6</value>
|
||||
</data>
|
||||
<data name="tsmiTrayDestinationSettings.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>187, 22</value>
|
||||
</data>
|
||||
<data name="tsmiTrayDestinationSettings.Text" xml:space="preserve">
|
||||
<value>Destination settings...</value>
|
||||
</data>
|
||||
<metadata name="timerTraySingleClick.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>405, 17</value>
|
||||
</metadata>
|
||||
|
@ -1529,7 +1541,7 @@
|
|||
</data>
|
||||
<data name="$this.Text" xml:space="preserve">
|
||||
<value>ShareX</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name=">>chFilename.Name" xml:space="preserve">
|
||||
<value>chFilename</value>
|
||||
</data>
|
||||
|
@ -1788,6 +1800,12 @@
|
|||
<data name=">>tsmiFTPClient.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>tsmiIRCClient.Name" xml:space="preserve">
|
||||
<value>tsmiIRCClient</value>
|
||||
</data>
|
||||
<data name=">>tsmiIRCClient.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>tsmiTweetMessage.Name" xml:space="preserve">
|
||||
<value>tsmiTweetMessage</value>
|
||||
</data>
|
||||
|
@ -2652,6 +2670,12 @@
|
|||
<data name=">>timerTraySingleClick.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>tsmiTrayIRCClient.Name" xml:space="preserve">
|
||||
<value>tsmiTrayIRCClient</value>
|
||||
</data>
|
||||
<data name=">>tsmiTrayIRCClient.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>MainForm</value>
|
||||
</data>
|
||||
|
|
|
@ -284,6 +284,9 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
// Tools / Video thumbnailer
|
||||
pgVideoThumbnailer.SelectedObject = TaskSettings.ToolsSettings.VideoThumbnailOptions;
|
||||
|
||||
// Tools / IRC client
|
||||
pgIRCClient.SelectedObject = TaskSettings.ToolsSettings.IRCSettings;
|
||||
|
||||
// Advanced
|
||||
pgTaskSettings.SelectedObject = TaskSettings.AdvancedSettings;
|
||||
|
||||
|
|
10
ShareX/Properties/Resources.Designer.cs
generated
10
ShareX/Properties/Resources.Designer.cs
generated
|
@ -307,6 +307,16 @@ public static string AutoCaptureForm_UpdateStatus_Timeleft___0_s___1____Total___
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap balloon_white {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("balloon-white", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
|
|
|
@ -117,6 +117,10 @@
|
|||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="UploadTask_DoUploadJob_You_are_attempting_to_upload_a_large_file" xml:space="preserve">
|
||||
<value>You are attempting to upload a large file.
|
||||
Are you sure you want to continue?</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="layer_shape_round" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layer-shape-round.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
|
@ -128,22 +132,34 @@
|
|||
<data name="UploadManager_IsUploadConfirmed_Are_you_sure_you_want_to_upload__0__files_" xml:space="preserve">
|
||||
<value>Are you sure you want to upload {0} files?</value>
|
||||
</data>
|
||||
<data name="BeforeUploadControl_AddDestination_Custom" xml:space="preserve">
|
||||
<value>Custom</value>
|
||||
</data>
|
||||
<data name="UploadTask_Stop_Stopping" xml:space="preserve">
|
||||
<value>Stopping</value>
|
||||
</data>
|
||||
<data name="UploadTask_CreateURLShortenerTask_Shorten_URL___0__" xml:space="preserve">
|
||||
<value>Shorten URL ({0})</value>
|
||||
</data>
|
||||
<data name="layer_transparent" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layer-transparent.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Polygon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Polygon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ScreenRecordForm_StartRecording_There_is_no_valid_CLI_video_encoder_selected_" xml:space="preserve">
|
||||
<value>There is no valid CLI video encoder selected.</value>
|
||||
</data>
|
||||
<data name="UploadTask_DownloadAndUpload_Downloading" xml:space="preserve">
|
||||
<value>Downloading</value>
|
||||
</data>
|
||||
<data name="UploadTask_DoUploadJob_First_time_upload_warning_text" xml:space="preserve">
|
||||
<value>Are you sure you want to upload this screenshot?
|
||||
Press 'No' to cancel the current upload and disable screenshot auto uploading.</value>
|
||||
</data>
|
||||
<data name="WebpageCaptureForm_UpdateControls_Stop" xml:space="preserve">
|
||||
<value>Stop</value>
|
||||
</data>
|
||||
<data name="UploadTask_DoUploadJob_Uploading" xml:space="preserve">
|
||||
<value>Uploading</value>
|
||||
</data>
|
||||
|
@ -162,15 +178,15 @@ Press 'No' to cancel the current upload and disable screenshot auto uploading.</
|
|||
<data name="google_plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\google_plus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="toolbox" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\toolbox.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="au" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\au.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ScreenRecordForm_StartRecording_FFmpeg_error" xml:space="preserve">
|
||||
<value>FFmpeg error</value>
|
||||
</data>
|
||||
<data name="checkbox_check" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\checkbox_check.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ScreenRecordForm_DownloaderForm_InstallRequested_FFmpeg_successfully_downloaded_" xml:space="preserve">
|
||||
<value>FFmpeg successfully downloaded.</value>
|
||||
</data>
|
||||
|
@ -237,9 +253,6 @@ Press 'No' to cancel the current upload and disable screenshot auto uploading.</
|
|||
<data name="Fullscreen" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Fullscreen.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="TaskSettingsForm_UpdateUploaderMenuNames_URL_shortener___0_" xml:space="preserve">
|
||||
<value>URL shortener: {0}</value>
|
||||
</data>
|
||||
<data name="UploadTask_ThreadDoWork_URL_is_empty_" xml:space="preserve">
|
||||
<value>URL is empty.</value>
|
||||
</data>
|
||||
|
@ -259,6 +272,9 @@ Please select a different hotkey or quit the conflicting application and reopen
|
|||
<data name="AutoCaptureForm_Execute_Stop" xml:space="preserve">
|
||||
<value>Stop</value>
|
||||
</data>
|
||||
<data name="RecentManager_UpdateRecentMenu_Left_click_to_copy_URL_to_clipboard__Right_click_to_open_URL_" xml:space="preserve">
|
||||
<value>Left click to copy URL to clipboard. Right click to open URL.</value>
|
||||
</data>
|
||||
<data name="robot" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\robot.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -295,8 +311,8 @@ Please select a different hotkey or quit the conflicting application and reopen
|
|||
<data name="application_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\application-blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="application_task" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\application-task.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="MainForm_AfterShownJobs_You_can_single_left_click_the_ShareX_tray_icon_to_start_region_capture_" xml:space="preserve">
|
||||
<value>You can single left click the ShareX tray icon to start region capture.</value>
|
||||
</data>
|
||||
<data name="TaskSettingsForm_UpdateWindowTitle_Task_settings" xml:space="preserve">
|
||||
<value>Task settings</value>
|
||||
|
@ -334,8 +350,10 @@ Would you like to automatically download it?</value>
|
|||
<value>Waiting...</value>
|
||||
<comment>Text must be equal or lower than 54 characters because of tray icon text length limit.</comment>
|
||||
</data>
|
||||
<data name="BeforeUploadForm_BeforeUploadForm__0__is_about_to_be_uploaded_to__1___You_may_choose_a_different_destination_" xml:space="preserve">
|
||||
<value>{0} is about to be uploaded to {1}. You may choose a different destination.</value>
|
||||
<data name="TaskHelpers_OpenImageEditor_Your_clipboard_contains_image" xml:space="preserve">
|
||||
<value>Your clipboard contains image, would you like to open it in image editor?
|
||||
|
||||
Press yes to open image from clipboard. Alternatively, press no to open image file dialog box.</value>
|
||||
</data>
|
||||
<data name="TaskSettingsForm_UpdateUploaderMenuNames_Image_uploader___0_" xml:space="preserve">
|
||||
<value>Image uploader: {0}</value>
|
||||
|
@ -346,12 +364,18 @@ Would you like to automatically download it?</value>
|
|||
<data name="layer_pencil" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layer--pencil.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="images_stack" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\images-stack.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="TaskHelpers_OpenQuickScreenColorPicker_Copied_to_clipboard___0_" xml:space="preserve">
|
||||
<value>Copied to clipboard: {0}</value>
|
||||
</data>
|
||||
<data name="MainForm_UpdateMenu_Hide_menu" xml:space="preserve">
|
||||
<value>Hide menu</value>
|
||||
</data>
|
||||
<data name="monitor" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\monitor.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="navigation_000_button" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\navigation-000-button.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -376,6 +400,9 @@ Would you like to automatically download it?</value>
|
|||
<data name="UploadTask_DoAfterCaptureJobs_Choose_a_folder_to_save" xml:space="preserve">
|
||||
<value>Choose a folder to save</value>
|
||||
</data>
|
||||
<data name="MainForm_UpdateToggleHotkeyButton_Enable_hotkeys" xml:space="preserve">
|
||||
<value>Enable hotkeys</value>
|
||||
</data>
|
||||
<data name="ActionsForm_btnPathBrowse_Click_Choose_file_path" xml:space="preserve">
|
||||
<value>Choose file path</value>
|
||||
</data>
|
||||
|
@ -388,6 +415,9 @@ Would you like to automatically download it?</value>
|
|||
<data name="keyboard" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\keyboard.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="TaskHelpers_ToggleHotkeys_Hotkeys_disabled_" xml:space="preserve">
|
||||
<value>Hotkeys disabled.</value>
|
||||
</data>
|
||||
<data name="UploadManager_IsUploadConfirmed_Upload_files" xml:space="preserve">
|
||||
<value>Upload files</value>
|
||||
</data>
|
||||
|
@ -400,9 +430,6 @@ Would you like to automatically download it?</value>
|
|||
<data name="kr" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\kr.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="pencil" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\pencil.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="TaskManager_task_UploadCompleted_Error" xml:space="preserve">
|
||||
<value>Error</value>
|
||||
</data>
|
||||
|
@ -413,6 +440,9 @@ Would you like to automatically download it?</value>
|
|||
<value>Drop
|
||||
here</value>
|
||||
</data>
|
||||
<data name="TaskHelpers_ToggleHotkeys_Hotkeys_enabled_" xml:space="preserve">
|
||||
<value>Hotkeys enabled.</value>
|
||||
</data>
|
||||
<data name="crown" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\crown.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -475,8 +505,8 @@ Please run ShareX as administrator to change personal folder path.</value>
|
|||
<data name="TaskHelpers_OpenFTPClient_FTP_client_only_supports_FTP_or_FTPS_" xml:space="preserve">
|
||||
<value>FTP client only supports FTP or FTPS.</value>
|
||||
</data>
|
||||
<data name="arrow_090" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\arrow-090.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="layers_arrange" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layers-arrange.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="WatchFolderForm_btnPathBrowse_Click_Choose_folder_path" xml:space="preserve">
|
||||
<value>Choose folder path</value>
|
||||
|
@ -484,6 +514,9 @@ Please run ShareX as administrator to change personal folder path.</value>
|
|||
<data name="Rectangle" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Rectangle.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="MainForm_UpdateToggleHotkeyButton_Disable_hotkeys" xml:space="preserve">
|
||||
<value>Disable hotkeys</value>
|
||||
</data>
|
||||
<data name="ApplicationSettingsForm_cbLanguage_SelectedIndexChanged_Language_Restart" xml:space="preserve">
|
||||
<value>ShareX need to be restarted for language changes to apply.
|
||||
Would you like to restart ShareX?</value>
|
||||
|
@ -491,6 +524,9 @@ Would you like to restart ShareX?</value>
|
|||
<data name="layer_shape" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layer-shape.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="eraser" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\eraser.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="image_pencil" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\image--pencil.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -503,6 +539,9 @@ Would you like to restart ShareX?</value>
|
|||
<data name="cn" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\cn.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="categories" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\categories.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="FileExistForm_txtNewName_TextChanged_Use_new_name__" xml:space="preserve">
|
||||
<value>Use new name: </value>
|
||||
</data>
|
||||
|
@ -563,15 +602,12 @@ Would you like to restart ShareX?</value>
|
|||
<data name="TaskSettingsForm_UpdateUploaderMenuNames_After_capture___0_" xml:space="preserve">
|
||||
<value>After capture: {0}</value>
|
||||
</data>
|
||||
<data name="camera" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\camera.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="TaskSettingsForm_UpdateUploaderMenuNames_URL_shortener___0_" xml:space="preserve">
|
||||
<value>URL shortener: {0}</value>
|
||||
</data>
|
||||
<data name="clipboard" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\clipboard.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="barcode_2d" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\barcode-2d.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Program_Run_Unable_to_create_folder_" xml:space="preserve">
|
||||
<value>Unable to create folder:</value>
|
||||
</data>
|
||||
|
@ -584,11 +620,8 @@ Would you like to restart ShareX?</value>
|
|||
<data name="film" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\film.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ScreenColorPicker_ScreenColorPicker_Close" xml:space="preserve">
|
||||
<value>Close</value>
|
||||
</data>
|
||||
<data name="RecentManager_UpdateRecentMenu_Left_click_to_copy_URL_to_clipboard__Right_click_to_open_URL_" xml:space="preserve">
|
||||
<value>Left click to copy URL to clipboard. Right click to open URL.</value>
|
||||
<data name="arrow_090" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\arrow-090.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="clipboard_list" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\clipboard-list.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
|
@ -605,9 +638,6 @@ Would you like to restart ShareX?</value>
|
|||
<data name="UploadManager_UploadFile_File_upload" xml:space="preserve">
|
||||
<value>File upload</value>
|
||||
</data>
|
||||
<data name="ScreenColorPicker_UpdateControls_Start_screen_color_picker" xml:space="preserve">
|
||||
<value>Start screen color picker</value>
|
||||
</data>
|
||||
<data name="layout_select_sidebar" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layout-select-sidebar.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -618,9 +648,6 @@ Would you like to restart ShareX?</value>
|
|||
<value>Download failed:
|
||||
{0}</value>
|
||||
</data>
|
||||
<data name="TaskSettingsForm_UpdateUploaderMenuNames_After_upload___0_" xml:space="preserve">
|
||||
<value>After upload: {0}</value>
|
||||
</data>
|
||||
<data name="layer_shape_ellipse" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layer-shape-ellipse.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -639,8 +666,8 @@ Would you like to restart ShareX?</value>
|
|||
<data name="layer_shape_polygon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layer-shape-polygon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="checkbox_check" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\checkbox_check.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="toolbox" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\toolbox.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="UploadTask_OnUploadCompleted_Stopped" xml:space="preserve">
|
||||
<value>Stopped</value>
|
||||
|
@ -657,12 +684,15 @@ Would you like to restart ShareX?</value>
|
|||
<data name="AboutForm_AboutForm_Issues" xml:space="preserve">
|
||||
<value>Issues</value>
|
||||
</data>
|
||||
<data name="layer_transparent" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layer-transparent.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="ScreenColorPicker_ScreenColorPicker_Close" xml:space="preserve">
|
||||
<value>Close</value>
|
||||
</data>
|
||||
<data name="wrench_screwdriver" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\wrench-screwdriver.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="application_browser" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\application-browser.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ErrorSound" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ErrorSound.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
|
@ -672,8 +702,8 @@ Would you like to restart ShareX?</value>
|
|||
<data name="MainForm_tsmiTestTextUpload_Click_Text_upload_test" xml:space="preserve">
|
||||
<value>Text upload test</value>
|
||||
</data>
|
||||
<data name="application_browser" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\application-browser.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="application_task" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\application-task.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="notebook" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\notebook.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
|
@ -687,6 +717,15 @@ Would you like to restart ShareX?</value>
|
|||
<data name="color" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\color.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="WebpageCaptureForm_UpdateControls_Capture" xml:space="preserve">
|
||||
<value>Capture</value>
|
||||
</data>
|
||||
<data name="TaskHelpers_OpenImageEditor_Image_editor___How_to_load_image_" xml:space="preserve">
|
||||
<value>Image editor - How to load image?</value>
|
||||
</data>
|
||||
<data name="br" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\br.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="image" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\image.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -702,20 +741,26 @@ Would you like to restart ShareX?</value>
|
|||
<data name="RoundedRectangle" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\RoundedRectangle.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="monitor" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\monitor.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="TaskHelpers_TweetMessage_Unable_to_find_valid_Twitter_account_" xml:space="preserve">
|
||||
<value>Unable to find valid Twitter account.</value>
|
||||
</data>
|
||||
<data name="BeforeUploadForm_BeforeUploadForm__0__is_about_to_be_uploaded_to__1___You_may_choose_a_different_destination_" xml:space="preserve">
|
||||
<value>{0} is about to be uploaded to {1}. You may choose a different destination.</value>
|
||||
</data>
|
||||
<data name="AboutForm_AboutForm_Website" xml:space="preserve">
|
||||
<value>Website</value>
|
||||
</data>
|
||||
<data name="categories" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\categories.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="pencil" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\pencil.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="layers_arrange" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\layers-arrange.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="TaskSettingsForm_UpdateUploaderMenuNames_After_upload___0_" xml:space="preserve">
|
||||
<value>After upload: {0}</value>
|
||||
</data>
|
||||
<data name="eraser" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\eraser.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="barcode_2d" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\barcode-2d.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="camera" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\camera.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="exclamation_button" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\exclamation-button.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
|
@ -727,52 +772,10 @@ Would you like to restart ShareX?</value>
|
|||
<data name="ScreenRecordForm_DownloaderForm_InstallRequested_Download_of_FFmpeg_failed_" xml:space="preserve">
|
||||
<value>Download of FFmpeg failed.</value>
|
||||
</data>
|
||||
<data name="TaskHelpers_TweetMessage_Unable_to_find_valid_Twitter_account_" xml:space="preserve">
|
||||
<value>Unable to find valid Twitter account.</value>
|
||||
<data name="ScreenColorPicker_UpdateControls_Start_screen_color_picker" xml:space="preserve">
|
||||
<value>Start screen color picker</value>
|
||||
</data>
|
||||
<data name="images_stack" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\images-stack.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="BeforeUploadControl_AddDestination_Custom" xml:space="preserve">
|
||||
<value>Custom</value>
|
||||
</data>
|
||||
<data name="MainForm_AfterShownJobs_You_can_single_left_click_the_ShareX_tray_icon_to_start_region_capture_" xml:space="preserve">
|
||||
<value>You can single left click the ShareX tray icon to start region capture.</value>
|
||||
</data>
|
||||
<data name="MainForm_UpdateToggleHotkeyButton_Enable_hotkeys" xml:space="preserve">
|
||||
<value>Enable hotkeys</value>
|
||||
</data>
|
||||
<data name="MainForm_UpdateToggleHotkeyButton_Disable_hotkeys" xml:space="preserve">
|
||||
<value>Disable hotkeys</value>
|
||||
</data>
|
||||
<data name="WebpageCaptureForm_UpdateControls_Stop" xml:space="preserve">
|
||||
<value>Stop</value>
|
||||
</data>
|
||||
<data name="WebpageCaptureForm_UpdateControls_Capture" xml:space="preserve">
|
||||
<value>Capture</value>
|
||||
</data>
|
||||
<data name="TaskHelpers_ToggleHotkeys_Hotkeys_disabled_" xml:space="preserve">
|
||||
<value>Hotkeys disabled.</value>
|
||||
</data>
|
||||
<data name="TaskHelpers_ToggleHotkeys_Hotkeys_enabled_" xml:space="preserve">
|
||||
<value>Hotkeys enabled.</value>
|
||||
</data>
|
||||
<data name="br" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\br.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="UploadTask_DoUploadJob_You_are_attempting_to_upload_a_large_file" xml:space="preserve">
|
||||
<value>You are attempting to upload a large file.
|
||||
Are you sure you want to continue?</value>
|
||||
</data>
|
||||
<data name="UploadTask_DownloadAndUpload_Downloading" xml:space="preserve">
|
||||
<value>Downloading</value>
|
||||
</data>
|
||||
<data name="TaskHelpers_OpenImageEditor_Your_clipboard_contains_image" xml:space="preserve">
|
||||
<value>Your clipboard contains image, would you like to open it in image editor?
|
||||
|
||||
Press yes to open image from clipboard. Alternatively, press no to open image file dialog box.</value>
|
||||
</data>
|
||||
<data name="TaskHelpers_OpenImageEditor_Image_editor___How_to_load_image_" xml:space="preserve">
|
||||
<value>Image editor - How to load image?</value>
|
||||
<data name="balloon-white" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\balloon-white.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
BIN
ShareX/Resources/balloon-white.png
Normal file
BIN
ShareX/Resources/balloon-white.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 593 B |
|
@ -827,6 +827,10 @@
|
|||
<Project>{750c6f46-2c5a-4488-81d3-3b35ca50f3ee}</Project>
|
||||
<Name>ShareX.IndexerLib</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ShareX.IRCLib\ShareX.IRCLib.csproj">
|
||||
<Project>{ef7fcc3f-b776-4a5e-bddc-32329ab11a58}</Project>
|
||||
<Name>ShareX.IRCLib</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ShareX.MediaLib\ShareX.MediaLib.csproj">
|
||||
<Project>{1a190e53-1419-4cc2-b0e5-3bc7ea861c8b}</Project>
|
||||
<Name>ShareX.MediaLib</Name>
|
||||
|
@ -1000,6 +1004,7 @@
|
|||
<None Include="Resources\keyboard--plus.png" />
|
||||
<None Include="Resources\images-stack.png" />
|
||||
<None Include="Resources\br.png" />
|
||||
<None Include="Resources\balloon-white.png" />
|
||||
<Content Include="ShareX_Icon.ico" />
|
||||
<None Include="Resources\globe--pencil.png" />
|
||||
<None Include="Resources\camcorder--pencil.png" />
|
||||
|
|
|
@ -25,6 +25,7 @@ You should have received a copy of the GNU General Public License
|
|||
|
||||
using ShareX.HelpersLib;
|
||||
using ShareX.ImageEffectsLib;
|
||||
using ShareX.IRCLib;
|
||||
using ShareX.MediaLib;
|
||||
using ShareX.Properties;
|
||||
using ShareX.ScreenCaptureLib;
|
||||
|
@ -747,6 +748,13 @@ public static void OpenFTPClient()
|
|||
MessageBox.Show(Resources.TaskHelpers_OpenFTPClient_Unable_to_find_valid_FTP_account_, "ShareX", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
|
||||
public static void OpenIRCClient(TaskSettings taskSettings = null)
|
||||
{
|
||||
if (taskSettings == null) taskSettings = TaskSettings.GetDefaultTaskSettings();
|
||||
|
||||
new IRCClientForm(taskSettings.ToolsSettings.IRCSettings).Show();
|
||||
}
|
||||
|
||||
public static void TweetMessage()
|
||||
{
|
||||
if (Program.UploadersConfig != null && Program.UploadersConfig.TwitterOAuthInfoList != null)
|
||||
|
|
|
@ -27,6 +27,7 @@ You should have received a copy of the GNU General Public License
|
|||
using ShareX.HelpersLib;
|
||||
using ShareX.ImageEffectsLib;
|
||||
using ShareX.IndexerLib;
|
||||
using ShareX.IRCLib;
|
||||
using ShareX.MediaLib;
|
||||
using ShareX.ScreenCaptureLib;
|
||||
using ShareX.UploadersLib;
|
||||
|
@ -344,6 +345,7 @@ public class TaskSettingsTools
|
|||
{
|
||||
public IndexerSettings IndexerSettings = new IndexerSettings();
|
||||
public VideoThumbnailOptions VideoThumbnailOptions = new VideoThumbnailOptions();
|
||||
public IRCInfo IRCSettings = new IRCInfo();
|
||||
}
|
||||
|
||||
public class TaskSettingsAdvanced
|
||||
|
|
Loading…
Reference in a new issue