summary refs log tree commit diff stats
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/hextray/bitmaps/sd.bmpbin32824 -> 0 bytes
-rw-r--r--plugins/hextray/callbacks.cpp734
-rw-r--r--plugins/hextray/callbacks.h37
-rw-r--r--plugins/hextray/hexchat.cpp320
-rw-r--r--plugins/hextray/hexchat.h32
-rw-r--r--plugins/hextray/hextray.cpp246
-rw-r--r--plugins/hextray/hextray.def3
-rw-r--r--plugins/hextray/hextray.h83
-rw-r--r--plugins/hextray/hextray.vcxproj129
-rw-r--r--plugins/hextray/hextray.vcxproj.filters103
-rw-r--r--plugins/hextray/icons/ban.icobin1150 -> 0 bytes
-rw-r--r--plugins/hextray/icons/disconnect.icobin1150 -> 0 bytes
-rw-r--r--plugins/hextray/icons/hexchat.icobin17542 -> 0 bytes
-rw-r--r--plugins/hextray/icons/highlight.icobin1150 -> 0 bytes
-rw-r--r--plugins/hextray/icons/kick.icobin1150 -> 0 bytes
-rw-r--r--plugins/hextray/icons/message.icobin1150 -> 0 bytes
-rw-r--r--plugins/hextray/icons/notice.icobin1150 -> 0 bytes
-rw-r--r--plugins/hextray/icons/sd.icobin24358 -> 0 bytes
-rw-r--r--plugins/hextray/resource.h47
-rw-r--r--plugins/hextray/resource.rc309
-rw-r--r--plugins/hextray/sdAlerts.cpp109
-rw-r--r--plugins/hextray/sdAlerts.h26
-rw-r--r--plugins/hextray/sdTray.cpp207
-rw-r--r--plugins/hextray/sdTray.h39
-rw-r--r--plugins/hextray/utility.cpp410
-rw-r--r--plugins/hextray/utility.h46
26 files changed, 0 insertions, 2880 deletions
diff --git a/plugins/hextray/bitmaps/sd.bmp b/plugins/hextray/bitmaps/sd.bmp
deleted file mode 100644
index 9d6b7f95..00000000
--- a/plugins/hextray/bitmaps/sd.bmp
+++ /dev/null
Binary files differdiff --git a/plugins/hextray/callbacks.cpp b/plugins/hextray/callbacks.cpp
deleted file mode 100644
index d902af50..00000000
--- a/plugins/hextray/callbacks.cpp
+++ /dev/null
@@ -1,734 +0,0 @@
-/* X-Tray

- * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>

- *

- * X-Tray 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.

- * 

- * X-Tray 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 X-Tray; if not, write to the Free Software

- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA

- */

-

-#define _WIN32_IE 0x0601

-

-#include <windows.h>

-#include <stdio.h>

-#include <commctrl.h>

-#include <tchar.h>

-

-#include "hexchat-plugin.h"

-#include "utility.h"

-#include "hextray.h"

-#include "hexchat.h"

-#include "callbacks.h"

-#include "resource.h"

-#include "sdTray.h"

-#include "sdAlerts.h"

-

-HWND	g_hPrefTabEvents;

-HWND	g_hPrefTabSettings;

-HWND	g_hPrefTabAlerts;

-HWND	g_hPrefTabAbout;

-bool	g_bCanQuit;

-int		g_iIsActive = 1;

-

-

-BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam)

-{

-	TCHAR szTitle[10];

-	GetWindowText(hWnd, szTitle, 9);

-

-	if(_tcsstr(szTitle, _T("HexChat [")))

-	{

-		g_hXchatWnd = hWnd;

-		return false;

-	}

-	

-	return true;

-}

-

-/***********************************************************************************************/

-/******* our HexChat event call back, get the name and info for each event and save it *********/

-/******* for our alerts later ******************************************************************/

-/***********************************************************************************************/

-int event_cb(char *word[], void *userdata)

-{

-	int iEvent = (int)userdata;

-

-	if(iEvent > 10 && iEvent != 21)

-		return HEXCHAT_EAT_NONE;

-

-	/***************************************************************************************/

-	/***** if the window is minimized or if we're allowed to show alerts when its not	 **/

-	/***** and if the option to show the specified alert is true and if we're even		**/

-	/***** allowed to show alerts at all then we show them (a bit confusing but it works) **/

-	/***************************************************************************************/

-	if(((g_iIsActive == 0) || !(g_dwPrefs & (1<<PREF_OSBWM))) && (g_dwPrefs & (1<<PREF_AMAE)) && (g_dwPrefs & (1<<iEvent)))

-	{	

-		/*********************************/

-		/*********** Our Buffers *********/

-		/*********************************/

-		char			szInfo[512];

-		char			szName[64];

-		DWORD			dwInfoFlags;

-		int iTime		= g_iTime*1000;

-		char *szTemp	= NULL;

-

-		if(g_dwPrefs & (1<<PREF_KAOI))

-		{

-			iTime = 0;

-		}

-

-		switch(iEvent)

-		{

-		case CHAN_HILIGHT:

-			_snprintf(szInfo, 512, "%s:\r\n%s", word[1], word[2]);

-			_snprintf(szName, 64, "Highlight: %s", hexchat_get_info (ph, "channel"));

-			dwInfoFlags = NIIF_INFO;

-			break;

-		case CHAN_MESSAGE:

-			_snprintf(szInfo, 512, "%s:\r\n%s", word[1], word[2]);

-			_snprintf(szName, 64, "Channel Message: %s", hexchat_get_info (ph, "channel"));

-			dwInfoFlags = NIIF_INFO;

-			break;

-		case CHAN_TOPIC_CHANGE:

-			_snprintf(szInfo, 512, "%s has changed the topic to %s", word[1], word[2]);

-			_snprintf(szName, 64, "Topic Change: %s", word[3]);

-			dwInfoFlags = NIIF_INFO;

-			break;

-		case CHAN_INVITE:

-			_snprintf(szInfo, 512, "%s has invited you into %s", word[1], word[2]);

-			_snprintf(szName, 64, "Invite");

-			dwInfoFlags = NIIF_INFO;

-			break;

-		case CHAN_KICKED:

-			_snprintf(szInfo, 512, "Kicked from %s by %s:\r\n%s", word[2], word[3], word[4]);

-			_snprintf(szName, 64, "Kick");

-			dwInfoFlags = NIIF_WARNING;

-			break;

-		case CHAN_BANNED:

-			_snprintf(szInfo, 512, "Cannot join %s You are banned.", word[1]);

-			_snprintf(szName, 64, "Banned");

-			dwInfoFlags = NIIF_WARNING;

-			break;

-		case CTCP_GENERIC:

-			_snprintf(szInfo, 512, "%s:\r\nCTCP %s", word[2], word[1]);

-			_snprintf(szName, 64, "CTCP");

-			dwInfoFlags = NIIF_INFO;

-			break;

-		case PMSG_RECEIVE:

-			_snprintf(szInfo, 512, "%s:\r\n%s", word[1], word[2]);

-			_snprintf(szName, 64, "Private Message");

-			dwInfoFlags = NIIF_INFO;

-			break;

-		case SERV_DISCONNECT:

-			_snprintf(szInfo, 512, "Disconnected\r\nError: %s", word[1]);

-			_snprintf(szName, 64, "Disconnect");

-			dwInfoFlags = NIIF_ERROR;

-			break;

-		case SERV_KILLED:

-			_snprintf(szInfo, 512, "Killed(%s(%s))", word[1], word[2]);

-			_snprintf(szName, 64, "Server Admin has killed you");

-			dwInfoFlags = NIIF_ERROR;

-			break;

-		case SERV_NOTICE:

-			_snprintf(szInfo, 512, "Notice:\r\n%s: %s", word[1], word[2]);

-			_snprintf(szName, 64, "Notice");

-			dwInfoFlags = NIIF_INFO;

-			break;

-		case 11:

-			_snprintf(szInfo, 512, ":\r\n%s: %s", word[1], word[2]);

-			_snprintf(szName, 64, "Notice");

-			dwInfoFlags = NIIF_INFO;

-			break;

-		}

-

-		/**************************************************************************************/

-		/***** Use windows instead of balloons, and if its a window should we keep it open ****/

-		/***** indefinitely?															   ****/

-		/**************************************************************************************/

-		szTemp = hexchat_strip_color(szInfo);

-

-		if(g_dwPrefs & (1<<PREF_UWIOB))

-		{

-			sdSystemAlert((HINSTANCE)g_hInstance, IDD_ALERT, szTemp, szName, iTime);

-		}

-		else

-		{

-			ShowBalloon(g_hXchatWnd, 1, szTemp, szName, iTime, dwInfoFlags);

-		}

-

-		free(szTemp);

-	}

-

-	if(g_dwPrefs & (1<<PREF_BLINK) && (g_dwPrefs & (1<<iEvent)))

-	{

-		BlinkIcon(g_hXchatWnd, 1, g_hIcons[0], g_hIcons[(iEvent+1)], 700, 5);

-	}

-

-	/***********************************/

-	/***** pass the events to HexChat **/

-	/***********************************/

-	return HEXCHAT_EAT_NONE;

-}

-

-int command_cb(char *word[], char *word_eol[], void *userdata)

-{

-	char szInfo[512];

-	char *szTemp	= NULL;

-	int iTime		= g_iTime*1000;

-

-	_snprintf(szInfo, 512, word_eol[2]);

-	szTemp = hexchat_strip_color(szInfo);

-

-	if(g_dwPrefs & (1<<PREF_KAOI))

-	{

-		iTime = 0;

-	}

-

-	if(((g_iIsActive == 0) || !(g_dwPrefs & (1<<PREF_OSBWM))) && (g_dwPrefs & (1<<PREF_AMAE)))

-	{

-		if(g_dwPrefs & (1<<PREF_UWIOB))

-		{

-			sdSystemAlert((HINSTANCE)g_hInstance, IDD_ALERT, szTemp, "Alert", iTime);

-		}

-		else

-		{

-			ShowBalloon(g_hXchatWnd, 1, szTemp, "Alert", iTime, NIIF_INFO);

-		}

-	}

-

-	free(szTemp);

-

-	return HEXCHAT_EAT_ALL;

-}

-

-LRESULT CALLBACK WindowProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)

-{

-	switch(msg)

-	{

-	case WM_CLOSE:

-		{

-			if((g_dwPrefs & (1<<PREF_MIOC)) && (g_bCanQuit == false))

-			{

-				/*******************************************/

-				/**** to autoaway or not to autoaway...  ***/

-				/*******************************************/

-				if(g_dwPrefs & (1<<PREF_AOM))

-				{

-					hexchat_globally_away(g_szAway);

-				}

-

-				/**************************************************/

-				/**** Win32 API call to hide the window and	     **/

-				/**** save the fact that its minimized for later **/

-				/**************************************************/

-				g_iIsActive = 0;

-				ShowWindow(hWnd, SW_HIDE);

-

-				return 0;

-			}

-			else

-			{

-				if(g_hPrefDlg != NULL)

-				{

-					DestroyWindow(g_hPrefDlg);

-				}

-

-				StopBlink(hWnd, 1, g_hIcons[0]);

-				

-				if(sdAlertNum())

-				{

-					sdCloseAlerts();

-					HoldClose();

-					return 0;

-				}

-			}

-		}

-		break;

-	case WM_SIZE:

-		{

-			/******************************************/

-			/***** User wants to minimize HexChat, ****/

-			/***** are we allowed to go to tray? ******/

-			/******************************************/

-			if((g_dwPrefs & (1<<PREF_TOT)) && (wparam == SIZE_MINIMIZED))

-			{

-				/*******************************************/

-				/**** to autoaway or not to autoaway...  ***/

-				/*******************************************/

-				if(g_dwPrefs & (1<<PREF_AOM))

-				{

-					hexchat_globally_away(g_szAway);

-				}

-

-				/**************************************************/

-				/**** Win32 API call to hide the window and	     **/

-				/**** save the fact that its minimized for later **/

-				/**************************************************/

-				g_iIsActive = 0;

-				ShowWindow(hWnd, SW_HIDE);

-			}

-		}

-		break;

-	/**********************************/

-	/*** user clicked the tray icon ***/

-	/**********************************/

-	case WM_TRAYMSG:

-		{

-			switch(lparam)

-			{

-			case WM_LBUTTONDOWN:

-				{

-					if(!g_iIsActive)

-					{

-						/*********************************************************/

-						/*** 0: its hiden, restore it and show it, if autoaway ***/

-						/*** is on, set us as back							 ***/

-						/*********************************************************/

-						SendMessage(hWnd, WM_SYSCOMMAND, SC_RESTORE, 0);

-						SetForegroundWindow(hWnd);

-						g_iIsActive = 1;

-

-						if(g_dwPrefs & (1<<PREF_AOM))

-						{

-							hexchat_globally_back();

-						}

-					}

-					else

-					{

-						SendMessage(hWnd, WM_SYSCOMMAND, SC_MINIMIZE, 0);

-					}

-				}

-				break;

-			case WM_RBUTTONDOWN:

-				{

-					/******************************************/

-					/*** user wants to see the menu find out **/

-					/*** where the mouse is and show it	  **/

-					/******************************************/

-					POINT pt;

-					int iRet;

-

-					GetCursorPos(&pt);

-					SetForegroundWindow(hWnd);

-

-					ModifyMenu(g_hTrayMenu, 2, (MF_POPUP | MF_BYPOSITION), (UINT)setServerMenu(), _T("Away"));

-

-					Sleep(175);

-

-					iRet = TrackPopupMenuEx(g_hTrayMenu, (TPM_RETURNCMD | TPM_LEFTALIGN), pt.x, pt.y, hWnd, NULL);

-

-					/***********************************/

-					/*** nRet is the users selection, **/

-					/*** process it				   **/

-					/***********************************/

-					sdTrayProc(hWnd, iRet);

-				}

-				break;

-			}

-		}

-		break;

-	default:

-		{

-			/*****************************************************/

-			/*** the taskbar has been restarted, re-add our icon */

-			/*****************************************************/

-			if(msg == RegisterWindowMessage(_T("TaskbarCreated")))

-			{

-				char szVersion[64];

-				_snprintf(szVersion, 64, "HexChat [%s]", hexchat_get_info(ph, "version"));

-				AddIcon(g_hXchatWnd, 1, g_hIcons[0], szVersion, (NIF_ICON | NIF_MESSAGE | NIF_TIP), WM_TRAYMSG);

-			}

-		}

-		break;

-	}

-

-	return CallWindowProc(g_hOldProc, hWnd, msg, wparam, lparam);

-}

