From a249b34c4be0de060a44c342e43a43f95dcf1874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Wed, 13 Feb 2013 10:46:57 +0000 Subject: Added rps and statuschange plugins sources (not adopted) git-svn-id: http://svn.miranda-ng.org/main/trunk@3587 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 ++ 5 files changed, 727 insertions(+) create mode 100644 plugins/!NotAdopted/statuschange/StatusChange.dsp create mode 100644 plugins/!NotAdopted/statuschange/main.c create mode 100644 plugins/!NotAdopted/statuschange/resource.h create mode 100644 plugins/!NotAdopted/statuschange/resource.rc create mode 100644 plugins/!NotAdopted/statuschange/resrc1.h (limited to 'plugins/!NotAdopted/statuschange') diff --git a/plugins/!NotAdopted/statuschange/StatusChange.dsp b/plugins/!NotAdopted/statuschange/StatusChange.dsp new file mode 100644 index 0000000000..012151331c --- /dev/null +++ b/plugins/!NotAdopted/statuschange/StatusChange.dsp @@ -0,0 +1,131 @@ +# 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 new file mode 100644 index 0000000000..3793f68228 --- /dev/null +++ b/plugins/!NotAdopted/statuschange/main.c @@ -0,0 +1,402 @@ +#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 new file mode 100644 index 0000000000..03dc8e0fbd --- /dev/null +++ b/plugins/!NotAdopted/statuschange/resource.h @@ -0,0 +1,28 @@ +#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 new file mode 100644 index 0000000000..b8f15a8cc4 --- /dev/null +++ b/plugins/!NotAdopted/statuschange/resource.rc @@ -0,0 +1,145 @@ +//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 new file mode 100644 index 0000000000..b2a317cd08 --- /dev/null +++ b/plugins/!NotAdopted/statuschange/resrc1.h @@ -0,0 +1,21 @@ +//{{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 -- cgit v1.2.3