diff options
author | Berke Viktor <bviktor@hexchat.org> | 2012-07-13 23:17:29 +0200 |
---|---|---|
committer | Berke Viktor <bviktor@hexchat.org> | 2012-07-13 23:17:29 +0200 |
commit | a9c8ab916b2106efce25b8b58ec850031a2dfbf3 (patch) | |
tree | a864f236294b7f6adcb0b3c57b015b761481d8c1 /plugins/xtray | |
parent | 25a9a60bab6e795367d402b82b0c9a19bfcc4f4d (diff) |
Rename X-Tray to HexTray
Diffstat (limited to 'plugins/xtray')
29 files changed, 0 insertions, 3067 deletions
diff --git a/plugins/xtray/bitmaps/sd.bmp b/plugins/xtray/bitmaps/sd.bmp deleted file mode 100644 index 9d6b7f95..00000000 --- a/plugins/xtray/bitmaps/sd.bmp +++ /dev/null Binary files differdiff --git a/plugins/xtray/callbacks.cpp b/plugins/xtray/callbacks.cpp deleted file mode 100644 index c7de9626..00000000 --- a/plugins/xtray/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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#define _WIN32_IE 0x0601 - -#include <windows.h> -#include <stdio.h> -#include <commctrl.h> -#include <tchar.h> - -#include "xchat-plugin.h" -#include "utility.h" -#include "xtray.h" -#include "xchat.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("XChat ["))) - { - g_hXchatWnd = hWnd; - return false; - } - - return true; -} - -/***********************************************************************************************/ -/******* our xchat 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 XCHAT_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", xchat_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", xchat_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 ****/ - /***** indefinately? ****/ - /**************************************************************************************/ - szTemp = xchat_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 xchat ****/ - /***********************************/ - return XCHAT_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 = xchat_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 XCHAT_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)) - { - xchat_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 xChat, ******/ - /***** 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)) - { - xchat_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)) - { - xchat_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]", xchat_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 xchat 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))) - { - xchat_globally_back(); - g_iIsActive = 1; - } - } - break; - case ACT_SETTINGS: - { - ShowWindow(g_hPrefDlg, SW_SHOW); - } - break; - case ACT_AWAY: - { - xchat_globally_away(g_szAway); - } - break; - case ACT_BACK: - { - xchat_globally_back(); - } - break; - default: - { - if(msg > 0) - { - xchat_set_context(ph, xchat_find_server(msg-1)); - - if(!xchat_get_info(ph, "away")) - { - xchat_away(g_szAway); - } - else - { - xchat_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/xtray/callbacks.h b/plugins/xtray/callbacks.h deleted file mode 100644 index 99cbae74..00000000 --- a/plugins/xtray/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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 \ No newline at end of file diff --git a/plugins/xtray/icons/banned.ico b/plugins/xtray/icons/banned.ico deleted file mode 100644 index fef8df8c..00000000 --- a/plugins/xtray/icons/banned.ico +++ /dev/null Binary files differdiff --git a/plugins/xtray/icons/chan_msg.ico b/plugins/xtray/icons/chan_msg.ico deleted file mode 100644 index 793d050e..00000000 --- a/plugins/xtray/icons/chan_msg.ico +++ /dev/null Binary files differdiff --git a/plugins/xtray/icons/disconnected.ico b/plugins/xtray/icons/disconnected.ico deleted file mode 100644 index 9063e7e3..00000000 --- a/plugins/xtray/icons/disconnected.ico +++ /dev/null Binary files differdiff --git a/plugins/xtray/icons/hexchat.ico b/plugins/xtray/icons/hexchat.ico deleted file mode 100644 index 73247fd0..00000000 --- a/plugins/xtray/icons/hexchat.ico +++ /dev/null Binary files differdiff --git a/plugins/xtray/icons/highlight-1-3.ico b/plugins/xtray/icons/highlight-1-3.ico deleted file mode 100644 index a759145b..00000000 --- a/plugins/xtray/icons/highlight-1-3.ico +++ /dev/null Binary files differdiff --git a/plugins/xtray/icons/highlight.ico b/plugins/xtray/icons/highlight.ico deleted file mode 100644 index 625cca9a..00000000 --- a/plugins/xtray/icons/highlight.ico +++ /dev/null Binary files differdiff --git a/plugins/xtray/icons/kicked.ico b/plugins/xtray/icons/kicked.ico deleted file mode 100644 index 845a74e1..00000000 --- a/plugins/xtray/icons/kicked.ico +++ /dev/null Binary files differdiff --git a/plugins/xtray/icons/priv_msg-1-2-2.ico b/plugins/xtray/icons/priv_msg-1-2-2.ico deleted file mode 100644 index 7941ff77..00000000 --- a/plugins/xtray/icons/priv_msg-1-2-2.ico +++ /dev/null Binary files differdiff --git a/plugins/xtray/icons/sd.ico b/plugins/xtray/icons/sd.ico deleted file mode 100644 index ca179621..00000000 --- a/plugins/xtray/icons/sd.ico +++ /dev/null Binary files differdiff --git a/plugins/xtray/icons/server_notice.ico b/plugins/xtray/icons/server_notice.ico deleted file mode 100644 index ff765d87..00000000 --- a/plugins/xtray/icons/server_notice.ico +++ /dev/null Binary files differdiff --git a/plugins/xtray/resource.h b/plugins/xtray/resource.h deleted file mode 100644 index b8008c2c..00000000 --- a/plugins/xtray/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/xtray/resource.rc b/plugins/xtray/resource.rc deleted file mode 100644 index b786cfbd..00000000 --- a/plugins/xtray/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 "XChat 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 XChat 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 XChat 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 "X-Tray 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 "X-Tray\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.2.4",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 indefinately",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 - "xtray.h\0" -END - -4 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,2,4,0 - PRODUCTVERSION 1,2,4,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", "X-Tray" - VALUE "FileVersion", "1, 2, 4, 0" - VALUE "InternalName", "X-Tray" - VALUE "LegalCopyright", "Copyright © 2005" - VALUE "OriginalFilename", "xtray.dll" - VALUE "ProductName", "X-Tray - XChat Win32 System Tray Plugin" - VALUE "ProductVersion", "1, 2, 4, 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\\banned.ico" -ICO_CHANMSG ICON "icons\\chan_msg.ico" -ICO_HIGHLIGHT ICON "icons\\highlight.ico" -ICO_KICKED ICON "icons\\kicked.ico" -ICO_PMSG ICON "icons\\priv_msg-1-2-2.ico" -ICO_SNOTICE ICON "icons\\server_notice.ico" -ICO_DISCONNECTED ICON "icons\\disconnected.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDB_SD_LOGO BITMAP "bitmaps\\sd.bmp" -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// -xtray.h -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/plugins/xtray/sdAlerts.cpp b/plugins/xtray/sdAlerts.cpp deleted file mode 100644 index 5e042806..00000000 --- a/plugins/xtray/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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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; -} \ No newline at end of file diff --git a/plugins/xtray/sdAlerts.h b/plugins/xtray/sdAlerts.h deleted file mode 100644 index cd45a05b..00000000 --- a/plugins/xtray/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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 \ No newline at end of file diff --git a/plugins/xtray/sdTray.cpp b/plugins/xtray/sdTray.cpp deleted file mode 100644 index 3a91a61b..00000000 --- a/plugins/xtray/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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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); -} \ No newline at end of file diff --git a/plugins/xtray/sdTray.h b/plugins/xtray/sdTray.h deleted file mode 100644 index 68469fe0..00000000 --- a/plugins/xtray/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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 \ No newline at end of file diff --git a/plugins/xtray/utility.cpp b/plugins/xtray/utility.cpp deleted file mode 100644 index 66489bc0..00000000 --- a/plugins/xtray/utility.cpp +++ /dev/null @@ -1,607 +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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include <windows.h> -#include <stdio.h> -#include <commctrl.h> -#include <tchar.h> - -#include "xchat-plugin.h" -#include "utility.h" -#include "xtray.h" -#include "callbacks.h" -#include "resource.h" - -TCHAR BACKUP_INI_FILE[] = _T(".\\plugins\\config\\xtray.conf"); -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) -{ - /**************************************************************************************************/ - /********** allocate space for our string, and then set it to the currently logged on user ********/ - /**************************************************************************************************/ - DWORD dBuff = 257; - TCHAR szUser[257]; - - GetUserName(szUser, &dBuff); - - /**************************************************************************************************/ - /*********************** Test if the file exists, If it doesn't, Create It ************************/ - /**************************************************************************************************/ - TCHAR XTRAY_INI_FILE[1024]; - -#ifdef UNICODE - char temp[1024]; - TCHAR TEMP_INI_FILE[1024]; - - _snprintf(temp, 1024, "%s\\xtray.conf", xchat_get_info(ph, "xchatdir")); - ConvertString(temp, TEMP_INI_FILE, 1024); - - // ok this one is really ugly - // it checks to see if the file exists in two locations - // X-Chat default config dir, if that fails it trys xchat\plugins\config - // if neither one exists it tries to create it in - // X-Chat default config dir, if that fails it trys xchat\plugins\config - // In either case it writes \xFF\xFE to the file ( on creation ) - // so that we can save unicode away messages WritePrivateProfile doesn't - // do this for us, though I think it really should - - if(FileExists(TEMP_INI_FILE)) - { - _tcscpy(XTRAY_INI_FILE, TEMP_INI_FILE); - } - else - { - if(FileExists(BACKUP_INI_FILE)) - { - _tcscpy(XTRAY_INI_FILE, BACKUP_INI_FILE); - } - else - { - HANDLE xTemp; - DWORD dwBytesTemp; - - if(xTemp = CreateFile(TEMP_INI_FILE, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL)) - { - if(GetLastError() != ERROR_ALREADY_EXISTS) - { - WriteFile(xTemp, _T("\xFF\xFE"), 4, &dwBytesTemp, NULL); - } - CloseHandle(xTemp); - } - - if(FileExists(TEMP_INI_FILE)) - { - _tcscpy(XTRAY_INI_FILE, TEMP_INI_FILE); - } - else - { - HANDLE xBackup; - DWORD dwBytesBackup; - - if(xBackup = CreateFile(TEMP_INI_FILE, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL)) - { - if(GetLastError() != ERROR_ALREADY_EXISTS) - { - WriteFile(xBackup, _T("\xFF\xFE"), 4, &dwBytesBackup, NULL); - } - - CloseHandle(xBackup); - } - - if(FileExists(BACKUP_INI_FILE)) - { - _tcscpy(XTRAY_INI_FILE, BACKUP_INI_FILE); - } - } - } - } - -#else - _tcscpy(XTRAY_INI_FILE, BACKUP_INI_FILE); -#endif - - WritePrivateProfileInt(szUser, _T("SETTINGS"), g_dwPrefs, XTRAY_INI_FILE); - WritePrivateProfileInt(szUser, _T("AOT"), g_iTime, XTRAY_INI_FILE); - WritePrivateProfileInt(szUser, _T("KEY"), g_hHotKey.key, XTRAY_INI_FILE); - WritePrivateProfileInt(szUser, _T("MOD"), g_hHotKey.mod, XTRAY_INI_FILE); - WritePrivateProfileString(szUser, _T("AWAY"), g_szAway, XTRAY_INI_FILE); -} - -void LoadPrefs() -{ - /**************************************************************************************************/ - /*********************** Our Settings Section *****************************************************/ - /**************************************************************************************************/ - DWORD dBuff = 257; - TCHAR szUser[257]; - - GetUserName(szUser, &dBuff); - - /**************************************************************************************************/ - /*********************** Test if the file exists, If it doesn't, Create It ************************/ - /**************************************************************************************************/ - TCHAR XTRAY_INI_FILE[1024]; - -#ifdef UNICODE - char temp[1024]; - TCHAR TEMP_INI_FILE[1024]; - - _snprintf(temp, 1024, "%s\\xtray.conf", xchat_get_info(ph, "xchatdir")); - ConvertString(temp, TEMP_INI_FILE, 1024); - - if(FileExists(TEMP_INI_FILE)) - { - _tcscpy(XTRAY_INI_FILE, TEMP_INI_FILE); - } - else - { - if(FileExists(BACKUP_INI_FILE)) - { - _tcscpy(XTRAY_INI_FILE, BACKUP_INI_FILE); - } - else - { - HANDLE xTemp; - DWORD dwBytesTemp; - - if(xTemp = CreateFile(TEMP_INI_FILE, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL)) - { - if(GetLastError() != ERROR_ALREADY_EXISTS) - { - WriteFile(xTemp, _T("\xFF\xFE"), 4, &dwBytesTemp, NULL); - } - - CloseHandle(xTemp); - } - - if(FileExists(TEMP_INI_FILE)) - { - _tcscpy(XTRAY_INI_FILE, TEMP_INI_FILE); - } - else - { - HANDLE xBackup; - DWORD dwBytesBackup; - - if(xBackup = CreateFile(TEMP_INI_FILE, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL)) - { - if(GetLastError() != ERROR_ALREADY_EXISTS) - { - WriteFile(xBackup, _T("\xFF\xFE"), 4, &dwBytesBackup, NULL); - } - - CloseHandle(xBackup); - } - - if(FileExists(BACKUP_INI_FILE)) - { - _tcscpy(XTRAY_INI_FILE, BACKUP_INI_FILE); - } - } - } - } - -#else - _tcscpy(XTRAY_INI_FILE, BACKUP_INI_FILE); -#endif - - /**************************************************************************************************/ - /*************************** Get the value for each of our preferances ****************************/ - /**************************************************************************************************/ - g_dwPrefs = GetPrivateProfileInt(szUser, _T("SETTINGS"), 0, XTRAY_INI_FILE); - - // backwards compatability - // also allows us to set defaults if its a new installation - // disable topic change, channel message and server notice by default - if(g_dwPrefs == 0) - { - g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("HILIGHT"), 1, XTRAY_INI_FILE)<<1); - g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("INVITE"), 1, XTRAY_INI_FILE)<<2); - /* g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("TOPIC"), 1, XTRAY_INI_FILE)<<3); */ - g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("BANNED"), 1, XTRAY_INI_FILE)<<4); - g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("KICKED"), 1, XTRAY_INI_FILE)<<5); - g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("CTCP"), 1, XTRAY_INI_FILE)<<6); - g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("PMSG"), 1, XTRAY_INI_FILE)<<7); - g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("KILLED"), 1, XTRAY_INI_FILE)<<8); - /* g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("NOTICE"), 1, XTRAY_INI_FILE)<<9); */ - g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("DISCONNECT"), 1, XTRAY_INI_FILE)<<10); - - g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("AOM"), 0, XTRAY_INI_FILE)<<11); - g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("TOT"), 1, XTRAY_INI_FILE)<<12); - g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("AMAE"), 1, XTRAY_INI_FILE)<<13); - g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("OSBWM"), 0, XTRAY_INI_FILE)<<14); - g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("UWIOB"), 0, XTRAY_INI_FILE)<<15); - g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("KAOI"), 0, XTRAY_INI_FILE)<<16); - g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("MIOC"), 0, XTRAY_INI_FILE)<<17); - } - - g_hHotKey.key = GetPrivateProfileInt(szUser, _T("KEY"), 84, XTRAY_INI_FILE); - g_hHotKey.mod = GetPrivateProfileInt(szUser, _T("MOD"), (MOD_CONTROL | MOD_SHIFT), XTRAY_INI_FILE); - g_iTime = GetPrivateProfileInt(szUser, _T("AOT"), 5, XTRAY_INI_FILE); - - GetPrivateProfileString(szUser, _T("AWAY"), _T(""), g_szAway, 1024, XTRAY_INI_FILE); - - /**************************************************************************************************/ - /******************************** 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)); -} - -int WritePrivateProfileIntA(char *szSection, char *szItem, int iData, char *szPath) -{ - char szData[33]; - itoa(iData, szData, 10); - return WritePrivateProfileStringA(szSection, szItem, szData, szPath); -} - -int WritePrivateProfileIntW(wchar_t *wszSection, wchar_t *wszItem, int iData, wchar_t *wszPath) -{ - wchar_t wszData[33]; - _itow(iData, wszData, 10); - return WritePrivateProfileStringW(wszSection, wszItem, wszData, wszPath); -} - -// 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/xtray/utility.h b/plugins/xtray/utility.h deleted file mode 100644 index 6bee8aed..00000000 --- a/plugins/xtray/utility.h +++ /dev/null @@ -1,55 +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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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); - -int WritePrivateProfileIntA(char *, char *, int, char *); -int WritePrivateProfileIntW(wchar_t *, wchar_t *, int, wchar_t *); - -#ifdef UNICODE -#define WritePrivateProfileInt WritePrivateProfileIntW -#else -#define WritePrivateProfileInt WritePrivateProfileIntA -#endif - -struct HOTKEY -{ - WORD key; - WORD mod; -}; -#endif \ No newline at end of file diff --git a/plugins/xtray/xchat.cpp b/plugins/xtray/xchat.cpp deleted file mode 100644 index 47ce46a9..00000000 --- a/plugins/xtray/xchat.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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include <windows.h> -#include <vector> -#include <algorithm> -#include <stdio.h> -#include <tchar.h> - -#include "xchat-plugin.h" -#include "xtray.h" -#include "resource.h" -#include "xchat.h" -#include "utility.h" - -// from util.c of xchat source code ( slightly modified to fit X-Tray Syntax ) -char *xchat_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 xchat_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); - xchat_exec(szTemp); -} - -void xchat_away(TCHAR *tszAway) -{ - char szTemp[512]; - char szAway[512]; - - ConvertString(tszAway, szAway, 512); - _snprintf(szTemp, 512, szAway); - check_special_chars(szTemp); - xchat_commandf(ph, "AWAY %s\0", szTemp); -} - -void xchat_globally_back() -{ - std::vector<int> xs; - std::vector<int>::iterator xsi; - xchat_list *xl = xchat_list_get(ph, "channels"); - - if(xl) - { - while(xchat_list_next(ph, xl)) - { - xsi = std::find(xs.begin(), xs.end(), xchat_list_int(ph, xl, "id")); - - if((xsi == xs.end()) && - ((strlen(xchat_list_str(ph, xl, "server")) > 0) || - (strlen(xchat_list_str(ph, xl, "channel")) > 0))) - { - xs.push_back(xchat_list_int(ph, xl, "id")); - xchat_set_context(ph, (xchat_context *)xchat_list_str(ph, xl, "context")); - xchat_back(); - } - } - - xchat_list_free(ph, xl); - } -} - - - -void xchat_back() -{ - if(xchat_get_info(ph, "away")) - { - xchat_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; - xchat_list *xl = xchat_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(xchat_list_next(ph, xl)) - { - xsi = std::find(xs.begin(), xs.end(), xchat_list_int(ph, xl, "id")); - - if( (xsi == xs.end()) && - ((strlen(xchat_list_str(ph, xl, "server")) > 0) || - (strlen(xchat_list_str(ph, xl, "channel")) > 0))) - { - xchat_set_context(ph, (xchat_context *)xchat_list_str(ph, xl, "context")); - xs.push_back(xchat_list_int(ph, xl, "id")); - - char *network = _strdup(xchat_list_str(ph, xl, "network")); - char *server = _strdup(xchat_list_str(ph, xl, "server")); - char *nick = _strdup(xchat_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(!xchat_get_info(ph, "away")) - { - AppendMenu(sTemp, MF_STRING, (xchat_list_int(ph, xl, "id") + 1), wszMenuEntry); - } - else - { - AppendMenu(sTemp, (MF_CHECKED | MF_STRING), (xchat_list_int(ph, xl, "id") + 1), wszMenuEntry); - } - } - - free(network); - free(server); - free(nick); - } - } - - xchat_list_free(ph, xl); - } - - return sTemp; -} - -struct _xchat_context *xchat_find_server(int find_id) -{ - xchat_context *xc; - xchat_list *xl = xchat_list_get(ph, "channels"); - int id; - - if(!xl) - return NULL; - - while(xchat_list_next(ph, xl)) - { - id = xchat_list_int(ph, xl, "id"); - - if(id == -1) - { - return NULL; - } - else if(id == find_id) - { - xc = (xchat_context *)xchat_list_str(ph, xl, "context"); - - xchat_list_free(ph, xl); - - return xc; - } - } - - xchat_list_free(ph, xl); - - return NULL; -} - -void xchat_exec(char *command) -{ - xchat_set_context(ph, xchat_find_context(ph, NULL, NULL)); - xchat_command(ph, command); -} \ No newline at end of file diff --git a/plugins/xtray/xchat.h b/plugins/xtray/xchat.h deleted file mode 100644 index 76452aeb..00000000 --- a/plugins/xtray/xchat.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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef _H_XCHAT_H -#define _H_XCHAT_H - -void xchat_exec (char *); -char *xchat_strip_color (char *); -void xchat_parse (char *); -struct _xchat_context *xchat_find_server (int); -void xchat_globally_away (TCHAR *); -void xchat_away (TCHAR *); -void xchat_globally_back (); -void xchat_back (); -HMENU setServerMenu (); - -#endif \ No newline at end of file diff --git a/plugins/xtray/xtray.cpp b/plugins/xtray/xtray.cpp deleted file mode 100644 index 69303fc5..00000000 --- a/plugins/xtray/xtray.cpp +++ /dev/null @@ -1,219 +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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#define _WIN32_IE 0x0601 - -#include <windows.h> -#include <list> -#include <string> -#include <shobjidl.h> - -#include "xchat-plugin.h" -#include "resource.h" -#include "callbacks.h" -#include "utility.h" -#include "xtray.h" -#include "sdTray.h" -#include "sdAlerts.h" - -/*****************************************************/ -/**** Don't want to pollute the namespace do we? *****/ -/*****************************************************/ -std::list<xchat_hook *> g_vHooks; - -/*****************************************************/ -/************ Global Identifiers *********************/ -/*****************************************************/ -WNDPROC g_hOldProc; -xchat_plugin *ph; - -/*****************************************************/ -/***************** Resources *************************/ -/*****************************************************/ -HWND g_hXchatWnd; -HWND g_hHotkeyWnd; -HWND g_hPrefDlg; -HMENU g_hTrayMenu; -HICON g_hIcons[11]; -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 xchat_plugin_init(xchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg) -{ - ph = plugin_handle; - - *plugin_name = "X-Tray"; - *plugin_desc = "Minimize XChat to the Windows system tray"; - *plugin_version = "1.2.4"; - - /***************************************************************************************************************************/ - /************************* Load our preferances from xTray.ini *************************************************************/ - /***************************************************************************************************************************/ - LoadPrefs(); - - /***************************************************************************************************************************/ - /************************* Finds the xChat window and saves it for later use ***********************************************/ - /***************************************************************************************************************************/ - g_hXchatWnd = (HWND)xchat_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 xChat 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[1] = (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_CHANMSG), 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); - - /***************************************************************************************************************************/ - /************************* Add our icon to the tray ************************************************************************/ - /***************************************************************************************************************************/ - char szVersion[64]; - _snprintf(szVersion, 64, "HexChat %s", xchat_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(xchat_hook_print(ph, "Channel Msg Hilight", XCHAT_PRI_NORM, event_cb, (void *)CHAN_HILIGHT)); - g_vHooks.push_back(xchat_hook_print(ph, "Channel Message", XCHAT_PRI_NORM, event_cb, (void *)CHAN_MESSAGE)); - g_vHooks.push_back(xchat_hook_print(ph, "Topic Change", XCHAT_PRI_NORM, event_cb, (void *)CHAN_TOPIC_CHANGE)); - g_vHooks.push_back(xchat_hook_print(ph, "Channel Action Hilight", XCHAT_PRI_NORM, event_cb, (void *)CHAN_HILIGHT)); - g_vHooks.push_back(xchat_hook_print(ph, "Channel INVITE", XCHAT_PRI_NORM, event_cb, (void *)CHAN_INVITE)); - g_vHooks.push_back(xchat_hook_print(ph, "You Kicked", XCHAT_PRI_NORM, event_cb, (void *)CHAN_KICKED)); - g_vHooks.push_back(xchat_hook_print(ph, "Banned", XCHAT_PRI_NORM, event_cb, (void *)CHAN_BANNED)); - g_vHooks.push_back(xchat_hook_print(ph, "CTCP Generic", XCHAT_PRI_NORM, event_cb, (void *)CTCP_GENERIC)); - g_vHooks.push_back(xchat_hook_print(ph, "Private Message", XCHAT_PRI_NORM, event_cb, (void *)PMSG_RECEIVE)); - g_vHooks.push_back(xchat_hook_print(ph, "Private Message to Dialog", XCHAT_PRI_NORM, event_cb, (void *)PMSG_RECEIVE)); - g_vHooks.push_back(xchat_hook_print(ph, "Disconnected", XCHAT_PRI_NORM, event_cb, (void *)SERV_DISCONNECT)); - g_vHooks.push_back(xchat_hook_print(ph, "Killed", XCHAT_PRI_NORM, event_cb, (void *)SERV_KILLED)); - g_vHooks.push_back(xchat_hook_print(ph, "Notice", XCHAT_PRI_NORM, event_cb, (void *)SERV_NOTICE)); - g_vHooks.push_back(xchat_hook_command(ph, "tray_alert", XCHAT_PRI_NORM, command_cb, "Create an Alert", NULL)); - - return 1; -} - -int xchat_plugin_deinit(xchat_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 xchat_hook_*s **********/ - /******************************************/ - while(!g_vHooks.empty()) - { - if(g_vHooks.back() != NULL) - { - xchat_unhook(ph, g_vHooks.back()); - } - g_vHooks.pop_back(); - } - - return 1; -} diff --git a/plugins/xtray/xtray.def b/plugins/xtray/xtray.def deleted file mode 100644 index 77670bf2..00000000 --- a/plugins/xtray/xtray.def +++ /dev/null @@ -1,3 +0,0 @@ -EXPORTS -xchat_plugin_init -xchat_plugin_deinit diff --git a/plugins/xtray/xtray.h b/plugins/xtray/xtray.h deleted file mode 100644 index 56323cf2..00000000 --- a/plugins/xtray/xtray.h +++ /dev/null @@ -1,77 +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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef _XTRAY_H -#define _XTRAY_H - -/******************** Globals *************************/ -extern HWND g_hXchatWnd; -extern HWND g_hHotkeyWnd; -extern HWND g_hPrefDlg; -extern HMENU g_hTrayMenu; -extern HICON g_hIcons[11]; -extern HANDLE g_hInstance; -extern unsigned int g_dwPrefs; -extern TCHAR g_szAway[512]; -extern int g_iTime; -extern WNDPROC g_hOldProc; -extern struct _xchat_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 indefinately -#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/xtray/xtray.vcxproj b/plugins/xtray/xtray.vcxproj deleted file mode 100644 index 305b3845..00000000 --- a/plugins/xtray/xtray.vcxproj +++ /dev/null @@ -1,134 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <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>xtray</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>Unicode</CharacterSet> - <PlatformToolset>WDK7</PlatformToolset> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> - <ConfigurationType>DynamicLibrary</ConfigurationType> - <UseDebugLibraries>false</UseDebugLibraries> - <WholeProgramOptimization>true</WholeProgramOptimization> - <CharacterSet>Unicode</CharacterSet> - <PlatformToolset>WDK7</PlatformToolset> - </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>$(SolutionDir)build\$(PlatformName)\bin</OutDir> - <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <LinkIncremental>false</LinkIncremental> - <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> - <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> - </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ClCompile> - <WarningLevel>Level1</WarningLevel> - <PrecompiledHeader> - </PrecompiledHeader> - <Optimization>MaxSpeed</Optimization> - <FunctionLevelLinking>true</FunctionLevelLinking> - <IntrinsicFunctions>true</IntrinsicFunctions> - <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;XTRAY_EXPORTS;_STL70_;_STATIC_CPPLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <MultiProcessorCompilation>true</MultiProcessorCompilation> - <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - </ClCompile> - <Link> - <SubSystem>Windows</SubSystem> - <GenerateDebugInformation>true</GenerateDebugInformation> - <EnableCOMDATFolding>true</EnableCOMDATFolding> - <OptimizeReferences>true</OptimizeReferences> - <ModuleDefinitionFile>xtray.def</ModuleDefinitionFile> - <AdditionalDependencies>ntstc_msvcrt.lib;%(AdditionalDependencies)</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <ClCompile> - <WarningLevel>Level1</WarningLevel> - <PrecompiledHeader> - </PrecompiledHeader> - <Optimization>MaxSpeed</Optimization> - <FunctionLevelLinking>true</FunctionLevelLinking> - <IntrinsicFunctions>true</IntrinsicFunctions> - <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;XTRAY_EXPORTS;_STL70_;_STATIC_CPPLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <MultiProcessorCompilation>true</MultiProcessorCompilation> - <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - </ClCompile> - <Link> - <SubSystem>Windows</SubSystem> - <GenerateDebugInformation>true</GenerateDebugInformation> - <EnableCOMDATFolding>true</EnableCOMDATFolding> - <OptimizeReferences>true</OptimizeReferences> - <ModuleDefinitionFile>xtray.def</ModuleDefinitionFile> - <AdditionalDependencies>ntstc_msvcrt.lib;%(AdditionalDependencies)</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemGroup> - <None Include="bitmaps\sd.bmp" /> - <None Include="icons\banned.ico" /> - <None Include="icons\chan_msg.ico" /> - <None Include="icons\disconnected.ico" /> - <None Include="icons\highlight-1-3.ico" /> - <None Include="icons\highlight.ico" /> - <None Include="icons\kicked.ico" /> - <None Include="icons\priv_msg-1-2-2.ico" /> - <None Include="icons\sd.ico" /> - <None Include="icons\server_notice.ico" /> - <None Include="icons\hexchat.ico" /> - <None Include="xtray.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="xchat.cpp" /> - <ClCompile Include="xtray.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="xchat.h" /> - <ClInclude Include="xtray.h" /> - </ItemGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> - <ImportGroup Label="ExtensionTargets"> - </ImportGroup> -</Project> \ No newline at end of file diff --git a/plugins/xtray/xtray.vcxproj.filters b/plugins/xtray/xtray.vcxproj.filters deleted file mode 100644 index 637a896d..00000000 --- a/plugins/xtray/xtray.vcxproj.filters +++ /dev/null @@ -1,109 +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="xtray.def"> - <Filter>Resource Files</Filter> - </None> - <None Include="bitmaps\sd.bmp"> - <Filter>Resource Files\bitmaps</Filter> - </None> - <None Include="icons\banned.ico"> - <Filter>Resource Files\icons</Filter> - </None> - <None Include="icons\chan_msg.ico"> - <Filter>Resource Files\icons</Filter> - </None> - <None Include="icons\disconnected.ico"> - <Filter>Resource Files\icons</Filter> - </None> - <None Include="icons\highlight.ico"> - <Filter>Resource Files\icons</Filter> - </None> - <None Include="icons\highlight-1-3.ico"> - <Filter>Resource Files\icons</Filter> - </None> - <None Include="icons\kicked.ico"> - <Filter>Resource Files\icons</Filter> - </None> - <None Include="icons\priv_msg-1-2-2.ico"> - <Filter>Resource Files\icons</Filter> - </None> - <None Include="icons\sd.ico"> - <Filter>Resource Files\icons</Filter> - </None> - <None Include="icons\server_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="xchat.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="xtray.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="xchat.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="xtray.h"> - <Filter>Header Files</Filter> - </ClInclude> - </ItemGroup> -</Project> \ No newline at end of file diff --git a/plugins/xtray/xtray.vcxproj.user b/plugins/xtray/xtray.vcxproj.user deleted file mode 100644 index 695b5c78..00000000 --- a/plugins/xtray/xtray.vcxproj.user +++ /dev/null @@ -1,3 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> -</Project> \ No newline at end of file |