-

-/****************************************************/

-/*** process messages from the tray menu ************/

-/****************************************************/

-LRESULT CALLBACK sdTrayProc(HWND hWnd, int msg)

-{

-	switch(msg)

-	{

-	case ACT_EXIT:

-		{

-			g_bCanQuit = true;

-			PostMessage(hWnd, WM_CLOSE, 0, 0);

-		}

-		break;

-	case ACT_RESTORE:

-		{

-			/*************************************************/

-			/** user wants us to restore the HexChat window **/

-			/** and of autoaway is on, set as back ******** **/

-			/*************************************************/

-			SendMessage(g_hXchatWnd, WM_SYSCOMMAND, SC_RESTORE, 0);

-			SetForegroundWindow(hWnd);

-			

-			if((!g_iIsActive) && (g_dwPrefs & (1<<PREF_AOM)))

-			{

-				hexchat_globally_back();

-				g_iIsActive = 1;

-			}

-		}

-		break;

-	case ACT_SETTINGS:

-		{

-			ShowWindow(g_hPrefDlg, SW_SHOW);

-		}

-		break;

-	case ACT_AWAY:

-		{

-			hexchat_globally_away(g_szAway);

-		}

-		break;

-	case ACT_BACK:

-		{

-			hexchat_globally_back();

-		}

-		break;

-	default:

-		{

-			if(msg > 0)

-			{

-				hexchat_set_context(ph, hexchat_find_server(msg-1));

-

-				if(!hexchat_get_info(ph, "away"))

-				{

-					hexchat_away(g_szAway);

-				}

-				else

-				{

-					hexchat_back();

-				}

-			}

-		}

-		break;

-	}

-

-	return 1;

-}

-

-int CALLBACK PrefProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)

-{

-	switch(msg)

-	{

-	case WM_INITDIALOG:

-		{

-			TCITEM tci1;

-			TCITEM tci2;

-			TCITEM tci3;

-			TCITEM tci4;

-

-			tci1.mask		= TCIF_TEXT;

-			tci1.pszText	= _T("Settings");

-			tci1.cchTextMax	= strlen("Settings");

-			SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_INSERTITEM, 0, (LPARAM)&tci1);

-

-			tci2.mask		= TCIF_TEXT;

-			tci2.pszText	= _T("Alerts");

-			tci2.cchTextMax	= strlen("Alerts");

-			SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_INSERTITEM, 1, (LPARAM)&tci2);

-

-			tci3.mask		= TCIF_TEXT;

-			tci3.pszText	= _T("Events");

-			tci3.cchTextMax	= strlen("Events");

-			SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_INSERTITEM, 2, (LPARAM)&tci3);

-

-			tci4.mask		= TCIF_TEXT;

-			tci4.pszText	= _T("About");

-			tci4.cchTextMax	= strlen("About");

-			SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_INSERTITEM, 3, (LPARAM)&tci4);

-

-

-			/***********************************************************************************/

-			/***********************************************************************************/

-			/***********************************************************************************/

-

-			g_hPrefTabSettings	= CreateDialog((HINSTANCE)g_hInstance,

-									MAKEINTRESOURCE(IDD_SETTINGS),

-									hWnd,		

-									(DLGPROC)SettingsProc);

-			SetDialog(g_hPrefTabSettings,	IDD_SETTINGS);

-

-			g_hPrefTabAlerts	= CreateDialog((HINSTANCE)g_hInstance,

-									MAKEINTRESOURCE(IDD_ALERTS),

-									hWnd,

-									(DLGPROC)AlertsProc);

-			SetDialog(g_hPrefTabAlerts,		IDD_ALERTS);

-

-			g_hPrefTabEvents	= CreateDialog((HINSTANCE)g_hInstance,

-									MAKEINTRESOURCE(IDD_EVENTS),

-									hWnd,		

-									(DLGPROC)EventsProc);

-			SetDialog(g_hPrefTabEvents,		IDD_EVENTS);

-

-			g_hPrefTabAbout		= CreateDialog((HINSTANCE)g_hInstance,

-									MAKEINTRESOURCE(IDD_ABOUT),

-									hWnd,

-									(DLGPROC)AboutProc);

-		}

-		break;

-	case WM_SHOWWINDOW:

-		{

-			if(wparam)

-			{

-				SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_SETCURSEL, 0, 0);

-				ShowWindow(g_hPrefTabSettings,	SW_SHOW);

-				ShowWindow(g_hPrefTabAlerts,	SW_HIDE);

-				ShowWindow(g_hPrefTabEvents,	SW_HIDE);

-				ShowWindow(g_hPrefTabAbout,		SW_HIDE);

-			}

-		}

-		break;

-	case WM_NOTIFY:

-		{

-			NMHDR *pData = (NMHDR *)lparam;

-

-			switch(pData->code)

-			{

-			case TCN_SELCHANGE:

-				{

-					switch(SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_GETCURSEL, 0, 0))

-					{

-					case 0:

-						{

-							ShowWindow(g_hPrefTabSettings,	SW_SHOW);

-							ShowWindow(g_hPrefTabAlerts,	SW_HIDE);

-							ShowWindow(g_hPrefTabEvents,	SW_HIDE);

-							ShowWindow(g_hPrefTabAbout,		SW_HIDE);

-						}

-						break;

-					case 1:

-						{

-							ShowWindow(g_hPrefTabSettings,	SW_HIDE);

-							ShowWindow(g_hPrefTabAlerts,	SW_SHOW);

-							ShowWindow(g_hPrefTabEvents,	SW_HIDE);

-							ShowWindow(g_hPrefTabAbout,		SW_HIDE);

-						}

-						break;

-					case 2:

-						{

-							ShowWindow(g_hPrefTabSettings,	SW_HIDE);

-							ShowWindow(g_hPrefTabAlerts,	SW_HIDE);

-							ShowWindow(g_hPrefTabEvents,	SW_SHOW);

-							ShowWindow(g_hPrefTabAbout,		SW_HIDE);

-						}

-						break;

-					case 3:

-						{

-							ShowWindow(g_hPrefTabSettings,	SW_HIDE);

-							ShowWindow(g_hPrefTabAlerts,	SW_HIDE);

-							ShowWindow(g_hPrefTabEvents,	SW_HIDE);

-							ShowWindow(g_hPrefTabAbout,		SW_SHOW);

-						}

-						break;

-					}

-				}

-				break;

-			}

-		}

-		break;

-	case WM_CLOSE:

-		{

-			ShowWindow(g_hPrefTabEvents,	SW_HIDE);

-			ShowWindow(g_hPrefTabSettings,	SW_HIDE);

-			ShowWindow(g_hPrefTabAlerts,	SW_HIDE);

-			ShowWindow(g_hPrefTabAbout,		SW_HIDE);

-			ShowWindow(hWnd,				SW_HIDE);

-			return TRUE;

-		}

-		break;

-	case WM_COMMAND:

-		{

-			switch(wparam)

-			{

-			case IDC_PREF_OK:

-				{

-					CheckPrefs(g_hPrefTabEvents,	IDD_EVENTS);

-					CheckPrefs(g_hPrefTabSettings,	IDD_SETTINGS);

-					CheckPrefs(g_hPrefTabAlerts,	IDD_ALERTS);

-

-					SavePrefs(0);

-

-					ShowWindow(g_hPrefTabEvents,	SW_HIDE);

-					ShowWindow(g_hPrefTabSettings,	SW_HIDE);

-					ShowWindow(g_hPrefTabAlerts,	SW_HIDE);

-					ShowWindow(g_hPrefTabAbout,		SW_HIDE);

-					ShowWindow(hWnd,				SW_HIDE);

-					return TRUE;

-				}

-				break;

-			case IDC_PREF_CANCEL:

-				{

-					ShowWindow(g_hPrefTabEvents,	SW_HIDE);

-					ShowWindow(g_hPrefTabSettings,	SW_HIDE);

-					ShowWindow(g_hPrefTabAlerts,	SW_HIDE);

-					ShowWindow(g_hPrefTabAbout,		SW_HIDE);

-					ShowWindow(hWnd,				SW_HIDE);

-					return TRUE;

-				}

-				break;

-			case IDC_PREF_APPLY:

-				{

-					CheckPrefs(g_hPrefTabEvents,	IDD_EVENTS);

-					CheckPrefs(g_hPrefTabSettings,	IDD_SETTINGS);

-					CheckPrefs(g_hPrefTabAlerts,	IDD_ALERTS);

-

-					SavePrefs(0);

-					return FALSE;

-				}

-				break;

-			}

-		}

-		break;

-	case WM_DESTROY:

-		{

-			SendMessage(g_hPrefTabEvents,	WM_CLOSE, 0, 0);

-			SendMessage(g_hPrefTabSettings,	WM_CLOSE, 0, 0);

-			SendMessage(g_hPrefTabAbout,	WM_CLOSE, 0, 0);

-			SendMessage(g_hPrefTabAlerts,	WM_CLOSE, 0, 0);

-		}

-		break;

-	}

-

-	return FALSE;

-}

-

-/****************************************************/

-/****************************************************/

-/****************************************************/

-LRESULT CALLBACK AlertsProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)

-{

-	switch(msg)

-	{

-	case WM_CLOSE:

-		{

-			DestroyWindow(hWnd);

-			return TRUE;

-			break;

-		}

-		break;

-	case WM_COMMAND:

-		{

-			switch(LOWORD(wparam))

-			{

-			case PREF_AMAE:

-				{

-					SetToggle(hWnd, PREF_OSBWM,			PREF_AMAE, TRUE);

-					SetToggle(hWnd, PREF_UWIOB,			PREF_AMAE, TRUE);

-					SetToggle(hWnd, PREF_KAOI,			PREF_AMAE, TRUE);

-					

-					if(IsDlgButtonChecked(hWnd, PREF_AMAE))

-					{

-						SetToggle(hWnd, IDC_ALERT_HOTKEY,		PREF_UWIOB, TRUE);

-						SetToggle(hWnd, IDC_ALERT_HOTKEY_TEXT,	PREF_UWIOB, TRUE);

-						SetToggle(hWnd, IDC_ALERT_TIME,			PREF_KAOI, FALSE);

-						SetToggle(hWnd, IDC_ALERT_TIME_TEXT,	PREF_KAOI, FALSE);

-					}

-					else

-					{

-						SetToggle(hWnd, IDC_ALERT_HOTKEY,		PREF_AMAE, TRUE);

-						SetToggle(hWnd, IDC_ALERT_HOTKEY_TEXT,	PREF_AMAE, TRUE);

-						SetToggle(hWnd, IDC_ALERT_TIME,			PREF_AMAE, TRUE);

-						SetToggle(hWnd, IDC_ALERT_TIME_TEXT,	PREF_AMAE, TRUE);

-					}

-				}

-				break;

-			case PREF_UWIOB:

-				{

-					SetToggle(hWnd, IDC_ALERT_HOTKEY,		PREF_UWIOB, TRUE);

-					SetToggle(hWnd, IDC_ALERT_HOTKEY_TEXT,	PREF_UWIOB, TRUE);

-				}

-				break;

-			case PREF_KAOI:

-				{

-					SetToggle(hWnd, IDC_ALERT_TIME,			PREF_KAOI, FALSE);

-					SetToggle(hWnd, IDC_ALERT_TIME_TEXT,	PREF_KAOI, FALSE);

-				}

-				break;

-			}

-			break;

-		}

-	}

-

-	return FALSE;

-}

-

-/****************************************************/

-/****************************************************/

-/****************************************************/

-LRESULT CALLBACK AboutProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)

-{

-	if(msg == WM_CLOSE)

-	{

-		DestroyWindow(hWnd);

-		return true;

-	}

-

-	return FALSE;

-}

-

-/*****************************************************/

-/** Process the events for our event dialog **********/

-/*****************************************************/

-LRESULT CALLBACK EventsProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)

-{

-	if(msg == WM_CLOSE)

-	{

-		DestroyWindow(hWnd);

-		return true;

-	}

-

-	return FALSE;

-}

-

-/*****************************************************/

-/** Process the events for our settings dialog this **/

-/** is alot more complicated because options are	**/

-/** enabled/disabled based on the state of others   **/

-/*****************************************************/

-LRESULT CALLBACK SettingsProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)

-{

-	if(msg == WM_CLOSE)

-	{

-		DestroyWindow(hWnd);

-		return true;

-	}

-

-	return FALSE;

-}

-

-/*****************************************************/

-/** this is the hotkey message  processing function **/

-/** this window is always open and ready to be told **/

-/** if someone has hit the hotkey, if they did, we  **/

-/** need to close out all of the tray alerts, for   **/

