diff options
author | berkeviktor@aol.com <berkeviktor@aol.com> | 2011-02-24 04:13:14 +0100 |
---|---|---|
committer | berkeviktor@aol.com <berkeviktor@aol.com> | 2011-02-24 04:13:14 +0100 |
commit | f16af8be941b596dedac3bf4e371ee2d21f4b598 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /plugins/xtray/callbacks.cpp | |
parent | c6a031659b54230099c863b7ccdc03de4a4c7a2d (diff) |
nuke the repo
Diffstat (limited to 'plugins/xtray/callbacks.cpp')
-rw-r--r-- | plugins/xtray/callbacks.cpp | 734 |
1 files changed, 0 insertions, 734 deletions
diff --git a/plugins/xtray/callbacks.cpp b/plugins/xtray/callbacks.cpp deleted file mode 100644 index 636c114e..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 "utility.h" -#include "plugin.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, "Hilight"); - dwInfoFlags = NIIF_INFO; - break; - case CHAN_MESSAGE: - _snprintf(szInfo, 512, "%s:\r\n%s", word[1], word[2]); - _snprintf(szName, 64, "Channel Message"); - 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)) - { - 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, "XChat-WDK [%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; -} - |