summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/stdautoaway/src/autoaway.cpp4
-rw-r--r--src/core/stdautoaway/src/main.cpp1
-rw-r--r--src/core/stdautoaway/src/version.h1
-rw-r--r--src/core/stdaway/src/main.cpp1
-rw-r--r--src/core/stdaway/src/sendmsg.cpp80
-rw-r--r--src/core/stdaway/src/version.h1
-rw-r--r--src/core/stdclist/src/init.cpp1
-rw-r--r--src/core/stdclist/src/version.h1
-rw-r--r--src/core/stdcrypt/src/main.cpp1
-rw-r--r--src/core/stdcrypt/src/version.h1
-rw-r--r--src/core/stdemail/src/main.cpp1
-rw-r--r--src/core/stdemail/src/version.h1
-rw-r--r--src/core/stdfile/src/filerecvdlg.cpp13
-rw-r--r--src/core/stdfile/src/main.cpp1
-rw-r--r--src/core/stdfile/src/stdafx.h1
-rw-r--r--src/core/stdfile/src/version.h1
-rw-r--r--src/core/stdidle/res/resource.rc4
-rw-r--r--src/core/stdidle/src/idle.cpp327
-rw-r--r--src/core/stdidle/src/main.cpp1
-rw-r--r--src/core/stdidle/src/options.cpp134
-rw-r--r--src/core/stdidle/src/stdafx.h33
-rw-r--r--src/core/stdidle/src/version.h1
-rw-r--r--src/core/stdmsg/src/msgdialog.cpp9
-rw-r--r--src/core/stdmsg/src/srmm.cpp1
-rw-r--r--src/core/stdmsg/src/stdafx.h1
-rw-r--r--src/core/stdmsg/src/version.h1
-rw-r--r--src/core/stdssl/src/main.cpp1
-rw-r--r--src/core/stdssl/src/version.h1
-rw-r--r--src/core/stduihist/src/main.cpp1
-rw-r--r--src/core/stduihist/src/version.h1
-rw-r--r--src/core/stduserinfo/src/main.cpp1
-rw-r--r--src/core/stduserinfo/src/version.h1
-rw-r--r--src/core/stduseronline/src/main.cpp1
-rw-r--r--src/core/stduseronline/src/version.h1
34 files changed, 258 insertions, 372 deletions
diff --git a/src/core/stdautoaway/src/autoaway.cpp b/src/core/stdautoaway/src/autoaway.cpp
index c1ebc6bbe5..c21b77253f 100644
--- a/src/core/stdautoaway/src/autoaway.cpp
+++ b/src/core/stdautoaway/src/autoaway.cpp
@@ -47,8 +47,8 @@ static void Proto_SetStatus(const char *szProto, unsigned status)
static int AutoAwayEvent(WPARAM, LPARAM lParam)
{
- MIRANDA_IDLE_INFO mii = { sizeof(mii) };
- CallService(MS_IDLE_GETIDLEINFO, 0, (LPARAM)&mii);
+ MIRANDA_IDLE_INFO mii;
+ Idle_GetInfo(mii);
if (mii.idlesoundsoff)
iBreakSounds = (lParam & IDF_ISIDLE) != 0;
diff --git a/src/core/stdautoaway/src/main.cpp b/src/core/stdautoaway/src/main.cpp
index 58f414e5ac..16bf735564 100644
--- a/src/core/stdautoaway/src/main.cpp
+++ b/src/core/stdautoaway/src/main.cpp
@@ -32,7 +32,6 @@ PLUGININFOEX pluginInfo = {
MIRANDA_VERSION_DWORD,
__DESCRIPTION,
__AUTHOR,
- __AUTHOREMAIL,
__COPYRIGHT,
__AUTHORWEB,
UNICODE_AWARE,
diff --git a/src/core/stdautoaway/src/version.h b/src/core/stdautoaway/src/version.h
index 84fee2edca..3952127b07 100644
--- a/src/core/stdautoaway/src/version.h
+++ b/src/core/stdautoaway/src/version.h
@@ -7,6 +7,5 @@
#define __FILENAME "stdautoaway.dll"
#define __DESCRIPTION "Core module for away state processing."
#define __AUTHOR "Miranda NG Development Team"
-#define __AUTHOREMAIL ""
#define __AUTHORWEB "https://miranda-ng.org/p/StdAutoAway/"
#define __COPYRIGHT "© 2012-17 Miranda NG Development Team"
diff --git a/src/core/stdaway/src/main.cpp b/src/core/stdaway/src/main.cpp
index c176bff75e..3ab44e8bd4 100644
--- a/src/core/stdaway/src/main.cpp
+++ b/src/core/stdaway/src/main.cpp
@@ -33,7 +33,6 @@ PLUGININFOEX pluginInfo = {
MIRANDA_VERSION_DWORD,
__DESCRIPTION,
__AUTHOR,
- __AUTHOREMAIL,
__COPYRIGHT,
__AUTHORWEB,
UNICODE_AWARE,
diff --git a/src/core/stdaway/src/sendmsg.cpp b/src/core/stdaway/src/sendmsg.cpp
index af476d6a07..e6df6ddea6 100644
--- a/src/core/stdaway/src/sendmsg.cpp
+++ b/src/core/stdaway/src/sendmsg.cpp
@@ -27,42 +27,41 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
static DWORD protoModeMsgFlags;
static HWND hwndStatusMsg;
-static const wchar_t *GetDefaultMessage(int status)
+static const wchar_t* GetDefaultMessage(int status)
{
- switch(status) {
- case ID_STATUS_AWAY: return TranslateT("I've been away since %time%.");
- case ID_STATUS_NA: return TranslateT("Give it up, I'm not in!");
- case ID_STATUS_OCCUPIED: return TranslateT("Not right now.");
- case ID_STATUS_DND: return TranslateT("Give a guy some peace, would ya?");
- case ID_STATUS_FREECHAT: return TranslateT("I'm a chatbot!");
- case ID_STATUS_ONLINE: return TranslateT("Yep, I'm here.");
- case ID_STATUS_OFFLINE: return TranslateT("Nope, not here.");
- case ID_STATUS_INVISIBLE: return TranslateT("I'm hiding from the mafia.");
+ switch (status) {
+ case ID_STATUS_AWAY: return TranslateT("I've been away since %time%.");
+ case ID_STATUS_NA: return TranslateT("Give it up, I'm not in!");
+ case ID_STATUS_OCCUPIED: return TranslateT("Not right now.");
+ case ID_STATUS_DND: return TranslateT("Give a guy some peace, would ya?");
+ case ID_STATUS_FREECHAT: return TranslateT("I'm a chatbot!");
+ case ID_STATUS_ONLINE: return TranslateT("Yep, I'm here.");
+ case ID_STATUS_OFFLINE: return TranslateT("Nope, not here.");
+ case ID_STATUS_INVISIBLE: return TranslateT("I'm hiding from the mafia.");
case ID_STATUS_ONTHEPHONE: return TranslateT("That'll be the phone.");
case ID_STATUS_OUTTOLUNCH: return TranslateT("Mmm... food.");
- case ID_STATUS_IDLE: return TranslateT("idleeeeeeee");
+ case ID_STATUS_IDLE: return TranslateT("idleeeeeeee");
}
return nullptr;
}
-static const char *StatusModeToDbSetting(int status, const char *suffix)
+static const char* StatusModeToDbSetting(int status, const char *suffix)
{
const char *prefix;
static char str[64];
- switch(status)
- {
- case ID_STATUS_AWAY: prefix = "Away"; break;
- case ID_STATUS_NA: prefix = "Na"; break;
- case ID_STATUS_DND: prefix = "Dnd"; break;
- case ID_STATUS_OCCUPIED: prefix = "Occupied"; break;
- case ID_STATUS_FREECHAT: prefix = "FreeChat"; break;
- case ID_STATUS_ONLINE: prefix = "On"; break;
- case ID_STATUS_OFFLINE: prefix = "Off"; break;
- case ID_STATUS_INVISIBLE: prefix = "Inv"; break;
- case ID_STATUS_ONTHEPHONE: prefix = "Otp"; break;
- case ID_STATUS_OUTTOLUNCH: prefix = "Otl"; break;
- case ID_STATUS_IDLE: prefix = "Idl"; break;
+ switch (status) {
+ case ID_STATUS_AWAY: prefix = "Away"; break;
+ case ID_STATUS_NA: prefix = "Na"; break;
+ case ID_STATUS_DND: prefix = "Dnd"; break;
+ case ID_STATUS_OCCUPIED: prefix = "Occupied"; break;
+ case ID_STATUS_FREECHAT: prefix = "FreeChat"; break;
+ case ID_STATUS_ONLINE: prefix = "On"; break;
+ case ID_STATUS_OFFLINE: prefix = "Off"; break;
+ case ID_STATUS_INVISIBLE: prefix = "Inv"; break;
+ case ID_STATUS_ONTHEPHONE: prefix = "Otp"; break;
+ case ID_STATUS_OUTTOLUNCH: prefix = "Otl"; break;
+ case ID_STATUS_IDLE: prefix = "Idl"; break;
default: return nullptr;
}
mir_snprintf(str, "%s%s", prefix, suffix);
@@ -84,26 +83,26 @@ static wchar_t* GetAwayMessage(int statusMode, char *szProto)
if (szProto && !(CallProtoService(szProto, PS_GETCAPS, PFLAGNUM_3, 0) & Proto_Status2Flag(statusMode)))
return nullptr;
- if ( GetStatusModeByte(statusMode, "Ignore"))
+ if (GetStatusModeByte(statusMode, "Ignore"))
return nullptr;
DBVARIANT dbv;
- if ( GetStatusModeByte(statusMode, "UsePrev")) {
- if ( db_get_ws(NULL, "SRAway", StatusModeToDbSetting(statusMode, "Msg"), &dbv))
+ if (GetStatusModeByte(statusMode, "UsePrev")) {
+ if (db_get_ws(NULL, "SRAway", StatusModeToDbSetting(statusMode, "Msg"), &dbv))
dbv.ptszVal = mir_wstrdup(GetDefaultMessage(statusMode));
}
else {
- if ( db_get_ws(NULL, "SRAway", StatusModeToDbSetting(statusMode, "Default"), &dbv))
+ if (db_get_ws(NULL, "SRAway", StatusModeToDbSetting(statusMode, "Default"), &dbv))
dbv.ptszVal = mir_wstrdup(GetDefaultMessage(statusMode));
- for (int i=0; dbv.ptszVal[i]; i++) {
+ for (int i = 0; dbv.ptszVal[i]; i++) {
if (dbv.ptszVal[i] != '%')
continue;
wchar_t substituteStr[128];
- if ( !wcsnicmp(dbv.ptszVal + i, L"%time%", 6)) {
- MIRANDA_IDLE_INFO mii = { sizeof(mii) };
- CallService(MS_IDLE_GETIDLEINFO, 0, (LPARAM)&mii);
+ if (!wcsnicmp(dbv.ptszVal + i, L"%time%", 6)) {
+ MIRANDA_IDLE_INFO mii;
+ Idle_GetInfo(mii);
if (mii.idleType == 1) {
int mm;
@@ -117,14 +116,14 @@ static wchar_t* GetAwayMessage(int statusMode, char *szProto)
}
else GetTimeFormat(LOCALE_USER_DEFAULT, TIME_NOSECONDS, NULL, NULL, substituteStr, _countof(substituteStr));
}
- else if ( !wcsnicmp(dbv.ptszVal + i, L"%date%", 6))
+ else if (!wcsnicmp(dbv.ptszVal + i, L"%date%", 6))
GetDateFormat(LOCALE_USER_DEFAULT, DATE_SHORTDATE, NULL, NULL, substituteStr, _countof(substituteStr));
else continue;
if (mir_wstrlen(substituteStr) > 6)
dbv.ptszVal = (wchar_t*)mir_realloc(dbv.ptszVal, (mir_wstrlen(dbv.ptszVal) + 1 + mir_wstrlen(substituteStr) - 6) * sizeof(wchar_t));
memmove(dbv.ptszVal + i + mir_wstrlen(substituteStr), dbv.ptszVal + i + 6, (mir_wstrlen(dbv.ptszVal) - i - 5) * sizeof(wchar_t));
- memcpy(dbv.ptszVal+i, substituteStr, mir_wstrlen(substituteStr) * sizeof(wchar_t));
+ memcpy(dbv.ptszVal + i, substituteStr, mir_wstrlen(substituteStr) * sizeof(wchar_t));
}
}
return dbv.ptszVal;
@@ -132,10 +131,9 @@ static wchar_t* GetAwayMessage(int statusMode, char *szProto)
static LRESULT CALLBACK MessageEditSubclassProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
- switch(msg) {
+ switch (msg) {
case WM_CHAR:
- if (wParam == '\n' && GetKeyState(VK_CONTROL) & 0x8000)
- {
+ if (wParam == '\n' && GetKeyState(VK_CONTROL) & 0x8000) {
PostMessage(GetParent(hwnd), WM_COMMAND, IDOK, 0);
return 0;
}
@@ -321,7 +319,7 @@ static int StatusModeChange(WPARAM wParam, LPARAM lParam)
// If its a single protocol check the PFLAGNUM_3 for the single protocol
if (!(CallProtoService(szProto, PS_GETCAPS, PFLAGNUM_1, 0) & PF1_MODEMSGSEND) ||
!(CallProtoService(szProto, PS_GETCAPS, PFLAGNUM_3, 0) & Proto_Status2Flag(statusMode)))
- return 0;
+ return 0;
}
BOOL bScreenSaverRunning = IsScreenSaverRunning();
@@ -539,7 +537,7 @@ static int AwayMsgSendAccountsChanged(WPARAM, LPARAM)
protoModeMsgFlags = 0;
int nAccounts;
- PROTOACCOUNT** accounts;
+ PROTOACCOUNT **accounts;
Proto_EnumAccounts(&nAccounts, &accounts);
for (int i = 0; i < nAccounts; i++) {
if (!Proto_IsAccountEnabled(accounts[i]))
@@ -560,7 +558,7 @@ static int AwayMsgSendModulesLoaded(WPARAM, LPARAM)
return 0;
}
-//remember to mir_free() the return value
+// remember to mir_free() the return value
static INT_PTR sttGetAwayMessageT(WPARAM wParam, LPARAM lParam)
{
return (INT_PTR)GetAwayMessage((int)wParam, (char*)lParam);
diff --git a/src/core/stdaway/src/version.h b/src/core/stdaway/src/version.h
index c611618b3a..54199a498b 100644
--- a/src/core/stdaway/src/version.h
+++ b/src/core/stdaway/src/version.h
@@ -7,6 +7,5 @@
#define __FILENAME "stdaway.dll"
#define __DESCRIPTION "Core module for the away messages processing."
#define __AUTHOR "Miranda NG Development Team"
-#define __AUTHOREMAIL ""
#define __AUTHORWEB "https://miranda-ng.org/p/StdAway/"
#define __COPYRIGHT "© 2012-17 Miranda NG Development Team"
diff --git a/src/core/stdclist/src/init.cpp b/src/core/stdclist/src/init.cpp
index e9a5b547f0..7fb57bdec1 100644
--- a/src/core/stdclist/src/init.cpp
+++ b/src/core/stdclist/src/init.cpp
@@ -58,7 +58,6 @@ PLUGININFOEX pluginInfo = {
MIRANDA_VERSION_DWORD,
__DESCRIPTION,
__AUTHOR,
- __AUTHOREMAIL,
__COPYRIGHT,
__AUTHORWEB,
UNICODE_AWARE,
diff --git a/src/core/stdclist/src/version.h b/src/core/stdclist/src/version.h
index ba56c650ec..07fceac156 100644
--- a/src/core/stdclist/src/version.h
+++ b/src/core/stdclist/src/version.h
@@ -8,6 +8,5 @@
#define __FILENAME "stdclist.dll"
#define __DESCRIPTION "Core module for displaying contacts."
#define __AUTHOR "Miranda NG Development Team"
-#define __AUTHOREMAIL ""
#define __AUTHORWEB "https://miranda-ng.org/p/StdClist/"
#define __COPYRIGHT "© 2012-17 Miranda NG Development Team"
diff --git a/src/core/stdcrypt/src/main.cpp b/src/core/stdcrypt/src/main.cpp
index 48983fceb7..a9805b82d6 100644
--- a/src/core/stdcrypt/src/main.cpp
+++ b/src/core/stdcrypt/src/main.cpp
@@ -31,7 +31,6 @@ PLUGININFOEX pluginInfo = {
MIRANDA_VERSION_DWORD,
__DESCRIPTION,
__AUTHOR,
- __AUTHOREMAIL,
__COPYRIGHT,
__AUTHORWEB,
UNICODE_AWARE,
diff --git a/src/core/stdcrypt/src/version.h b/src/core/stdcrypt/src/version.h
index a45c96afb9..f2a287aa7b 100644
--- a/src/core/stdcrypt/src/version.h
+++ b/src/core/stdcrypt/src/version.h
@@ -7,6 +7,5 @@
#define __FILENAME "stdcrypt.dll"
#define __DESCRIPTION "Core module for encryption."
#define __AUTHOR "Miranda NG Development Team"
-#define __AUTHOREMAIL ""
#define __AUTHORWEB "https://miranda-ng.org/p/StdCrypt/"
#define __COPYRIGHT "© 2012-17 Miranda NG Development Team"
diff --git a/src/core/stdemail/src/main.cpp b/src/core/stdemail/src/main.cpp
index f4a3299c77..4bb4247596 100644
--- a/src/core/stdemail/src/main.cpp
+++ b/src/core/stdemail/src/main.cpp
@@ -32,7 +32,6 @@ PLUGININFOEX pluginInfo = {
MIRANDA_VERSION_DWORD,
__DESCRIPTION,
__AUTHOR,
- __AUTHOREMAIL,
__COPYRIGHT,
__AUTHORWEB,
UNICODE_AWARE,
diff --git a/src/core/stdemail/src/version.h b/src/core/stdemail/src/version.h
index 1dbb386bea..c2ebdc6ab8 100644
--- a/src/core/stdemail/src/version.h
+++ b/src/core/stdemail/src/version.h
@@ -7,6 +7,5 @@
#define __FILENAME "stdemail.dll"
#define __DESCRIPTION "Core module for e-mail urls handling."
#define __AUTHOR "Miranda NG Development Team"
-#define __AUTHOREMAIL ""
#define __AUTHORWEB "https://miranda-ng.org/p/StdEmail/"
#define __COPYRIGHT "© 2012-17 Miranda NG Development Team"
diff --git a/src/core/stdfile/src/filerecvdlg.cpp b/src/core/stdfile/src/filerecvdlg.cpp
index 49d1fcd3b1..9feef53743 100644
--- a/src/core/stdfile/src/filerecvdlg.cpp
+++ b/src/core/stdfile/src/filerecvdlg.cpp
@@ -346,15 +346,10 @@ INT_PTR CALLBACK DlgProcRecvFile(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM l
break;
case IDC_ADD:
- {
- ADDCONTACTSTRUCT acs = { 0 };
- acs.hContact = dat->hContact;
- acs.handleType = HANDLE_CONTACT;
- acs.szProto = "";
- CallService(MS_ADDCONTACT_SHOW, (WPARAM)hwndDlg, (LPARAM)&acs);
- if (!db_get_b(dat->hContact, "CList", "NotOnList", 0))
- ShowWindow(GetDlgItem(hwndDlg, IDC_ADD), SW_HIDE);
- }
+ Contact_Add(dat->hContact, hwndDlg);
+
+ if (!db_get_b(dat->hContact, "CList", "NotOnList", 0))
+ ShowWindow(GetDlgItem(hwndDlg, IDC_ADD), SW_HIDE);
break;
case IDC_USERMENU:
diff --git a/src/core/stdfile/src/main.cpp b/src/core/stdfile/src/main.cpp
index 2e3c002907..67ae29ac03 100644
--- a/src/core/stdfile/src/main.cpp
+++ b/src/core/stdfile/src/main.cpp
@@ -35,7 +35,6 @@ PLUGININFOEX pluginInfo = {
MIRANDA_VERSION_DWORD,
__DESCRIPTION,
__AUTHOR,
- __AUTHOREMAIL,
__COPYRIGHT,
__AUTHORWEB,
UNICODE_AWARE,
diff --git a/src/core/stdfile/src/stdafx.h b/src/core/stdfile/src/stdafx.h
index cc4b8d3742..512cc93ad7 100644
--- a/src/core/stdfile/src/stdafx.h
+++ b/src/core/stdfile/src/stdafx.h
@@ -60,7 +60,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <m_message.h>
#include <m_userinfo.h>
#include <m_history.h>
-#include <m_addcontact.h>
#include <m_findadd.h>
#include <m_file.h>
#include <m_icolib.h>
diff --git a/src/core/stdfile/src/version.h b/src/core/stdfile/src/version.h
index 61ada99635..54750eb07e 100644
--- a/src/core/stdfile/src/version.h
+++ b/src/core/stdfile/src/version.h
@@ -7,6 +7,5 @@
#define __FILENAME "stdfile.dll"
#define __DESCRIPTION "Core module for sending/receiving files."
#define __AUTHOR "Miranda NG Development Team"
-#define __AUTHOREMAIL ""
#define __AUTHORWEB "https://miranda-ng.org/p/StdFile/"
#define __COPYRIGHT "© 2012-17 Miranda NG Development Team"
diff --git a/src/core/stdidle/res/resource.rc b/src/core/stdidle/res/resource.rc
index ebecfa7b37..1b926065de 100644
--- a/src/core/stdidle/res/resource.rc
+++ b/src/core/stdidle/res/resource.rc
@@ -35,7 +35,7 @@ BEGIN
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 "Spin2",IDC_IDLESPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,86,59,11,14
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,
@@ -44,7 +44,7 @@ BEGIN
"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
+ LTEXT "minute(s)",IDC_STATIC,99,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
diff --git a/src/core/stdidle/src/idle.cpp b/src/core/stdidle/src/idle.cpp
index eb0ef2568c..64974bff02 100644
--- a/src/core/stdidle/src/idle.cpp
+++ b/src/core/stdidle/src/idle.cpp
@@ -24,209 +24,88 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "stdafx.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"
+Settings S;
-#define IdleObject_IsIdle(obj) (obj->state&0x1)
-#define IdleObject_SetIdle(obj) (obj->state|=0x1)
-#define IdleObject_ClearIdle(obj) (obj->state&=~0x1)
+static bool bModuleInitialized = false;
-// 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 <Wtsapi32.h>
-
-#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()
+struct IdleObject
{
- PVOID pBuffer = nullptr;
- 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};
+ int bIsIdle;
+};
static IdleObject gIdleObject;
static HANDLE hIdleEvent;
void CALLBACK IdleTimer(HWND hwnd, UINT umsg, UINT_PTR idEvent, DWORD dwTime);
+int IdleOptInit(WPARAM wParam, LPARAM);
-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)
+void IdleObject_Create()
{
- memset(obj, 0, sizeof(IdleObject));
- obj->hTimer = SetTimer(nullptr, 0, 2000, IdleTimer);
- IdleObject_ReadSettings(obj);
+ memset(&gIdleObject, 0, sizeof(gIdleObject));
+ gIdleObject.hTimer = SetTimer(nullptr, 0, 2000, IdleTimer);
}
-static void IdleObject_Destroy(IdleObject * obj)
+void IdleObject_Destroy()
{
- if (IdleObject_IsIdle(obj))
+ if (gIdleObject.bIsIdle)
NotifyEventHooks(hIdleEvent, 0, 0);
- IdleObject_ClearIdle(obj);
- KillTimer(nullptr, obj->hTimer);
+ gIdleObject.bIsIdle = false;
+ KillTimer(nullptr, gIdleObject.hTimer);
}
-static int IdleObject_IsUserIdle(IdleObject * obj)
+static int IdleObject_IsUserIdle()
{
- DWORD dwTick;
- if (IdleObject_GetMethod(obj)) {
+ if (S.bIdleMethod) {
+ DWORD dwTick;
CallService(MS_SYSTEM_GETIDLE, 0, (LPARAM)&dwTick);
- return GetTickCount() - dwTick > (obj->minutes * 60 * 1000);
+ return GetTickCount() - dwTick > (S.iIdleTime1st * 60 * 1000);
}
LASTINPUTINFO ii = { sizeof(ii) };
- if ( GetLastInputInfo(&ii))
- return GetTickCount() - ii.dwTime > (obj->minutes * 60 * 1000);
+ if (GetLastInputInfo(&ii))
+ return GetTickCount() - ii.dwTime > (S.iIdleTime1st * 60 * 1000);
return FALSE;
}
-static void IdleObject_Tick(IdleObject * obj)
+static void IdleObject_Tick(IdleObject *obj)
{
bool idle = false;
- int idleType = 0, flags = 0;
+ int idleType = 0, flags = 0;
- if (obj->useridlecheck && IdleObject_IsUserIdle(obj)) {
+ if (S.bIdleCheck && IdleObject_IsUserIdle()) {
idleType = 1; idle = true;
}
- else if (IdleObject_IdleCheckSaver(obj) && IsScreenSaverRunning()) {
+ else if (S.bIdleOnSaver && IsScreenSaverRunning()) {
idleType = 2; idle = true;
}
- else if (IdleObject_IdleCheckFullScr(obj) && IsFullScreen()) {
+ else if (S.bIdleOnFullScr && IsFullScreen()) {
idleType = 5; idle = true;
}
- else if (IdleObject_IdleCheckWorkstation(obj) && IsWorkstationLocked()) {
+ else if (S.bIdleOnLock && IsWorkstationLocked()) {
idleType = 3; idle = true;
}
- else if (IdleObject_IdleCheckTerminal(obj) && IsTerminalDisconnected()) {
+ else if (S.bIdleOnTerminal && IsTerminalDisconnected()) {
idleType = 4; idle = true;
}
- if (IdleObject_IsPrivacy(obj))
+ if (S.bIdlePrivate)
flags |= IDF_PRIVACY;
- if ( !IdleObject_IsIdle(obj) && idle) {
- IdleObject_SetIdle(obj);
+ if (!obj->bIsIdle && idle) {
+ obj->bIsIdle = true;
obj->idleType = idleType;
NotifyEventHooks(hIdleEvent, 0, IDF_ISIDLE | flags);
}
- if (IdleObject_IsIdle(obj) && !idle) {
- IdleObject_ClearIdle(obj);
+
+ if (obj->bIsIdle && !idle) {
+ obj->bIsIdle = false;
obj->idleType = 0;
NotifyEventHooks(hIdleEvent, 0, flags);
-} }
+ }
+}
void CALLBACK IdleTimer(HWND, UINT, UINT_PTR idEvent, DWORD)
{
@@ -234,137 +113,17 @@ void CALLBACK IdleTimer(HWND, UINT, UINT_PTR idEvent, DWORD)
IdleObject_Tick(&gIdleObject);
}
-int IdleGetStatusIndex(WORD status)
-{
- for (int j = 0; j < _countof(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 < _countof(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 = { 0 };
- odp.position = 100000000;
- odp.hInstance = hInst;
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_IDLE);
- odp.szGroup.a = LPGEN("Status");
- odp.szTitle.a = 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))
+ if (!mii)
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->idleTime = S.iIdleTime1st;
+ mii->privacy = S.bIdlePrivate;
+ mii->aaStatus = (S.bAAEnable) ? S.bAAStatus : 0;
+ mii->aaLock = S.bIdleStatusLock;
+ mii->idlesoundsoff = S.bIdleSoundsOff;
mii->idleType = gIdleObject.idleType;
return 0;
}
@@ -374,7 +133,7 @@ int LoadIdleModule(void)
bModuleInitialized = TRUE;
hIdleEvent = CreateHookableEvent(ME_IDLE_CHANGED);
- IdleObject_Create(&gIdleObject);
+ IdleObject_Create();
CreateServiceFunction(MS_IDLE_GETIDLEINFO, IdleGetInfo);
HookEvent(ME_OPT_INITIALISE, IdleOptInit);
return 0;
@@ -382,9 +141,9 @@ int LoadIdleModule(void)
void UnloadIdleModule()
{
- if ( !bModuleInitialized) return;
+ if (!bModuleInitialized) return;
- IdleObject_Destroy(&gIdleObject);
+ IdleObject_Destroy();
DestroyHookableEvent(hIdleEvent);
hIdleEvent = nullptr;
}
diff --git a/src/core/stdidle/src/main.cpp b/src/core/stdidle/src/main.cpp
index bbc78d8281..4ca3c99d33 100644
--- a/src/core/stdidle/src/main.cpp
+++ b/src/core/stdidle/src/main.cpp
@@ -34,7 +34,6 @@ PLUGININFOEX pluginInfo = {
MIRANDA_VERSION_DWORD,
__DESCRIPTION,
__AUTHOR,
- __AUTHOREMAIL,
__COPYRIGHT,
__AUTHORWEB,
UNICODE_AWARE,
diff --git a/src/core/stdidle/src/options.cpp b/src/core/stdidle/src/options.cpp
new file mode 100644
index 0000000000..58484c7650
--- /dev/null
+++ b/src/core/stdidle/src/options.cpp
@@ -0,0 +1,134 @@
+/*
+
+Miranda NG: the free IM client for Microsoft* Windows*
+
+Copyright (c) 2012-17 Miranda NG project (https://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 "stdafx.h"
+
+static const WORD aa_Status[] = { ID_STATUS_AWAY, ID_STATUS_NA, ID_STATUS_OCCUPIED, ID_STATUS_DND, ID_STATUS_ONTHEPHONE, ID_STATUS_OUTTOLUNCH };
+
+int IdleGetStatusIndex(WORD status)
+{
+ for (int j = 0; j < _countof(aa_Status); j++)
+ if (aa_Status[j] == status)
+ return j;
+
+ return 0;
+}
+
+class COptionsDlg : public CPluginDlgBase
+{
+ CCtrlEdit edt1sttime;
+ CCtrlSpin spinIdle;
+ CCtrlCombo cmbAAStatus;
+ CCtrlCheck chkShort, chkOnWindows, chkOnMiranda, chkScreenSaver, chkFullScreen, chkLocked;
+ CCtrlCheck chkPrivate, chkStatusLock, chkTerminal, chkSoundsOff, chkShortIdle;
+
+ void ShowHide()
+ {
+ BOOL bChecked = chkShort.GetState();
+ chkOnWindows.Enable(bChecked);
+ chkOnMiranda.Enable(bChecked);
+ edt1sttime.Enable(bChecked);
+
+ bChecked = chkShortIdle.GetState();
+ cmbAAStatus.Enable(bChecked);
+ chkStatusLock.Enable(bChecked);
+ }
+
+public:
+ COptionsDlg() :
+ CPluginDlgBase(hInst, IDD_OPT_IDLE, IDLEMOD),
+ edt1sttime(this, IDC_IDLE1STTIME),
+ spinIdle(this, IDC_IDLESPIN),
+ cmbAAStatus(this, IDC_AASTATUS),
+ chkShort(this, IDC_IDLESHORT),
+ chkLocked(this, IDC_LOCKED),
+ chkPrivate(this, IDC_IDLEPRIVATE),
+ chkTerminal(this, IDC_IDLETERMINAL),
+ chkOnWindows(this, IDC_IDLEONWINDOWS),
+ chkSoundsOff(this, IDC_IDLESOUNDSOFF),
+ chkOnMiranda(this, IDC_IDLEONMIRANDA),
+ chkShortIdle(this, IDC_AASHORTIDLE),
+ chkStatusLock(this, IDC_IDLESTATUSLOCK),
+ chkFullScreen(this, IDC_FULLSCREEN),
+ chkScreenSaver(this, IDC_SCREENSAVER)
+ {
+ CreateLink(chkShort, S.bIdleCheck);
+ CreateLink(chkLocked, S.bIdleOnLock);
+ CreateLink(chkPrivate, S.bIdlePrivate);
+ CreateLink(chkTerminal, S.bIdleOnTerminal);
+ CreateLink(chkShortIdle, S.bAAEnable);
+ CreateLink(chkOnMiranda, S.bIdleMethod);
+ CreateLink(chkSoundsOff, S.bIdleSoundsOff);
+ CreateLink(chkStatusLock, S.bIdleStatusLock);
+ CreateLink(chkFullScreen, S.bIdleOnFullScr);
+ CreateLink(chkScreenSaver, S.bIdleOnSaver);
+
+ chkShortIdle.OnChange = chkShort.OnChange = Callback(this, &COptionsDlg::onChange);
+ }
+
+ virtual void OnInitDialog() override
+ {
+ chkOnWindows.SetState(!S.bIdleMethod);
+
+ spinIdle.SetRange(60, 1);
+ spinIdle.SetPosition(S.iIdleTime1st);
+
+ for (int j = 0; j < _countof(aa_Status); j++)
+ cmbAAStatus.AddString(pcli->pfnGetStatusModeDescription(aa_Status[j], 0));
+ cmbAAStatus.SetCurSel(IdleGetStatusIndex(S.bAAStatus));
+
+ ShowHide();
+ }
+
+ virtual void OnApply() override
+ {
+ S.iIdleTime1st = spinIdle.GetPosition();
+
+ int curSel = cmbAAStatus.GetCurSel();
+ if (curSel != CB_ERR)
+ S.bAAStatus = aa_Status[curSel];
+
+ // destroy any current idle and reset settings.
+ IdleObject_Destroy();
+ IdleObject_Create();
+ }
+
+ void onChange(CCtrlCheck*)
+ {
+ ShowHide();
+ }
+};
+
+int IdleOptInit(WPARAM wParam, LPARAM)
+{
+ OPTIONSDIALOGPAGE odp = { 0 };
+ odp.position = 100000000;
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_IDLE);
+ odp.szGroup.a = LPGEN("Status");
+ odp.szTitle.a = LPGEN("Idle");
+ odp.flags = ODPF_BOLDGROUPS;
+ odp.pDialog = new COptionsDlg();
+ Options_AddPage(wParam, &odp);
+ return 0;
+}
diff --git a/src/core/stdidle/src/stdafx.h b/src/core/stdidle/src/stdafx.h
index 19c886f65e..2060da635d 100644
--- a/src/core/stdidle/src/stdafx.h
+++ b/src/core/stdidle/src/stdafx.h
@@ -26,7 +26,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <shlobj.h>
#include <commctrl.h>
#include <vssym32.h>
-#include <Wtsapi32.h>
#include <stdio.h>
#include <time.h>
@@ -52,6 +51,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <m_protocols.h>
#include <m_options.h>
#include <m_skin.h>
+#include <m_gui.h>
#include <m_contacts.h>
#include <m_message.h>
#include <m_userinfo.h>
@@ -64,4 +64,35 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "../../mir_app/src/resource.h"
+#define IDLEMOD "Idle"
+
extern HINSTANCE hInst;
+
+struct Settings
+{
+ Settings() :
+ bIdleCheck(IDLEMOD, "UserIdleCheck", 0),
+ bIdleMethod(IDLEMOD, "IdleMethod", 0),
+ bIdleOnSaver(IDLEMOD, "IdleOnSaver", 0),
+ bIdleOnFullScr(IDLEMOD, "IdleOnFullScr", 0),
+ bIdleOnLock(IDLEMOD, "IdleOnLock", 0),
+ bIdlePrivate(IDLEMOD, "IdlePrivate", 0),
+ bIdleSoundsOff(IDLEMOD, "IdleSoundsOff", 1),
+ bIdleOnTerminal(IDLEMOD, "IdleOnTerminalDisconnect", 0),
+ bIdleStatusLock(IDLEMOD, "IdleStatusLock", 0),
+ bAAEnable(IDLEMOD, "AAEnable", 0),
+ bAAStatus(IDLEMOD, "AAStatus", 0),
+ iIdleTime1st(IDLEMOD, "IdleTime1st", 10)
+ {}
+
+ CMOption<BYTE> bIdleCheck, bIdleMethod, bIdleOnSaver, bIdleOnFullScr, bIdleOnLock;
+ CMOption<BYTE> bIdlePrivate, bIdleSoundsOff, bIdleOnTerminal, bIdleStatusLock;
+ CMOption<BYTE> bAAEnable;
+ CMOption<WORD> bAAStatus;
+ CMOption<DWORD> iIdleTime1st;
+};
+
+extern Settings S;
+
+void IdleObject_Destroy();
+void IdleObject_Create();
diff --git a/src/core/stdidle/src/version.h b/src/core/stdidle/src/version.h
index e791573b3a..79f0d6a8b5 100644
--- a/src/core/stdidle/src/version.h
+++ b/src/core/stdidle/src/version.h
@@ -7,6 +7,5 @@
#define __FILENAME "stdidle.dll"
#define __DESCRIPTION "Core module for idle state processing."
#define __AUTHOR "Miranda NG Development Team"
-#define __AUTHOREMAIL ""
#define __AUTHORWEB "https://miranda-ng.org/p/StdIdle/"
#define __COPYRIGHT "© 2012-17 Miranda NG Development Team"
diff --git a/src/core/stdmsg/src/msgdialog.cpp b/src/core/stdmsg/src/msgdialog.cpp
index 104b5fff31..937bb69857 100644
--- a/src/core/stdmsg/src/msgdialog.cpp
+++ b/src/core/stdmsg/src/msgdialog.cpp
@@ -1291,13 +1291,8 @@ INT_PTR CSrmmWindow::DlgProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
break;
case IDC_ADD:
- {
- ADDCONTACTSTRUCT acs = {};
- acs.hContact = m_hContact;
- acs.handleType = HANDLE_CONTACT;
- acs.szProto = nullptr;
- CallService(MS_ADDCONTACT_SHOW, (WPARAM)m_hwnd, (LPARAM)&acs);
- }
+ Contact_Add(m_hContact, m_hwnd);
+
if (!db_get_b(m_hContact, "CList", "NotOnList", 0))
ShowWindow(GetDlgItem(m_hwnd, IDC_ADD), FALSE);
break;
diff --git a/src/core/stdmsg/src/srmm.cpp b/src/core/stdmsg/src/srmm.cpp
index 0b2ead1a17..37cd4f6b33 100644
--- a/src/core/stdmsg/src/srmm.cpp
+++ b/src/core/stdmsg/src/srmm.cpp
@@ -34,7 +34,6 @@ PLUGININFOEX pluginInfo = {
MIRANDA_VERSION_DWORD,
__DESCRIPTION,
__AUTHOR,
- __AUTHOREMAIL,
__COPYRIGHT,
__AUTHORWEB,
UNICODE_AWARE,
diff --git a/src/core/stdmsg/src/stdafx.h b/src/core/stdmsg/src/stdafx.h
index 6069356b35..cfdb92aa2a 100644
--- a/src/core/stdmsg/src/stdafx.h
+++ b/src/core/stdmsg/src/stdafx.h
@@ -55,7 +55,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <m_contacts.h>
#include <m_userinfo.h>
#include <m_history.h>
-#include <m_addcontact.h>
#include <m_chat_int.h>
#include <m_message.h>
#include <m_file.h>
diff --git a/src/core/stdmsg/src/version.h b/src/core/stdmsg/src/version.h
index 55820233cb..64a2cec97c 100644
--- a/src/core/stdmsg/src/version.h
+++ b/src/core/stdmsg/src/version.h
@@ -8,6 +8,5 @@
#define __FILENAME "stdmsg.dll"
#define __DESCRIPTION "Core module for send/receive instant messages."
#define __AUTHOR "Miranda NG Development Team"
-#define __AUTHOREMAIL ""
#define __AUTHORWEB "https://miranda-ng.org/p/StdMsg/"
#define __COPYRIGHT "© 2012-17 Miranda NG Development Team"
diff --git a/src/core/stdssl/src/main.cpp b/src/core/stdssl/src/main.cpp
index 584ff7335b..90aab5f72f 100644
--- a/src/core/stdssl/src/main.cpp
+++ b/src/core/stdssl/src/main.cpp
@@ -33,7 +33,6 @@ PLUGININFOEX pluginInfo = {
MIRANDA_VERSION_DWORD,
__DESCRIPTION,
__AUTHOR,
- __AUTHOREMAIL,
__COPYRIGHT,
__AUTHORWEB,
UNICODE_AWARE,
diff --git a/src/core/stdssl/src/version.h b/src/core/stdssl/src/version.h
index 3029aeafe1..a71217e95e 100644
--- a/src/core/stdssl/src/version.h
+++ b/src/core/stdssl/src/version.h
@@ -8,6 +8,5 @@
#define __FILENAME "stdssl.dll"
#define __DESCRIPTION "Core driver for Windows native SSL support."
#define __AUTHOR "Miranda NG Development Team"
-#define __AUTHOREMAIL ""
#define __AUTHORWEB "https://miranda-ng.org/p/StdSSL/"
#define __COPYRIGHT "© 2014-17 Miranda NG Development Team"
diff --git a/src/core/stduihist/src/main.cpp b/src/core/stduihist/src/main.cpp
index 287c043f8a..9b2bf33812 100644
--- a/src/core/stduihist/src/main.cpp
+++ b/src/core/stduihist/src/main.cpp
@@ -33,7 +33,6 @@ PLUGININFOEX pluginInfo = {
MIRANDA_VERSION_DWORD,
__DESCRIPTION,
__AUTHOR,
- __AUTHOREMAIL,
__COPYRIGHT,
__AUTHORWEB,
UNICODE_AWARE,
diff --git a/src/core/stduihist/src/version.h b/src/core/stduihist/src/version.h
index 618c3c0661..8b3eae6dfc 100644
--- a/src/core/stduihist/src/version.h
+++ b/src/core/stduihist/src/version.h
@@ -7,6 +7,5 @@
#define __FILENAME "stduihist.dll"
#define __DESCRIPTION "Core module for built-in history viewer."
#define __AUTHOR "Miranda NG Development Team"
-#define __AUTHOREMAIL ""
#define __AUTHORWEB "https://miranda-ng.org/p/StdUIHist/"
#define __COPYRIGHT "© 2012-17 Miranda NG Development Team"
diff --git a/src/core/stduserinfo/src/main.cpp b/src/core/stduserinfo/src/main.cpp
index bd569fa829..7563b8e37e 100644
--- a/src/core/stduserinfo/src/main.cpp
+++ b/src/core/stduserinfo/src/main.cpp
@@ -33,7 +33,6 @@ PLUGININFOEX pluginInfo = {
MIRANDA_VERSION_DWORD,
__DESCRIPTION,
__AUTHOR,
- __AUTHOREMAIL,
__COPYRIGHT,
__AUTHORWEB,
UNICODE_AWARE,
diff --git a/src/core/stduserinfo/src/version.h b/src/core/stduserinfo/src/version.h
index 1f9f1d330d..e6c6551488 100644
--- a/src/core/stduserinfo/src/version.h
+++ b/src/core/stduserinfo/src/version.h
@@ -7,6 +7,5 @@
#define __FILENAME "stduserinfo.dll"
#define __DESCRIPTION "Core module for providing user information."
#define __AUTHOR "Miranda NG Development Team"
-#define __AUTHOREMAIL ""
#define __AUTHORWEB "https://miranda-ng.org/p/StdUserInfo/"
#define __COPYRIGHT "© 2012-17 Miranda NG Development Team"
diff --git a/src/core/stduseronline/src/main.cpp b/src/core/stduseronline/src/main.cpp
index 433c91e033..5bc9d43059 100644
--- a/src/core/stduseronline/src/main.cpp
+++ b/src/core/stduseronline/src/main.cpp
@@ -33,7 +33,6 @@ PLUGININFOEX pluginInfo = {
MIRANDA_VERSION_DWORD,
__DESCRIPTION,
__AUTHOR,
- __AUTHOREMAIL,
__COPYRIGHT,
__AUTHORWEB,
UNICODE_AWARE,
diff --git a/src/core/stduseronline/src/version.h b/src/core/stduseronline/src/version.h
index de5b14de25..7a7922cac6 100644
--- a/src/core/stduseronline/src/version.h
+++ b/src/core/stduseronline/src/version.h
@@ -7,6 +7,5 @@
#define __FILENAME "stduseronline.dll"
#define __DESCRIPTION "Core module for user-is-online event processing."
#define __AUTHOR "Miranda NG Development Team"
-#define __AUTHOREMAIL ""
#define __AUTHORWEB "https://miranda-ng.org/p/StdUserOnline/"
#define __COPYRIGHT "© 2012-17 Miranda NG Development Team"