-/** this I wrote sdCloseAlerts, more info there	 **/

-/*****************************************************/

-LRESULT CALLBACK HotKeyProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)

-{

-	if(msg == WM_CLOSE)

-	{

-		DestroyWindow(hWnd);

-		return true;

-	}

-	else if(msg == WM_HOTKEY)

-	{

-		sdCloseAlerts();

-	}

-

-	return FALSE;

-}

-

diff --git a/plugins/hextray/callbacks.h b/plugins/hextray/callbacks.h
deleted file mode 100644
index fc7cf47b..00000000
--- a/plugins/hextray/callbacks.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* X-Tray

- * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>

- *

- * X-Tray 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.

- * 

- * X-Tray 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 X-Tray; if not, write to the Free Software

- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA

- */

-

-#ifndef _H_CALLBACKS_H

-#define _H_CALLBACKS_H

-

-int					event_cb		(char *word[], void *userdata);

-int					command_cb		(char *word[], char *word_eol[], void *userdata);

-

-LRESULT CALLBACK	WindowProc		(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);

-BOOL	CALLBACK	EnumWindowsProc	(HWND hWnd, LPARAM lParam);

-LRESULT CALLBACK	sdTrayProc		(HWND hwnd, int msg);

-

-LRESULT CALLBACK	AlertProc		(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);

-LRESULT CALLBACK	HotKeyProc		(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);

-LRESULT CALLBACK	EventsProc		(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);

-LRESULT CALLBACK	AboutProc		(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);

-LRESULT CALLBACK	AlertsProc		(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);

-LRESULT CALLBACK	SettingsProc	(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);

-int		CALLBACK	PrefProc		(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);

-

-#endif

diff --git a/plugins/hextray/hexchat.cpp b/plugins/hextray/hexchat.cpp
deleted file mode 100644
index 211e5c7f..00000000
--- a/plugins/hextray/hexchat.cpp
+++ /dev/null
@@ -1,320 +0,0 @@
-/* X-Tray

- * Copyright (C) 1998, 2005 Peter Zelezny, Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>

- *

- * X-Tray 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.

- * 

- * X-Tray 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 X-Tray; if not, write to the Free Software

- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA

- */

-

-#include <windows.h>

-#include <vector>

-#include <algorithm>

-#include <stdio.h>

-#include <tchar.h>

-

-#include "hexchat-plugin.h"

-#include "hextray.h"

-#include "resource.h"

-#include "hexchat.h"

-#include "utility.h"

-

-// from util.c of HexChat source code ( slightly modified to fit HexTray Syntax )

-char *hexchat_strip_color (char *text)

-{

-	int nc	= 0;

-	int i	= 0;

-	int col	= 0;

-	int len	= strlen(text);

-	char *new_str = (char *)malloc(len + 2);

-

-	while (len > 0)

-	{

-		if ((col && isdigit(*text) && (nc < 2)) || (col && isdigit(*(text+1)) && (nc < 3) && (*text == ',')))

-		{

-			nc++;

-

-			if(*text == ',')

-			{

-				nc = 0;

-			}

-		}

-		else

-		{

-			col = 0;

-

-			switch (*text)

-			{

-			case '\003':			  /*ATTR_COLOR: */

-				{

-					col = 1;

-					nc = 0;

-				}

-				break;

-			case '\007':			  /*ATTR_BEEP: */

-			case '\017':			  /*ATTR_RESET: */

-			case '\026':			  /*ATTR_REVERSE: */

-			case '\002':			  /*ATTR_BOLD: */

-			case '\037':			  /*ATTR_UNDERLINE: */

-				break;

-			default:

-				{

-					new_str[i] = *text;

-					i++;

-				}

-				break;

-			}

-		}

-

-		text++;

-		len--;

-	}

-

-	new_str[i] = 0;

-

-	return new_str;

-}

-

-void check_special_chars (char *cmd)

-{

-	int occur	= 0;

-	int len		= strlen (cmd);

-	int i = 0, j = 0;

-	char *buf;

-

-	if (!len)

-		return;

-

-	buf = (char *)malloc (len + 1);

-

-	if (buf)

-	{

-		while (cmd[j])

-		{

-			switch (cmd[j])

-			{

-			case '%':

-				{

-					occur++;

-

-					switch (cmd[j + 1])

-					{

-					case 'R':

-						buf[i] = '\026';

-						break;

-					case 'U':

-						buf[i] = '\037';

-						break;

-					case 'B':

-						buf[i] = '\002';

-						break;

-					case 'C':

-						buf[i] = '\003';

-						break;

-					case 'O':

-						buf[i] = '\017';

-						break;

-					case '%':

-						buf[i] = '%';

-						break;

-					default:

-						buf[i] = '%';

-						j--;

-						break;

-					}

-

-					j++;

-				}

-				break;

-			default:

-				{

-					buf[i] = cmd[j];

-				}

-				break;

-			}

-

-			j++;

-			i++;

-		}

-

-		buf[i] = 0;

-

-		if (occur)

-			strcpy (cmd, buf);

-

-		free (buf);

-	}

-}

-

-void hexchat_globally_away(TCHAR *tszAway)

-{

-	char szTemp[512];

-	char szAway[512];

-

-	ConvertString(tszAway, szAway, 512);

-	_snprintf(szTemp, 512, "ALLSERV AWAY %s\0", szAway);

-	check_special_chars(szTemp);

-	hexchat_exec(szTemp);

-}

-

-void hexchat_away(TCHAR *tszAway)

-{

-	char szTemp[512];

-	char szAway[512];

-

-	ConvertString(tszAway, szAway, 512);

-	_snprintf(szTemp, 512, szAway);

-	check_special_chars(szTemp);

-	hexchat_commandf(ph, "AWAY %s\0", szTemp);

-}

-

-void hexchat_globally_back()

-{

-	std::vector<int> xs;

-	std::vector<int>::iterator xsi;

-	hexchat_list *xl = hexchat_list_get(ph, "channels");

-

-	if(xl)

-	{

-		while(hexchat_list_next(ph, xl))

-		{

-			xsi = std::find(xs.begin(), xs.end(), hexchat_list_int(ph, xl, "id"));

-

-			if((xsi == xs.end()) &&

-				((strlen(hexchat_list_str(ph, xl, "server")) > 0) || 

-				(strlen(hexchat_list_str(ph, xl, "channel")) > 0)))

-			{

-				xs.push_back(hexchat_list_int(ph, xl, "id"));

-				hexchat_set_context(ph, (hexchat_context *)hexchat_list_str(ph, xl, "context"));

-				hexchat_back();

-			}

-		}

-

-		hexchat_list_free(ph, xl);

-	}

-}

-

-

-

-void hexchat_back()

-{

-	if(hexchat_get_info(ph, "away"))

-	{

-		hexchat_command(ph, "BACK");

-	}

-}

-

-HMENU setServerMenu()

-{

-	HMENU sTemp = CreateMenu();

-	TCHAR wszServer[128];

-	TCHAR wszNick[128];

-	TCHAR wszMenuEntry[256];

-

-	std::vector<int> xs;

-	std::vector<int>::iterator xsi;

-	hexchat_list *xl = hexchat_list_get(ph, "channels");

-

-	AppendMenu(sTemp, MF_STRING, ACT_AWAY, _T("Set Globally Away"));

-	AppendMenu(sTemp, MF_STRING, ACT_BACK, _T("Set Globally Back"));

-	AppendMenu(sTemp, MF_SEPARATOR, 0, NULL);

-

-	if(xl)

-	{

-		while(hexchat_list_next(ph, xl))

-		{

-			xsi = std::find(xs.begin(), xs.end(), hexchat_list_int(ph, xl, "id"));

-

-			if( (xsi == xs.end()) &&

-				((strlen(hexchat_list_str(ph, xl, "server")) > 0) || 

-				(strlen(hexchat_list_str(ph, xl, "channel")) > 0)))

-			{

-				hexchat_set_context(ph, (hexchat_context *)hexchat_list_str(ph, xl, "context"));

-				xs.push_back(hexchat_list_int(ph, xl, "id"));

-

-				char *network	= _strdup(hexchat_list_str(ph, xl, "network"));

-				char *server	= _strdup(hexchat_list_str(ph, xl, "server"));

-				char *nick		= _strdup(hexchat_get_info(ph, "nick"));

-

-				if(network != NULL)

-				{

-					ConvertString(network, wszServer, 128);

-				}

-				else

-				{

-					ConvertString(server, wszServer, 128);

-				}

-

-				if(server != NULL)

-				{

-					ConvertString(nick, wszNick, 128);

-					_sntprintf(wszMenuEntry, 256, _T("%s @ %s\0"), wszNick, wszServer);

-

-					if(!hexchat_get_info(ph, "away"))

-					{

-						AppendMenu(sTemp, MF_STRING, (hexchat_list_int(ph, xl, "id") + 1), wszMenuEntry);

-					}

-					else

-					{

-						AppendMenu(sTemp, (MF_CHECKED | MF_STRING), (hexchat_list_int(ph, xl, "id") + 1), wszMenuEntry);							

-					}

-				}

-

-				free(network);

-				free(server);

-				free(nick);

-			}

-		}

-

-		hexchat_list_free(ph, xl);

-	}

-

-	return sTemp;

-}

-

-struct _hexchat_context *hexchat_find_server(int find_id)

-{

-	hexchat_context *xc;

-	hexchat_list *xl = hexchat_list_get(ph, "channels");

-	int id;

-

-	if(!xl)

-		return NULL;

-

-	while(hexchat_list_next(ph, xl))

-	{

-		id = hexchat_list_int(ph, xl, "id");

-		

-		if(id == -1)

-		{

-			return NULL;

-		}

-		else if(id == find_id)

-		{

-			xc = (hexchat_context *)hexchat_list_str(ph, xl, "context");

-			

-			hexchat_list_free(ph, xl);

-

-			return xc;

-		}

-	}

-

-	hexchat_list_free(ph, xl);

-

-	return NULL;

-}

-

-void hexchat_exec(char *command)

-{

-	hexchat_set_context(ph, hexchat_find_context(ph, NULL, NULL));

-	hexchat_command(ph, command);

-}

diff --git a/plugins/hextray/hexchat.h b/plugins/hextray/hexchat.h
deleted file mode 100644
index bae633b2..00000000
--- a/plugins/hextray/hexchat.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* X-Tray

- * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>

- *

- * X-Tray 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.

- * 

- * X-Tray 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 X-Tray; if not, write to the Free Software

- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA

- */

-

-#ifndef _H_XCHAT_H

-#define _H_XCHAT_H

-

-void					hexchat_exec			(char *);

-char					*hexchat_strip_color	(char *);

-void					hexchat_parse			(char *);

-struct _hexchat_context	*hexchat_find_server	(int);

-void					hexchat_globally_away	(TCHAR *);

-void					hexchat_away			(TCHAR *);

-void					hexchat_globally_back	();

-void					hexchat_back			();

-HMENU					setServerMenu		();

-

-#endif

diff --git a/plugins/hextray/hextray.cpp b/plugins/hextray/hextray.cpp
deleted file mode 100644
index bf09f736..00000000
--- a/plugins/hextray/hextray.cpp
+++ /dev/null
@@ -1,246 +0,0 @@
-/* X-Tray

- * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>

- *

- * X-Tray 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.

- * 

- * X-Tray 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 X-Tray; if not, write to the Free Software

- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA

- */

-

-#define _WIN32_IE 0x0601

-

-#include <windows.h>

-#include <list>

-#include <string>

-#include <shobjidl.h>

-

-#include "hexchat-plugin.h"

-#include "resource.h"

-#include "callbacks.h"

-#include "utility.h"

-#include "hextray.h"

-#include "sdTray.h"

-#include "sdAlerts.h"

-

-/*****************************************************/

-/**** Don't want to pollute the namespace do we? *****/

-/*****************************************************/

-std::list<hexchat_hook *> g_vHooks;

-

-/*****************************************************/

-/************ Global Identifiers *********************/

-/*****************************************************/

-WNDPROC g_hOldProc;

-hexchat_plugin *ph;

-

-/*****************************************************/

-/***************** Resources *************************/

-/*****************************************************/

-HWND	g_hXchatWnd;

-HWND	g_hHotkeyWnd;

-HWND	g_hPrefDlg;

-HMENU	g_hTrayMenu;

-HICON	g_hIcons[24];

-HANDLE	g_hInstance;

-/*****************************************************/

-/***************** Preferences ***********************/

-/*****************************************************/

-unsigned int g_dwPrefs;

-TCHAR	g_szAway[512];

-int		g_iTime;

-

-

-BOOL WINAPI DllMain(HANDLE hModule, DWORD fdwReason, LPVOID lpVoid)

-{

-	if((fdwReason == DLL_PROCESS_ATTACH) || (fdwReason == DLL_THREAD_ATTACH))

-	{

-		g_hInstance = hModule;

-	}

-

-	return TRUE;

-}

-

-int hexchat_plugin_init(hexchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg)

