From b9036ccc6b6513998cce61b99b70b23b51e1627c Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Thu, 25 Dec 2014 19:00:41 +0000 Subject: files structure changed git-svn-id: http://svn.miranda-ng.org/main/trunk@11634 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- src/core/stdidle/commonheaders.cpp | 2 - src/core/stdidle/commonheaders.h | 78 ------ src/core/stdidle/idle.cpp | 415 ---------------------------- src/core/stdidle/main.cpp | 73 ----- src/core/stdidle/res/resource.rc | 134 +++++++++ src/core/stdidle/res/version.rc | 38 +++ src/core/stdidle/resource.rc | 134 --------- src/core/stdidle/src/commonheaders.cpp | 2 + src/core/stdidle/src/commonheaders.h | 78 ++++++ src/core/stdidle/src/idle.cpp | 415 ++++++++++++++++++++++++++++ src/core/stdidle/src/main.cpp | 73 +++++ src/core/stdidle/src/version.h | 12 + src/core/stdidle/stdidle_10.vcxproj | 13 +- src/core/stdidle/stdidle_10.vcxproj.filters | 15 +- src/core/stdidle/stdidle_12.vcxproj | 13 +- src/core/stdidle/stdidle_12.vcxproj.filters | 15 +- src/core/stdidle/version.h | 14 - src/core/stdidle/version.rc | 42 --- 18 files changed, 784 insertions(+), 782 deletions(-) delete mode 100644 src/core/stdidle/commonheaders.cpp delete mode 100644 src/core/stdidle/commonheaders.h delete mode 100644 src/core/stdidle/idle.cpp delete mode 100644 src/core/stdidle/main.cpp create mode 100644 src/core/stdidle/res/resource.rc create mode 100644 src/core/stdidle/res/version.rc delete mode 100644 src/core/stdidle/resource.rc create mode 100644 src/core/stdidle/src/commonheaders.cpp create mode 100644 src/core/stdidle/src/commonheaders.h create mode 100644 src/core/stdidle/src/idle.cpp create mode 100644 src/core/stdidle/src/main.cpp create mode 100644 src/core/stdidle/src/version.h delete mode 100644 src/core/stdidle/version.h delete mode 100644 src/core/stdidle/version.rc (limited to 'src/core/stdidle') diff --git a/src/core/stdidle/commonheaders.cpp b/src/core/stdidle/commonheaders.cpp deleted file mode 100644 index 95b2201163..0000000000 --- a/src/core/stdidle/commonheaders.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "commonheaders.h" - diff --git a/src/core/stdidle/commonheaders.h b/src/core/stdidle/commonheaders.h deleted file mode 100644 index 282313e51c..0000000000 --- a/src/core/stdidle/commonheaders.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - -Miranda NG: the free IM client for Microsoft* Windows* - -Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org), -Copyright (c) 2000-12 Miranda IM project, -all portions of this codebase are copyrighted to the people -listed in contributors.txt. - -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; either version 2 -of the License, or (at your option) any later version. - -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, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ - -#define WINVER 0x0700 -#define _WIN32_WINNT 0x0700 -#define _WIN32_IE 0x0601 - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "version.h" - -#include "../../resource.h" -#include "../stdplug.h" - -extern HINSTANCE hInst; diff --git a/src/core/stdidle/idle.cpp b/src/core/stdidle/idle.cpp deleted file mode 100644 index 9cac84e7ea..0000000000 --- a/src/core/stdidle/idle.cpp +++ /dev/null @@ -1,415 +0,0 @@ -/* - -Miranda NG: the free IM client for Microsoft* Windows* - -Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org), -Copyright (c) 2000-12 Miranda IM project, -all portions of this codebase are copyrighted to the people -listed in contributors.txt. - -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; either version 2 -of the License, or (at your option) any later version. - -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, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ - -#include "commonheaders.h" - -#define IDLEMOD "Idle" -#define IDL_USERIDLECHECK "UserIdleCheck" -#define IDL_IDLEMETHOD "IdleMethod" -#define IDL_IDLETIME1ST "IdleTime1st" -#define IDL_IDLEONSAVER "IdleOnSaver" // IDC_SCREENSAVER -#define IDL_IDLEONFULLSCR "IdleOnFullScr" // IDC_FULLSCREEN -#define IDL_IDLEONLOCK "IdleOnLock" // IDC_LOCKED -#define IDL_IDLEONTSDC "IdleOnTerminalDisconnect" // -#define IDL_IDLEPRIVATE "IdlePrivate" // IDC_IDLEPRIVATE -#define IDL_IDLESTATUSLOCK "IdleStatusLock" // IDC_IDLESTATUSLOCK -#define IDL_AAENABLE "AAEnable" -#define IDL_AASTATUS "AAStatus" -#define IDL_IDLESOUNDSOFF "IdleSoundsOff" - -#define IdleObject_IsIdle(obj) (obj->state&0x1) -#define IdleObject_SetIdle(obj) (obj->state|=0x1) -#define IdleObject_ClearIdle(obj) (obj->state&=~0x1) - -// either use meth 0, 1 or figure out which one -#define IdleObject_UseMethod0(obj) (obj->state&=~0x2) -#define IdleObject_UseMethod1(obj) (obj->state|=0x2) -#define IdleObject_GetMethod(obj) (obj->state&0x2) - -#define IdleObject_IdleCheckSaver(obj) (obj->state&0x4) -#define IdleObject_SetSaverCheck(obj) (obj->state|=0x4) - -#define IdleObject_IdleCheckWorkstation(obj) (obj->state&0x8) -#define IdleObject_SetWorkstationCheck(obj) (obj->state|=0x8) - -#define IdleObject_IsPrivacy(obj) (obj->state&0x10) -#define IdleObject_SetPrivacy(obj) (obj->state|=0x10) - -#define IdleObject_SetStatusLock(obj) (obj->state|=0x20) - -#define IdleObject_IdleCheckTerminal(obj) (obj->state&0x40) -#define IdleObject_SetTerminalCheck(obj) (obj->state|=0x40) - -#define IdleObject_IdleCheckFullScr(obj) (obj->state&0x80) -#define IdleObject_SetFullScrCheck(obj) (obj->state|=0x80) - -//#include - -#ifndef _INC_WTSAPI - -#define WTS_CURRENT_SERVER_HANDLE ((HANDLE)NULL) -#define WTS_CURRENT_SESSION ((DWORD)-1) - -typedef enum _WTS_CONNECTSTATE_CLASS { - WTSActive, // User logged on to WinStation - WTSConnected, // WinStation connected to client - WTSConnectQuery, // In the process of connecting to client - WTSShadow, // Shadowing another WinStation - WTSDisconnected, // WinStation logged on without client - WTSIdle, // Waiting for client to connect - WTSListen, // WinStation is listening for connection - WTSReset, // WinStation is being reset - WTSDown, // WinStation is down due to error - WTSInit, // WinStation in initialization -} WTS_CONNECTSTATE_CLASS; - -typedef enum _WTS_INFO_CLASS { - WTSInitialProgram, - WTSApplicationName, - WTSWorkingDirectory, - WTSOEMId, - WTSSessionId, - WTSUserName, - WTSWinStationName, - WTSDomainName, - WTSConnectState, - WTSClientBuildNumber, - WTSClientName, - WTSClientDirectory, - WTSClientProductId, - WTSClientHardwareId, - WTSClientAddress, - WTSClientDisplay, - WTSClientProtocolType, -} WTS_INFO_CLASS; - -#endif - -static BOOL bModuleInitialized = FALSE; - -BOOL IsTerminalDisconnected() -{ - PVOID pBuffer = NULL; - DWORD pBytesReturned = 0; - BOOL result = FALSE; - - if (WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, WTS_CURRENT_SESSION, WTSConnectState, (LPTSTR *)&pBuffer, &pBytesReturned)) { - if (*(PDWORD)pBuffer == WTSDisconnected) - result = TRUE; - } - - if (pBuffer) - WTSFreeMemory(pBuffer); - return result; -} - -typedef struct { - UINT_PTR hTimer; - unsigned int useridlecheck; - unsigned int state; - unsigned int minutes; // user setting, number of minutes of inactivity to wait for - POINT mousepos; - unsigned int mouseidle; - int aastatus; - int idleType; - int aasoundsoff; -} - IdleObject; - -static const WORD aa_Status[] = {ID_STATUS_AWAY, ID_STATUS_NA, ID_STATUS_OCCUPIED, ID_STATUS_DND, ID_STATUS_ONTHEPHONE, ID_STATUS_OUTTOLUNCH}; - -static IdleObject gIdleObject; -static HANDLE hIdleEvent; - -void CALLBACK IdleTimer(HWND hwnd, UINT umsg, UINT_PTR idEvent, DWORD dwTime); - -static void IdleObject_ReadSettings(IdleObject * obj) -{ - obj->useridlecheck = db_get_b(NULL, IDLEMOD, IDL_USERIDLECHECK, 0); - obj->minutes = db_get_b(NULL, IDLEMOD, IDL_IDLETIME1ST, 10); - obj->aastatus = !db_get_b(NULL, IDLEMOD, IDL_AAENABLE, 0) ? 0 : db_get_w(NULL, IDLEMOD, IDL_AASTATUS, 0); - if ( db_get_b(NULL, IDLEMOD, IDL_IDLESOUNDSOFF, 1)) - obj->aasoundsoff = 1; - else - obj->aasoundsoff = 0; - if ( db_get_b(NULL, IDLEMOD, IDL_IDLEMETHOD, 0)) IdleObject_UseMethod1(obj); - else IdleObject_UseMethod0(obj); - if ( db_get_b(NULL, IDLEMOD, IDL_IDLEONSAVER, 0)) IdleObject_SetSaverCheck(obj); - if ( db_get_b(NULL, IDLEMOD, IDL_IDLEONFULLSCR, 0)) IdleObject_SetFullScrCheck(obj); - if ( db_get_b(NULL, IDLEMOD, IDL_IDLEONLOCK, 0)) IdleObject_SetWorkstationCheck(obj); - if ( db_get_b(NULL, IDLEMOD, IDL_IDLEPRIVATE, 0)) IdleObject_SetPrivacy(obj); - if ( db_get_b(NULL, IDLEMOD, IDL_IDLESTATUSLOCK, 0)) IdleObject_SetStatusLock(obj); - if ( db_get_b(NULL, IDLEMOD, IDL_IDLEONTSDC, 0)) IdleObject_SetTerminalCheck(obj); -} - -static void IdleObject_Create(IdleObject * obj) -{ - memset(obj, 0, sizeof(IdleObject)); - obj->hTimer = SetTimer(NULL, 0, 2000, IdleTimer); - IdleObject_ReadSettings(obj); -} - -static void IdleObject_Destroy(IdleObject * obj) -{ - if (IdleObject_IsIdle(obj)) - NotifyEventHooks(hIdleEvent, 0, 0); - IdleObject_ClearIdle(obj); - KillTimer(NULL, obj->hTimer); -} - -static int IdleObject_IsUserIdle(IdleObject * obj) -{ - DWORD dwTick; - if (IdleObject_GetMethod(obj)) { - CallService(MS_SYSTEM_GETIDLE, 0, (LPARAM)&dwTick); - return GetTickCount() - dwTick > (obj->minutes * 60 * 1000); - } - - LASTINPUTINFO ii = { sizeof(ii) }; - if ( GetLastInputInfo(&ii)) - return GetTickCount() - ii.dwTime > (obj->minutes * 60 * 1000); - - return FALSE; -} - -static void IdleObject_Tick(IdleObject * obj) -{ - bool idle = false; - int idleType = 0, flags = 0; - - if (obj->useridlecheck && IdleObject_IsUserIdle(obj)) { - idleType = 1; idle = true; - } - else if (IdleObject_IdleCheckSaver(obj) && IsScreenSaverRunning()) { - idleType = 2; idle = true; - } - else if (IdleObject_IdleCheckFullScr(obj) && IsFullScreen()) { - idleType = 5; idle = true; - } - else if (IdleObject_IdleCheckWorkstation(obj) && IsWorkstationLocked()) { - idleType = 3; idle = true; - } - else if (IdleObject_IdleCheckTerminal(obj) && IsTerminalDisconnected()) { - idleType = 4; idle = true; - } - - if (IdleObject_IsPrivacy(obj)) - flags |= IDF_PRIVACY; - - if ( !IdleObject_IsIdle(obj) && idle) { - IdleObject_SetIdle(obj); - obj->idleType = idleType; - NotifyEventHooks(hIdleEvent, 0, IDF_ISIDLE | flags); - } - if (IdleObject_IsIdle(obj) && !idle) { - IdleObject_ClearIdle(obj); - obj->idleType = 0; - NotifyEventHooks(hIdleEvent, 0, flags); -} } - -void CALLBACK IdleTimer(HWND, UINT, UINT_PTR idEvent, DWORD) -{ - if (gIdleObject.hTimer == idEvent) - IdleObject_Tick(&gIdleObject); -} - -int IdleGetStatusIndex(WORD status) -{ - for (int j = 0; j < SIZEOF(aa_Status); j++) - if (aa_Status[j] == status) - return j; - - return 0; -} - -static INT_PTR CALLBACK IdleOptsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) -{ - switch (msg) { - case WM_INITDIALOG: - { - int j; - int method = db_get_b(NULL, IDLEMOD, IDL_IDLEMETHOD, 0); - TranslateDialogDefault(hwndDlg); - CheckDlgButton(hwndDlg, IDC_IDLESHORT, db_get_b(NULL, IDLEMOD, IDL_USERIDLECHECK, 0) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_IDLEONWINDOWS, method == 0 ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_IDLEONMIRANDA, method ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_SCREENSAVER, db_get_b(NULL, IDLEMOD, IDL_IDLEONSAVER, 0) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_FULLSCREEN, db_get_b(NULL, IDLEMOD, IDL_IDLEONFULLSCR, 0) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_LOCKED, db_get_b(NULL, IDLEMOD, IDL_IDLEONLOCK, 0) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_IDLEPRIVATE, db_get_b(NULL, IDLEMOD, IDL_IDLEPRIVATE, 0) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_IDLESTATUSLOCK, db_get_b(NULL, IDLEMOD, IDL_IDLESTATUSLOCK, 0) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_IDLETERMINAL, db_get_b(NULL, IDLEMOD, IDL_IDLEONTSDC, 0) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_IDLESOUNDSOFF, db_get_b(NULL, IDLEMOD, IDL_IDLESOUNDSOFF, 1) ? BST_CHECKED : BST_UNCHECKED); - SendDlgItemMessage(hwndDlg, IDC_IDLESPIN, UDM_SETBUDDY, (WPARAM)GetDlgItem(hwndDlg, IDC_IDLE1STTIME), 0); - SendDlgItemMessage(hwndDlg, IDC_IDLESPIN, UDM_SETRANGE32, 1, 60); - SendDlgItemMessage(hwndDlg, IDC_IDLESPIN, UDM_SETPOS, 0, MAKELONG((short) db_get_b(NULL, IDLEMOD, IDL_IDLETIME1ST, 10), 0)); - SendDlgItemMessage(hwndDlg, IDC_IDLE1STTIME, EM_LIMITTEXT, (WPARAM)2, 0); - - CheckDlgButton(hwndDlg, IDC_AASHORTIDLE, db_get_b(NULL, IDLEMOD, IDL_AAENABLE, 0) ? BST_CHECKED : BST_UNCHECKED); - for (j = 0; j < SIZEOF(aa_Status); j++) - SendDlgItemMessage(hwndDlg, IDC_AASTATUS, CB_ADDSTRING, 0, (LPARAM)pcli->pfnGetStatusModeDescription(aa_Status[j], 0)); - - j = IdleGetStatusIndex((WORD)(db_get_w(NULL, IDLEMOD, IDL_AASTATUS, 0))); - SendDlgItemMessage(hwndDlg, IDC_AASTATUS, CB_SETCURSEL, j, 0); - SendMessage(hwndDlg, WM_USER+2, 0, 0); - return TRUE; - } - case WM_USER+2: - { - BOOL checked = IsDlgButtonChecked(hwndDlg, IDC_IDLESHORT) == BST_CHECKED; - EnableWindow(GetDlgItem(hwndDlg, IDC_IDLEONWINDOWS), checked); - EnableWindow(GetDlgItem(hwndDlg, IDC_IDLEONMIRANDA), checked); - EnableWindow(GetDlgItem(hwndDlg, IDC_IDLE1STTIME), checked); - EnableWindow(GetDlgItem(hwndDlg, IDC_AASTATUS), IsDlgButtonChecked(hwndDlg, IDC_AASHORTIDLE) == BST_CHECKED?1:0); - EnableWindow(GetDlgItem(hwndDlg, IDC_IDLESTATUSLOCK), IsDlgButtonChecked(hwndDlg, IDC_AASHORTIDLE) == BST_CHECKED?1:0); - break; - } - case WM_NOTIFY: - { - NMHDR * hdr = (NMHDR *)lParam; - if (hdr && hdr->code == PSN_APPLY) { - int method = IsDlgButtonChecked(hwndDlg, IDC_IDLEONWINDOWS) == BST_CHECKED; - int mins = SendDlgItemMessage(hwndDlg, IDC_IDLESPIN, UDM_GETPOS, 0, 0); - db_set_b(NULL, IDLEMOD, IDL_IDLETIME1ST, (BYTE)(HIWORD(mins) == 0 ? LOWORD(mins) : 10)); - db_set_b(NULL, IDLEMOD, IDL_USERIDLECHECK, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_IDLESHORT) == BST_CHECKED)); - db_set_b(NULL, IDLEMOD, IDL_IDLEMETHOD, (BYTE)(method ? 0 : 1)); - db_set_b(NULL, IDLEMOD, IDL_IDLEONSAVER, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_SCREENSAVER) == BST_CHECKED)); - db_set_b(NULL, IDLEMOD, IDL_IDLEONFULLSCR, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_FULLSCREEN) == BST_CHECKED)); - db_set_b(NULL, IDLEMOD, IDL_IDLEONLOCK, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_LOCKED) == BST_CHECKED)); - db_set_b(NULL, IDLEMOD, IDL_IDLEONTSDC, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_IDLETERMINAL) == BST_CHECKED)); - db_set_b(NULL, IDLEMOD, IDL_IDLEPRIVATE, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_IDLEPRIVATE) == BST_CHECKED)); - db_set_b(NULL, IDLEMOD, IDL_AAENABLE, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_AASHORTIDLE) == BST_CHECKED?1:0)); - db_set_b(NULL, IDLEMOD, IDL_IDLESTATUSLOCK, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_IDLESTATUSLOCK) == BST_CHECKED?1:0)); - { - int curSel = SendDlgItemMessage(hwndDlg, IDC_AASTATUS, CB_GETCURSEL, 0, 0); - if (curSel != CB_ERR) { - db_set_w(NULL, IDLEMOD, IDL_AASTATUS, (WORD)(aa_Status[curSel])); - } - } - db_set_b(NULL, IDLEMOD, IDL_IDLESOUNDSOFF, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_IDLESOUNDSOFF) == BST_CHECKED)); - // destroy any current idle and reset settings. - IdleObject_Destroy(&gIdleObject); - IdleObject_Create(&gIdleObject); - } - break; - } - case WM_COMMAND: - switch (LOWORD(wParam)) { - case IDC_IDLE1STTIME: - { - int min; - if ((HWND)lParam != GetFocus() || HIWORD(wParam) != EN_CHANGE) return FALSE; - min = GetDlgItemInt(hwndDlg, IDC_IDLE1STTIME, NULL, FALSE); - if (min == 0 && GetWindowTextLength(GetDlgItem(hwndDlg, IDC_IDLE1STTIME))) - SendDlgItemMessage(hwndDlg, IDC_IDLESPIN, UDM_SETPOS, 0, MAKELONG((short) 1, 0)); - break; - } - case IDC_IDLESHORT: - case IDC_AASHORTIDLE: - SendMessage(hwndDlg, WM_USER+2, 0, 0); - break; - - case IDC_AASTATUS: - if (HIWORD(wParam) != CBN_SELCHANGE) - return TRUE; - } - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - } - return FALSE; -} - -static int IdleOptInit(WPARAM wParam, LPARAM) -{ - OPTIONSDIALOGPAGE odp = { sizeof(odp) }; - odp.position = 100000000; - odp.hInstance = hInst; - odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_IDLE); - odp.pszGroup = LPGEN("Status"); - odp.pszTitle = LPGEN("Idle"); - odp.pfnDlgProc = IdleOptsDlgProc; - odp.flags = ODPF_BOLDGROUPS; - Options_AddPage(wParam, &odp); - return 0; -} - -static INT_PTR IdleGetInfo(WPARAM, LPARAM lParam) -{ - MIRANDA_IDLE_INFO *mii = (MIRANDA_IDLE_INFO*)lParam; - if ( !mii || mii->cbSize != sizeof(MIRANDA_IDLE_INFO)) - return 1; - - mii->idleTime = gIdleObject.minutes; - mii->privacy = gIdleObject.state&0x10; - mii->aaStatus = gIdleObject.aastatus; - mii->aaLock = gIdleObject.state&0x20; - mii->idlesoundsoff = gIdleObject.aasoundsoff; - mii->idleType = gIdleObject.idleType; - return 0; -} - -static int IdleModernOptInit(WPARAM wParam, LPARAM) -{ - static const int iBoldControls[] = - { - IDC_TXT_TITLE1, IDC_TXT_TITLE2, IDC_TXT_TITLE3, - MODERNOPT_CTRL_LAST - }; - - MODERNOPTOBJECT obj = {0}; - obj.cbSize = sizeof(obj); - obj.hInstance = hInst; - obj.dwFlags = MODEROPT_FLG_TCHAR | MODEROPT_FLG_NORESIZE; - obj.iSection = MODERNOPT_PAGE_STATUS; - obj.iType = MODERNOPT_TYPE_SECTIONPAGE; - obj.iBoldControls = (int*)iBoldControls; - obj.lpzTemplate = MAKEINTRESOURCEA(IDD_MODERNOPT_IDLE); - obj.pfnDlgProc = IdleOptsDlgProc; -// obj.lpzClassicGroup = "Status"; -// obj.lpzClassicPage = "Messages"; - obj.lpzHelpUrl = "http://wiki.miranda-ng.org/"; - CallService(MS_MODERNOPT_ADDOBJECT, wParam, (LPARAM)&obj); - return 0; -} - -int LoadIdleModule(void) -{ - bModuleInitialized = TRUE; - - hIdleEvent = CreateHookableEvent(ME_IDLE_CHANGED); - IdleObject_Create(&gIdleObject); - CreateServiceFunction(MS_IDLE_GETIDLEINFO, IdleGetInfo); - HookEvent(ME_OPT_INITIALISE, IdleOptInit); - HookEvent(ME_MODERNOPT_INITIALIZE, IdleModernOptInit); - return 0; -} - -void UnloadIdleModule() -{ - if ( !bModuleInitialized) return; - - IdleObject_Destroy(&gIdleObject); - DestroyHookableEvent(hIdleEvent); - hIdleEvent = NULL; -} diff --git a/src/core/stdidle/main.cpp b/src/core/stdidle/main.cpp deleted file mode 100644 index b50a708da7..0000000000 --- a/src/core/stdidle/main.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/* - -Standard idle state module for Miranda NG - -Copyright (C) 2012-14 George Hazan - -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; either version 2 of the License, or -(at your option) any later version. - -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, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -*/ - -#include "commonheaders.h" - -int LoadIdleModule(void); -void UnloadIdleModule(void); - -CLIST_INTERFACE* pcli; -TIME_API tmi; -HINSTANCE hInst; -int hLangpack; - -PLUGININFOEX pluginInfo = { - sizeof(PLUGININFOEX), - __PLUGIN_NAME, - MIRANDA_VERSION_DWORD, - __DESCRIPTION, - __AUTHOR, - __AUTHOREMAIL, - __COPYRIGHT, - __AUTHORWEB, - UNICODE_AWARE, - // 53ac190b-e223-4341-825f-709d8520215b - { 0x53ac190b, 0xe223, 0x4341, {0x82, 0x5f, 0x70, 0x9d, 0x85, 0x20, 0x21, 0x5b}} -}; - -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) const MUUID MirandaInterfaces[] = { MIID_IDLE, MIID_LAST }; - -extern "C" int __declspec(dllexport) Load(void) -{ - mir_getLP(&pluginInfo); - mir_getTMI(&tmi); - mir_getCLI(); - - LoadIdleModule(); - return 0; -} - -extern "C" int __declspec(dllexport) Unload(void) -{ - UnloadIdleModule(); - return 0; -} diff --git a/src/core/stdidle/res/resource.rc b/src/core/stdidle/res/resource.rc new file mode 100644 index 0000000000..af7b53a1ce --- /dev/null +++ b/src/core/stdidle/res/resource.rc @@ -0,0 +1,134 @@ +// Microsoft Visual C++ generated resource script. +// +#include "..\..\resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include +#include + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_OPT_IDLE DIALOGEX 0, 0, 312, 193 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_BORDER +EXSTYLE WS_EX_CONTROLPARENT +FONT 8, "MS Shell Dlg", 0, 0, 0x1 +BEGIN + CONTROL "Become idle if the following is left unattended:",IDC_IDLESHORT, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,18,259,9 + CONTROL "Windows",IDC_IDLEONWINDOWS,"Button",BS_AUTORADIOBUTTON,45,31,104,9 + CONTROL "Miranda",IDC_IDLEONMIRANDA,"Button",BS_AUTORADIOBUTTON,45,43,103,9 + EDITTEXT IDC_IDLE1STTIME,59,59,27,14,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "Spin2",IDC_IDLESPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,71,55,12,23 + CONTROL "Become idle if the screen saver is active",IDC_SCREENSAVER, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,83,265,9 + CONTROL "Become idle if the computer is locked",IDC_LOCKED, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,105,265,9 + CONTROL "Become idle if a terminal session is disconnected",IDC_IDLETERMINAL, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,116,265,10 + CONTROL "Do not let protocols report any idle information",IDC_IDLEPRIVATE, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,131,251,9 + LTEXT "minute(s)",IDC_STATIC,91,61,76,9 + RTEXT "for",IDC_STATIC,12,62,41,8 + COMBOBOX IDC_AASTATUS,161,146,64,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + CONTROL "Change my status mode to:",IDC_AASHORTIDLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,147,132,11 + CONTROL "Do not set status back to online when returning from idle",IDC_IDLESTATUSLOCK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,35,164,254,10 + GROUPBOX "Idle options",IDC_STATIC,3,1,304,192 + CONTROL "Become idle if application full screen",IDC_FULLSCREEN, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,94,265,9 + CONTROL "Disable sounds on idle",IDC_IDLESOUNDSOFF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,177,265,9 +END + +IDD_MODERNOPT_IDLE DIALOGEX 0, 0, 369, 64 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD +EXSTYLE WS_EX_CONTROLPARENT +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + CONTROL "Become idle if computer is left unattended for:",IDC_IDLESHORT, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,13,171,9 + CONTROL "Windows",IDC_IDLEONWINDOWS,"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE,325,25,26,9 + CONTROL "Miranda",IDC_IDLEONMIRANDA,"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE,287,37,15,9 + EDITTEXT IDC_IDLE1STTIME,181,11,27,12,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "",IDC_IDLESPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,193,7,11,23 + CONTROL "Become idle if the screen saver is active",IDC_SCREENSAVER, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,25,268,9 + CONTROL "Become idle if the computer is locked",IDC_LOCKED, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,37,249,9 + CONTROL "Become idle if a terminal session is disconnected",IDC_IDLETERMINAL, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,49,265,10 + CONTROL "Do not let protocols report any idle information",IDC_IDLEPRIVATE, + "Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,303,13,22,9 + LTEXT "minute(s)",IDC_STATIC,213,13,76,9,SS_CENTERIMAGE + COMBOBOX IDC_AASTATUS,325,46,23,50,CBS_DROPDOWNLIST | NOT WS_VISIBLE | WS_VSCROLL | WS_TABSTOP + CONTROL "Change my status mode to:",IDC_AASHORTIDLE,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,334,11,23,11 + CONTROL "Do not set status back to online when returning from idle",IDC_IDLESTATUSLOCK, + "Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,299,24,16,10 + LTEXT "Idle (auto-away):",IDC_TXT_TITLE1,0,0,246,8 +END + +#endif // APSTUDIO_INVOKED + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_MODERNOPT_IDLE, DIALOG + BEGIN + VERTGUIDE, 10 + VERTGUIDE, 181 + HORZGUIDE, 8 + HORZGUIDE, 22 + HORZGUIDE, 34 + HORZGUIDE, 46 + END +END + +#endif // APSTUDIO_INVOKED + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "..\..\resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include \r\n" + "#include \r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED diff --git a/src/core/stdidle/res/version.rc b/src/core/stdidle/res/version.rc new file mode 100644 index 0000000000..5bfbab4754 --- /dev/null +++ b/src/core/stdidle/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/src/core/stdidle/resource.rc b/src/core/stdidle/resource.rc deleted file mode 100644 index af7b53a1ce..0000000000 --- a/src/core/stdidle/resource.rc +++ /dev/null @@ -1,134 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "..\..\resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include -#include - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (United States) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_OPT_IDLE DIALOGEX 0, 0, 312, 193 -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_BORDER -EXSTYLE WS_EX_CONTROLPARENT -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - CONTROL "Become idle if the following is left unattended:",IDC_IDLESHORT, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,18,259,9 - CONTROL "Windows",IDC_IDLEONWINDOWS,"Button",BS_AUTORADIOBUTTON,45,31,104,9 - CONTROL "Miranda",IDC_IDLEONMIRANDA,"Button",BS_AUTORADIOBUTTON,45,43,103,9 - EDITTEXT IDC_IDLE1STTIME,59,59,27,14,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "Spin2",IDC_IDLESPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,71,55,12,23 - CONTROL "Become idle if the screen saver is active",IDC_SCREENSAVER, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,83,265,9 - CONTROL "Become idle if the computer is locked",IDC_LOCKED, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,105,265,9 - CONTROL "Become idle if a terminal session is disconnected",IDC_IDLETERMINAL, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,116,265,10 - CONTROL "Do not let protocols report any idle information",IDC_IDLEPRIVATE, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,131,251,9 - LTEXT "minute(s)",IDC_STATIC,91,61,76,9 - RTEXT "for",IDC_STATIC,12,62,41,8 - COMBOBOX IDC_AASTATUS,161,146,64,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - CONTROL "Change my status mode to:",IDC_AASHORTIDLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,147,132,11 - CONTROL "Do not set status back to online when returning from idle",IDC_IDLESTATUSLOCK, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,35,164,254,10 - GROUPBOX "Idle options",IDC_STATIC,3,1,304,192 - CONTROL "Become idle if application full screen",IDC_FULLSCREEN, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,94,265,9 - CONTROL "Disable sounds on idle",IDC_IDLESOUNDSOFF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,177,265,9 -END - -IDD_MODERNOPT_IDLE DIALOGEX 0, 0, 369, 64 -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD -EXSTYLE WS_EX_CONTROLPARENT -FONT 8, "MS Shell Dlg", 0, 0, 0x0 -BEGIN - CONTROL "Become idle if computer is left unattended for:",IDC_IDLESHORT, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,13,171,9 - CONTROL "Windows",IDC_IDLEONWINDOWS,"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE,325,25,26,9 - CONTROL "Miranda",IDC_IDLEONMIRANDA,"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE,287,37,15,9 - EDITTEXT IDC_IDLE1STTIME,181,11,27,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "",IDC_IDLESPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,193,7,11,23 - CONTROL "Become idle if the screen saver is active",IDC_SCREENSAVER, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,25,268,9 - CONTROL "Become idle if the computer is locked",IDC_LOCKED, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,37,249,9 - CONTROL "Become idle if a terminal session is disconnected",IDC_IDLETERMINAL, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,49,265,10 - CONTROL "Do not let protocols report any idle information",IDC_IDLEPRIVATE, - "Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,303,13,22,9 - LTEXT "minute(s)",IDC_STATIC,213,13,76,9,SS_CENTERIMAGE - COMBOBOX IDC_AASTATUS,325,46,23,50,CBS_DROPDOWNLIST | NOT WS_VISIBLE | WS_VSCROLL | WS_TABSTOP - CONTROL "Change my status mode to:",IDC_AASHORTIDLE,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,334,11,23,11 - CONTROL "Do not set status back to online when returning from idle",IDC_IDLESTATUSLOCK, - "Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,299,24,16,10 - LTEXT "Idle (auto-away):",IDC_TXT_TITLE1,0,0,246,8 -END - -#endif // APSTUDIO_INVOKED - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - IDD_MODERNOPT_IDLE, DIALOG - BEGIN - VERTGUIDE, 10 - VERTGUIDE, 181 - HORZGUIDE, 8 - HORZGUIDE, 22 - HORZGUIDE, 34 - HORZGUIDE, 46 - END -END - -#endif // APSTUDIO_INVOKED - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "..\..\resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include \r\n" - "#include \r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED diff --git a/src/core/stdidle/src/commonheaders.cpp b/src/core/stdidle/src/commonheaders.cpp new file mode 100644 index 0000000000..95b2201163 --- /dev/null +++ b/src/core/stdidle/src/commonheaders.cpp @@ -0,0 +1,2 @@ +#include "commonheaders.h" + diff --git a/src/core/stdidle/src/commonheaders.h b/src/core/stdidle/src/commonheaders.h new file mode 100644 index 0000000000..282313e51c --- /dev/null +++ b/src/core/stdidle/src/commonheaders.h @@ -0,0 +1,78 @@ +/* + +Miranda NG: the free IM client for Microsoft* Windows* + +Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org), +Copyright (c) 2000-12 Miranda IM project, +all portions of this codebase are copyrighted to the people +listed in contributors.txt. + +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; either version 2 +of the License, or (at your option) any later version. + +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, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#define WINVER 0x0700 +#define _WIN32_WINNT 0x0700 +#define _WIN32_IE 0x0601 + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "version.h" + +#include "../../resource.h" +#include "../stdplug.h" + +extern HINSTANCE hInst; diff --git a/src/core/stdidle/src/idle.cpp b/src/core/stdidle/src/idle.cpp new file mode 100644 index 0000000000..9cac84e7ea --- /dev/null +++ b/src/core/stdidle/src/idle.cpp @@ -0,0 +1,415 @@ +/* + +Miranda NG: the free IM client for Microsoft* Windows* + +Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org), +Copyright (c) 2000-12 Miranda IM project, +all portions of this codebase are copyrighted to the people +listed in contributors.txt. + +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; either version 2 +of the License, or (at your option) any later version. + +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, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#include "commonheaders.h" + +#define IDLEMOD "Idle" +#define IDL_USERIDLECHECK "UserIdleCheck" +#define IDL_IDLEMETHOD "IdleMethod" +#define IDL_IDLETIME1ST "IdleTime1st" +#define IDL_IDLEONSAVER "IdleOnSaver" // IDC_SCREENSAVER +#define IDL_IDLEONFULLSCR "IdleOnFullScr" // IDC_FULLSCREEN +#define IDL_IDLEONLOCK "IdleOnLock" // IDC_LOCKED +#define IDL_IDLEONTSDC "IdleOnTerminalDisconnect" // +#define IDL_IDLEPRIVATE "IdlePrivate" // IDC_IDLEPRIVATE +#define IDL_IDLESTATUSLOCK "IdleStatusLock" // IDC_IDLESTATUSLOCK +#define IDL_AAENABLE "AAEnable" +#define IDL_AASTATUS "AAStatus" +#define IDL_IDLESOUNDSOFF "IdleSoundsOff" + +#define IdleObject_IsIdle(obj) (obj->state&0x1) +#define IdleObject_SetIdle(obj) (obj->state|=0x1) +#define IdleObject_ClearIdle(obj) (obj->state&=~0x1) + +// either use meth 0, 1 or figure out which one +#define IdleObject_UseMethod0(obj) (obj->state&=~0x2) +#define IdleObject_UseMethod1(obj) (obj->state|=0x2) +#define IdleObject_GetMethod(obj) (obj->state&0x2) + +#define IdleObject_IdleCheckSaver(obj) (obj->state&0x4) +#define IdleObject_SetSaverCheck(obj) (obj->state|=0x4) + +#define IdleObject_IdleCheckWorkstation(obj) (obj->state&0x8) +#define IdleObject_SetWorkstationCheck(obj) (obj->state|=0x8) + +#define IdleObject_IsPrivacy(obj) (obj->state&0x10) +#define IdleObject_SetPrivacy(obj) (obj->state|=0x10) + +#define IdleObject_SetStatusLock(obj) (obj->state|=0x20) + +#define IdleObject_IdleCheckTerminal(obj) (obj->state&0x40) +#define IdleObject_SetTerminalCheck(obj) (obj->state|=0x40) + +#define IdleObject_IdleCheckFullScr(obj) (obj->state&0x80) +#define IdleObject_SetFullScrCheck(obj) (obj->state|=0x80) + +//#include + +#ifndef _INC_WTSAPI + +#define WTS_CURRENT_SERVER_HANDLE ((HANDLE)NULL) +#define WTS_CURRENT_SESSION ((DWORD)-1) + +typedef enum _WTS_CONNECTSTATE_CLASS { + WTSActive, // User logged on to WinStation + WTSConnected, // WinStation connected to client + WTSConnectQuery, // In the process of connecting to client + WTSShadow, // Shadowing another WinStation + WTSDisconnected, // WinStation logged on without client + WTSIdle, // Waiting for client to connect + WTSListen, // WinStation is listening for connection + WTSReset, // WinStation is being reset + WTSDown, // WinStation is down due to error + WTSInit, // WinStation in initialization +} WTS_CONNECTSTATE_CLASS; + +typedef enum _WTS_INFO_CLASS { + WTSInitialProgram, + WTSApplicationName, + WTSWorkingDirectory, + WTSOEMId, + WTSSessionId, + WTSUserName, + WTSWinStationName, + WTSDomainName, + WTSConnectState, + WTSClientBuildNumber, + WTSClientName, + WTSClientDirectory, + WTSClientProductId, + WTSClientHardwareId, + WTSClientAddress, + WTSClientDisplay, + WTSClientProtocolType, +} WTS_INFO_CLASS; + +#endif + +static BOOL bModuleInitialized = FALSE; + +BOOL IsTerminalDisconnected() +{ + PVOID pBuffer = NULL; + DWORD pBytesReturned = 0; + BOOL result = FALSE; + + if (WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, WTS_CURRENT_SESSION, WTSConnectState, (LPTSTR *)&pBuffer, &pBytesReturned)) { + if (*(PDWORD)pBuffer == WTSDisconnected) + result = TRUE; + } + + if (pBuffer) + WTSFreeMemory(pBuffer); + return result; +} + +typedef struct { + UINT_PTR hTimer; + unsigned int useridlecheck; + unsigned int state; + unsigned int minutes; // user setting, number of minutes of inactivity to wait for + POINT mousepos; + unsigned int mouseidle; + int aastatus; + int idleType; + int aasoundsoff; +} + IdleObject; + +static const WORD aa_Status[] = {ID_STATUS_AWAY, ID_STATUS_NA, ID_STATUS_OCCUPIED, ID_STATUS_DND, ID_STATUS_ONTHEPHONE, ID_STATUS_OUTTOLUNCH}; + +static IdleObject gIdleObject; +static HANDLE hIdleEvent; + +void CALLBACK IdleTimer(HWND hwnd, UINT umsg, UINT_PTR idEvent, DWORD dwTime); + +static void IdleObject_ReadSettings(IdleObject * obj) +{ + obj->useridlecheck = db_get_b(NULL, IDLEMOD, IDL_USERIDLECHECK, 0); + obj->minutes = db_get_b(NULL, IDLEMOD, IDL_IDLETIME1ST, 10); + obj->aastatus = !db_get_b(NULL, IDLEMOD, IDL_AAENABLE, 0) ? 0 : db_get_w(NULL, IDLEMOD, IDL_AASTATUS, 0); + if ( db_get_b(NULL, IDLEMOD, IDL_IDLESOUNDSOFF, 1)) + obj->aasoundsoff = 1; + else + obj->aasoundsoff = 0; + if ( db_get_b(NULL, IDLEMOD, IDL_IDLEMETHOD, 0)) IdleObject_UseMethod1(obj); + else IdleObject_UseMethod0(obj); + if ( db_get_b(NULL, IDLEMOD, IDL_IDLEONSAVER, 0)) IdleObject_SetSaverCheck(obj); + if ( db_get_b(NULL, IDLEMOD, IDL_IDLEONFULLSCR, 0)) IdleObject_SetFullScrCheck(obj); + if ( db_get_b(NULL, IDLEMOD, IDL_IDLEONLOCK, 0)) IdleObject_SetWorkstationCheck(obj); + if ( db_get_b(NULL, IDLEMOD, IDL_IDLEPRIVATE, 0)) IdleObject_SetPrivacy(obj); + if ( db_get_b(NULL, IDLEMOD, IDL_IDLESTATUSLOCK, 0)) IdleObject_SetStatusLock(obj); + if ( db_get_b(NULL, IDLEMOD, IDL_IDLEONTSDC, 0)) IdleObject_SetTerminalCheck(obj); +} + +static void IdleObject_Create(IdleObject * obj) +{ + memset(obj, 0, sizeof(IdleObject)); + obj->hTimer = SetTimer(NULL, 0, 2000, IdleTimer); + IdleObject_ReadSettings(obj); +} + +static void IdleObject_Destroy(IdleObject * obj) +{ + if (IdleObject_IsIdle(obj)) + NotifyEventHooks(hIdleEvent, 0, 0); + IdleObject_ClearIdle(obj); + KillTimer(NULL, obj->hTimer); +} + +static int IdleObject_IsUserIdle(IdleObject * obj) +{ + DWORD dwTick; + if (IdleObject_GetMethod(obj)) { + CallService(MS_SYSTEM_GETIDLE, 0, (LPARAM)&dwTick); + return GetTickCount() - dwTick > (obj->minutes * 60 * 1000); + } + + LASTINPUTINFO ii = { sizeof(ii) }; + if ( GetLastInputInfo(&ii)) + return GetTickCount() - ii.dwTime > (obj->minutes * 60 * 1000); + + return FALSE; +} + +static void IdleObject_Tick(IdleObject * obj) +{ + bool idle = false; + int idleType = 0, flags = 0; + + if (obj->useridlecheck && IdleObject_IsUserIdle(obj)) { + idleType = 1; idle = true; + } + else if (IdleObject_IdleCheckSaver(obj) && IsScreenSaverRunning()) { + idleType = 2; idle = true; + } + else if (IdleObject_IdleCheckFullScr(obj) && IsFullScreen()) { + idleType = 5; idle = true; + } + else if (IdleObject_IdleCheckWorkstation(obj) && IsWorkstationLocked()) { + idleType = 3; idle = true; + } + else if (IdleObject_IdleCheckTerminal(obj) && IsTerminalDisconnected()) { + idleType = 4; idle = true; + } + + if (IdleObject_IsPrivacy(obj)) + flags |= IDF_PRIVACY; + + if ( !IdleObject_IsIdle(obj) && idle) { + IdleObject_SetIdle(obj); + obj->idleType = idleType; + NotifyEventHooks(hIdleEvent, 0, IDF_ISIDLE | flags); + } + if (IdleObject_IsIdle(obj) && !idle) { + IdleObject_ClearIdle(obj); + obj->idleType = 0; + NotifyEventHooks(hIdleEvent, 0, flags); +} } + +void CALLBACK IdleTimer(HWND, UINT, UINT_PTR idEvent, DWORD) +{ + if (gIdleObject.hTimer == idEvent) + IdleObject_Tick(&gIdleObject); +} + +int IdleGetStatusIndex(WORD status) +{ + for (int j = 0; j < SIZEOF(aa_Status); j++) + if (aa_Status[j] == status) + return j; + + return 0; +} + +static INT_PTR CALLBACK IdleOptsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +{ + switch (msg) { + case WM_INITDIALOG: + { + int j; + int method = db_get_b(NULL, IDLEMOD, IDL_IDLEMETHOD, 0); + TranslateDialogDefault(hwndDlg); + CheckDlgButton(hwndDlg, IDC_IDLESHORT, db_get_b(NULL, IDLEMOD, IDL_USERIDLECHECK, 0) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_IDLEONWINDOWS, method == 0 ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_IDLEONMIRANDA, method ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_SCREENSAVER, db_get_b(NULL, IDLEMOD, IDL_IDLEONSAVER, 0) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_FULLSCREEN, db_get_b(NULL, IDLEMOD, IDL_IDLEONFULLSCR, 0) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_LOCKED, db_get_b(NULL, IDLEMOD, IDL_IDLEONLOCK, 0) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_IDLEPRIVATE, db_get_b(NULL, IDLEMOD, IDL_IDLEPRIVATE, 0) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_IDLESTATUSLOCK, db_get_b(NULL, IDLEMOD, IDL_IDLESTATUSLOCK, 0) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_IDLETERMINAL, db_get_b(NULL, IDLEMOD, IDL_IDLEONTSDC, 0) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_IDLESOUNDSOFF, db_get_b(NULL, IDLEMOD, IDL_IDLESOUNDSOFF, 1) ? BST_CHECKED : BST_UNCHECKED); + SendDlgItemMessage(hwndDlg, IDC_IDLESPIN, UDM_SETBUDDY, (WPARAM)GetDlgItem(hwndDlg, IDC_IDLE1STTIME), 0); + SendDlgItemMessage(hwndDlg, IDC_IDLESPIN, UDM_SETRANGE32, 1, 60); + SendDlgItemMessage(hwndDlg, IDC_IDLESPIN, UDM_SETPOS, 0, MAKELONG((short) db_get_b(NULL, IDLEMOD, IDL_IDLETIME1ST, 10), 0)); + SendDlgItemMessage(hwndDlg, IDC_IDLE1STTIME, EM_LIMITTEXT, (WPARAM)2, 0); + + CheckDlgButton(hwndDlg, IDC_AASHORTIDLE, db_get_b(NULL, IDLEMOD, IDL_AAENABLE, 0) ? BST_CHECKED : BST_UNCHECKED); + for (j = 0; j < SIZEOF(aa_Status); j++) + SendDlgItemMessage(hwndDlg, IDC_AASTATUS, CB_ADDSTRING, 0, (LPARAM)pcli->pfnGetStatusModeDescription(aa_Status[j], 0)); + + j = IdleGetStatusIndex((WORD)(db_get_w(NULL, IDLEMOD, IDL_AASTATUS, 0))); + SendDlgItemMessage(hwndDlg, IDC_AASTATUS, CB_SETCURSEL, j, 0); + SendMessage(hwndDlg, WM_USER+2, 0, 0); + return TRUE; + } + case WM_USER+2: + { + BOOL checked = IsDlgButtonChecked(hwndDlg, IDC_IDLESHORT) == BST_CHECKED; + EnableWindow(GetDlgItem(hwndDlg, IDC_IDLEONWINDOWS), checked); + EnableWindow(GetDlgItem(hwndDlg, IDC_IDLEONMIRANDA), checked); + EnableWindow(GetDlgItem(hwndDlg, IDC_IDLE1STTIME), checked); + EnableWindow(GetDlgItem(hwndDlg, IDC_AASTATUS), IsDlgButtonChecked(hwndDlg, IDC_AASHORTIDLE) == BST_CHECKED?1:0); + EnableWindow(GetDlgItem(hwndDlg, IDC_IDLESTATUSLOCK), IsDlgButtonChecked(hwndDlg, IDC_AASHORTIDLE) == BST_CHECKED?1:0); + break; + } + case WM_NOTIFY: + { + NMHDR * hdr = (NMHDR *)lParam; + if (hdr && hdr->code == PSN_APPLY) { + int method = IsDlgButtonChecked(hwndDlg, IDC_IDLEONWINDOWS) == BST_CHECKED; + int mins = SendDlgItemMessage(hwndDlg, IDC_IDLESPIN, UDM_GETPOS, 0, 0); + db_set_b(NULL, IDLEMOD, IDL_IDLETIME1ST, (BYTE)(HIWORD(mins) == 0 ? LOWORD(mins) : 10)); + db_set_b(NULL, IDLEMOD, IDL_USERIDLECHECK, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_IDLESHORT) == BST_CHECKED)); + db_set_b(NULL, IDLEMOD, IDL_IDLEMETHOD, (BYTE)(method ? 0 : 1)); + db_set_b(NULL, IDLEMOD, IDL_IDLEONSAVER, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_SCREENSAVER) == BST_CHECKED)); + db_set_b(NULL, IDLEMOD, IDL_IDLEONFULLSCR, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_FULLSCREEN) == BST_CHECKED)); + db_set_b(NULL, IDLEMOD, IDL_IDLEONLOCK, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_LOCKED) == BST_CHECKED)); + db_set_b(NULL, IDLEMOD, IDL_IDLEONTSDC, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_IDLETERMINAL) == BST_CHECKED)); + db_set_b(NULL, IDLEMOD, IDL_IDLEPRIVATE, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_IDLEPRIVATE) == BST_CHECKED)); + db_set_b(NULL, IDLEMOD, IDL_AAENABLE, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_AASHORTIDLE) == BST_CHECKED?1:0)); + db_set_b(NULL, IDLEMOD, IDL_IDLESTATUSLOCK, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_IDLESTATUSLOCK) == BST_CHECKED?1:0)); + { + int curSel = SendDlgItemMessage(hwndDlg, IDC_AASTATUS, CB_GETCURSEL, 0, 0); + if (curSel != CB_ERR) { + db_set_w(NULL, IDLEMOD, IDL_AASTATUS, (WORD)(aa_Status[curSel])); + } + } + db_set_b(NULL, IDLEMOD, IDL_IDLESOUNDSOFF, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_IDLESOUNDSOFF) == BST_CHECKED)); + // destroy any current idle and reset settings. + IdleObject_Destroy(&gIdleObject); + IdleObject_Create(&gIdleObject); + } + break; + } + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDC_IDLE1STTIME: + { + int min; + if ((HWND)lParam != GetFocus() || HIWORD(wParam) != EN_CHANGE) return FALSE; + min = GetDlgItemInt(hwndDlg, IDC_IDLE1STTIME, NULL, FALSE); + if (min == 0 && GetWindowTextLength(GetDlgItem(hwndDlg, IDC_IDLE1STTIME))) + SendDlgItemMessage(hwndDlg, IDC_IDLESPIN, UDM_SETPOS, 0, MAKELONG((short) 1, 0)); + break; + } + case IDC_IDLESHORT: + case IDC_AASHORTIDLE: + SendMessage(hwndDlg, WM_USER+2, 0, 0); + break; + + case IDC_AASTATUS: + if (HIWORD(wParam) != CBN_SELCHANGE) + return TRUE; + } + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + } + return FALSE; +} + +static int IdleOptInit(WPARAM wParam, LPARAM) +{ + OPTIONSDIALOGPAGE odp = { sizeof(odp) }; + odp.position = 100000000; + odp.hInstance = hInst; + odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_IDLE); + odp.pszGroup = LPGEN("Status"); + odp.pszTitle = LPGEN("Idle"); + odp.pfnDlgProc = IdleOptsDlgProc; + odp.flags = ODPF_BOLDGROUPS; + Options_AddPage(wParam, &odp); + return 0; +} + +static INT_PTR IdleGetInfo(WPARAM, LPARAM lParam) +{ + MIRANDA_IDLE_INFO *mii = (MIRANDA_IDLE_INFO*)lParam; + if ( !mii || mii->cbSize != sizeof(MIRANDA_IDLE_INFO)) + return 1; + + mii->idleTime = gIdleObject.minutes; + mii->privacy = gIdleObject.state&0x10; + mii->aaStatus = gIdleObject.aastatus; + mii->aaLock = gIdleObject.state&0x20; + mii->idlesoundsoff = gIdleObject.aasoundsoff; + mii->idleType = gIdleObject.idleType; + return 0; +} + +static int IdleModernOptInit(WPARAM wParam, LPARAM) +{ + static const int iBoldControls[] = + { + IDC_TXT_TITLE1, IDC_TXT_TITLE2, IDC_TXT_TITLE3, + MODERNOPT_CTRL_LAST + }; + + MODERNOPTOBJECT obj = {0}; + obj.cbSize = sizeof(obj); + obj.hInstance = hInst; + obj.dwFlags = MODEROPT_FLG_TCHAR | MODEROPT_FLG_NORESIZE; + obj.iSection = MODERNOPT_PAGE_STATUS; + obj.iType = MODERNOPT_TYPE_SECTIONPAGE; + obj.iBoldControls = (int*)iBoldControls; + obj.lpzTemplate = MAKEINTRESOURCEA(IDD_MODERNOPT_IDLE); + obj.pfnDlgProc = IdleOptsDlgProc; +// obj.lpzClassicGroup = "Status"; +// obj.lpzClassicPage = "Messages"; + obj.lpzHelpUrl = "http://wiki.miranda-ng.org/"; + CallService(MS_MODERNOPT_ADDOBJECT, wParam, (LPARAM)&obj); + return 0; +} + +int LoadIdleModule(void) +{ + bModuleInitialized = TRUE; + + hIdleEvent = CreateHookableEvent(ME_IDLE_CHANGED); + IdleObject_Create(&gIdleObject); + CreateServiceFunction(MS_IDLE_GETIDLEINFO, IdleGetInfo); + HookEvent(ME_OPT_INITIALISE, IdleOptInit); + HookEvent(ME_MODERNOPT_INITIALIZE, IdleModernOptInit); + return 0; +} + +void UnloadIdleModule() +{ + if ( !bModuleInitialized) return; + + IdleObject_Destroy(&gIdleObject); + DestroyHookableEvent(hIdleEvent); + hIdleEvent = NULL; +} diff --git a/src/core/stdidle/src/main.cpp b/src/core/stdidle/src/main.cpp new file mode 100644 index 0000000000..b50a708da7 --- /dev/null +++ b/src/core/stdidle/src/main.cpp @@ -0,0 +1,73 @@ +/* + +Standard idle state module for Miranda NG + +Copyright (C) 2012-14 George Hazan + +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; either version 2 of the License, or +(at your option) any later version. + +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, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#include "commonheaders.h" + +int LoadIdleModule(void); +void UnloadIdleModule(void); + +CLIST_INTERFACE* pcli; +TIME_API tmi; +HINSTANCE hInst; +int hLangpack; + +PLUGININFOEX pluginInfo = { + sizeof(PLUGININFOEX), + __PLUGIN_NAME, + MIRANDA_VERSION_DWORD, + __DESCRIPTION, + __AUTHOR, + __AUTHOREMAIL, + __COPYRIGHT, + __AUTHORWEB, + UNICODE_AWARE, + // 53ac190b-e223-4341-825f-709d8520215b + { 0x53ac190b, 0xe223, 0x4341, {0x82, 0x5f, 0x70, 0x9d, 0x85, 0x20, 0x21, 0x5b}} +}; + +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) const MUUID MirandaInterfaces[] = { MIID_IDLE, MIID_LAST }; + +extern "C" int __declspec(dllexport) Load(void) +{ + mir_getLP(&pluginInfo); + mir_getTMI(&tmi); + mir_getCLI(); + + LoadIdleModule(); + return 0; +} + +extern "C" int __declspec(dllexport) Unload(void) +{ + UnloadIdleModule(); + return 0; +} diff --git a/src/core/stdidle/src/version.h b/src/core/stdidle/src/version.h new file mode 100644 index 0000000000..0e44e85d35 --- /dev/null +++ b/src/core/stdidle/src/version.h @@ -0,0 +1,12 @@ +#include + +#define __FILEVERSION_STRING MIRANDA_VERSION_FILEVERSION +#define __VERSION_STRING MIRANDA_VERSION_STRING + +#define __PLUGIN_NAME "Standard Idle module" +#define __FILENAME "stdidle.dll" +#define __DESCRIPTION "Core module for idle state processing." +#define __AUTHOR "Miranda NG Development Team" +#define __AUTHOREMAIL "" +#define __AUTHORWEB "http://miranda-ng.org/p/StdIdle/" +#define __COPYRIGHT "© 2012 Miranda NG Development Team" diff --git a/src/core/stdidle/stdidle_10.vcxproj b/src/core/stdidle/stdidle_10.vcxproj index f99fcc4cf9..b525a6ed4f 100644 --- a/src/core/stdidle/stdidle_10.vcxproj +++ b/src/core/stdidle/stdidle_10.vcxproj @@ -199,19 +199,20 @@ - + Create - - + + - + + - - + + diff --git a/src/core/stdidle/stdidle_10.vcxproj.filters b/src/core/stdidle/stdidle_10.vcxproj.filters index c77e259559..33719e104e 100644 --- a/src/core/stdidle/stdidle_10.vcxproj.filters +++ b/src/core/stdidle/stdidle_10.vcxproj.filters @@ -15,29 +15,32 @@ - + Source Files - + Source Files - + Source Files - + Header Files Header Files + + Header Files + - + Resource Files - + Resource Files diff --git a/src/core/stdidle/stdidle_12.vcxproj b/src/core/stdidle/stdidle_12.vcxproj index b06c7c89de..798f60887c 100644 --- a/src/core/stdidle/stdidle_12.vcxproj +++ b/src/core/stdidle/stdidle_12.vcxproj @@ -202,19 +202,20 @@ - + Create - - + + - + + - - + + diff --git a/src/core/stdidle/stdidle_12.vcxproj.filters b/src/core/stdidle/stdidle_12.vcxproj.filters index c77e259559..33719e104e 100644 --- a/src/core/stdidle/stdidle_12.vcxproj.filters +++ b/src/core/stdidle/stdidle_12.vcxproj.filters @@ -15,29 +15,32 @@ - + Source Files - + Source Files - + Source Files - + Header Files Header Files + + Header Files + - + Resource Files - + Resource Files diff --git a/src/core/stdidle/version.h b/src/core/stdidle/version.h deleted file mode 100644 index 1d294953a6..0000000000 --- a/src/core/stdidle/version.h +++ /dev/null @@ -1,14 +0,0 @@ - -#include - -#define __FILEVERSION_STRING MIRANDA_VERSION_FILEVERSION -#define __VERSION_STRING MIRANDA_VERSION_STRING - -#define __PLUGIN_NAME "Standard Idle module" -#define __INTERNAL_NAME "stdidle" -#define __FILENAME "stdidle.dll" -#define __DESCRIPTION "Core module for idle state processing." -#define __AUTHOR "Miranda NG Development Team" -#define __AUTHOREMAIL "" -#define __AUTHORWEB "http://miranda-ng.org/p/StdIdle/" -#define __COPYRIGHT "© 2012 Miranda NG Development Team" diff --git a/src/core/stdidle/version.rc b/src/core/stdidle/version.rc deleted file mode 100644 index d1da5e8d6a..0000000000 --- a/src/core/stdidle/version.rc +++ /dev/null @@ -1,42 +0,0 @@ -// 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 "version.h" - -#ifdef _WIN32 -LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL -#endif //_WIN32 - -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 -- cgit v1.2.3