From 4f768c2c74564c76410c704a7cd63cf6c5ecda9a Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Wed, 13 Mar 2013 11:06:51 +0000 Subject: StatusChange plugin adopted git-svn-id: http://svn.miranda-ng.org/main/trunk@3997 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/!NotAdopted/statuschange/StatusChange.dsp | 131 ------- plugins/!NotAdopted/statuschange/main.c | 402 --------------------- plugins/!NotAdopted/statuschange/resource.h | 28 -- plugins/!NotAdopted/statuschange/resource.rc | 145 -------- plugins/!NotAdopted/statuschange/resrc1.h | 21 -- plugins/StatusChange/StatusChange_10.vcxproj | 203 +++++++++++ .../StatusChange/StatusChange_10.vcxproj.filters | 44 +++ plugins/StatusChange/StatusChange_11.vcxproj | 207 +++++++++++ .../StatusChange/StatusChange_11.vcxproj.filters | 44 +++ plugins/StatusChange/res/Version.rc | 38 ++ plugins/StatusChange/res/resource.rc | 138 +++++++ plugins/StatusChange/src/Common.h | 41 +++ plugins/StatusChange/src/Version.h | 14 + plugins/StatusChange/src/main.cpp | 356 ++++++++++++++++++ plugins/StatusChange/src/resource.h | 34 ++ plugins/StatusChange/src/stdafx.cpp | 18 + 16 files changed, 1137 insertions(+), 727 deletions(-) delete mode 100644 plugins/!NotAdopted/statuschange/StatusChange.dsp delete mode 100644 plugins/!NotAdopted/statuschange/main.c delete mode 100644 plugins/!NotAdopted/statuschange/resource.h delete mode 100644 plugins/!NotAdopted/statuschange/resource.rc delete mode 100644 plugins/!NotAdopted/statuschange/resrc1.h create mode 100644 plugins/StatusChange/StatusChange_10.vcxproj create mode 100644 plugins/StatusChange/StatusChange_10.vcxproj.filters create mode 100644 plugins/StatusChange/StatusChange_11.vcxproj create mode 100644 plugins/StatusChange/StatusChange_11.vcxproj.filters create mode 100644 plugins/StatusChange/res/Version.rc create mode 100644 plugins/StatusChange/res/resource.rc create mode 100644 plugins/StatusChange/src/Common.h create mode 100644 plugins/StatusChange/src/Version.h create mode 100644 plugins/StatusChange/src/main.cpp create mode 100644 plugins/StatusChange/src/resource.h create mode 100644 plugins/StatusChange/src/stdafx.cpp diff --git a/plugins/!NotAdopted/statuschange/StatusChange.dsp b/plugins/!NotAdopted/statuschange/StatusChange.dsp deleted file mode 100644 index 012151331c..0000000000 --- a/plugins/!NotAdopted/statuschange/StatusChange.dsp +++ /dev/null @@ -1,131 +0,0 @@ -# Microsoft Developer Studio Project File - Name="StatusChange" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=StatusChange - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "StatusChange.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "StatusChange.mak" CFG="StatusChange - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "StatusChange - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "StatusChange - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "StatusChange - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "STATUSCHANGE_EXPORTS" /YX /FD /c -# ADD CPP /nologo /G5 /MD /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "STATUSCHANGE_EXPORTS" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x416 /d "NDEBUG" -# ADD RSC /l 0x416 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 Libctiny.lib kernel32.lib user32.lib /nologo /base:"0x11050000" /dll /pdb:none /machine:I386 -# SUBTRACT LINK32 /nodefaultlib - -!ELSEIF "$(CFG)" == "StatusChange - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "STATUSCHANGE_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "STATUSCHANGE_EXPORTS" /YX /FD /GZ /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x416 /d "_DEBUG" -# ADD RSC /l 0x416 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "StatusChange - Win32 Release" -# Name "StatusChange - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\main.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\buffer.h -# End Source File -# Begin Source File - -SOURCE=.\resource.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# Begin Source File - -SOURCE=..\..\miranda32\icos\message.ico -# End Source File -# Begin Source File - -SOURCE=.\resource.rc -# End Source File -# End Group -# Begin Source File - -SOURCE=.\readme_statuschange.txt -# End Source File -# Begin Source File - -SOURCE=.\translation_statuschange.txt -# End Source File -# End Target -# End Project diff --git a/plugins/!NotAdopted/statuschange/main.c b/plugins/!NotAdopted/statuschange/main.c deleted file mode 100644 index 3793f68228..0000000000 --- a/plugins/!NotAdopted/statuschange/main.c +++ /dev/null @@ -1,402 +0,0 @@ -#include -#include -#include "../../miranda32/random/plugins/newpluginapi.h" -#include "../../miranda32/database/m_database.h" -#include "../../miranda32/ui/contactlist/m_clist.h" -#include "../../miranda32/ui/options/m_options.h" -#include "../../miranda32/random/skin/m_skin.h" -#include "../../miranda32/random/langpack/m_langpack.h" -#include "../../miranda32/core/m_system.h" -#include "../../miranda32/protocols/protocols/m_protosvc.h" -#include "resource.h" -#include "resrc1.h" - -#define PLUGINNAME "StatusChange" - -typedef struct -{ - BOOL MessageRead; - BOOL MessageSend; - BOOL UrlRead; - BOOL UrlSend; - BOOL FileRead; - BOOL FileSend; - - int ChangeTo; // ID_STATUS_XXX - - BOOL IfOffline; - BOOL IfOnline; - BOOL IfAway; - BOOL IfNA; - BOOL IfOccupied; - BOOL IfDND; - BOOL IfFreeforchat; - BOOL IfInvisible; - BOOL IfOnthephone; - BOOL IfOuttolunch; -} TOPTIONS; - -HINSTANCE hInst; -PLUGINLINK *pluginLink; -HANDLE hNewMessage; -HANDLE hOptInit; -TOPTIONS Options; -HICON hIconMsg; -HICON hIconUrl; -HICON hIconFile; -static int StatusChangeGetMessage(WPARAM,LPARAM); -static BOOL CALLBACK DlgProcStatusChangeOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); - -PLUGININFO pluginInfo={ - sizeof(PLUGININFO), - PLUGINNAME, - PLUGIN_MAKE_VERSION(1,3,0,0), - "Change status when you send/receive and event.", - "Angelo Luiz Tartari", - "corsario-br@users.sourceforge.net", - "© 2002 Angelo Luiz Tartari", - "http://miranda-icq.sourceforge.net/", - 0, - 0 -}; - -void LoadOptions() -{ - ZeroMemory(&Options, sizeof(Options)); - Options.MessageRead = (BOOL)DBGetContactSettingByte(NULL, PLUGINNAME, "MessageRead", FALSE); - Options.MessageSend = (BOOL)DBGetContactSettingByte(NULL, PLUGINNAME, "MessageSend", TRUE); - Options.UrlRead = (BOOL)DBGetContactSettingByte(NULL, PLUGINNAME, "UrlRead", FALSE); - Options.UrlSend = (BOOL)DBGetContactSettingByte(NULL, PLUGINNAME, "UrlSend", TRUE); - Options.FileRead = (BOOL)DBGetContactSettingByte(NULL, PLUGINNAME, "FileRead", FALSE); - Options.FileSend = (BOOL)DBGetContactSettingByte(NULL, PLUGINNAME, "FileSend", TRUE); - Options.ChangeTo = (INT)DBGetContactSettingDword(NULL, PLUGINNAME, "ChangeTo", ID_STATUS_ONLINE); - Options.IfOffline = (BOOL)DBGetContactSettingByte(NULL, PLUGINNAME, "IfOffline", FALSE); - Options.IfOnline = (BOOL)DBGetContactSettingByte(NULL, PLUGINNAME, "IfOnline", FALSE); - Options.IfAway = (BOOL)DBGetContactSettingByte(NULL, PLUGINNAME, "IfAway", TRUE); - Options.IfNA = (BOOL)DBGetContactSettingByte(NULL, PLUGINNAME, "IfNA", TRUE); - Options.IfOccupied = (BOOL)DBGetContactSettingByte(NULL, PLUGINNAME, "IfOccupied", FALSE); - Options.IfDND = (BOOL)DBGetContactSettingByte(NULL, PLUGINNAME, "IfDND", FALSE); - Options.IfFreeforchat = (BOOL)DBGetContactSettingByte(NULL, PLUGINNAME, "IfFreeforchat", FALSE); - Options.IfInvisible = (BOOL)DBGetContactSettingByte(NULL, PLUGINNAME, "IfInvisible", FALSE); - Options.IfOnthephone = (BOOL)DBGetContactSettingByte(NULL, PLUGINNAME, "IfOnthephone", FALSE); - Options.IfOuttolunch = (BOOL)DBGetContactSettingByte(NULL, PLUGINNAME, "IfOuttolunch", FALSE); -} - -static int StatusChangeGetMessage(WPARAM wParam,LPARAM lParam) -{ - HANDLE hDbEvent = (HANDLE)lParam; - DBEVENTINFO dbe; - int status; - BOOL read, send, change_status; - - dbe.cbSize = sizeof(dbe); - dbe.cbBlob = 0; - CallService(MS_DB_EVENT_GET, (WPARAM)hDbEvent, (LPARAM)&dbe); - - status = (int)CallProtoService(dbe.szModule, PS_GETSTATUS, 0, 0); - if(!status) - status = CallService(MS_CLIST_GETSTATUSMODE, 0, 0); - - if(status == Options.ChangeTo) - return 0; - - switch (status) { - case ID_STATUS_OFFLINE : change_status = Options.IfOffline; break; - case ID_STATUS_ONLINE : change_status = Options.IfOnline; break; - case ID_STATUS_AWAY : change_status = Options.IfAway; break; - case ID_STATUS_NA : change_status = Options.IfNA; break; - case ID_STATUS_OCCUPIED : change_status = Options.IfOccupied; break; - case ID_STATUS_DND : change_status = Options.IfDND; break; - case ID_STATUS_FREECHAT : change_status = Options.IfFreeforchat; break; - case ID_STATUS_INVISIBLE : change_status = Options.IfInvisible; break; - case ID_STATUS_ONTHEPHONE : change_status = Options.IfOnthephone; break; - case ID_STATUS_OUTTOLUNCH : change_status = Options.IfOuttolunch; break; - default : change_status = FALSE; break; - } - - if (!change_status) - return 0; - - switch (dbe.eventType) { - case EVENTTYPE_MESSAGE : - read = Options.MessageRead; - send = Options.MessageSend; - break; - case EVENTTYPE_URL : - read = Options.UrlRead; - send = Options.UrlSend; - break; - case EVENTTYPE_FILE : - read = Options.FileRead; - send = Options.FileSend; - break; - break; - } - - // If is a message sent... - if (((DWORD)(dbe.flags & ((DWORD)DBEF_SENT))) == ((DWORD)(DBEF_SENT))) { - if (send) { - // change status - CallProtoService(dbe.szModule, PS_SETSTATUS, (LPARAM)(Options.ChangeTo), 0); - } - } - - // If is a message received... - else { - if (read) { - // change status - CallProtoService(dbe.szModule, PS_SETSTATUS, (LPARAM)(Options.ChangeTo), 0); - } - } - - return 0; -} - -int StatusChangeOptInit(WPARAM wParam,LPARAM lParam) -{ - OPTIONSDIALOGPAGE odp; - ZeroMemory(&odp,sizeof(odp)); - odp.cbSize = sizeof(odp); - odp.hInstance = hInst; - odp.pszTemplate = MAKEINTRESOURCE(IDD_OPTIONS); - odp.pszTitle = Translate(PLUGINNAME); - odp.pszGroup = Translate("Plugins"); - odp.flags = ODPF_BOLDGROUPS; - odp.pfnDlgProc = DlgProcStatusChangeOpts; - CallService(MS_OPT_ADDPAGE,wParam,(LPARAM)&odp); - return 0; -} - -static BOOL CALLBACK DlgProcStatusChangeOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) -{ - switch (msg) { - case WM_INITDIALOG: - TranslateDialogDefault(hwndDlg); - - hIconMsg = CopyImage(LoadSkinnedIcon(SKINICON_EVENT_MESSAGE), IMAGE_ICON, 16, 16, LR_COPYFROMRESOURCE); - SendDlgItemMessage(hwndDlg, IDC_MSGICON, STM_SETICON, (WPARAM)hIconMsg, 0); - hIconUrl = CopyImage(LoadSkinnedIcon(SKINICON_EVENT_URL), IMAGE_ICON, 16, 16, LR_COPYFROMRESOURCE); - SendDlgItemMessage(hwndDlg, IDC_URLICON, STM_SETICON, (WPARAM)hIconUrl, 0); - hIconFile = CopyImage(LoadSkinnedIcon(SKINICON_EVENT_FILE), IMAGE_ICON, 16, 16, LR_COPYFROMRESOURCE); - SendDlgItemMessage(hwndDlg, IDC_FILEICON, STM_SETICON, (WPARAM)hIconFile, 0); - - CheckDlgButton(hwndDlg, IDC_CHK_MESSAGEREAD, Options.MessageRead?BST_CHECKED:BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_CHK_MESSAGESEND, Options.MessageSend?BST_CHECKED:BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_CHK_URLREAD, Options.UrlRead?BST_CHECKED:BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_CHK_URLSEND, Options.UrlSend?BST_CHECKED:BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_CHK_FILEREAD, Options.FileRead?BST_CHECKED:BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_CHK_FILESEND, Options.FileSend?BST_CHECKED:BST_UNCHECKED); - - switch(Options.ChangeTo) { - case ID_STATUS_OFFLINE : CheckDlgButton(hwndDlg, IDC_RAD_OFFLINE, BST_CHECKED); break; - case ID_STATUS_ONLINE : CheckDlgButton(hwndDlg, IDC_RAD_ONLINE, BST_CHECKED); break; - case ID_STATUS_AWAY : CheckDlgButton(hwndDlg, IDC_RAD_AWAY, BST_CHECKED); break; - case ID_STATUS_DND : CheckDlgButton(hwndDlg, IDC_RAD_DND, BST_CHECKED); break; - case ID_STATUS_NA : CheckDlgButton(hwndDlg, IDC_RAD_NA, BST_CHECKED); break; - case ID_STATUS_OCCUPIED : CheckDlgButton(hwndDlg, IDC_RAD_OCCUPIED, BST_CHECKED); break; - case ID_STATUS_FREECHAT : CheckDlgButton(hwndDlg, IDC_RAD_FREECHAT, BST_CHECKED); break; - case ID_STATUS_INVISIBLE : CheckDlgButton(hwndDlg, IDC_RAD_INVISIBLE, BST_CHECKED); break; - case ID_STATUS_ONTHEPHONE : CheckDlgButton(hwndDlg, IDC_RAD_ONTHEPHONE, BST_CHECKED); break; - case ID_STATUS_OUTTOLUNCH : CheckDlgButton(hwndDlg, IDC_RAD_OUTTOLUNCH, BST_CHECKED); break; - break; - } - - CheckDlgButton(hwndDlg, IDC_CHK_OFFLINE, Options.IfOffline?BST_CHECKED:BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_CHK_ONLINE, Options.IfOnline?BST_CHECKED:BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_CHK_AWAY, Options.IfAway?BST_CHECKED:BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_CHK_DND, Options.IfDND?BST_CHECKED:BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_CHK_NA, Options.IfNA?BST_CHECKED:BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_CHK_OCCUPIED, Options.IfOccupied?BST_CHECKED:BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_CHK_FREECHAT, Options.IfFreeforchat?BST_CHECKED:BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_CHK_INVISIBLE, Options.IfInvisible?BST_CHECKED:BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_CHK_ONTHEPHONE, Options.IfOnthephone?BST_CHECKED:BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_CHK_OUTTOLUNCH, Options.IfOuttolunch?BST_CHECKED:BST_UNCHECKED); - return TRUE; - - case WM_COMMAND: - switch(LOWORD(wParam)) { - case IDC_CHK_MESSAGEREAD: - Options.MessageRead = !Options.MessageRead; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_CHK_MESSAGESEND: - Options.MessageSend = !Options.MessageSend; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_CHK_URLREAD: - Options.UrlRead = !Options.UrlRead; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_CHK_URLSEND: - Options.UrlSend = !Options.UrlSend; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_CHK_FILEREAD: - Options.FileRead = !Options.FileRead; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_CHK_FILESEND: - Options.FileSend = !Options.FileSend; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - - case IDC_RAD_OFFLINE: - Options.ChangeTo = ID_STATUS_OFFLINE; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_RAD_ONLINE: - Options.ChangeTo = ID_STATUS_ONLINE; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_RAD_AWAY: - Options.ChangeTo = ID_STATUS_AWAY; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_RAD_DND: - Options.ChangeTo = ID_STATUS_DND; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_RAD_NA: - Options.ChangeTo = ID_STATUS_NA; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_RAD_OCCUPIED: - Options.ChangeTo = ID_STATUS_OCCUPIED; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_RAD_FREECHAT: - Options.ChangeTo = ID_STATUS_FREECHAT; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_RAD_INVISIBLE: - Options.ChangeTo = ID_STATUS_INVISIBLE; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_RAD_ONTHEPHONE: - Options.ChangeTo = ID_STATUS_ONTHEPHONE; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_RAD_OUTTOLUNCH: - Options.ChangeTo = ID_STATUS_OUTTOLUNCH; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - - case IDC_CHK_OFFLINE: - Options.IfOffline = !Options.IfOffline; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_CHK_ONLINE: - Options.IfOnline = !Options.IfOnline; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_CHK_AWAY: - Options.IfAway = !Options.IfAway; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_CHK_DND: - Options.IfDND = !Options.IfDND; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_CHK_NA: - Options.IfNA = !Options.IfNA; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_CHK_OCCUPIED: - Options.IfOccupied = !Options.IfOccupied; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_CHK_FREECHAT: - Options.IfFreeforchat = !Options.IfFreeforchat; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_CHK_INVISIBLE: - Options.IfInvisible = !Options.IfInvisible; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_CHK_ONTHEPHONE: - Options.IfOnthephone = !Options.IfOnthephone; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_CHK_OUTTOLUNCH: - Options.IfOuttolunch = !Options.IfOuttolunch; - PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - } - break; - - case WM_NOTIFY: - switch(((LPNMHDR)lParam)->idFrom) { - case 0: - switch (((LPNMHDR)lParam)->code) { - case PSN_RESET: - LoadOptions(); - return TRUE; - case PSN_APPLY: - DBWriteContactSettingByte(NULL, PLUGINNAME, "MessageRead", (BYTE)Options.MessageRead); - DBWriteContactSettingByte(NULL, PLUGINNAME, "MessageSend", (BYTE)Options.MessageSend); - DBWriteContactSettingByte(NULL, PLUGINNAME, "UrlRead", (BYTE)Options.UrlRead); - DBWriteContactSettingByte(NULL, PLUGINNAME, "UrlSend", (BYTE)Options.UrlSend); - DBWriteContactSettingByte(NULL, PLUGINNAME, "FileRead", (BYTE)Options.FileRead); - DBWriteContactSettingByte(NULL, PLUGINNAME, "FileSend", (BYTE)Options.FileSend); - DBWriteContactSettingDword(NULL, PLUGINNAME, "ChangeTo", (DWORD)Options.ChangeTo); - DBWriteContactSettingByte(NULL, PLUGINNAME, "IfOffline", (BYTE)Options.IfOffline); - DBWriteContactSettingByte(NULL, PLUGINNAME, "IfOnline", (BYTE)Options.IfOnline); - DBWriteContactSettingByte(NULL, PLUGINNAME, "IfAway", (BYTE)Options.IfAway); - DBWriteContactSettingByte(NULL, PLUGINNAME, "IfNA", (BYTE)Options.IfNA); - DBWriteContactSettingByte(NULL, PLUGINNAME, "IfDND", (BYTE)Options.IfDND); - DBWriteContactSettingByte(NULL, PLUGINNAME, "IfOccupied", (BYTE)Options.IfOccupied); - DBWriteContactSettingByte(NULL, PLUGINNAME, "IfFreeforchat", (BYTE)Options.IfFreeforchat); - DBWriteContactSettingByte(NULL, PLUGINNAME, "IfInvisible", (BYTE)Options.IfInvisible); - DBWriteContactSettingByte(NULL, PLUGINNAME, "IfOnthephone", (BYTE)Options.IfOnthephone); - DBWriteContactSettingByte(NULL, PLUGINNAME, "IfOuttolunch", (BYTE)Options.IfOuttolunch); - return TRUE; - break; - } - break; - break; - } - break; - - case WM_DESTROY: - DestroyIcon(hIconMsg); - DestroyIcon(hIconUrl); - DestroyIcon(hIconFile); - break; - } - - return FALSE; -} - -BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) -{ - hInst = hinstDLL; - DisableThreadLibraryCalls(hInst); - return TRUE; -} - -__declspec(dllexport) PLUGININFO* MirandaPluginInfo(DWORD mirandaVersion) -{ - return &pluginInfo; -} - -int __declspec(dllexport) Load(PLUGINLINK *link) -{ - pluginLink = link; - - hOptInit = HookEvent(ME_OPT_INITIALISE,StatusChangeOptInit); - hNewMessage = HookEvent(ME_DB_EVENT_ADDED,StatusChangeGetMessage); - - // Plugin Sweeper support - DBWriteContactSettingString(NULL, "Uninstall", Translate(PLUGINNAME), PLUGINNAME); - - LoadOptions(); - - return 0; -} - -int __declspec(dllexport) Unload(void) -{ - if(hOptInit) UnhookEvent(hOptInit); - if(hNewMessage) UnhookEvent(hNewMessage); - return 0; -} diff --git a/plugins/!NotAdopted/statuschange/resource.h b/plugins/!NotAdopted/statuschange/resource.h deleted file mode 100644 index 03dc8e0fbd..0000000000 --- a/plugins/!NotAdopted/statuschange/resource.h +++ /dev/null @@ -1,28 +0,0 @@ -#define IDC_CHK_OFFLINE 1001 -#define IDC_CHK_ONLINE 1002 -#define IDC_CHK_AWAY 1003 -#define IDC_CHK_DND 1004 -#define IDC_CHK_NA 1005 -#define IDC_CHK_OCCUPIED 1006 -#define IDC_CHK_FREECHAT 1007 -#define IDC_CHK_INVISIBLE 1008 - -#define IDC_RAD_OFFLINE 2001 -#define IDC_RAD_ONLINE 2002 -#define IDC_RAD_AWAY 2003 -#define IDC_RAD_DND 2004 -#define IDC_RAD_NA 2005 -#define IDC_RAD_OCCUPIED 2006 -#define IDC_RAD_FREECHAT 2007 -#define IDC_RAD_INVISIBLE 2008 - -#define IDC_CHK_MESSAGEREAD 3001 -#define IDC_CHK_MESSAGESEND 3002 -#define IDC_CHK_URLREAD 3003 -#define IDC_CHK_URLSEND 3004 -#define IDC_CHK_FILEREAD 3005 -#define IDC_CHK_FILESEND 3006 - -#define IDC_MSGICON 4001 -#define IDC_URLICON 4002 -#define IDC_FILEICON 4003 diff --git a/plugins/!NotAdopted/statuschange/resource.rc b/plugins/!NotAdopted/statuschange/resource.rc deleted file mode 100644 index b8f15a8cc4..0000000000 --- a/plugins/!NotAdopted/statuschange/resource.rc +++ /dev/null @@ -1,145 +0,0 @@ -//Microsoft Developer Studio generated resource script. -// -#include "resrc1.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#define APSTUDIO_HIDDEN_SYMBOLS -#include "windows.h" -#undef APSTUDIO_HIDDEN_SYMBOLS -#include "resource.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// Portuguese (Brazil) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_PTB) -#ifdef _WIN32 -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_OPTIONS DIALOGEX 0, 0, 316, 234 -STYLE DS_MODALFRAME | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE -EXSTYLE WS_EX_CONTROLPARENT -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "",IDC_CHK_MESSAGESEND,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,165,27,10,8 - CONTROL "",IDC_CHK_MESSAGEREAD,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,200,27,10,8 - CONTROL "",IDC_CHK_URLSEND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 165,38,10,8 - CONTROL "",IDC_CHK_URLREAD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 200,38,10,8 - CONTROL "",IDC_CHK_FILESEND,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,165,49,10,8 - CONTROL "",IDC_CHK_FILEREAD,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,200,49,10,8 - CONTROL "Offline",IDC_RAD_OFFLINE,"Button",BS_AUTORADIOBUTTON | - WS_GROUP | WS_TABSTOP,60,88,95,10 - CONTROL "Online",IDC_RAD_ONLINE,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,60,98,95,10 - CONTROL "Away",IDC_RAD_AWAY,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,60,108,95,10 - CONTROL "NA",IDC_RAD_NA,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, - 60,118,95,10 - CONTROL "Occupied",IDC_RAD_OCCUPIED,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,60,128,95,10 - CONTROL "DND",IDC_RAD_DND,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,165,88,95,10 - CONTROL "Free for chat",IDC_RAD_FREECHAT,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,165,98,95,10 - CONTROL "Invisible",IDC_RAD_INVISIBLE,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,165,108,95,10 - CONTROL "On the phone",IDC_RAD_ONTHEPHONE,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,165,118,95,10 - CONTROL "Out to lunch",IDC_RAD_OUTTOLUNCH,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,165,128,95,10 - CONTROL "Offline",IDC_CHK_OFFLINE,"Button",BS_AUTOCHECKBOX | - WS_DISABLED | WS_TABSTOP,60,165,95,10 - CONTROL "Online",IDC_CHK_ONLINE,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,60,175,95,10 - CONTROL "Away",IDC_CHK_AWAY,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,60,185,95,10 - CONTROL "NA",IDC_CHK_NA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,60, - 195,95,10 - CONTROL "Occupied",IDC_CHK_OCCUPIED,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,60,204,95,10 - CONTROL "DND",IDC_CHK_DND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 165,165,95,10 - CONTROL "Free for chat",IDC_CHK_FREECHAT,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,165,175,95,10 - CONTROL "Invisible",IDC_CHK_INVISIBLE,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,165,185,95,10 - CONTROL "On the phone",IDC_CHK_ONTHEPHONE,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,165,195,95,10 - CONTROL "Out to lunch",IDC_CHK_OUTTOLUNCH,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,165,205,95,10 - GROUPBOX "On events...",-1,45,10,220,55,WS_GROUP - LTEXT "Send",-1,160,17,27,9,NOT WS_GROUP - LTEXT "Receive",-1,190,17,42,9,NOT WS_GROUP - LTEXT "Message",-1,73,27,85,8,NOT WS_GROUP - LTEXT "URL",-1,73,38,85,8,NOT WS_GROUP - LTEXT "File transfer",-1,73,49,85,8,NOT WS_GROUP - GROUPBOX "...change status to...",-1,45,73,220,68,WS_GROUP - GROUPBOX "... if status is...",-1,45,150,220,68,WS_GROUP - ICON "",IDC_MSGICON,51,20,20,20,SS_CENTERIMAGE - ICON "",IDC_URLICON,51,32,20,20,SS_CENTERIMAGE - ICON "",IDC_FILEICON,51,44,20,20,SS_CENTERIMAGE -END - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resrc1.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""windows.h""\r\n" - "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""resource.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - -#endif // Portuguese (Brazil) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/plugins/!NotAdopted/statuschange/resrc1.h b/plugins/!NotAdopted/statuschange/resrc1.h deleted file mode 100644 index b2a317cd08..0000000000 --- a/plugins/!NotAdopted/statuschange/resrc1.h +++ /dev/null @@ -1,21 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. -// Used by resource.rc -// -#define IDD_OPTIONS 10 -#define IDC_RAD_ONTHEPHONE 1010 -#define IDC_RAD_OUTTOLUNCH 1011 -#define IDC_CHK_ONTHEPHONE 1012 -#define IDC_CHK_OUTTOLUNCH 1013 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NO_MFC 1 -#define _APS_NEXT_RESOURCE_VALUE 101 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1016 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/plugins/StatusChange/StatusChange_10.vcxproj b/plugins/StatusChange/StatusChange_10.vcxproj new file mode 100644 index 0000000000..bd2d8f9558 --- /dev/null +++ b/plugins/StatusChange/StatusChange_10.vcxproj @@ -0,0 +1,203 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {D09881C7-E189-49AD-919E-F64355F8EFD0} + StatusChange + + + + DynamicLibrary + Unicode + + + DynamicLibrary + Unicode + + + DynamicLibrary + Unicode + true + + + DynamicLibrary + Unicode + true + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Configuration)\Plugins\ + $(SolutionDir)$(Configuration)64\Plugins\ + $(SolutionDir)$(Configuration)\Obj\$(ProjectName)\ + $(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\ + $(SolutionDir)$(Configuration)\Plugins\ + $(SolutionDir)$(Configuration)64\Plugins\ + $(SolutionDir)$(Configuration)\Obj\$(ProjectName)\ + $(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\ + true + + + + true + true + Full + Level3 + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + ..\..\include;%(AdditionalIncludeDirectories) + Common.h + Use + Size + + + NDEBUG;%(PreprocessorDefinitions) + ..\..\..\include\msapi + + + true + Windows + $(IntDir)$(TargetName).lib + 0x11050000 + $(ProfileDir)..\..\bin10\lib + false + true + true + true + /PDBALTPATH:%_PDB% %(AdditionalOptions) + + + + + true + true + Full + Level3 + WIN64;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + ..\..\include;%(AdditionalIncludeDirectories) + Common.h + Use + Size + + + NDEBUG;%(PreprocessorDefinitions) + ..\..\..\include\msapi + + + true + Windows + $(IntDir)$(TargetName).lib + 0x11050000 + $(ProfileDir)..\..\bin10\lib + false + true + true + true + /PDBALTPATH:%_PDB% %(AdditionalOptions) + + + + + MultiThreadedDebugDLL + false + Disabled + Level3 + true + EditAndContinue + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + EnableFastChecks + ..\..\include;%(AdditionalIncludeDirectories) + Common.h + Use + + + _DEBUG;%(PreprocessorDefinitions) + ..\..\..\include\msapi + + + true + true + Windows + $(IntDir)$(TargetName).lib + $(ProfileDir)..\..\bin10\lib + false + 0x11050000 + + + + + MultiThreadedDebugDLL + false + Disabled + Level3 + ProgramDatabase + WIN64;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + EnableFastChecks + ..\..\include;%(AdditionalIncludeDirectories) + Common.h + Use + + + _DEBUG;%(PreprocessorDefinitions) + ..\..\..\include\msapi + + + true + true + Windows + $(IntDir)$(TargetName).lib + $(ProfileDir)..\..\bin10\lib + false + 0x11050000 + + + + + + + + + + + + + + + Create + + + + + + \ No newline at end of file diff --git a/plugins/StatusChange/StatusChange_10.vcxproj.filters b/plugins/StatusChange/StatusChange_10.vcxproj.filters new file mode 100644 index 0000000000..f1d452f3a0 --- /dev/null +++ b/plugins/StatusChange/StatusChange_10.vcxproj.filters @@ -0,0 +1,44 @@ + + + + + {90e2ea3a-595b-4258-98c7-358c428811c4} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {4ccce8b6-d915-4c31-8631-5296cb3aa897} + h;hpp;hxx;hm;inl + + + {41a4e105-989e-4c8c-99e7-78b30bd0277f} + ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe + + + + + Header Files + + + Header Files + + + Header Files + + + + + Resource Files + + + Resource Files + + + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/plugins/StatusChange/StatusChange_11.vcxproj b/plugins/StatusChange/StatusChange_11.vcxproj new file mode 100644 index 0000000000..0d7206430d --- /dev/null +++ b/plugins/StatusChange/StatusChange_11.vcxproj @@ -0,0 +1,207 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {D09881C7-E189-49AD-919E-F64355F8EFD0} + StatusChange + + + + DynamicLibrary + v110_xp + Unicode + + + DynamicLibrary + v110_xp + Unicode + + + DynamicLibrary + v110_xp + Unicode + true + + + DynamicLibrary + v110_xp + Unicode + true + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Configuration)\Plugins\ + $(SolutionDir)$(Configuration)64\Plugins\ + $(SolutionDir)$(Configuration)\Obj\$(ProjectName)\ + $(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\ + $(SolutionDir)$(Configuration)\Plugins\ + $(SolutionDir)$(Configuration)64\Plugins\ + $(SolutionDir)$(Configuration)\Obj\$(ProjectName)\ + $(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\ + true + + + + true + true + Full + Level3 + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + ..\..\include;%(AdditionalIncludeDirectories) + Common.h + Use + Size + + + NDEBUG;%(PreprocessorDefinitions) + ..\..\..\include\msapi + + + true + Windows + $(IntDir)$(TargetName).lib + 0x11050000 + $(ProfileDir)..\..\bin11\lib + false + true + true + true + /PDBALTPATH:%_PDB% %(AdditionalOptions) + + + + + true + true + Full + Level3 + WIN64;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + ..\..\include;%(AdditionalIncludeDirectories) + Common.h + Use + Size + + + NDEBUG;%(PreprocessorDefinitions) + ..\..\..\include\msapi + + + true + Windows + $(IntDir)$(TargetName).lib + 0x11050000 + $(ProfileDir)..\..\bin11\lib + false + true + true + true + /PDBALTPATH:%_PDB% %(AdditionalOptions) + + + + + MultiThreadedDebugDLL + false + Disabled + Level3 + true + EditAndContinue + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + EnableFastChecks + ..\..\include;%(AdditionalIncludeDirectories) + Common.h + Use + + + _DEBUG;%(PreprocessorDefinitions) + ..\..\..\include\msapi + + + true + true + Windows + $(IntDir)$(TargetName).lib + $(ProfileDir)..\..\bin11\lib + false + 0x11050000 + + + + + MultiThreadedDebugDLL + false + Disabled + Level3 + ProgramDatabase + WIN64;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + EnableFastChecks + ..\..\include;%(AdditionalIncludeDirectories) + Common.h + Use + + + _DEBUG;%(PreprocessorDefinitions) + ..\..\..\include\msapi + + + true + true + Windows + $(IntDir)$(TargetName).lib + $(ProfileDir)..\..\bin11\lib + false + 0x11050000 + + + + + + + + + + + + + + + Create + + + + + + \ No newline at end of file diff --git a/plugins/StatusChange/StatusChange_11.vcxproj.filters b/plugins/StatusChange/StatusChange_11.vcxproj.filters new file mode 100644 index 0000000000..f1d452f3a0 --- /dev/null +++ b/plugins/StatusChange/StatusChange_11.vcxproj.filters @@ -0,0 +1,44 @@ + + + + + {90e2ea3a-595b-4258-98c7-358c428811c4} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {4ccce8b6-d915-4c31-8631-5296cb3aa897} + h;hpp;hxx;hm;inl + + + {41a4e105-989e-4c8c-99e7-78b30bd0277f} + ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe + + + + + Header Files + + + Header Files + + + Header Files + + + + + Resource Files + + + Resource Files + + + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/plugins/StatusChange/res/Version.rc b/plugins/StatusChange/res/Version.rc new file mode 100644 index 0000000000..5bfbab4754 --- /dev/null +++ b/plugins/StatusChange/res/Version.rc @@ -0,0 +1,38 @@ +// Microsoft Visual C++ generated resource script. +// +#ifdef APSTUDIO_INVOKED +#error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + +#include "afxres.h" +#include "..\src\version.h" + +VS_VERSION_INFO VERSIONINFO + FILEVERSION __FILEVERSION_STRING + PRODUCTVERSION __FILEVERSION_STRING + FILEFLAGSMASK 0x17L +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x0L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "000004b0" + BEGIN + VALUE "FileDescription", __DESCRIPTION + VALUE "InternalName", __PLUGIN_NAME + VALUE "LegalCopyright", __COPYRIGHT + VALUE "OriginalFilename", __FILENAME + VALUE "ProductName", __PLUGIN_NAME + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0, 1200 + END +END diff --git a/plugins/StatusChange/res/resource.rc b/plugins/StatusChange/res/resource.rc new file mode 100644 index 0000000000..64dcfa21c3 --- /dev/null +++ b/plugins/StatusChange/res/resource.rc @@ -0,0 +1,138 @@ +// Microsoft Visual C++ generated resource script. +// +#include "..\src\resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// Portuguese (Brazil) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_PTB) +#ifdef _WIN32 +LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_OPTIONS DIALOGEX 0, 0, 316, 234 +STYLE DS_MODALFRAME | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE +EXSTYLE WS_EX_CONTROLPARENT +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "",IDC_CHK_MESSAGESEND,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,165,27,10,8 + CONTROL "",IDC_CHK_MESSAGEREAD,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,200,27,10,8 + CONTROL "",IDC_CHK_URLSEND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, + 165,38,10,8 + CONTROL "",IDC_CHK_URLREAD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, + 200,38,10,8 + CONTROL "",IDC_CHK_FILESEND,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,165,49,10,8 + CONTROL "",IDC_CHK_FILEREAD,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,200,49,10,8 + CONTROL "Offline",IDC_RAD_OFFLINE,"Button",BS_AUTORADIOBUTTON | + WS_GROUP | WS_TABSTOP,60,88,95,10 + CONTROL "Online",IDC_RAD_ONLINE,"Button",BS_AUTORADIOBUTTON | + WS_TABSTOP,60,98,95,10 + CONTROL "Away",IDC_RAD_AWAY,"Button",BS_AUTORADIOBUTTON | + WS_TABSTOP,60,108,95,10 + CONTROL "NA",IDC_RAD_NA,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, + 60,118,95,10 + CONTROL "Occupied",IDC_RAD_OCCUPIED,"Button",BS_AUTORADIOBUTTON | + WS_TABSTOP,60,128,95,10 + CONTROL "DND",IDC_RAD_DND,"Button",BS_AUTORADIOBUTTON | + WS_TABSTOP,165,88,95,10 + CONTROL "Free for chat",IDC_RAD_FREECHAT,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,165,98,95,10 + CONTROL "Invisible",IDC_RAD_INVISIBLE,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,165,108,95,10 + CONTROL "On the phone",IDC_RAD_ONTHEPHONE,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,165,118,95,10 + CONTROL "Out to lunch",IDC_RAD_OUTTOLUNCH,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,165,128,95,10 + CONTROL "Offline",IDC_CHK_OFFLINE,"Button",BS_AUTOCHECKBOX | + WS_DISABLED | WS_TABSTOP,60,165,95,10 + CONTROL "Online",IDC_CHK_ONLINE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,60,175,95,10 + CONTROL "Away",IDC_CHK_AWAY,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,60,185,95,10 + CONTROL "NA",IDC_CHK_NA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,60, + 195,95,10 + CONTROL "Occupied",IDC_CHK_OCCUPIED,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,60,204,95,10 + CONTROL "DND",IDC_CHK_DND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, + 165,165,95,10 + CONTROL "Free for chat",IDC_CHK_FREECHAT,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,165,175,95,10 + CONTROL "Invisible",IDC_CHK_INVISIBLE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,165,185,95,10 + CONTROL "On the phone",IDC_CHK_ONTHEPHONE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,165,195,95,10 + CONTROL "Out to lunch",IDC_CHK_OUTTOLUNCH,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,165,205,95,10 + GROUPBOX "On events...",-1,45,10,220,55,WS_GROUP + LTEXT "Send",-1,160,17,27,9,NOT WS_GROUP + LTEXT "Receive",-1,190,17,42,9,NOT WS_GROUP + LTEXT "Message",-1,73,27,85,8,NOT WS_GROUP + LTEXT "URL",-1,73,38,85,8,NOT WS_GROUP + LTEXT "File transfer",-1,73,49,85,8,NOT WS_GROUP + GROUPBOX "...change status to...",-1,45,73,220,68,WS_GROUP + GROUPBOX "... if status is...",-1,45,150,220,68,WS_GROUP + ICON "",IDC_MSGICON,51,20,20,20,SS_CENTERIMAGE + ICON "",IDC_URLICON,51,32,20,20,SS_CENTERIMAGE + ICON "",IDC_FILEICON,51,44,20,20,SS_CENTERIMAGE +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "..\\src\\resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\0" +END + +#endif // APSTUDIO_INVOKED + +#endif // Portuguese (Brazil) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/plugins/StatusChange/src/Common.h b/plugins/StatusChange/src/Common.h new file mode 100644 index 0000000000..f7568d19c1 --- /dev/null +++ b/plugins/StatusChange/src/Common.h @@ -0,0 +1,41 @@ +#define _CRT_SECURE_NO_WARNINGS +#define WIN32_LEAN_AND_MEAN + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "resource.h" +#include "version.h" + +#define PLUGINNAME "StatusChange" + +typedef struct +{ + BOOL MessageRead; + BOOL MessageSend; + BOOL UrlRead; + BOOL UrlSend; + BOOL FileRead; + BOOL FileSend; + + int ChangeTo; // ID_STATUS_XXX + + BOOL IfOffline; + BOOL IfOnline; + BOOL IfAway; + BOOL IfNA; + BOOL IfOccupied; + BOOL IfDND; + BOOL IfFreeforchat; + BOOL IfInvisible; + BOOL IfOnthephone; + BOOL IfOuttolunch; +} TOPTIONS; diff --git a/plugins/StatusChange/src/Version.h b/plugins/StatusChange/src/Version.h new file mode 100644 index 0000000000..798276bcd4 --- /dev/null +++ b/plugins/StatusChange/src/Version.h @@ -0,0 +1,14 @@ +#define __MAJOR_VERSION 1 +#define __MINOR_VERSION 3 +#define __RELEASE_NUM 0 +#define __BUILD_NUM 0 + +#define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM + +#define __PLUGIN_NAME "Status change" +#define __FILENAME "StatusChange.dll" +#define __DESCRIPTION "Change status when you send/receive and event." +#define __AUTHOR "Angelo Luiz Tartari" +#define __AUTHOREMAIL "corsario-br@users.sourceforge.net" +#define __AUTHORWEB "http://miranda-ng.org/" +#define __COPYRIGHT "© 2002 Angelo Luiz Tartari" diff --git a/plugins/StatusChange/src/main.cpp b/plugins/StatusChange/src/main.cpp new file mode 100644 index 0000000000..18e7802951 --- /dev/null +++ b/plugins/StatusChange/src/main.cpp @@ -0,0 +1,356 @@ +#include "Common.h" + +HINSTANCE hInst; +TOPTIONS Options; +HICON hIconMsg; +HICON hIconUrl; +HICON hIconFile; +int hLangpack; + +PLUGININFOEX pluginInfo={ + sizeof(PLUGININFOEX), + __PLUGIN_NAME, + PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM), + __DESCRIPTION, + __AUTHOR, + __AUTHOREMAIL, + __COPYRIGHT, + __AUTHORWEB, + UNICODE_AWARE, + // {1ACB2ED1-C1ED-43EE-89BD-086686F6EBB5} + {0x1acb2ed1, 0xc1ed, 0x43ee, {0x89, 0xbd, 0x8, 0x66, 0x86, 0xf6, 0xeb, 0xb5}} +}; + +void LoadOptions() +{ + ZeroMemory(&Options, sizeof(Options)); + Options.MessageRead = (BOOL)db_get_b(NULL, PLUGINNAME, "MessageRead", FALSE); + Options.MessageSend = (BOOL)db_get_b(NULL, PLUGINNAME, "MessageSend", TRUE); + Options.UrlRead = (BOOL)db_get_b(NULL, PLUGINNAME, "UrlRead", FALSE); + Options.UrlSend = (BOOL)db_get_b(NULL, PLUGINNAME, "UrlSend", TRUE); + Options.FileRead = (BOOL)db_get_b(NULL, PLUGINNAME, "FileRead", FALSE); + Options.FileSend = (BOOL)db_get_b(NULL, PLUGINNAME, "FileSend", TRUE); + Options.ChangeTo = (INT)db_get_dw(NULL, PLUGINNAME, "ChangeTo", ID_STATUS_ONLINE); + Options.IfOffline = (BOOL)db_get_b(NULL, PLUGINNAME, "IfOffline", FALSE); + Options.IfOnline = (BOOL)db_get_b(NULL, PLUGINNAME, "IfOnline", FALSE); + Options.IfAway = (BOOL)db_get_b(NULL, PLUGINNAME, "IfAway", TRUE); + Options.IfNA = (BOOL)db_get_b(NULL, PLUGINNAME, "IfNA", TRUE); + Options.IfOccupied = (BOOL)db_get_b(NULL, PLUGINNAME, "IfOccupied", FALSE); + Options.IfDND = (BOOL)db_get_b(NULL, PLUGINNAME, "IfDND", FALSE); + Options.IfFreeforchat = (BOOL)db_get_b(NULL, PLUGINNAME, "IfFreeforchat", FALSE); + Options.IfInvisible = (BOOL)db_get_b(NULL, PLUGINNAME, "IfInvisible", FALSE); + Options.IfOnthephone = (BOOL)db_get_b(NULL, PLUGINNAME, "IfOnthephone", FALSE); + Options.IfOuttolunch = (BOOL)db_get_b(NULL, PLUGINNAME, "IfOuttolunch", FALSE); +} + +static int StatusChangeGetMessage(WPARAM wParam, LPARAM lParam) +{ + HANDLE hDbEvent = (HANDLE)lParam; + DBEVENTINFO dbe; + int status; + BOOL read, send, change_status; + + dbe.cbSize = sizeof(dbe); + dbe.cbBlob = 0; + CallService(MS_DB_EVENT_GET, (WPARAM)hDbEvent, (LPARAM)&dbe); + + status = (int)CallProtoService(dbe.szModule, PS_GETSTATUS, 0, 0); + if(!status) + status = CallService(MS_CLIST_GETSTATUSMODE, 0, 0); + + if(status == Options.ChangeTo) + return 0; + + switch (status) { + case ID_STATUS_OFFLINE : change_status = Options.IfOffline; break; + case ID_STATUS_ONLINE : change_status = Options.IfOnline; break; + case ID_STATUS_AWAY : change_status = Options.IfAway; break; + case ID_STATUS_NA : change_status = Options.IfNA; break; + case ID_STATUS_OCCUPIED : change_status = Options.IfOccupied; break; + case ID_STATUS_DND : change_status = Options.IfDND; break; + case ID_STATUS_FREECHAT : change_status = Options.IfFreeforchat; break; + case ID_STATUS_INVISIBLE : change_status = Options.IfInvisible; break; + case ID_STATUS_ONTHEPHONE : change_status = Options.IfOnthephone; break; + case ID_STATUS_OUTTOLUNCH : change_status = Options.IfOuttolunch; break; + default : change_status = FALSE; break; + } + + if (!change_status) + return 0; + + switch (dbe.eventType) { + case EVENTTYPE_MESSAGE : + read = Options.MessageRead; + send = Options.MessageSend; + break; + case EVENTTYPE_URL : + read = Options.UrlRead; + send = Options.UrlSend; + break; + case EVENTTYPE_FILE : + read = Options.FileRead; + send = Options.FileSend; + break; + break; + } + + // If is a message sent... + if (((DWORD)(dbe.flags & ((DWORD)DBEF_SENT))) == ((DWORD)(DBEF_SENT))) { + if (send) { + // change status + CallProtoService(dbe.szModule, PS_SETSTATUS, (LPARAM)(Options.ChangeTo), 0); + } + } + + // If is a message received... + else { + if (read) { + // change status + CallProtoService(dbe.szModule, PS_SETSTATUS, (LPARAM)(Options.ChangeTo), 0); + } + } + + return 0; +} + +static BOOL CALLBACK DlgProcStatusChangeOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +{ + switch (msg) { + case WM_INITDIALOG: + TranslateDialogDefault(hwndDlg); + + hIconMsg = (HICON)CopyImage(LoadSkinnedIcon(SKINICON_EVENT_MESSAGE), IMAGE_ICON, 16, 16, LR_COPYFROMRESOURCE); + SendDlgItemMessage(hwndDlg, IDC_MSGICON, STM_SETICON, (WPARAM)hIconMsg, 0); + hIconUrl = (HICON)CopyImage(LoadSkinnedIcon(SKINICON_EVENT_URL), IMAGE_ICON, 16, 16, LR_COPYFROMRESOURCE); + SendDlgItemMessage(hwndDlg, IDC_URLICON, STM_SETICON, (WPARAM)hIconUrl, 0); + hIconFile = (HICON)CopyImage(LoadSkinnedIcon(SKINICON_EVENT_FILE), IMAGE_ICON, 16, 16, LR_COPYFROMRESOURCE); + SendDlgItemMessage(hwndDlg, IDC_FILEICON, STM_SETICON, (WPARAM)hIconFile, 0); + + CheckDlgButton(hwndDlg, IDC_CHK_MESSAGEREAD, Options.MessageRead?BST_CHECKED:BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_CHK_MESSAGESEND, Options.MessageSend?BST_CHECKED:BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_CHK_URLREAD, Options.UrlRead?BST_CHECKED:BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_CHK_URLSEND, Options.UrlSend?BST_CHECKED:BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_CHK_FILEREAD, Options.FileRead?BST_CHECKED:BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_CHK_FILESEND, Options.FileSend?BST_CHECKED:BST_UNCHECKED); + + switch(Options.ChangeTo) { + case ID_STATUS_OFFLINE : CheckDlgButton(hwndDlg, IDC_RAD_OFFLINE, BST_CHECKED); break; + case ID_STATUS_ONLINE : CheckDlgButton(hwndDlg, IDC_RAD_ONLINE, BST_CHECKED); break; + case ID_STATUS_AWAY : CheckDlgButton(hwndDlg, IDC_RAD_AWAY, BST_CHECKED); break; + case ID_STATUS_DND : CheckDlgButton(hwndDlg, IDC_RAD_DND, BST_CHECKED); break; + case ID_STATUS_NA : CheckDlgButton(hwndDlg, IDC_RAD_NA, BST_CHECKED); break; + case ID_STATUS_OCCUPIED : CheckDlgButton(hwndDlg, IDC_RAD_OCCUPIED, BST_CHECKED); break; + case ID_STATUS_FREECHAT : CheckDlgButton(hwndDlg, IDC_RAD_FREECHAT, BST_CHECKED); break; + case ID_STATUS_INVISIBLE : CheckDlgButton(hwndDlg, IDC_RAD_INVISIBLE, BST_CHECKED); break; + case ID_STATUS_ONTHEPHONE : CheckDlgButton(hwndDlg, IDC_RAD_ONTHEPHONE, BST_CHECKED); break; + case ID_STATUS_OUTTOLUNCH : CheckDlgButton(hwndDlg, IDC_RAD_OUTTOLUNCH, BST_CHECKED); break; + break; + } + + CheckDlgButton(hwndDlg, IDC_CHK_OFFLINE, Options.IfOffline?BST_CHECKED:BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_CHK_ONLINE, Options.IfOnline?BST_CHECKED:BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_CHK_AWAY, Options.IfAway?BST_CHECKED:BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_CHK_DND, Options.IfDND?BST_CHECKED:BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_CHK_NA, Options.IfNA?BST_CHECKED:BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_CHK_OCCUPIED, Options.IfOccupied?BST_CHECKED:BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_CHK_FREECHAT, Options.IfFreeforchat?BST_CHECKED:BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_CHK_INVISIBLE, Options.IfInvisible?BST_CHECKED:BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_CHK_ONTHEPHONE, Options.IfOnthephone?BST_CHECKED:BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_CHK_OUTTOLUNCH, Options.IfOuttolunch?BST_CHECKED:BST_UNCHECKED); + return TRUE; + + case WM_COMMAND: + switch(LOWORD(wParam)) { + case IDC_CHK_MESSAGEREAD: + Options.MessageRead = !Options.MessageRead; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_CHK_MESSAGESEND: + Options.MessageSend = !Options.MessageSend; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_CHK_URLREAD: + Options.UrlRead = !Options.UrlRead; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_CHK_URLSEND: + Options.UrlSend = !Options.UrlSend; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_CHK_FILEREAD: + Options.FileRead = !Options.FileRead; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_CHK_FILESEND: + Options.FileSend = !Options.FileSend; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + + case IDC_RAD_OFFLINE: + Options.ChangeTo = ID_STATUS_OFFLINE; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_RAD_ONLINE: + Options.ChangeTo = ID_STATUS_ONLINE; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_RAD_AWAY: + Options.ChangeTo = ID_STATUS_AWAY; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_RAD_DND: + Options.ChangeTo = ID_STATUS_DND; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_RAD_NA: + Options.ChangeTo = ID_STATUS_NA; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_RAD_OCCUPIED: + Options.ChangeTo = ID_STATUS_OCCUPIED; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_RAD_FREECHAT: + Options.ChangeTo = ID_STATUS_FREECHAT; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_RAD_INVISIBLE: + Options.ChangeTo = ID_STATUS_INVISIBLE; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_RAD_ONTHEPHONE: + Options.ChangeTo = ID_STATUS_ONTHEPHONE; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_RAD_OUTTOLUNCH: + Options.ChangeTo = ID_STATUS_OUTTOLUNCH; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + + case IDC_CHK_OFFLINE: + Options.IfOffline = !Options.IfOffline; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_CHK_ONLINE: + Options.IfOnline = !Options.IfOnline; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_CHK_AWAY: + Options.IfAway = !Options.IfAway; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_CHK_DND: + Options.IfDND = !Options.IfDND; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_CHK_NA: + Options.IfNA = !Options.IfNA; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_CHK_OCCUPIED: + Options.IfOccupied = !Options.IfOccupied; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_CHK_FREECHAT: + Options.IfFreeforchat = !Options.IfFreeforchat; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_CHK_INVISIBLE: + Options.IfInvisible = !Options.IfInvisible; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_CHK_ONTHEPHONE: + Options.IfOnthephone = !Options.IfOnthephone; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_CHK_OUTTOLUNCH: + Options.IfOuttolunch = !Options.IfOuttolunch; + PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + } + break; + + case WM_NOTIFY: + switch(((LPNMHDR)lParam)->idFrom) { + case 0: + switch (((LPNMHDR)lParam)->code) { + case PSN_RESET: + LoadOptions(); + return TRUE; + case PSN_APPLY: + db_set_b(NULL, PLUGINNAME, "MessageRead", (BYTE)Options.MessageRead); + db_set_b(NULL, PLUGINNAME, "MessageSend", (BYTE)Options.MessageSend); + db_set_b(NULL, PLUGINNAME, "UrlRead", (BYTE)Options.UrlRead); + db_set_b(NULL, PLUGINNAME, "UrlSend", (BYTE)Options.UrlSend); + db_set_b(NULL, PLUGINNAME, "FileRead", (BYTE)Options.FileRead); + db_set_b(NULL, PLUGINNAME, "FileSend", (BYTE)Options.FileSend); + db_set_dw(NULL, PLUGINNAME, "ChangeTo", (DWORD)Options.ChangeTo); + db_set_b(NULL, PLUGINNAME, "IfOffline", (BYTE)Options.IfOffline); + db_set_b(NULL, PLUGINNAME, "IfOnline", (BYTE)Options.IfOnline); + db_set_b(NULL, PLUGINNAME, "IfAway", (BYTE)Options.IfAway); + db_set_b(NULL, PLUGINNAME, "IfNA", (BYTE)Options.IfNA); + db_set_b(NULL, PLUGINNAME, "IfDND", (BYTE)Options.IfDND); + db_set_b(NULL, PLUGINNAME, "IfOccupied", (BYTE)Options.IfOccupied); + db_set_b(NULL, PLUGINNAME, "IfFreeforchat", (BYTE)Options.IfFreeforchat); + db_set_b(NULL, PLUGINNAME, "IfInvisible", (BYTE)Options.IfInvisible); + db_set_b(NULL, PLUGINNAME, "IfOnthephone", (BYTE)Options.IfOnthephone); + db_set_b(NULL, PLUGINNAME, "IfOuttolunch", (BYTE)Options.IfOuttolunch); + return TRUE; + break; + } + break; + break; + } + break; + + case WM_DESTROY: + DestroyIcon(hIconMsg); + DestroyIcon(hIconUrl); + DestroyIcon(hIconFile); + break; + } + + return FALSE; +} + +int StatusChangeOptInit(WPARAM wParam, LPARAM lParam) +{ + OPTIONSDIALOGPAGE odp = {0}; + odp.cbSize = sizeof(odp); + odp.hInstance = hInst; + odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPTIONS); + odp.ptszTitle = LPGENT("Status Change"); + odp.ptszGroup = LPGENT("Status"); + odp.flags = ODPF_BOLDGROUPS | ODPF_TCHAR; + odp.pfnDlgProc = DlgProcStatusChangeOpts; + Options_AddPage(wParam, &odp); + return 0; +} + +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ + hInst = hinstDLL; + return TRUE; +} + +extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) +{ + return &pluginInfo; +} + +extern "C" __declspec(dllexport) int Load(void) +{ + mir_getLP(&pluginInfo); + + HookEvent(ME_OPT_INITIALISE, StatusChangeOptInit); + HookEvent(ME_DB_EVENT_ADDED, StatusChangeGetMessage); + + LoadOptions(); + + return 0; +} + +extern "C" __declspec(dllexport) int Unload(void) +{ + return 0; +} diff --git a/plugins/StatusChange/src/resource.h b/plugins/StatusChange/src/resource.h new file mode 100644 index 0000000000..6d5cd3b318 --- /dev/null +++ b/plugins/StatusChange/src/resource.h @@ -0,0 +1,34 @@ +#define IDD_OPTIONS 10 + +#define IDC_CHK_OFFLINE 1001 +#define IDC_CHK_ONLINE 1002 +#define IDC_CHK_AWAY 1003 +#define IDC_CHK_DND 1004 +#define IDC_CHK_NA 1005 +#define IDC_CHK_OCCUPIED 1006 +#define IDC_CHK_FREECHAT 1007 +#define IDC_CHK_INVISIBLE 1008 +#define IDC_CHK_ONTHEPHONE 1009 +#define IDC_CHK_OUTTOLUNCH 1010 + +#define IDC_RAD_OFFLINE 2001 +#define IDC_RAD_ONLINE 2002 +#define IDC_RAD_AWAY 2003 +#define IDC_RAD_DND 2004 +#define IDC_RAD_NA 2005 +#define IDC_RAD_OCCUPIED 2006 +#define IDC_RAD_FREECHAT 2007 +#define IDC_RAD_INVISIBLE 2008 +#define IDC_RAD_ONTHEPHONE 2009 +#define IDC_RAD_OUTTOLUNCH 2010 + +#define IDC_CHK_MESSAGEREAD 3001 +#define IDC_CHK_MESSAGESEND 3002 +#define IDC_CHK_URLREAD 3003 +#define IDC_CHK_URLSEND 3004 +#define IDC_CHK_FILEREAD 3005 +#define IDC_CHK_FILESEND 3006 + +#define IDC_MSGICON 4001 +#define IDC_URLICON 4002 +#define IDC_FILEICON 4003 diff --git a/plugins/StatusChange/src/stdafx.cpp b/plugins/StatusChange/src/stdafx.cpp new file mode 100644 index 0000000000..1976d867da --- /dev/null +++ b/plugins/StatusChange/src/stdafx.cpp @@ -0,0 +1,18 @@ +/* +Copyright (C) 2012-13 Miranda NG Project (http://miranda-ng.org) + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation version 2 +of the License. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "common.h" \ No newline at end of file -- cgit v1.2.3