-{

-	ph = plugin_handle;

-

-	*plugin_name	= "HexTray";

-	*plugin_desc	= "Minimize HexChat to the Windows system tray";

-	*plugin_version = "1.3.0";

-

-	char buffer[256];

-

-	/***************************************************************************************************************************/

-	/************************* Initialize our preferences if they don't exist yet **********************************************/

-	/***************************************************************************************************************************/

-

-	if (hexchat_pluginpref_get_int (ph, "settings") == -1)

-	{

-		hexchat_pluginpref_set_int (ph, "settings", HT_DEF_SET);

-	}

-	if (hexchat_pluginpref_get_int (ph, "aot") == -1)

-	{

-		hexchat_pluginpref_set_int (ph, "aot", HT_DEF_AOT);

-	}

-	if (hexchat_pluginpref_get_int (ph, "key") == -1)

-	{

-		hexchat_pluginpref_set_int (ph, "key", HT_DEF_KEY);

-	}

-	if (hexchat_pluginpref_get_int (ph, "mod") == -1)

-	{

-		hexchat_pluginpref_set_int (ph, "mod", HT_DEF_MOD);

-	}

-	if (hexchat_pluginpref_get_str (ph, "away", buffer) == 0)

-	{

-		hexchat_pluginpref_set_str (ph, "away", "");

-	}

-

-	/***************************************************************************************************************************/

-	/************************* Load our preferences ****************************************************************************/

-	/***************************************************************************************************************************/

-	LoadPrefs();

-

-	/***************************************************************************************************************************/

-	/************************* Finds the HexChat window and saves it for later use *********************************************/

-	/***************************************************************************************************************************/

-	g_hXchatWnd = (HWND)hexchat_get_info(ph, "win_ptr");

-

-	if(g_hXchatWnd == NULL)

-	{

-		EnumThreadWindows(GetCurrentThreadId(), EnumWindowsProc, 0);

-	}

-

-	g_hOldProc	= (WNDPROC)GetWindowLongPtr(g_hXchatWnd, GWLP_WNDPROC);

-	SetWindowLongPtr(g_hXchatWnd, GWLP_WNDPROC, (LONG_PTR)WindowProc);

-

-	/***************************************************************************************************************************/	

-	/************************* Grab the HexChat Icon, Load our menu, create the window to receive the hotkey messages  *********/

-	/************************* and register the windows message so we know if explorer crashes                       ***********/

-	/***************************************************************************************************************************/

-	g_hTrayMenu		= GetSubMenu(LoadMenu((HINSTANCE)g_hInstance, MAKEINTRESOURCE(IDR_TRAY_MENU)), 0);

-	g_hHotkeyWnd	= CreateDialog((HINSTANCE)g_hInstance, MAKEINTRESOURCE(IDD_ALERT), NULL,		(DLGPROC)HotKeyProc);

-	g_hPrefDlg		= CreateDialog((HINSTANCE)g_hInstance, MAKEINTRESOURCE(IDD_PREF),  g_hXchatWnd, (DLGPROC)PrefProc);

-

-	g_hIcons[0]	= (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_XCHAT),			IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);

-	g_hIcons[2]	= (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_HIGHLIGHT),		IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);

-	g_hIcons[5]	= (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_BANNED),			IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);

-	g_hIcons[6]	= (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_KICKED),			IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);

-	g_hIcons[8]	= (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_PMSG),			IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);

-	g_hIcons[10]= (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_SNOTICE),		IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);

-	g_hIcons[11]= (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_DISCONNECTED),	IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);

-	g_hIcons[22]	= (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_CHANMSG),		IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);

-

-	/***************************************************************************************************************************/

-	/************************* Add our icon to the tray ************************************************************************/

-	/***************************************************************************************************************************/

-	char szVersion[64];

-	_snprintf(szVersion, 64, "HexChat %s", hexchat_get_info(ph, "version"));

-	AddIcon(g_hXchatWnd, 1, g_hIcons[0], szVersion, (NIF_ICON | NIF_MESSAGE | NIF_TIP), WM_TRAYMSG);

-

-	/***************************************************************************************************************************/

-	/***************************************************************************************************************************/

-	/***************************************************************************************************************************/

-	if(g_dwPrefs & (1<<PREF_DNSIT))

-	{

-		DWORD dwStyle;

-		dwStyle = GetWindowLong(g_hXchatWnd, GWL_STYLE);

-		dwStyle |= (1<<WS_CHILD);

-		SetWindowLongPtr(g_hXchatWnd, GWL_STYLE, (LONG_PTR)dwStyle);

-		SetWindowLongPtr(g_hXchatWnd, GWL_HWNDPARENT, (LONG_PTR)g_hHotkeyWnd);

-	}

-

-	/***************************************************************************************************************************/

-	/************************* Set our hooks and save them for later so we can unhook them *************************************/

-	/***************************************************************************************************************************/

-	g_vHooks.push_back(hexchat_hook_print(ph, "Channel Msg Hilight",			HEXCHAT_PRI_NORM, event_cb,	(void *)CHAN_HILIGHT));

-	g_vHooks.push_back(hexchat_hook_print(ph, "Channel Message",				HEXCHAT_PRI_NORM, event_cb,	(void *)CHAN_MESSAGE));

-	g_vHooks.push_back(hexchat_hook_print(ph, "Topic Change",					HEXCHAT_PRI_NORM, event_cb,	(void *)CHAN_TOPIC_CHANGE));

-	g_vHooks.push_back(hexchat_hook_print(ph, "Channel Action Hilight",		HEXCHAT_PRI_NORM, event_cb,	(void *)CHAN_HILIGHT));

-	g_vHooks.push_back(hexchat_hook_print(ph, "Channel INVITE",				HEXCHAT_PRI_NORM, event_cb,	(void *)CHAN_INVITE));

-	g_vHooks.push_back(hexchat_hook_print(ph, "You Kicked",					HEXCHAT_PRI_NORM, event_cb,	(void *)CHAN_KICKED));

-	g_vHooks.push_back(hexchat_hook_print(ph, "Banned",						HEXCHAT_PRI_NORM, event_cb,	(void *)CHAN_BANNED));

-	g_vHooks.push_back(hexchat_hook_print(ph, "CTCP Generic",					HEXCHAT_PRI_NORM, event_cb,	(void *)CTCP_GENERIC));

-	g_vHooks.push_back(hexchat_hook_print(ph, "Private Message",				HEXCHAT_PRI_NORM, event_cb,	(void *)PMSG_RECEIVE));

-	g_vHooks.push_back(hexchat_hook_print(ph, "Private Message to Dialog",	HEXCHAT_PRI_NORM, event_cb,	(void *)PMSG_RECEIVE));

-	g_vHooks.push_back(hexchat_hook_print(ph, "Disconnected",					HEXCHAT_PRI_NORM, event_cb,	(void *)SERV_DISCONNECT));

-	g_vHooks.push_back(hexchat_hook_print(ph, "Killed",						HEXCHAT_PRI_NORM, event_cb,	(void *)SERV_KILLED));

-	g_vHooks.push_back(hexchat_hook_print(ph, "Notice",						HEXCHAT_PRI_NORM, event_cb,	(void *)SERV_NOTICE));

-	g_vHooks.push_back(hexchat_hook_command(ph, "tray_alert",					HEXCHAT_PRI_NORM, command_cb,	"Create an Alert", NULL));

-

-	return 1;

-}

-

-int hexchat_plugin_deinit(hexchat_plugin *plugin_handle)

-{

-	/******************************************/

-	/****** Remove the Icon from the tray *****/

-	/******************************************/

-	StopBlink(g_hXchatWnd, 1, g_hIcons[0]);

-	RemoveIcon(g_hXchatWnd, 1);

-	

-	/*******************************************/

-	/*******************************************/

-	/*******************************************/

-	if(g_dwPrefs & (1<<PREF_DNSIT))

-	{

-		DWORD dwStyle;

-		dwStyle = GetWindowLong(g_hXchatWnd, GWL_STYLE);

-		dwStyle &= ~(1<<WS_CHILD);

-		SetWindowLongPtr(g_hXchatWnd, GWL_STYLE, (LONG_PTR)dwStyle);

-		SetWindowLongPtr(g_hXchatWnd, GWL_HWNDPARENT, NULL);

-	}

-

-	/******************************************/

-	/****** Unload our resources **************/

-	/******************************************/

-	DestroyMenu(g_hTrayMenu);

-

-	for(int i = 0; i <= 11; i++)

-	{

-		DestroyIcon(g_hIcons[i]);

-	}

-

-	/******************************************/

-	/****** Remove our window hook ************/

-	/******************************************/

-	SetWindowLongPtr(g_hXchatWnd, GWLP_WNDPROC, (LONG_PTR)g_hOldProc);

-

-	/******************************************/

-	/****** Remove our hotkey, and destroy ****/

-	/****** the window that receives its   ****/

-	/****** messages                       ****/

-	/******************************************/

-	UnregisterHotKey(g_hHotkeyWnd, 1);

-	DestroyWindow(g_hHotkeyWnd);

-	DestroyWindow(g_hPrefDlg);

-

-	/******************************************/

-	/************* Clean up Isle 7 ************/

-	/******************************************/

-	if(sdAlertNum())

-	{

-		sdCloseAlerts();

-	}

-	/******************************************/

-	/****** remove our hexchat_hook_*s **********/

-	/******************************************/

-	while(!g_vHooks.empty())

-	{

-		if(g_vHooks.back() != NULL)

-		{

-			hexchat_unhook(ph, g_vHooks.back());

-		}

-		g_vHooks.pop_back();

-	}

-

-	return 1;

-}

diff --git a/plugins/hextray/hextray.def b/plugins/hextray/hextray.def
deleted file mode 100644
index e560f50f..00000000
--- a/plugins/hextray/hextray.def
+++ /dev/null
@@ -1,3 +0,0 @@
-EXPORTS 

-hexchat_plugin_init 

-hexchat_plugin_deinit 

diff --git a/plugins/hextray/hextray.h b/plugins/hextray/hextray.h
deleted file mode 100644
index 2fc4b507..00000000
--- a/plugins/hextray/hextray.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* X-Tray

- * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>

- *

- * X-Tray 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.

- * 

- * X-Tray 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 X-Tray; if not, write to the Free Software

- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA

- */

-

-#ifndef _XTRAY_H

-#define _XTRAY_H

-

-/******************** Default settings*****************/

-#define HT_DEF_SET		13814

-#define HT_DEF_AOT		5

-#define HT_DEF_KEY		84

-#define HT_DEF_MOD		6

-

-/******************** Globals *************************/

-extern HWND				g_hXchatWnd;

-extern HWND				g_hHotkeyWnd;

-extern HWND				g_hPrefDlg;

-extern HMENU			g_hTrayMenu;

-extern HICON			g_hIcons[24];

-extern HANDLE			g_hInstance;

-extern unsigned int		g_dwPrefs;

-extern TCHAR			g_szAway[512];

-extern int				g_iTime;

-extern WNDPROC			g_hOldProc;

-extern struct _hexchat_plugin *ph;

-/******************************************************/

-

-/******************** Messages ************************/

-#define WM_TRAYMSG WM_APP

-/******************************************************/

-

-/********************* Events *************************/

-#define CHAN_HILIGHT			1

-#define CHAN_INVITE				2

-#define CHAN_TOPIC_CHANGE		3

-#define CHAN_BANNED				4

-#define CHAN_KICKED				5

-

-#define CTCP_GENERIC			6

-#define PMSG_RECEIVE			7

-

-#define SERV_KILLED				8

-#define SERV_NOTICE				9

-#define SERV_DISCONNECT			10

-

-/* new events */

-#define CHAN_MESSAGE			21

-

-#define PREF_AOM				11 // away on minimize

-#define PREF_TOT				12 // Tray on Taskbar

-#define PREF_AMAE				13 // alert me about events

-#define PREF_OSBWM				14 // Only Show Balloon When Minimized

-#define PREF_UWIOB				15 // Use Window Instead of Balloon

-#define PREF_KAOI				16 // Keep alerts open indefinitely

-#define PREF_MIOC				17 // Minimize instead of close

-#define PREF_BLINK				18 // blink icon

-#define PREF_CICO				19 // change icon - not implemented

-#define PREF_DNSIT				20 // Do not show in taskbar

-/******************************************************/

-#endif

-

-#ifdef _WIN64

-/* use replacement with the same value, and use SetWindowLongPtr instead

-   of SetWindowLong. more info:

-

-   http://msdn.microsoft.com/en-us/library/ms633591.aspx

-   http://msdn.microsoft.com/en-us/library/ms644898.aspx */

-#define GWL_HWNDPARENT GWLP_HWNDPARENT

-#endif

diff --git a/plugins/hextray/hextray.vcxproj b/plugins/hextray/hextray.vcxproj
deleted file mode 100644
index fc3f1e0c..00000000
--- a/plugins/hextray/hextray.vcxproj
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>

-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

-  <PropertyGroup Label="Configuration">

-    <PlatformToolset>v120</PlatformToolset>

-  </PropertyGroup>

-  <ItemGroup Label="ProjectConfigurations">

-    <ProjectConfiguration Include="Release|Win32">

-      <Configuration>Release</Configuration>

-      <Platform>Win32</Platform>

-    </ProjectConfiguration>

-    <ProjectConfiguration Include="Release|x64">

-      <Configuration>Release</Configuration>

-      <Platform>x64</Platform>

-    </ProjectConfiguration>

-  </ItemGroup>

-  <PropertyGroup Label="Globals">

-    <ProjectGuid>{3024CF36-85E5-4E00-9608-7002E2C7EF14}</ProjectGuid>

-    <Keyword>Win32Proj</Keyword>

-    <RootNamespace>hextray</RootNamespace>

-  </PropertyGroup>

-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">

-    <ConfigurationType>DynamicLibrary</ConfigurationType>

-    <UseDebugLibraries>false</UseDebugLibraries>

-    <WholeProgramOptimization>true</WholeProgramOptimization>

-    <CharacterSet>MultiByte</CharacterSet>

-  </PropertyGroup>

-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

-    <ConfigurationType>DynamicLibrary</ConfigurationType>

-    <UseDebugLibraries>false</UseDebugLibraries>

-    <WholeProgramOptimization>true</WholeProgramOptimization>

-    <CharacterSet>MultiByte</CharacterSet>

-  </PropertyGroup>

-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

-  <ImportGroup Label="ExtensionSettings">

-  </ImportGroup>

-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

-    <Import Project="..\..\win32\hexchat.props" />

-  </ImportGroup>

-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">

-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

-    <Import Project="..\..\win32\hexchat.props" />

-  </ImportGroup>

-  <PropertyGroup Label="UserMacros" />

-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

-    <LinkIncremental>false</LinkIncremental>

-    <OutDir>$(HexChatBin)</OutDir>

-    <IntDir>$(HexChatObj)$(ProjectName)\</IntDir>

-    <TargetName>hchextray</TargetName>

-  </PropertyGroup>

-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

-    <LinkIncremental>false</LinkIncremental>

-    <OutDir>$(HexChatBin)</OutDir>

-    <IntDir>$(HexChatObj)$(ProjectName)\</IntDir>

-    <TargetName>hchextray</TargetName>

-  </PropertyGroup>

-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

-    <ClCompile>

-      <PrecompiledHeader>

-      </PrecompiledHeader>

-      <FunctionLevelLinking>true</FunctionLevelLinking>

-      <IntrinsicFunctions>true</IntrinsicFunctions>

-      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;XTRAY_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

-      <MultiProcessorCompilation>true</MultiProcessorCompilation>

-      <AdditionalIncludeDirectories>..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

-    </ClCompile>

-    <Link>

-      <SubSystem>Windows</SubSystem>

-      <GenerateDebugInformation>true</GenerateDebugInformation>

-      <EnableCOMDATFolding>true</EnableCOMDATFolding>

-      <OptimizeReferences>true</OptimizeReferences>

-      <ModuleDefinitionFile>hextray.def</ModuleDefinitionFile>

-    </Link>

-  </ItemDefinitionGroup>

-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

-    <ClCompile>

-      <PrecompiledHeader>

-      </PrecompiledHeader>

-      <FunctionLevelLinking>true</FunctionLevelLinking>

-      <IntrinsicFunctions>true</IntrinsicFunctions>

-      <PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;XTRAY_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

-      <MultiProcessorCompilation>true</MultiProcessorCompilation>

-      <AdditionalIncludeDirectories>..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

-    </ClCompile>

-    <Link>

-      <SubSystem>Windows</SubSystem>

-      <GenerateDebugInformation>true</GenerateDebugInformation>

-      <EnableCOMDATFolding>true</EnableCOMDATFolding>

-      <OptimizeReferences>true</OptimizeReferences>

-      <ModuleDefinitionFile>hextray.def</ModuleDefinitionFile>

-    </Link>

-  </ItemDefinitionGroup>

-  <ItemGroup>

-    <None Include="bitmaps\sd.bmp" />

-    <None Include="icons\ban.ico" />

-    <None Include="icons\disconnect.ico" />

-    <None Include="icons\highlight.ico" />

-    <None Include="icons\kick.ico" />

-    <None Include="icons\message.ico" />

-    <None Include="icons\sd.ico" />

-    <None Include="icons\notice.ico" />

-    <None Include="icons\hexchat.ico" />

-    <None Include="hextray.def" />

-  </ItemGroup>

-  <ItemGroup>

-    <ResourceCompile Include="resource.rc" />

-  </ItemGroup>

-  <ItemGroup>

-    <ClCompile Include="callbacks.cpp" />

-    <ClCompile Include="sdAlerts.cpp" />

-    <ClCompile Include="sdTray.cpp" />

-    <ClCompile Include="utility.cpp" />

-    <ClCompile Include="hexchat.cpp" />

-    <ClCompile Include="hextray.cpp" />

-  </ItemGroup>

-  <ItemGroup>

-    <ClInclude Include="callbacks.h" />

-    <ClInclude Include="resource.h" />

-    <ClInclude Include="sdAlerts.h" />

-    <ClInclude Include="sdTray.h" />

-    <ClInclude Include="utility.h" />

-    <ClInclude Include="hexchat.h" />

-    <ClInclude Include="hextray.h" />

-  </ItemGroup>

-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

-  <ImportGroup Label="ExtensionTargets">

-  </ImportGroup>

-</Project>
\ No newline at end of file
diff --git a/plugins/hextray/hextray.vcxproj.filters b/plugins/hextray/hextray.vcxproj.filters
deleted file mode 100644
index 1f9a4057..00000000
--- a/plugins/hextray/hextray.vcxproj.filters
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>

-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

-  <ItemGroup>

-    <Filter Include="Source Files">

-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>

-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>

-    </Filter>

-    <Filter Include="Header Files">

-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>

-      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>

-    </Filter>

-    <Filter Include="Resource Files">

-      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>

-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>

-    </Filter>

-    <Filter Include="Resource Files\bitmaps">

-      <UniqueIdentifier>{448b49a5-e68b-451e-bfbc-0855da024b2e}</UniqueIdentifier>

-    </Filter>

-    <Filter Include="Resource Files\icons">

-      <UniqueIdentifier>{8345128a-0635-43d6-9115-a85ad9c77ee2}</UniqueIdentifier>

-    </Filter>

-  </ItemGroup>

-  <ItemGroup>

-    <None Include="hextray.def">

-      <Filter>Resource Files</Filter>

-    </None>

-    <None Include="bitmaps\sd.bmp">

-      <Filter>Resource Files\bitmaps</Filter>

-    </None>

-    <None Include="icons\ban.ico">

-      <Filter>Resource Files\icons</Filter>

-    </None>

-    <None Include="icons\disconnect.ico">

-      <Filter>Resource Files\icons</Filter>

-    </None>

-    <None Include="icons\highlight.ico">

-      <Filter>Resource Files\icons</Filter>

-    </None>

-    <None Include="icons\kick.ico">

-      <Filter>Resource Files\icons</Filter>

-    </None>

-    <None Include="icons\message.ico">

-      <Filter>Resource Files\icons</Filter>

-    </None>

-    <None Include="icons\sd.ico">

-      <Filter>Resource Files\icons</Filter>

-    </None>

-    <None Include="icons\notice.ico">

-      <Filter>Resource Files\icons</Filter>

-    </None>

-    <None Include="icons\hexchat.ico">

-      <Filter>Resource Files\icons</Filter>

-    </None>

-  </ItemGroup>

-  <ItemGroup>

-    <ResourceCompile Include="resource.rc">

-      <Filter>Resource Files</Filter>

-    </ResourceCompile>

-  </ItemGroup>

-  <ItemGroup>

-    <ClCompile Include="callbacks.cpp">

-      <Filter>Source Files</Filter>

-    </ClCompile>

-    <ClCompile Include="sdAlerts.cpp">

-      <Filter>Source Files</Filter>

-    </ClCompile>

-    <ClCompile Include="sdTray.cpp">

-      <Filter>Source Files</Filter>

-    </ClCompile>

-    <ClCompile Include="utility.cpp">

-      <Filter>Source Files</Filter>

-    </ClCompile>

-    <ClCompile Include="hexchat.cpp">

-      <Filter>Source Files</Filter>

-    </ClCompile>

-    <ClCompile Include="hextray.cpp">

-      <Filter>Source Files</Filter>

-    </ClCompile>

-  </ItemGroup>

-  <ItemGroup>

-    <ClInclude Include="callbacks.h">

-      <Filter>Header Files</Filter>

-    </ClInclude>

-    <ClInclude Include="resource.h">

-      <Filter>Header Files</Filter>

-    </ClInclude>

-    <ClInclude Include="sdAlerts.h">

-      <Filter>Header Files</Filter>

-    </ClInclude>

-    <ClInclude Include="sdTray.h">

-      <Filter>Header Files</Filter>

-    </ClInclude>

-    <ClInclude Include="utility.h">

-      <Filter>Header Files</Filter>

-    </ClInclude>

-    <ClInclude Include="hexchat.h">

-      <Filter>Header Files</Filter>

-    </ClInclude>

-    <ClInclude Include="hextray.h">

-      <Filter>Header Files</Filter>

-    </ClInclude>

-  </ItemGroup>

-</Project>
\ No newline at end of file
diff --git a/plugins/hextray/icons/ban.ico b/plugins/hextray/icons/ban.ico
deleted file mode 100644
index 72630e54..00000000
--- a/plugins/hextray/icons/ban.ico
+++ /dev/null
Binary files differdiff --git a/plugins/hextray/icons/disconnect.ico b/plugins/hextray/icons/disconnect.ico
deleted file mode 100644
index bb47ec8b..00000000
--- a/plugins/hextray/icons/disconnect.ico
+++ /dev/null
Binary files differdiff --git a/plugins/hextray/icons/hexchat.ico b/plugins/hextray/icons/hexchat.ico
deleted file mode 100644
index 694937df..00000000
--- a/plugins/hextray/icons/hexchat.ico
+++ /dev/null
Binary files differdiff --git a/plugins/hextray/icons/highlight.ico b/plugins/hextray/icons/highlight.ico
deleted file mode 100644
index 8e37c87d..00000000
--- a/plugins/hextray/icons/highlight.ico
+++ /dev/null
Binary files differdiff --git a/plugins/hextray/icons/kick.ico b/plugins/hextray/icons/kick.ico
deleted file mode 100644
index a527430b..00000000
--- a/plugins/hextray/icons/kick.ico
+++ /dev/null
Binary files differdiff --git a/plugins/hextray/icons/message.ico b/plugins/hextray/icons/message.ico
deleted file mode 100644
index a0df6567..00000000
--- a/plugins/hextray/icons/message.ico
+++ /dev/null
Binary files differdiff --git a/plugins/hextray/icons/notice.ico b/plugins/hextray/icons/notice.ico
deleted file mode 100644
index 156fdf20..00000000
--- a/plugins/hextray/icons/notice.ico
+++ /dev/null
Binary files differdiff --git a/plugins/hextray/icons/sd.ico b/plugins/hextray/icons/sd.ico
deleted file mode 100644
index ca179621..00000000
--- a/plugins/hextray/icons/sd.ico
+++ /dev/null
Binary files differdiff --git a/plugins/hextray/resource.h b/plugins/hextray/resource.h
deleted file mode 100644
index b8008c2c..00000000
--- a/plugins/hextray/resource.h
+++ /dev/null
@@ -1,47 +0,0 @@
-//{{NO_DEPENDENCIES}}

-// Microsoft Visual C++ generated include file.

-// Used by resource.rc

-//

-#define IDD_ALERTS                      104

-#define IDD_EVENTS                      105

-#define IDD_SETTINGS                    106

-#define IDD_ALERT                       107

-#define IDD_PREF                        108

-#define IDD_ABOUT                       109

-#define IDR_TRAY_MENU                   110

-#define ICO_XCHAT                       111

-#define ICO_BANNED                      112

-#define ICO_CHANMSG                     113

-#define ICO_DISCONNECTED                114

-#define ICO_HIGHLIGHT                   115

-#define ICO_KICKED                      116

-#define ICO_PMSG                        117

-#define ICO_SNOTICE                     118

-#define IDB_SD_LOGO                     119

-#define IDC_PREF_OK                     1014

-#define IDC_PREF_CANCEL                 1015

-#define IDC_PREF_APPLY                  1016

-#define IDC_AWAY_MSG                    1017

-#define IDC_ALERT_TIME                  1018

-#define IDC_TAB_CONTROL                 1019

-#define IDC_ALERT_HOTKEY                1020

-#define IDC_ALERT_MSG                   1021

-#define IDC_ALERT_HOTKEY_TEXT           1022

-#define IDC_ALERT_TIME_TEXT             1023

-#define ACT_EXIT                        40001

-#define ACT_SETTINGS                    40002

-#define ACT_AWAY                        40003

-#define ACT_BACK                        40004

-#define ACT_RESTORE                     40005

-#define IDC_STATIC                      -1

-

-// Next default values for new objects

-// 

-#ifdef APSTUDIO_INVOKED

-#ifndef APSTUDIO_READONLY_SYMBOLS

-#define _APS_NEXT_RESOURCE_VALUE        120

-#define _APS_NEXT_COMMAND_VALUE         40006

-#define _APS_NEXT_CONTROL_VALUE         1024

-#define _APS_NEXT_SYMED_VALUE           101

-#endif

-#endif

diff --git a/plugins/hextray/resource.rc b/plugins/hextray/resource.rc
deleted file mode 100644
index 87c66364..00000000
--- a/plugins/hextray/resource.rc
+++ /dev/null
@@ -1,309 +0,0 @@
-// Microsoft Visual C++ generated resource script.

-//

-#include "resource.h"

-

-#define APSTUDIO_READONLY_SYMBOLS

-/////////////////////////////////////////////////////////////////////////////

-//

-// Generated from the TEXTINCLUDE 2 resource.

-//

-#define APSTUDIO_HIDDEN_SYMBOLS

-#include "windows.h"

-#undef APSTUDIO_HIDDEN_SYMBOLS

-

-/////////////////////////////////////////////////////////////////////////////

-#undef APSTUDIO_READONLY_SYMBOLS

-

-/////////////////////////////////////////////////////////////////////////////

-// English (U.S.) resources

-

-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)

-#ifdef _WIN32

-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

-#pragma code_page(1252)

-#endif //_WIN32

-

-/////////////////////////////////////////////////////////////////////////////

-//

-// Dialog

-//

-

-IDD_EVENTS DIALOGEX 8, 20, 216, 143

-STYLE DS_SETFONT | DS_SETFOREGROUND | WS_CHILD

-FONT 8, "Tahoma", 0, 0, 0x0

-BEGIN

-    GROUPBOX        "HexChat Events",IDC_STATIC,5,5,205,77

-    CONTROL         "Banned",4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,18,49,10

-    CONTROL         "Kicked",5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,32,49,10

-    CONTROL         "Killed",8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,46,49,10

-    CONTROL         "Disconnect",10,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,60,49,10

-    CONTROL         "Private Message",7,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,18,69,10

-    CONTROL         "Channel Message",21,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,32,69,10

-    CONTROL         "Highlight",1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,46,69,10

-    CONTROL         "CTCP",6,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,60,69,10

-    CONTROL         "Topic Change",3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,145,18,55,10

-    CONTROL         "Server Notice",9,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,145,32,55,10

-    CONTROL         "Invite",2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,145,46,55,10

-END

-

-IDD_SETTINGS DIALOGEX 8, 20, 216, 143

-STYLE DS_SETFONT | WS_CHILD

-FONT 8, "Tahoma", 0, 0, 0x0

-BEGIN

-    GROUPBOX        "Options",IDC_STATIC,5,5,205,135

-    CONTROL         "Auto away on minimize",11,"Button",BS_AUTOCHECKBOX | 

-                    WS_TABSTOP,16,60,100,10

-    CONTROL         "Minimize HexChat to the system tray",12,"Button",

-                    BS_AUTOCHECKBOX | WS_TABSTOP,16,18,133,10

-    CONTROL         "Minimize to the tray instead of closing",17,"Button",

-                    BS_AUTOCHECKBOX | WS_TABSTOP,16,32,174,9

-    EDITTEXT        IDC_AWAY_MSG,33,86,169,50,ES_AUTOHSCROLL

-    LTEXT           "Away Msg:",IDC_STATIC,27,72,35,8

-    CONTROL         "Remove HexChat from the taskbar (only show in tray)",

-                    20,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,46,191,9

-END

-

-IDD_ALERT DIALOGEX 0, 0, 151, 28

-STYLE DS_LOCALEDIT | DS_SETFONT | DS_NOIDLEMSG | DS_CENTER | WS_CAPTION | 

-    WS_SYSMENU

-EXSTYLE WS_EX_NOPARENTNOTIFY | WS_EX_ACCEPTFILES | WS_EX_TOOLWINDOW

-CAPTION "Event Name"

-FONT 8, "Tahoma", 0, 0, 0x1

-BEGIN

-    LTEXT           "Event Text",IDC_ALERT_MSG,3,0,147,27

-END

-

-IDD_PREF DIALOGEX 0, 0, 233, 190

-STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | 

-    WS_SYSMENU

-CAPTION "HexTray Preferences"

-FONT 8, "Tahoma", 0, 0, 0x0

-BEGIN

-    DEFPUSHBUTTON   "Ok",IDC_PREF_OK,57,173,50,14

-    PUSHBUTTON      "Cancel",IDC_PREF_CANCEL,115,173,50,14

-    PUSHBUTTON      "Apply",IDC_PREF_APPLY,175,173,50,14

-    CONTROL         "Tab1",IDC_TAB_CONTROL,"SysTabControl32",0x0,7,7,218,159

-END

-

-IDD_ABOUT DIALOGEX 8, 20, 216, 143

-STYLE DS_SETFONT | WS_CHILD

-FONT 8, "Tahoma", 0, 0, 0x0

-BEGIN

-    CONTROL         119,IDC_STATIC,"Static",SS_BITMAP | SS_SUNKEN | 

-                    WS_BORDER,3,6,88,81

-    CTEXT           "HexTray\r\nBy: Michael Hotaling\r\n www.SinisterDevelopments.com",

-                    IDC_STATIC,95,33,118,30

-    LTEXT           "Folken\r\nBasket\r\nDonatzsky\r\nDaemon404",IDC_STATIC,

-                    15,103,64,33

-    GROUPBOX        "Special Thanks To:",IDC_STATIC,3,91,89,50

-    GROUPBOX        "Version Information:",IDC_STATIC,101,92,109,49

-    LTEXT           "1.3.0",IDC_STATIC,170,105,33,8,0,WS_EX_RIGHT

-    LTEXT           "Compiled In: ",IDC_STATIC,110,117,54,8

-    LTEXT           "2012",IDC_STATIC,170,117,33,8,0,WS_EX_RIGHT

-    LTEXT           "Version Number:",IDC_STATIC,110,105,54,8

-END

-

-IDD_ALERTS DIALOGEX 8, 20, 216, 143

-STYLE DS_SETFONT | WS_CHILD

-FONT 8, "Tahoma", 0, 0, 0x0

-BEGIN

-    GROUPBOX        "Alerts",IDC_STATIC,5,5,205,117

-    CONTROL         "Only show alerts while minimized",14,"Button",

-                    BS_AUTOCHECKBOX | WS_TABSTOP,27,46,117,10

-    CONTROL         "Use tray alerts to notify me about events",13,"Button",

-                    BS_AUTOCHECKBOX | WS_TABSTOP,16,32,152,10

-    CONTROL         "Use window instead of balloons",15,"Button",

-                    BS_AUTOCHECKBOX | WS_TABSTOP,27,60,141,11

-    EDITTEXT        IDC_ALERT_TIME,137,101,61,12,ES_AUTOHSCROLL | ES_NUMBER,

-                    WS_EX_RIGHT

-    LTEXT           "Show alert for x seconds:",IDC_ALERT_TIME_TEXT,40,103,

-                    83,9

-    CONTROL         "Alert Hotkey",IDC_ALERT_HOTKEY,"msctls_hotkey32",

-                    WS_BORDER | WS_TABSTOP,137,74,61,13

-    LTEXT           "Close all alerts hotkey:",IDC_ALERT_HOTKEY_TEXT,39,75,

-                    76,10

-    CONTROL         "Leave alerts open indefinitely",16,"Button",

-                    BS_AUTOCHECKBOX | WS_TABSTOP,27,88,115,11

-    CONTROL         "Blink Icon to alert me about events",18,"Button",

-                    BS_AUTOCHECKBOX | WS_TABSTOP,16,18,127,10

-END

-

-

-/////////////////////////////////////////////////////////////////////////////

-//

-// DESIGNINFO

-//

-

-#ifdef APSTUDIO_INVOKED

-GUIDELINES DESIGNINFO 

-BEGIN

-    IDD_EVENTS, DIALOG

-    BEGIN

-        BOTTOMMARGIN, 56

-    END

-

-    IDD_SETTINGS, DIALOG

-    BEGIN

-        BOTTOMMARGIN, 66

-    END

-

-    IDD_ALERT, DIALOG

-    BEGIN

-        RIGHTMARGIN, 150

-        BOTTOMMARGIN, 26

-    END

-

-    IDD_PREF, DIALOG

-    BEGIN

-        LEFTMARGIN, 7

-        RIGHTMARGIN, 232

-        TOPMARGIN, 7

-        BOTTOMMARGIN, 176

-    END

-

-    IDD_ABOUT, DIALOG

-    BEGIN

-        LEFTMARGIN, 7

-        RIGHTMARGIN, 209

-        TOPMARGIN, 7

-        BOTTOMMARGIN, 136

-    END

-

-    IDD_ALERTS, DIALOG

-    BEGIN

-        LEFTMARGIN, 7

-        RIGHTMARGIN, 208

-        TOPMARGIN, 7

-        BOTTOMMARGIN, 136

-    END

-END

-#endif    // APSTUDIO_INVOKED

-

-

-#ifdef APSTUDIO_INVOKED

-/////////////////////////////////////////////////////////////////////////////

-//

-// TEXTINCLUDE

-//

-

-1 TEXTINCLUDE 

-BEGIN

-    "resource.h\0"

-END

-

-2 TEXTINCLUDE 

-BEGIN

-    "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"

-    "#include ""windows.h""\r\n"

-    "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"

-    "\0"

-END

-

-3 TEXTINCLUDE 

-BEGIN

-    "hextray.h\0"

-END

-

-4 TEXTINCLUDE 

-BEGIN

-    "\r\n"

-    "\0"

-END

-

-#endif    // APSTUDIO_INVOKED

-

-

-/////////////////////////////////////////////////////////////////////////////

-//

-// Version

-//

-

-VS_VERSION_INFO VERSIONINFO

- FILEVERSION 1,3,0,0

- PRODUCTVERSION 1,3,0,0

- FILEFLAGSMASK 0x3fL

-#ifdef _DEBUG

- FILEFLAGS 0x1L

-#else

- FILEFLAGS 0x0L

-#endif

- FILEOS 0x40004L

- FILETYPE 0x2L

- FILESUBTYPE 0x0L

-BEGIN

-    BLOCK "StringFileInfo"

-    BEGIN

-        BLOCK "040904b0"

-        BEGIN

-            VALUE "CompanyName", "SinisterDevelopments"

-            VALUE "FileDescription", "HexTray"

-            VALUE "FileVersion", "1,3,0,0"

-            VALUE "InternalName", "HexTray"

-            VALUE "LegalCopyright", "Copyright © 2005"

-            VALUE "OriginalFilename", "hchextray.dll"

-            VALUE "ProductName", "HexTray - HexChat Win32 System Tray Plugin"

-            VALUE "ProductVersion", "1,3,0,0"

-        END

-    END

-    BLOCK "VarFileInfo"

-    BEGIN

-        VALUE "Translation", 0x409, 1200

-    END

-END

-

-

-/////////////////////////////////////////////////////////////////////////////

-//

-// Menu

-//

-

-IDR_TRAY_MENU MENU 

-BEGIN

-    POPUP "TRAY"

-    BEGIN

-        MENUITEM "Restore",                     ACT_RESTORE

-        MENUITEM SEPARATOR

-        MENUITEM "Away",                        65535

-        MENUITEM "Settings",                    ACT_SETTINGS

-        MENUITEM SEPARATOR

-        MENUITEM "Exit",                        ACT_EXIT

-    END

-END

-

-

-/////////////////////////////////////////////////////////////////////////////

-//

-// Icon

-//

-

-// Icon with lowest ID value placed first to ensure application icon

-// remains consistent on all systems.

-ICO_XCHAT               ICON                    "icons\\hexchat.ico"

-ICO_BANNED              ICON                    "icons\\ban.ico"

-ICO_CHANMSG             ICON                    "icons\\message.ico"

-ICO_HIGHLIGHT           ICON                    "icons\\highlight.ico"

-ICO_KICKED              ICON                    "icons\\kick.ico"

-ICO_PMSG                ICON                    "icons\\message.ico"

-ICO_SNOTICE             ICON                    "icons\\notice.ico"

-ICO_DISCONNECTED        ICON                    "icons\\disconnect.ico"

-

-/////////////////////////////////////////////////////////////////////////////

-//

-// Bitmap

-//

-

-IDB_SD_LOGO             BITMAP                  "bitmaps\\sd.bmp"

-#endif    // English (U.S.) resources

-/////////////////////////////////////////////////////////////////////////////

-

-

-

-#ifndef APSTUDIO_INVOKED

-/////////////////////////////////////////////////////////////////////////////

-//

-// Generated from the TEXTINCLUDE 3 resource.

-//

-hextray.h

-/////////////////////////////////////////////////////////////////////////////

-#endif    // not APSTUDIO_INVOKED

-

diff --git a/plugins/hextray/sdAlerts.cpp b/plugins/hextray/sdAlerts.cpp
deleted file mode 100644
index bf61f1eb..00000000
--- a/plugins/hextray/sdAlerts.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/* X-Tray

- * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>

- *

- * X-Tray 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.

- * 

- * X-Tray 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 X-Tray; if not, write to the Free Software

- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA

- */

-

-#include <windows.h>

-#include <winuser.h>

-#include <stdio.h>

-#include "utility.h"

-#include "resource.h"

-#include "sdAlerts.h"

-

-int g_iAlerts = 0;

-

-void sdSystemAlert(HINSTANCE hModule, UINT uiDialog, char *szMsg, char *szName, unsigned int iTime)

-{

-	TCHAR wszMsg[256];

-	TCHAR wszName[64];

-

-	HWND hDialog;

-	RECT rcWorkArea, rcDlg;

-	int ixPos, iyPos;

-	int iNumPerCol;

-	

-	hDialog = CreateDialog(hModule, MAKEINTRESOURCE(uiDialog), NULL, (DLGPROC)sdAlertProc);

-

-	SystemParametersInfo(SPI_GETWORKAREA, 0, &rcWorkArea, 0);

-	GetWindowRect(hDialog, &rcDlg);

-

-	iNumPerCol = ((rcWorkArea.bottom - rcWorkArea.top) / (rcDlg.bottom - rcDlg.top));

-	ixPos = rcWorkArea.right - (rcDlg.right - rcDlg.left) + 1;

-	iyPos = rcWorkArea.bottom - (rcDlg.bottom - rcDlg.top);

-

-	if((g_iAlerts >= iNumPerCol) && (iNumPerCol > 0))

-	{

-		ixPos -= ((g_iAlerts / iNumPerCol) * (rcDlg.right - rcDlg.left));

-		iyPos -= ((g_iAlerts - (iNumPerCol * (g_iAlerts / iNumPerCol))) * (rcDlg.bottom - rcDlg.top));

-	}

-	else

-	{

-		iyPos -= (g_iAlerts * (rcDlg.bottom - rcDlg.top));

-	}

-	SetWindowPos(hDialog, HWND_TOPMOST, ixPos, iyPos, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE);

-	

-	ConvertString(szName, wszName, 64);

-	ConvertString(szMsg, wszMsg, 256);

-

-	SetWindowText(hDialog, wszName);

-	SetDlgItemText(hDialog, IDC_ALERT_MSG, wszMsg);

-	ShowWindow(hDialog, SW_SHOWNA);

-

-	if(iTime > 0)

-	{

-		SetTimer(hDialog, 1, iTime, NULL);

-	}

-

-	g_iAlerts++;

-}

-

-void sdCloseAlerts()

-{

-	PostMessage(HWND_BROADCAST, RegisterWindowMessage(TEXT("xTray:CloseAllAlertWindows")), 0, 0);

-}

-

-LRESULT CALLBACK sdAlertProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)

-{

-	switch(msg)

-	{

-	case WM_CLOSE:

-		if(g_iAlerts > 0){ g_iAlerts--; }

-		DestroyWindow(hwnd);

-		return TRUE;

-		break;

-	case WM_TIMER:

-		if(g_iAlerts > 0){ g_iAlerts--; }

-		AnimateWindow(hwnd, 600, AW_SLIDE | AW_HIDE | AW_VER_POSITIVE);

-		DestroyWindow(hwnd);

-		return TRUE;

-		break;

-	default:

-		if(msg == RegisterWindowMessage(TEXT("xTray:CloseAllAlertWindows")))

-		{

-			if(g_iAlerts > 0){ g_iAlerts--; }

-			DestroyWindow(hwnd);

-			return TRUE;

-		}

-		break;

-	}

-

-	return FALSE;

-}

-

-int sdAlertNum()

-{

-	return g_iAlerts;

-}

diff --git a/plugins/hextray/sdAlerts.h b/plugins/hextray/sdAlerts.h
deleted file mode 100644
index 6c2a3dc0..00000000
--- a/plugins/hextray/sdAlerts.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* X-Tray

- * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>

- *

- * X-Tray 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.

- * 

- * X-Tray 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 X-Tray; if not, write to the Free Software

- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA

- */

-

-#ifndef _H_SDALERTS_H

-#define _H_SDALERTS_H

-

-void				sdSystemAlert	(HINSTANCE, UINT, char *, char *, UINT);

-LRESULT CALLBACK	sdAlertProc		(HWND, UINT, WPARAM, LPARAM);

-int					sdAlertNum		();

-void				sdCloseAlerts	();

-#endif

diff --git a/plugins/hextray/sdTray.cpp b/plugins/hextray/sdTray.cpp
deleted file mode 100644
index 953fcf4a..00000000
--- a/plugins/hextray/sdTray.cpp
+++ /dev/null
@@ -1,207 +0,0 @@
-/* X-Tray

- * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>

- *

- * X-Tray 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.

- * 

- * X-Tray 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 X-Tray; if not, write to the Free Software

- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA

- */

-#define _WIN32_IE 0x601

-#include <windows.h>

-#include <stdio.h>

-#include <tchar.h>

-#include "sdTray.h"

-#include "utility.h"

-

-HANDLE hThread;

-iBlink *tData	= NULL;

-

-int AddIcon(HWND hwnd, UINT id, HICON hicon, char *szTip, unsigned short flags, unsigned int cbMsg)

-{

-	NOTIFYICONDATA nidata;

-

-	nidata.cbSize			= NOTIFYICONDATA_V2_SIZE;

-	nidata.hIcon			= hicon;

-	nidata.hWnd				= hwnd;

-	nidata.uCallbackMessage = cbMsg;

-	nidata.uFlags			= flags;

-	nidata.uID				= id;

-

-	if(szTip != NULL)

-	{

-		TCHAR *szTemp = new TCHAR[64];

-

-		ConvertString(szTip, szTemp, 64);

-		_tcsncpy(nidata.szTip, szTemp, 64);

-

-		delete[] szTemp;

-	}

-

-	return Shell_NotifyIcon(NIM_ADD, &nidata);

-}

-

-int RemoveIcon(HWND hwnd, UINT id)

-{

-	if(hThread != NULL)

-	{

-		TerminateThread(hThread, 0);

-		hThread = NULL;

-

-		delete tData;

-	}

-

-	NOTIFYICONDATA nidata;

-

-	nidata.cbSize = NOTIFYICONDATA_V2_SIZE;

-	nidata.hWnd   = hwnd;

-	nidata.uID    = id;

-

-	return Shell_NotifyIcon(NIM_DELETE, &nidata);

-}

-

-int SetIcon(HWND hwnd, UINT id, HICON hicon)

-{

-	NOTIFYICONDATA nidata;

-

-	nidata.cbSize = NOTIFYICONDATA_V2_SIZE;

-	nidata.hWnd   = hwnd;

-	nidata.uID    = id;

-	nidata.hIcon  = hicon;

-	nidata.uFlags = NIF_ICON;

-

-	return Shell_NotifyIcon(NIM_MODIFY, &nidata);

-}

-

-int SetTooltip(HWND hwnd, UINT id, char *szTip)

-{

-	NOTIFYICONDATA nidata;

-

-	nidata.cbSize = NOTIFYICONDATA_V2_SIZE;

-	nidata.hWnd   = hwnd;

-	nidata.uID    = id;

-	nidata.uFlags = NIF_TIP;

-

-	if(szTip != NULL)

-	{

-		TCHAR *szTemp = new TCHAR[64];

-		ConvertString(szTip, szTemp, 64);

-		_tcsncpy(nidata.szTip, szTemp, 64);

-		delete[] szTemp;

-	}

-

-	return Shell_NotifyIcon(NIM_MODIFY, &nidata);

-}

-

-int ShowBalloon(HWND hwnd, UINT id, char *szInfo, char *szTitle, UINT time, UINT infoFlags)

-{

-	NOTIFYICONDATA nidata;

-

-	nidata.cbSize	= NOTIFYICONDATA_V2_SIZE;

-	nidata.hWnd		= hwnd;

-	nidata.uID		= id;

-	nidata.uFlags	= NIF_INFO;

-	nidata.dwInfoFlags = infoFlags;

-

-	if(time > 0)

-		nidata.uTimeout = time;

-	else

-		nidata.uTimeout = 500000;

-

-	if(szInfo != NULL)

-	{

-		TCHAR *szTemp = new TCHAR[255];

-

-		ConvertString(szInfo, szTemp, 251);

-		szTemp[250] = 0;

-		

-		if(strlen(szInfo) > 255)

-		{

-			_sntprintf(szTemp, 255, _T("%s..."), szTemp);

-		}

-		_tcsncpy(nidata.szInfo, szTemp, 255);

-

-		delete[] szTemp;

-	}

-	if(szTitle != NULL)

-	{

-		TCHAR *wszTitle = new TCHAR[64];

-		ConvertString(szTitle, wszTitle, 64);

-		_tcsncpy(nidata.szInfoTitle, wszTitle, 64);

-		delete[] wszTitle;

-	}

-

-	return Shell_NotifyIcon(NIM_MODIFY, &nidata);

-}

-

-

-DWORD WINAPI BlinkThread(LPVOID lpParam)

-{

-	NOTIFYICONDATA nidata;

-

-	nidata.cbSize = NOTIFYICONDATA_V2_SIZE;

-	nidata.hWnd   = tData->hwnd;

-	nidata.uID    = tData->id;

-	nidata.uFlags = NIF_ICON;

-

-	for(UINT i = 0; i < tData->num; i++)

-	{

-		nidata.hIcon = tData->hBlink;

-		Shell_NotifyIcon(NIM_MODIFY, &nidata);

-

-		Sleep(tData->time);

-

-		nidata.hIcon = tData->hBase;

-		Shell_NotifyIcon(NIM_MODIFY, &nidata);

-

-		Sleep(tData->time);

-	}

-

-	delete tData;

-	hThread = NULL;

-

-	return 0;

-}

-

-int BlinkIcon(HWND hwnd, UINT id, HICON hBase, HICON hBlink, UINT time, UINT num)

-{

-	if(hThread != NULL)

-	{

-		StopBlink(hwnd, id, hBase);

-	}

-

-	DWORD dwThreadID;

-	tData = new iBlink;

-

-	tData->hwnd		= hwnd;

-	tData->id		= id;

-	tData->hBase	= hBase;

-	tData->hBlink	= hBlink;

-	tData->time		= time;

-	tData->num		= num;

-

-	hThread = CreateThread(NULL, 0, BlinkThread, tData, 0, &dwThreadID);

-

-	return 0;

-}

-

-void StopBlink(HWND hwnd, UINT id, HICON hBase)

-{

-	if(hThread != NULL)

-	{

-		TerminateThread(hThread, 0);

-		hThread = NULL;

-

-		delete tData;

-	}

-

-	SetIcon(hwnd, id, hBase);

-}

diff --git a/plugins/hextray/sdTray.h b/plugins/hextray/sdTray.h
deleted file mode 100644
index 82dc016b..00000000
--- a/plugins/hextray/sdTray.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* X-Tray

- * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>

- *

- * X-Tray 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.

- * 

- * X-Tray 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 X-Tray; if not, write to the Free Software

- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA

- */

-

-#ifndef _H_SDTRAY_H

-#define _H_SDTRAY_H

-

-int				AddIcon		(HWND, UINT, HICON, char *, unsigned short, UINT);

-int				ShowBalloon	(HWND, UINT, char *, char *, UINT, UINT);

-int				BlinkIcon	(HWND, UINT, HICON, HICON, UINT, UINT);

-int				SetTooltip	(HWND, UINT, char *);

-int				SetIcon		(HWND, UINT, HICON);

-void			StopBlink	(HWND, UINT, HICON);

-int				RemoveIcon	(HWND, UINT);

-

-typedef struct IBLINK

-{

-	HICON hBase;

-	HICON hBlink;

-	HWND hwnd;

-	UINT id;

-	UINT time;

-	UINT num;

-}iBlink;

-#endif

diff --git a/plugins/hextray/utility.cpp b/plugins/hextray/utility.cpp
deleted file mode 100644
index e7500161..00000000
--- a/plugins/hextray/utility.cpp
+++ /dev/null
@@ -1,410 +0,0 @@
-/* X-Tray

- * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>

- *

- * X-Tray 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.

- * 

- * X-Tray 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 X-Tray; if not, write to the Free Software

- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA

- */

-

-#include <windows.h>

-#include <stdio.h>

-#include <commctrl.h>

-#include <tchar.h>

-

-#include "hexchat-plugin.h"

-#include "utility.h"

-#include "hextray.h"

-#include "callbacks.h"

-#include "resource.h"

-

-struct HOTKEY g_hHotKey;

-

-/* we need to convert ALT and SHIFT modifiers

-// from <winuser.h>

-#define MOD_ALT         0x0001

-#define MOD_CONTROL     0x0002

-#define MOD_SHIFT       0x0004

-// from <commctrl.h>

-#define HOTKEYF_SHIFT           0x01

-#define HOTKEYF_CONTROL         0x02

-#define HOTKEYF_ALT             0x04

-*/

-

-WORD HotkeyfToMod(WORD modifiers)

-{

-	WORD newmods = 0;

-

-	if (modifiers & HOTKEYF_SHIFT)

-		newmods |= MOD_SHIFT;

-

-	if (modifiers & HOTKEYF_CONTROL)

-		newmods |= MOD_CONTROL;

-

-	if (modifiers & HOTKEYF_ALT)

-		newmods |= MOD_ALT;

-

-	return newmods;

-}

-

-WORD ModToHotkeyf(WORD modifiers)

-{

-	WORD newmods = 0;

-

-	if (modifiers & MOD_SHIFT)

-		newmods |= HOTKEYF_SHIFT;

-

-	if (modifiers & MOD_CONTROL)

-		newmods |= HOTKEYF_CONTROL;

-

-	if (modifiers & MOD_ALT)

-		newmods |= HOTKEYF_ALT;

-

-	return newmods;

-}

-

-void SavePrefs(int iDlg)

-{

-	hexchat_pluginpref_set_int (ph, "settings", g_dwPrefs);

-	hexchat_pluginpref_set_int (ph, "aot", g_iTime);

-	hexchat_pluginpref_set_int (ph, "key", g_hHotKey.key);

-	hexchat_pluginpref_set_int (ph, "mod", g_hHotKey.mod);

-	hexchat_pluginpref_set_str (ph, "away", (const char*) g_szAway);

-}

-

-void LoadPrefs()

-{

-	/**************************************************************************************************/

-	/*********************** Our Settings Section *****************************************************/

-	/**************************************************************************************************/

-

-	/**************************************************************************************************/

-	/*************************** Get the value for each of our preferances ****************************/

-	/**************************************************************************************************/

-

-	g_dwPrefs = hexchat_pluginpref_get_int (ph, "settings");

-	g_iTime = hexchat_pluginpref_get_int (ph, "aot");

-	g_hHotKey.key = hexchat_pluginpref_get_int (ph, "key");

-	g_hHotKey.mod = hexchat_pluginpref_get_int (ph, "mod");

-	hexchat_pluginpref_get_str (ph, "away", (char *) g_szAway);

-

-	/**************************************************************************************************/

-	/******************************** Register our hotkey with windows ********************************/

-	/**************************************************************************************************/

-	if(g_dwPrefs & (1<<PREF_UWIOB))

-	{

-		RegisterHotKey(g_hHotkeyWnd, 1, g_hHotKey.mod, g_hHotKey.key);

-	}

-}

-

-void CheckPrefs(HWND hwnd, int iDlg)

-{

-	/**************************************************************************************************/

-	/**************** save the preferances based on the checkmarks/options ****************************/

-	/**************************************************************************************************/

-	switch(iDlg)

-	{

-	case IDD_EVENTS:

-		{

-			SetOption(hwnd, CHAN_HILIGHT,		CHAN_HILIGHT);

-			SetOption(hwnd, CHAN_INVITE,		CHAN_INVITE);

-			SetOption(hwnd, CHAN_TOPIC_CHANGE,	CHAN_TOPIC_CHANGE);

-			SetOption(hwnd, CHAN_BANNED,		CHAN_BANNED);

-			SetOption(hwnd, CHAN_KICKED,		CHAN_KICKED);

-			SetOption(hwnd, CTCP_GENERIC,		CTCP_GENERIC);

-			SetOption(hwnd, PMSG_RECEIVE,		PMSG_RECEIVE);

-			SetOption(hwnd, SERV_KILLED,		SERV_KILLED);

-			SetOption(hwnd, SERV_NOTICE,		SERV_NOTICE);

-			SetOption(hwnd, SERV_DISCONNECT,	SERV_DISCONNECT);

-			SetOption(hwnd, CHAN_MESSAGE,		CHAN_MESSAGE);

-		}

-		break;

-	case IDD_ALERTS:

-		{

-			SetOption(hwnd, PREF_AMAE,	PREF_AMAE);

-			SetOption(hwnd, PREF_OSBWM,	PREF_OSBWM);

-			SetOption(hwnd, PREF_UWIOB,	PREF_UWIOB);

-			SetOption(hwnd, PREF_KAOI,	PREF_KAOI);

-			SetOption(hwnd, PREF_BLINK,	PREF_BLINK);

-

-			/**************************************************************************/

-			/**************************************************************************/

-			/**************************************************************************/

-			TCHAR tTime[512];

-

-			GetWindowText(GetDlgItem(hwnd, IDC_ALERT_TIME), tTime, 511);

-			

-			g_iTime = _tstoi(tTime);

-			

-			/**************************************************************************/

-			/**************** Get our Hotkey and save it                     **********/

-			/**************** then remove the old hotkey and add the new one **********/

-			/**************************************************************************/

-			DWORD hHotkey;

-			hHotkey = SendDlgItemMessage(hwnd, IDC_ALERT_HOTKEY, HKM_GETHOTKEY, 0, 0);

-			

-			g_hHotKey.key = LOBYTE(hHotkey);

-			g_hHotKey.mod = HotkeyfToMod(HIBYTE(hHotkey));

-			

-			if(IsDlgButtonChecked(hwnd, PREF_UWIOB) == BST_CHECKED)

-			{

-				UnregisterHotKey(g_hHotkeyWnd, 1);

-				RegisterHotKey(g_hHotkeyWnd, 1, g_hHotKey.mod, g_hHotKey.key);

-			}

-			else

-			{

-				UnregisterHotKey(g_hHotkeyWnd, 1);

-			}

-

-			/*************************************************************************/

-			/*********** Get and save the away msg and alert time ********************/

-			/*************************************************************************/

-		}

-		break;

-	case IDD_SETTINGS:

-		{

-			SetOption(hwnd, PREF_AOM, PREF_AOM);

-			SetOption(hwnd, PREF_TOT, PREF_TOT);

-			SetOption(hwnd, PREF_MIOC, PREF_MIOC);

-			SetOption(hwnd, PREF_DNSIT, PREF_DNSIT);

-

-			GetDlgItemText(hwnd, IDC_AWAY_MSG, g_szAway, 511);

-

-			if(g_dwPrefs & (1<<PREF_DNSIT))

-			{

-				DWORD dwStyle;

-				dwStyle = GetWindowLong(g_hXchatWnd, GWL_STYLE);

-				dwStyle |= (1<<WS_CHILD);

-				SetWindowLongPtr(g_hXchatWnd, GWL_STYLE, (LONG_PTR)dwStyle);

-				SetWindowLongPtr(g_hXchatWnd, GWL_HWNDPARENT, (LONG_PTR)g_hHotkeyWnd);

-			}

-			else

-			{

-				DWORD dwStyle;

-				dwStyle = GetWindowLong(g_hXchatWnd, GWL_STYLE);

-				dwStyle &= ~(1<<WS_CHILD);

-				SetWindowLongPtr(g_hXchatWnd, GWL_STYLE, (LONG_PTR)dwStyle);

-				SetWindowLongPtr(g_hXchatWnd, GWL_HWNDPARENT, NULL);

-			}

-		}

-		break;

-	} 

-}

-

-void SetDialog(HWND hwnd, int iDlg)

-{

-	switch(iDlg)

-	{

-	case IDD_EVENTS:

-		{

-			SetCheck(hwnd, CHAN_HILIGHT,		CHAN_HILIGHT);

-			SetCheck(hwnd, CHAN_INVITE,			CHAN_INVITE);

-			SetCheck(hwnd, CHAN_TOPIC_CHANGE,	CHAN_TOPIC_CHANGE);

-			SetCheck(hwnd, CHAN_BANNED,			CHAN_BANNED);

-			SetCheck(hwnd, CHAN_KICKED,			CHAN_KICKED);

-			SetCheck(hwnd, CTCP_GENERIC,		CTCP_GENERIC);

-			SetCheck(hwnd, PMSG_RECEIVE,		PMSG_RECEIVE);

-			SetCheck(hwnd, SERV_KILLED,			SERV_KILLED);

-			SetCheck(hwnd, SERV_NOTICE,			SERV_NOTICE);

-			SetCheck(hwnd, SERV_DISCONNECT,		SERV_DISCONNECT);

-			SetCheck(hwnd, CHAN_MESSAGE,		CHAN_MESSAGE);

-		}

-		break;

-	case IDD_SETTINGS:

-		{

-			SetCheck(hwnd, PREF_TOT,	PREF_TOT);

-			SetCheck(hwnd, PREF_MIOC,	PREF_MIOC);

-			SetCheck(hwnd, PREF_AOM,	PREF_AOM);

-			SetCheck(hwnd, PREF_DNSIT,	PREF_DNSIT);

-

-			SetDlgItemText(hwnd, IDC_AWAY_MSG, g_szAway);

-		}

-		break;

-	case IDD_ALERTS:

-		{

-			

-			SetCheck(hwnd, PREF_BLINK,	PREF_BLINK);

-			SetCheck(hwnd, PREF_OSBWM,	PREF_OSBWM);

-			SetCheck(hwnd, PREF_UWIOB,	PREF_UWIOB);

-			SetCheck(hwnd, PREF_KAOI,	PREF_KAOI);

-

-			/**********************************************************/

-			/**********************************************************/

-			/**********************************************************/

-			if(SetCheck(hwnd, PREF_AMAE, PREF_AMAE) == false)

-			{

-				SetToggle(hwnd, PREF_OSBWM,				PREF_AMAE, TRUE);

-				SetToggle(hwnd, PREF_UWIOB,				PREF_AMAE, TRUE);

-				SetToggle(hwnd, PREF_KAOI,				PREF_AMAE, TRUE);

-				SetToggle(hwnd, IDC_ALERT_TIME,			PREF_AMAE, TRUE);

-				SetToggle(hwnd, IDC_ALERT_TIME_TEXT,	PREF_AMAE, TRUE);

-				SetToggle(hwnd, IDC_ALERT_HOTKEY,		PREF_AMAE, TRUE);

-				SetToggle(hwnd, IDC_ALERT_HOTKEY_TEXT,	PREF_AMAE, TRUE);

-			}

-			else

-			{

-

-				SetToggle(hwnd, IDC_ALERT_HOTKEY,		PREF_UWIOB, TRUE);

-				SetToggle(hwnd, IDC_ALERT_HOTKEY_TEXT,	PREF_UWIOB, TRUE);

-				SetToggle(hwnd, IDC_ALERT_TIME,			PREF_KAOI, FALSE);

-				SetToggle(hwnd, IDC_ALERT_TIME_TEXT,	PREF_KAOI, FALSE);

-			}

-

-			/**********************************************************/

-			/**********************************************************/

-			/**********************************************************/

-			TCHAR tTime[255];

-			SendDlgItemMessage(hwnd, IDC_ALERT_TIME,	WM_SETTEXT, 0, (LPARAM)_itot(g_iTime, tTime, 10));

-			SendDlgItemMessage(hwnd, IDC_ALERT_HOTKEY,	HKM_SETHOTKEY, MAKEWORD(g_hHotKey.key, ModToHotkeyf(g_hHotKey.mod)), 0);

-		}

-		break;

-	}

-}

-

-int SetCheck(HWND hDialog, unsigned int uiCheckBox, unsigned int uiPref)

-{

-	if((g_dwPrefs & (1<<uiPref)))

-	{

-		CheckDlgButton(hDialog, uiCheckBox, BST_CHECKED);

-		return 1;

-	}

-	else

-	{

-		CheckDlgButton(hDialog, uiCheckBox, BST_UNCHECKED);

-		return 0;

-	}

-

-	return 0;

-}

-

-int SetToggle(HWND hDialog, unsigned int uiCheckBox, unsigned int uiTestbox, bool offeqoff)

-{

-	/**************************************************************************************************/

-	/*********************** if(true) then if option is off turn toggle off ***************************/

-	/*********************** if(false) then if option is off turn toggle on ***************************/

-	/**************************************************************************************************/

-	if(offeqoff)

-	{

-		if(IsDlgButtonChecked(hDialog, uiTestbox) == BST_CHECKED)

-		{

-			EnableWindow(GetDlgItem(hDialog, uiCheckBox), TRUE);

-			return 1;

-		}

-		else

-		{

-			EnableWindow(GetDlgItem(hDialog, uiCheckBox), FALSE);

-			return 0;

-		}

-	}

-	else

-	{

-		if(IsDlgButtonChecked(hDialog, uiTestbox) == BST_CHECKED)

-		{

-			EnableWindow(GetDlgItem(hDialog, uiCheckBox), FALSE);

-			return 1;

-		}

-		else

-		{

-			EnableWindow(GetDlgItem(hDialog, uiCheckBox), TRUE);

-			return 0;

-		}

-	}

-

-	return 0;

-}

-

-int SetOption(HWND hDialog, unsigned int uiCheckBox, unsigned int uiPref)

-{

-	if(IsDlgButtonChecked(hDialog, uiCheckBox) == BST_CHECKED)

-	{

-		g_dwPrefs |= (1<<uiPref);

-	}

-	else

-	{

-		g_dwPrefs &= ~(1<<uiPref);

-	}

-

-	return (g_dwPrefs & (1<<uiPref));

-}

-

-// For cleanup ( Closing windows and the such )

-void HoldClose()

-{

-	HANDLE hcThread;

-	DWORD dwThreadID;

-	hcThread = CreateThread(NULL, 0, HoldCloseThread, 0, 0, &dwThreadID);

-}

-

-DWORD WINAPI HoldCloseThread(LPVOID lpParam)

-{

-	Sleep(1000);

-	PostMessage(g_hXchatWnd, WM_CLOSE, 0, 0);

-	return 0;

-}

-

-bool FileExists(TCHAR *file)

-{

-	HANDLE hTemp = CreateFile(file, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

-	int nRet = GetLastError();

-	CloseHandle(hTemp);

-

-	if(nRet == 0)

-	{

-		return true;

-	}

-	else

-	{

-		return false;

-	}

-

-	return false;

-}

-

-void ConvertString(const char *in, wchar_t *out, int size)

-{

-	MultiByteToWideChar(CP_UTF8, 0, in,  -1, out, size);

-}

-

-void ConvertString(const wchar_t *in, char *out, int size)

-{

-	WideCharToMultiByte(CP_UTF8, 0, in, (size - 1), out, size, NULL, NULL);

-}

-

-void ConvertString(const char *in, char *out, int size)

-{

-	strncpy(out, in, size);

-}

-

-void ErrorDebug(LPTSTR lpszFunction)

-{ 

-    TCHAR szBuf[80]; 

-    LPVOID lpMsgBuf;

-    DWORD dw = GetLastError(); 

-

-    FormatMessage(

-        FORMAT_MESSAGE_ALLOCATE_BUFFER | 

-        FORMAT_MESSAGE_FROM_SYSTEM,

-        NULL,

-        dw,

-        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),

-        (LPTSTR) &lpMsgBuf,

-        0, NULL );

-

-    _stprintf(szBuf, 

-        _T("%s failed with error %d: %s"), 

-        lpszFunction, dw, lpMsgBuf); 

- 

-    MessageBox(NULL, szBuf, _T("Error"), MB_OK); 

-

-    LocalFree(lpMsgBuf);

-}

-

diff --git a/plugins/hextray/utility.h b/plugins/hextray/utility.h
deleted file mode 100644
index 76cc38ae..00000000
--- a/plugins/hextray/utility.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* X-Tray

- * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>

- *

- * X-Tray 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.

- * 

- * X-Tray 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 X-Tray; if not, write to the Free Software

- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA

- */

-

-#ifndef _H_UTILITY_H

-#define _H_UTILITY_H

-

-WORD					HotkeyfToMod	(WORD);

-WORD					ModToHotkeyf	(WORD);

-

-int						SetOption		(HWND, unsigned int, unsigned int);

-int						SetCheck		(HWND, unsigned int, unsigned int);

-int						SetToggle		(HWND, unsigned int, unsigned int, bool);

-void					ErrorDebug		(LPTSTR lpszFunction);

-void					SetDialog		(HWND, int);

-void					CheckPrefs		(HWND, int);

-bool					FileExists		(TCHAR *);

-DWORD WINAPI			HoldCloseThread	(LPVOID);

-void					SavePrefs		(int);

-void					LoadPrefs		();

-void					HoldClose		();

-

-void ConvertString(const char *in,		wchar_t *out,	int size);

-void ConvertString(const wchar_t *in,	char *out,		int size);

-void ConvertString(const char *in,		char *out,		int size);

-

-struct HOTKEY

-{

-	WORD key;

-	WORD mod;

-};

-#endif