diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/stdclist/res/resource.rc | 59 | ||||
-rw-r--r-- | src/core/stdclist/src/clistopts.cpp | 38 | ||||
-rw-r--r-- | src/core/stdclist/src/contact.cpp | 6 | ||||
-rw-r--r-- | src/core/stdclist/src/init.cpp | 7 | ||||
-rw-r--r-- | src/core/stdclist/src/resource.h | 7 | ||||
-rw-r--r-- | src/core/stdclist/src/stdafx.h | 2 | ||||
-rw-r--r-- | src/mir_app/res/resource.rc | 15 | ||||
-rw-r--r-- | src/mir_app/res/version.rc | 1 | ||||
-rw-r--r-- | src/mir_app/src/clc.h | 4 | ||||
-rw-r--r-- | src/mir_app/src/clistevents.cpp | 30 | ||||
-rw-r--r-- | src/mir_app/src/clistopts.cpp | 29 | ||||
-rw-r--r-- | src/mir_app/src/clisttray.cpp | 34 | ||||
-rw-r--r-- | src/mir_app/src/copyright.h | 2 | ||||
-rw-r--r-- | src/mir_app/src/resource.h | 7 | ||||
-rw-r--r-- | src/mir_app/src/stdafx.h | 1 |
15 files changed, 126 insertions, 116 deletions
diff --git a/src/core/stdclist/res/resource.rc b/src/core/stdclist/res/resource.rc index 45f06891dc..22ccc72edc 100644 --- a/src/core/stdclist/res/resource.rc +++ b/src/core/stdclist/res/resource.rc @@ -45,27 +45,22 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD EXSTYLE WS_EX_CONTROLPARENT
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
+ GROUPBOX "Contact list sorting",IDC_STATIC,2,2,310,68,WS_GROUP
CONTROL "Sort contacts by name",IDC_SORTBYNAME,"Button",BS_AUTORADIOBUTTON | WS_GROUP,10,14,287,10
CONTROL "Sort contacts by status",IDC_SORTBYSTATUS,"Button",BS_AUTORADIOBUTTON,10,26,287,10
CONTROL "Sort contacts by protocol",IDC_SORTBYPROTO,"Button",BS_AUTORADIOBUTTON,10,38,287,10
- CONTROL "Disable icon blinking",IDC_DISABLEBLINK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,86,86,9
- EDITTEXT IDC_BLINKTIME,12,99,35,12,ES_NUMBER
- CONTROL "Spin5",IDC_BLINKSPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,43,99,11,14
- LTEXT "ms delay",IDC_STMSDELAY,52,102,113,8
- CONTROL "Show",IDC_DONTCYCLE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,10,133,90,10
- COMBOBOX IDC_PRIMARYSTATUS,104,132,78,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- LTEXT "icon when statuses differ",IDC_STATIC,189,134,116,8,NOT WS_GROUP
- CONTROL "Cycle icons every",IDC_CYCLE,"Button",BS_AUTORADIOBUTTON,10,150,89,10
- EDITTEXT IDC_CYCLETIME,103,149,30,12,ES_RIGHT | ES_NUMBER
- CONTROL "Spin1",IDC_CYCLETIMESPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,127,133,10,14
- LTEXT "seconds, when statuses differ",IDC_STATIC,141,151,165,8,NOT WS_GROUP
- CONTROL "Show multiple icons",IDC_MULTITRAY,"Button",BS_AUTORADIOBUTTON,10,167,91,10
- CONTROL "Only when statuses differ",IDC_ALWAYSMULTI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,108,167,198,10
- GROUPBOX "System tray icon",IDC_STATIC,2,72,310,47
- GROUPBOX "System tray icon when using multiple protocols",IDC_STATIC,2,121,310,61
- GROUPBOX "Contact list sorting",IDC_STATIC,2,2,310,68,WS_GROUP
- CONTROL "Don't move offline user to bottom",IDC_NOOFFLINEMOVE,
+ CONTROL "Move offline users to bottom",IDC_MOVE_OFFLINE_BOTTOM,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,53,287,10
+ CONTROL "Show",IDC_DONTCYCLE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,10,83,90,10
+ COMBOBOX IDC_PRIMARYSTATUS,104,82,78,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ LTEXT "icon when statuses differ",IDC_STATIC,189,84,116,8,NOT WS_GROUP
+ CONTROL "Cycle icons every",IDC_CYCLE,"Button",BS_AUTORADIOBUTTON,10,100,89,10
+ EDITTEXT IDC_CYCLETIME,103,99,30,12,ES_RIGHT | ES_NUMBER
+ CONTROL "Spin1",IDC_CYCLETIMESPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,127,98,11,14
+ LTEXT "seconds, when statuses differ",IDC_STATIC,141,101,165,8,NOT WS_GROUP
+ CONTROL "Show multiple icons",IDC_MULTITRAY,"Button",BS_AUTORADIOBUTTON,10,117,91,10
+ CONTROL "Only when statuses differ",IDC_ALWAYSMULTI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,108,117,198,10
+ GROUPBOX "System tray icon when using multiple protocols",IDC_STATIC,2,71,310,61
END
IDD_OPT_CLUI DIALOGEX 0, 0, 313, 233
@@ -129,7 +124,7 @@ BEGIN "Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,59,179,10
CONTROL "Make selection highlight translucent",IDC_NOTNOTRANSLUCENTSEL,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,71,179,10
- CONTROL "Dim idle contacts",IDC_IDLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,83,155,10
+ CONTROL "Dim idle contacts",IDC_IDLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,83,153,10
GROUPBOX "Groups",IDC_STATIC,2,99,148,117
CONTROL "Draw a line alongside group names",IDC_LINEWITHGROUPS,
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,9,109,131,16
@@ -142,26 +137,26 @@ BEGIN "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,9,181,131,16
LTEXT "Indent groups by:",IDC_STATIC,9,201,67,8
EDITTEXT IDC_GROUPINDENT,78,199,31,12,ES_RIGHT | ES_NUMBER
- CONTROL "Spin1",IDC_GROUPINDENTSPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,103,204,10,14
+ CONTROL "Spin1",IDC_GROUPINDENTSPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,103,198,10,14
LTEXT "pixels",IDC_STATIC,112,201,36,8
GROUPBOX "Visual",IDC_STATIC,156,99,156,131
- CONTROL "Scroll list smoothly",IDC_NOTNOSMOOTHSCROLLING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,164,110,139,10
+ CONTROL "Scroll list smoothly",IDC_NOTNOSMOOTHSCROLLING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,162,110,139,10
LTEXT "Time:",IDC_STATIC11,174,122,42,8
EDITTEXT IDC_SMOOTHTIME,216,120,31,12,ES_RIGHT | ES_NUMBER
- CONTROL "Spin1",IDC_SMOOTHTIMESPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,240,126,10,14
+ CONTROL "Spin1",IDC_SMOOTHTIMESPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,240,119,10,14
LTEXT "milliseconds",IDC_STATIC12,250,122,56,8,SS_CENTERIMAGE
- CONTROL "Hide vertical scroll bar",IDC_NOSCROLLBAR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,164,135,140,10
- LTEXT "Left margin:",IDC_STATIC,164,148,51,8
+ CONTROL "Hide vertical scroll bar",IDC_NOSCROLLBAR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,162,135,140,10
+ LTEXT "Left margin:",IDC_STATIC,162,148,51,8
EDITTEXT IDC_LEFTMARGIN,215,146,31,12,ES_RIGHT | ES_NUMBER
- CONTROL "Spin1",IDC_LEFTMARGINSPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,240,152,10,14
+ CONTROL "Spin1",IDC_LEFTMARGINSPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,240,145,10,14
LTEXT "pixels",IDC_STATIC,250,148,54,8
- LTEXT "Row height:",IDC_STATIC,164,163,51,8
+ LTEXT "Row height:",IDC_STATIC,162,163,51,8
EDITTEXT IDC_ROWHEIGHT,215,161,31,12,ES_RIGHT | ES_NUMBER
- CONTROL "Spin1",IDC_ROWHEIGHTSPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,240,167,10,14
+ CONTROL "Spin1",IDC_ROWHEIGHTSPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,240,161,10,14
LTEXT "pixels",IDC_STATIC,250,163,54,8
- CONTROL "Gamma correction",IDC_GAMMACORRECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,164,174,140,10
- CONTROL "Gray out entire list when:",IDC_GREYOUT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,164,185,139,10
- CONTROL "Tree1",IDC_GREYOUTOPTS,"SysTreeView32",TVS_DISABLEDRAGDROP | TVS_NOTOOLTIPS | WS_BORDER | WS_HSCROLL | WS_TABSTOP,164,195,141,32
+ CONTROL "Gamma correction",IDC_GAMMACORRECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,162,174,140,10
+ CONTROL "Gray out entire list when:",IDC_GREYOUT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,162,185,139,10
+ CONTROL "Tree1",IDC_GREYOUTOPTS,"SysTreeView32",TVS_DISABLEDRAGDROP | TVS_NOTOOLTIPS | WS_BORDER | WS_HSCROLL | WS_TABSTOP,162,195,141,32
END
IDD_OPT_CLCBKG DIALOGEX 0, 0, 235, 154
@@ -257,13 +252,9 @@ BEGIN LEFTMARGIN, 2
RIGHTMARGIN, 312
VERTGUIDE, 9
- VERTGUIDE, 164
- VERTGUIDE, 216
+ VERTGUIDE, 162
TOPMARGIN, 2
BOTTOMMARGIN, 232
- HORZGUIDE, 145
- HORZGUIDE, 163
- HORZGUIDE, 222
END
IDD_OPT_CLCBKG, DIALOG
diff --git a/src/core/stdclist/src/clistopts.cpp b/src/core/stdclist/src/clistopts.cpp index 7a269a8a8b..29683b6506 100644 --- a/src/core/stdclist/src/clistopts.cpp +++ b/src/core/stdclist/src/clistopts.cpp @@ -26,10 +26,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. class ClistOptsDlg : public CDlgBase
{
- CCtrlSpin cycleTime, blink;
+ CCtrlSpin cycleTime;
CCtrlCombo status;
CCtrlCheck sortByName, sortByStatus, sortByProto, chkOfflineBottom;
- CCtrlCheck chkDisableBlink, chkCycle, chkDontCycle, chkMulti;
+ CCtrlCheck chkCycle, chkDontCycle, chkMulti;
public:
ClistOptsDlg() :
@@ -37,16 +37,13 @@ public: chkCycle(this, IDC_CYCLE),
chkMulti(this, IDC_MULTITRAY),
chkDontCycle(this, IDC_DONTCYCLE),
- blink(this, IDC_BLINKSPIN, 0x3FFF, 250),
cycleTime(this, IDC_CYCLETIMESPIN, 120, 1),
status(this, IDC_PRIMARYSTATUS),
sortByName(this, IDC_SORTBYNAME),
sortByProto(this, IDC_SORTBYPROTO),
sortByStatus(this, IDC_SORTBYSTATUS),
- chkDisableBlink(this, IDC_DISABLEBLINK),
- chkOfflineBottom(this, IDC_NOOFFLINEMOVE)
+ chkOfflineBottom(this, IDC_MOVE_OFFLINE_BOTTOM)
{
- chkDisableBlink.OnChange = Callback(this, &ClistOptsDlg::onChange_DisableBlink);
chkCycle.OnChange = chkDontCycle.OnChange = chkMulti.OnChange = Callback(this, &ClistOptsDlg::onChange_Tray);
}
@@ -64,9 +61,6 @@ public: chkMulti.SetState(iTrayIcon == SETTING_TRAYICON_MULTI);
chkDontCycle.SetState(iTrayIcon == SETTING_TRAYICON_SINGLE);
- chkDisableBlink.SetState(g_plugin.getBool("DisableTrayFlash", false));
-
- blink.SetPosition(g_plugin.getWord("IconFlashTime", 550));
cycleTime.SetPosition(g_plugin.getWord("CycleTime", SETTING_CYCLETIME_DEFAULT));
ptrA szPrimaryStatus(g_plugin.getStringA("PrimaryStatus"));
@@ -87,14 +81,12 @@ public: bool OnApply() override
{
- g_plugin.setByte("SortByStatus", g_bSortByStatus = sortByStatus.GetState());
- g_plugin.setByte("SortByProto", g_bSortByProto = sortByProto.GetState());
- g_plugin.setByte("NoOfflineBottom", g_bNoOfflineBottom = chkOfflineBottom.GetState());
+ g_plugin.setByte("SortByStatus", g_bSortByStatus = sortByStatus.IsChecked());
+ g_plugin.setByte("SortByProto", g_bSortByProto = sortByProto.IsChecked());
+ g_plugin.setByte("OfflineBottom", g_bOfflineToBottom = chkOfflineBottom.IsChecked());
g_plugin.setByte("AlwaysMulti", !IsDlgButtonChecked(m_hwnd, IDC_ALWAYSMULTI));
- g_plugin.setByte("TrayIcon", (chkDontCycle.GetState() ? SETTING_TRAYICON_SINGLE : (chkCycle.GetState() ? SETTING_TRAYICON_CYCLE : SETTING_TRAYICON_MULTI)));
+ g_plugin.setByte("TrayIcon", (chkDontCycle.IsChecked() ? SETTING_TRAYICON_SINGLE : (chkCycle.IsChecked() ? SETTING_TRAYICON_CYCLE : SETTING_TRAYICON_MULTI)));
g_plugin.setWord("CycleTime", cycleTime.GetPosition());
- g_plugin.setWord("IconFlashTime", blink.GetPosition());
- g_plugin.setByte("DisableTrayFlash", IsDlgButtonChecked(m_hwnd, IDC_DISABLEBLINK));
PROTOACCOUNT *pa = (PROTOACCOUNT *)status.GetCurData();
if (pa == nullptr)
@@ -110,18 +102,10 @@ public: void onChange_Tray(CCtrlCheck *)
{
- EnableWindow(GetDlgItem(m_hwnd, IDC_PRIMARYSTATUS), chkDontCycle.GetState());
- EnableWindow(GetDlgItem(m_hwnd, IDC_CYCLETIME), chkCycle.GetState());
- EnableWindow(GetDlgItem(m_hwnd, IDC_CYCLETIMESPIN), chkCycle.GetState());
- EnableWindow(GetDlgItem(m_hwnd, IDC_ALWAYSMULTI), chkMulti.GetState());
- }
-
- void onChange_DisableBlink(CCtrlCheck *)
- {
- bool bEnable = !chkDisableBlink.GetState();
- EnableWindow(GetDlgItem(m_hwnd, IDC_BLINKTIME), bEnable);
- EnableWindow(GetDlgItem(m_hwnd, IDC_BLINKSPIN), bEnable);
- EnableWindow(GetDlgItem(m_hwnd, IDC_STMSDELAY), bEnable);
+ EnableWindow(GetDlgItem(m_hwnd, IDC_PRIMARYSTATUS), chkDontCycle.IsChecked());
+ EnableWindow(GetDlgItem(m_hwnd, IDC_CYCLETIME), chkCycle.IsChecked());
+ EnableWindow(GetDlgItem(m_hwnd, IDC_CYCLETIMESPIN), chkCycle.IsChecked());
+ EnableWindow(GetDlgItem(m_hwnd, IDC_ALWAYSMULTI), chkMulti.IsChecked());
}
};
diff --git a/src/core/stdclist/src/contact.cpp b/src/core/stdclist/src/contact.cpp index c72da2c0fd..daba1cdc61 100644 --- a/src/core/stdclist/src/contact.cpp +++ b/src/core/stdclist/src/contact.cpp @@ -24,7 +24,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "stdafx.h"
-bool g_bSortByStatus, g_bSortByProto, g_bNoOfflineBottom;
+bool g_bSortByStatus, g_bSortByProto, g_bOfflineToBottom;
const struct
{
@@ -80,8 +80,8 @@ int CompareContacts(const ClcContact* c1, const ClcContact* c2) return ordera - orderb;
}
else {
- //one is offline: offline goes below online
- if (!g_bNoOfflineBottom)
+ // one is offline: offline goes below online
+ if (g_bOfflineToBottom)
if ((statusa == ID_STATUS_OFFLINE) != (statusb == ID_STATUS_OFFLINE))
return 2 * (statusa == ID_STATUS_OFFLINE) - 1;
}
diff --git a/src/core/stdclist/src/init.cpp b/src/core/stdclist/src/init.cpp index 46745f0361..3ca412c5f7 100644 --- a/src/core/stdclist/src/init.cpp +++ b/src/core/stdclist/src/init.cpp @@ -107,9 +107,14 @@ static INT_PTR GetStatusMode(WPARAM, LPARAM) int CMPlugin::Load()
{
+ if (g_plugin.getBool("NoOfflineBottom")) {
+ g_plugin.setByte("OfflineBottom", false);
+ g_plugin.delSetting("NoOfflineBottom");
+ }
+
g_bSortByStatus = g_plugin.getBool("SortByStatus", SETTING_SORTBYSTATUS_DEFAULT);
g_bSortByProto = g_plugin.getBool("SortByProto", SETTING_SORTBYPROTO_DEFAULT);
- g_bNoOfflineBottom = g_plugin.getBool("NoOfflineBottom");
+ g_bOfflineToBottom = g_plugin.getBool("OfflineBottom", true);
Clist_GetInterface();
coreCli = g_clistApi;
diff --git a/src/core/stdclist/src/resource.h b/src/core/stdclist/src/resource.h index 6f22f577d9..6e4960668e 100644 --- a/src/core/stdclist/src/resource.h +++ b/src/core/stdclist/src/resource.h @@ -109,9 +109,6 @@ #define IDC_TOPLINE 1535
#define IDC_HOTKEYURLSTR 1567
#define IDC_BRINGTOFRONT 1579
-#define IDC_BLINKTIME 1607
-#define IDC_BLINKSPIN 1608
-#define IDC_DISABLEBLINK 1609
#define IDC_IDLE 1610
#define IDC_SBPANELBEVEL 1611
#define IDC_DROPSHADOW 1612
@@ -120,9 +117,7 @@ #define IDC_ONDESKTOP 1657
#define IDC_DISABLEDOCKING 1658
#define IDC_WINCOLOUR 1659
-#define IDC_STMSDELAY 1661
-#define IDC_CHECK1 1662
-#define IDC_NOOFFLINEMOVE 1662
+#define IDC_MOVE_OFFLINE_BOTTOM 1662
// Next default values for new objects
//
diff --git a/src/core/stdclist/src/stdafx.h b/src/core/stdclist/src/stdafx.h index 03c9854f24..d50af5e471 100644 --- a/src/core/stdclist/src/stdafx.h +++ b/src/core/stdclist/src/stdafx.h @@ -64,6 +64,6 @@ struct CMPlugin : public PLUGIN<CMPlugin> // shared vars
extern CLIST_INTERFACE coreCli;
-extern bool g_bSortByStatus, g_bSortByProto, g_bNoOfflineBottom;
+extern bool g_bSortByStatus, g_bSortByProto, g_bOfflineToBottom;
void LoadClcOptions(HWND hwnd, struct ClcData *dat, BOOL bFirst);
diff --git a/src/mir_app/res/resource.rc b/src/mir_app/res/resource.rc index 099e9a58ed..d1db48df72 100644 --- a/src/mir_app/res/resource.rc +++ b/src/mir_app/res/resource.rc @@ -797,12 +797,16 @@ BEGIN CONTROL "Remove temporary contacts on exit",IDC_REMOVETEMP,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,65,166,10
CONTROL "Enable icon blinking",IDC_ENABLE_ICON_BLINK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,77,166,10
- CONTROL "Search works as filter",IDC_FILTER_SEARCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,89,166,10
+ CONTROL "Search works as filter",IDC_FILTER_SEARCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,89,166,10
CTEXT "'Hide offline' means to hide:",IDC_STATIC,183,14,105,8
CONTROL "",IDC_HIDEOFFLINEOPTS,"SysTreeView32",TVS_DISABLEDRAGDROP | TVS_NOTOOLTIPS | TVS_NONEVENHEIGHT | WS_BORDER | WS_HSCROLL | WS_TABSTOP,183,24,105,104
- GROUPBOX "Tray",IDC_STATIC,6,135,289,39
- CONTROL "Single click interface",IDC_ONECLK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,145,276,10
- CONTROL "Always show status in tooltip",IDC_ALWAYSSTATUS,"Button",BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP,14,159,276,11
+ GROUPBOX "Tray",IDC_STATIC,6,135,289,77
+ CONTROL "Enable icon blinking",IDC_ENABLE_TRAY_BLINK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,148,276,10
+ EDITTEXT IDC_BLINKTIME,29,160,35,12,ES_NUMBER
+ CONTROL "",IDC_BLINKSPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,54,162,11,14
+ LTEXT "ms delay",IDC_STATIC,69,162,113,8
+ CONTROL "Single click interface",IDC_ONECLK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,176,276,10
+ CONTROL "Always show status in tooltip",IDC_ALWAYSSTATUS,"Button",BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP,13,190,276,11
END
IDD_OPT_CHAT_EVENTS DIALOGEX 0, 0, 306, 201
@@ -981,6 +985,7 @@ BEGIN LTEXT "(Setting timeout to 0 means default setting and -1 means indefinite time)",IDC_STATIC,33,151,207,17
END
+
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
@@ -1214,7 +1219,7 @@ BEGIN IDD_OPT_CLIST, DIALOG
BEGIN
- BOTTOMMARGIN, 165
+ BOTTOMMARGIN, 212
END
IDD_OPT_CHAT_EVENTS, DIALOG
diff --git a/src/mir_app/res/version.rc b/src/mir_app/res/version.rc index f697a9c6a7..5fd3761a4e 100644 --- a/src/mir_app/res/version.rc +++ b/src/mir_app/res/version.rc @@ -6,6 +6,7 @@ #include <winres.h>
#include "../include/m_version.h"
+#include "../src/copyright.h"
#include "../src/resource.h"
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/mir_app/src/clc.h b/src/mir_app/src/clc.h index 139ccaceee..d57ec3b1ab 100644 --- a/src/mir_app/src/clc.h +++ b/src/mir_app/src/clc.h @@ -24,6 +24,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #pragma once
+#define MODULENAME "CList"
+
struct ClcContact : public ClcContactBase
{
};
@@ -95,7 +97,7 @@ int ClcOptInit(WPARAM, LPARAM); namespace Clist
{
- extern CMOption<bool> RemoveTempContacts, DisableIconBlink;
+ extern CMOption<bool> RemoveTempContacts, EnableIconBlink, EnableTrayFlash;
};
/* clistmenus.c */
diff --git a/src/mir_app/src/clistevents.cpp b/src/mir_app/src/clistevents.cpp index 66699bbb9f..0533b5b1c7 100644 --- a/src/mir_app/src/clistevents.cpp +++ b/src/mir_app/src/clistevents.cpp @@ -49,8 +49,8 @@ static OBJLIST<CListImlIcon> arImlIcons(10, CompareImlIcons); static UINT_PTR flashTimerId;
static int iconsOn;
-static int disableTrayFlash;
-static int disableIconFlash;
+static bool g_bEnableTrayFlash;
+static bool g_bEnableIconFlash;
static volatile long iEventOrder = 0;
/////////////////////////////////////////////////////////////////////////////////////////
@@ -89,7 +89,7 @@ int fnGetImlIconIndex(HICON hIcon) static void ShowOneEventInTray(const CListEvent &ev)
{
- TrayIconUpdateWithImageList((iconsOn || disableTrayFlash) ? ev.imlIconIndex : 0, ev.szTooltip.w, GetEventProtocol(ev));
+ TrayIconUpdateWithImageList((iconsOn || !g_bEnableTrayFlash) ? ev.imlIconIndex : 0, ev.szTooltip.w, GetEventProtocol(ev));
}
static void ShowEventsInTray()
@@ -138,7 +138,7 @@ static VOID CALLBACK IconFlashTimer(HWND, UINT, UINT_PTR idEvent, DWORD) if (g_cliEvents[j].hContact == e.hContact)
break;
if (j >= i)
- Clist_ChangeContactIcon(e.hContact, iconsOn || disableIconFlash ? e.imlIconIndex : 0);
+ Clist_ChangeContactIcon(e.hContact, iconsOn || !g_bEnableTrayFlash ? e.imlIconIndex : 0);
// decrease eflashes in any case - no need to collect all events
if (e.flags & CLEF_ONLYAFEW)
@@ -335,10 +335,10 @@ static int CListEventSettingsChanged(WPARAM hContact, LPARAM lParam) {
DBCONTACTWRITESETTING *cws = (DBCONTACTWRITESETTING*)lParam;
if (hContact == 0 && cws && cws->szModule && cws->szSetting && strcmp(cws->szModule, "CList") == 0) {
- if (strcmp(cws->szSetting, "DisableTrayFlash") == 0)
- disableTrayFlash = (int)cws->value.bVal;
- else if (strcmp(cws->szSetting, "NoIconBlink") == 0)
- disableIconFlash = (int)cws->value.bVal;
+ if (strcmp(cws->szSetting, "EnableTrayFlash") == 0)
+ g_bEnableTrayFlash = (int)cws->value.bVal;
+ else if (strcmp(cws->szSetting, "EnableIconBlink") == 0)
+ g_bEnableIconFlash = (int)cws->value.bVal;
}
return 0;
}
@@ -349,8 +349,18 @@ int InitCListEvents(void) {
g_clistApi.events = &g_cliEvents;
- disableTrayFlash = db_get_b(0, "CList", "DisableTrayFlash", 0);
- disableIconFlash = Clist::DisableIconBlink;
+ if (db_get_b(0, MODULENAME, "DisableTrayFlash")) {
+ Clist::EnableTrayFlash = false;
+ db_unset(0, MODULENAME, "DisableTrayFlash");
+ }
+
+ if (db_get_b(0, MODULENAME, "DisableIconBlink")) {
+ Clist::EnableIconBlink = false;
+ db_unset(0, MODULENAME, "DisableIconBlink");
+ }
+
+ g_bEnableTrayFlash = Clist::EnableTrayFlash;
+ g_bEnableIconFlash = Clist::EnableIconBlink;
HookEvent(ME_DB_CONTACT_SETTINGCHANGED, CListEventSettingsChanged);
return 0;
diff --git a/src/mir_app/src/clistopts.cpp b/src/mir_app/src/clistopts.cpp index ad34053cb2..169ee85b6b 100644 --- a/src/mir_app/src/clistopts.cpp +++ b/src/mir_app/src/clistopts.cpp @@ -25,13 +25,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "stdafx.h" #include "clc.h" -#define MODULENAME "CList" - CMOption<bool> Clist::UseGroups(MODULENAME, "UseGroups", true); CMOption<bool> Clist::HideOffline(MODULENAME, "HideOffline", false); CMOption<bool> Clist::ConfirmDelete(MODULENAME, "ConfirmDelete", true); +CMOption<bool> Clist::EnableIconBlink(MODULENAME, "EnableIconBlink", true); +CMOption<bool> Clist::EnableTrayFlash(MODULENAME, "EnableTrayFlash", true); CMOption<bool> Clist::HideEmptyGroups(MODULENAME, "HideEmptyGroups", false); -CMOption<bool> Clist::DisableIconBlink(MODULENAME, "NoIconBlink", false); CMOption<bool> Clist::RemoveTempContacts(MODULENAME, "RemoveTempContacts", true); CMOption<bool> Clist::Tray1Click(MODULENAME, "Tray1Click", IsWinVer7Plus()); @@ -61,13 +60,15 @@ static const offlineValues[] = class ClistCommonOptsDlg : public CDlgBase { + CCtrlSpin blink; CCtrlCheck chkUseGroups, chkHideOffline, chkConfirmDelete, chkHideEmptyGroups, chkRemoveTempContacts, chkEnableIconBlink, chkFilterSearch; - CCtrlCheck chkAlwaysStatus, chkOneClick; + CCtrlCheck chkAlwaysStatus, chkOneClick, chkEnableTrayBlink; CCtrlTreeView hideStatuses; public: ClistCommonOptsDlg() : CDlgBase(g_plugin, IDD_OPT_CLIST), + blink(this, IDC_BLINKSPIN, 0x3FFF, 250), hideStatuses(this, IDC_HIDEOFFLINEOPTS), chkOneClick(this, IDC_ONECLK), chkUseGroups(this, IDC_USEGROUPS), @@ -77,8 +78,11 @@ public: chkConfirmDelete(this, IDC_CONFIRMDELETE), chkHideEmptyGroups(this, IDC_HIDEEMPTYGROUPS), chkEnableIconBlink(this, IDC_ENABLE_ICON_BLINK), + chkEnableTrayBlink(this, IDC_ENABLE_TRAY_BLINK), chkRemoveTempContacts(this, IDC_REMOVETEMP) { + chkEnableTrayBlink.OnChange = Callback(this, &ClistCommonOptsDlg::onChange_TrayBlink); + CreateLink(chkOneClick, Clist::Tray1Click); CreateLink(chkUseGroups, Clist::UseGroups); CreateLink(chkHideOffline, Clist::HideOffline); @@ -86,16 +90,18 @@ public: CreateLink(chkAlwaysStatus, Clist::TrayAlwaysStatus); CreateLink(chkConfirmDelete, Clist::ConfirmDelete); CreateLink(chkHideEmptyGroups, Clist::HideEmptyGroups); + CreateLink(chkEnableIconBlink, Clist::EnableIconBlink); + CreateLink(chkEnableTrayBlink, Clist::EnableTrayFlash); CreateLink(chkRemoveTempContacts, Clist::RemoveTempContacts); } bool OnInitDialog() override { + blink.SetPosition(db_get_w(0, MODULENAME, "IconFlashTime", 550)); + SetWindowLongPtr(hideStatuses.GetHwnd(), GWL_STYLE, GetWindowLongPtr(hideStatuses.GetHwnd(), GWL_STYLE) | TVS_NOHSCROLL | TVS_CHECKBOXES); - chkEnableIconBlink.SetState(!Clist::DisableIconBlink); - int style = Clist::OfflineModes; TVINSERTSTRUCT tvis; @@ -114,6 +120,8 @@ public: bool OnApply() override { + db_set_w(0, MODULENAME, "IconFlashTime", blink.GetPosition()); + uint32_t flags = 0; TVITEMEX tvi; @@ -127,13 +135,18 @@ public: } Clist::OfflineModes = flags; - Clist::DisableIconBlink = !chkEnableIconBlink.IsChecked(); - Clist_ClcOptionsChanged(); Clist_LoadContactTree(); Clist_InitAutoRebuild(g_clistApi.hwndContactTree); return true; } + + void onChange_TrayBlink(CCtrlCheck*) + { + bool bEnabled = chkEnableTrayBlink.IsChecked(); + EnableWindow(GetDlgItem(m_hwnd, IDC_BLINKTIME), bEnabled); + EnableWindow(GetDlgItem(m_hwnd, IDC_BLINKSPIN), bEnabled); + } }; int ClcOptInit(WPARAM wParam, LPARAM) diff --git a/src/mir_app/src/clisttray.cpp b/src/mir_app/src/clisttray.cpp index 213b3cdc89..9d4137748b 100644 --- a/src/mir_app/src/clisttray.cpp +++ b/src/mir_app/src/clisttray.cpp @@ -232,11 +232,11 @@ int fnTrayIconInit(HWND hwnd) if (netProtoCount) {
g_clistApi.trayIcon = (trayIconInfo_t*)mir_calloc(sizeof(trayIconInfo_t) * g_arAccounts.getCount());
- int trayIconSetting = db_get_b(0, "CList", "TrayIcon", SETTING_TRAYICON_DEFAULT);
+ int trayIconSetting = db_get_b(0, MODULENAME, "TrayIcon", SETTING_TRAYICON_DEFAULT);
if (trayIconSetting == SETTING_TRAYICON_SINGLE) {
DBVARIANT dbv = { DBVT_DELETED };
char *szProto;
- if (!db_get_s(0, "CList", "PrimaryStatus", &dbv) && (averageMode < 0 || db_get_b(0, "CList", "AlwaysPrimary", 0)))
+ if (!db_get_s(0, MODULENAME, "PrimaryStatus", &dbv) && (averageMode < 0 || db_get_b(0, MODULENAME, "AlwaysPrimary", 0)))
szProto = dbv.pszVal;
else
szProto = nullptr;
@@ -244,7 +244,7 @@ int fnTrayIconInit(HWND hwnd) Clist_TrayIconAdd(hwnd, nullptr, szProto, szProto ? Proto_GetStatus(szProto) : CallService(MS_CLIST_GETSTATUSMODE, 0, 0));
db_free(&dbv);
}
- else if (trayIconSetting == SETTING_TRAYICON_MULTI && (averageMode < 0 || db_get_b(0, "CList", "AlwaysMulti", SETTING_ALWAYSMULTI_DEFAULT))) {
+ else if (trayIconSetting == SETTING_TRAYICON_MULTI && (averageMode < 0 || db_get_b(0, MODULENAME, "AlwaysMulti", SETTING_ALWAYSMULTI_DEFAULT))) {
g_clistApi.trayIconCount = netProtoCount;
for (int i = 0; i < g_arAccounts.getCount(); i++) {
int j = Clist_GetAccountIndex(i);
@@ -365,9 +365,9 @@ int TrayIconUpdate(HICON hNewIcon, const wchar_t *szNewTip, const char *szPrefer SetTaskBarIcon(nullptr, nullptr);
g_clistApi.trayIcon[i].isBase = isBase;
- if (db_get_b(0, "CList", "TrayIcon", SETTING_TRAYICON_DEFAULT) == SETTING_TRAYICON_MULTI) {
- uint32_t time1 = db_get_w(0, "CList", "CycleTime", SETTING_CYCLETIME_DEFAULT) * 200;
- uint32_t time2 = db_get_w(0, "CList", "IconFlashTime", 550) + 1000;
+ if (db_get_b(0, MODULENAME, "TrayIcon", SETTING_TRAYICON_DEFAULT) == SETTING_TRAYICON_MULTI) {
+ uint32_t time1 = db_get_w(0, MODULENAME, "CycleTime", SETTING_CYCLETIME_DEFAULT) * 200;
+ uint32_t time2 = db_get_w(0, MODULENAME, "IconFlashTime", 550) + 1000;
uint32_t time = max(max(uint32_t(2000), time1), time2);
if (RefreshTimerId)
KillTimer(nullptr, RefreshTimerId);
@@ -405,8 +405,8 @@ MIR_APP_DLL(int) Clist_TrayIconSetBaseInfo(HICON hIcon, const char *szPreferredP }
if ((Clist_GetProtocolVisibility(szPreferredProto)) &&
(Proto_GetAverageStatus(nullptr) == -1) &&
- (db_get_b(0, "CList", "TrayIcon", SETTING_TRAYICON_DEFAULT) == SETTING_TRAYICON_MULTI) &&
- !(db_get_b(0, "CList", "AlwaysMulti", SETTING_ALWAYSMULTI_DEFAULT)))
+ (db_get_b(0, MODULENAME, "TrayIcon", SETTING_TRAYICON_DEFAULT) == SETTING_TRAYICON_MULTI) &&
+ !(db_get_b(0, MODULENAME, "AlwaysMulti", SETTING_ALWAYSMULTI_DEFAULT)))
goto LBL_Error;
}
@@ -454,7 +454,7 @@ static VOID CALLBACK TrayCycleTimerProc(HWND, UINT, UINT_PTR, DWORD) MIR_APP_DLL(void) Clist_TraySetTimer()
{
- CycleTimerId = SetTimer(nullptr, CycleTimerId, db_get_w(0, "CList", "CycleTime", SETTING_CYCLETIME_DEFAULT) * 1000, TrayCycleTimerProc);
+ CycleTimerId = SetTimer(nullptr, CycleTimerId, db_get_w(0, MODULENAME, "CycleTime", SETTING_CYCLETIME_DEFAULT) * 1000, TrayCycleTimerProc);
}
/////////////////////////////////////////////////////////////////////////////////////////
@@ -488,13 +488,13 @@ int fnTrayCalcChanged(const char *szChangedProto, int averageMode, int netProtoC if (netProtoCount == 0)
return Clist_TrayIconSetBaseInfo(ImageList_GetIcon(hCListImages, g_clistApi.pfnIconFromStatusMode(nullptr, averageMode, 0), ILD_NORMAL), nullptr);
- int trayIconSetting = db_get_b(0, "CList", "TrayIcon", SETTING_TRAYICON_DEFAULT);
+ int trayIconSetting = db_get_b(0, MODULENAME, "TrayIcon", SETTING_TRAYICON_DEFAULT);
if (averageMode > 0) {
if (trayIconSetting != SETTING_TRAYICON_MULTI)
return Clist_TrayIconSetBaseInfo(g_clistApi.pfnGetIconFromStatusMode(0, nullptr, averageMode), nullptr);
- if (db_get_b(0, "CList", "AlwaysMulti", SETTING_ALWAYSMULTI_DEFAULT))
+ if (db_get_b(0, MODULENAME, "AlwaysMulti", SETTING_ALWAYSMULTI_DEFAULT))
return Clist_TrayIconSetBaseInfo(g_clistApi.pfnGetIconFromStatusMode(0, szChangedProto, Proto_GetStatus(szChangedProto)), (char*)szChangedProto);
if (g_clistApi.trayIcon == nullptr || g_clistApi.trayIcon[0].szProto == nullptr)
@@ -512,7 +512,7 @@ int fnTrayCalcChanged(const char *szChangedProto, int averageMode, int netProtoC case SETTING_TRAYICON_MULTI:
if (!g_clistApi.trayIcon)
Clist_TrayIconRemove(nullptr, nullptr);
- else if ((g_clistApi.trayIconCount > 1 || netProtoCount == 1) || db_get_b(0, "CList", "AlwaysMulti", SETTING_ALWAYSMULTI_DEFAULT))
+ else if ((g_clistApi.trayIconCount > 1 || netProtoCount == 1) || db_get_b(0, MODULENAME, "AlwaysMulti", SETTING_ALWAYSMULTI_DEFAULT))
return Clist_TrayIconSetBaseInfo(g_clistApi.pfnGetIconFromStatusMode(0, szChangedProto, Proto_GetStatus(szChangedProto)), (char*)szChangedProto);
else {
Clist_TrayIconDestroy(g_clistApi.hwndContactList);
@@ -521,7 +521,7 @@ int fnTrayCalcChanged(const char *szChangedProto, int averageMode, int netProtoC break;
case SETTING_TRAYICON_SINGLE:
- ptrA szProto(db_get_sa(0, "CList", "PrimaryStatus"));
+ ptrA szProto(db_get_sa(0, MODULENAME, "PrimaryStatus"));
return Clist_TrayIconSetBaseInfo(g_clistApi.pfnGetIconFromStatusMode(0, szProto, szProto ? Proto_GetStatus(szProto) : CallService(MS_CLIST_GETSTATUSMODE, 0, 0)), szProto);
}
}
@@ -582,10 +582,10 @@ int fnTrayIconPauseAutoHide(WPARAM, LPARAM) initcheck 0;
mir_cslock lck(trayLockCS);
- if (db_get_b(0, "CList", "AutoHide", SETTING_AUTOHIDE_DEFAULT)) {
+ if (db_get_b(0, MODULENAME, "AutoHide", SETTING_AUTOHIDE_DEFAULT)) {
if (GetActiveWindow() != g_clistApi.hwndContactList) {
KillTimer(nullptr, autoHideTimerId);
- autoHideTimerId = SetTimer(nullptr, 0, 1000 * db_get_w(0, "CList", "HideTime", SETTING_HIDETIME_DEFAULT), TrayIconAutoHideTimer);
+ autoHideTimerId = SetTimer(nullptr, 0, 1000 * db_get_w(0, MODULENAME, "HideTime", SETTING_HIDETIME_DEFAULT), TrayIconAutoHideTimer);
}
}
return 0;
@@ -656,9 +656,9 @@ INT_PTR fnTrayIconProcessMessage(WPARAM wParam, LPARAM lParam) break;
case WM_ACTIVATE:
- if (db_get_b(0, "CList", "AutoHide", SETTING_AUTOHIDE_DEFAULT)) {
+ if (db_get_b(0, MODULENAME, "AutoHide", SETTING_AUTOHIDE_DEFAULT)) {
if (LOWORD(msg->wParam) == WA_INACTIVE)
- autoHideTimerId = SetTimer(nullptr, 0, 1000 * db_get_w(0, "CList", "HideTime", SETTING_HIDETIME_DEFAULT), TrayIconAutoHideTimer);
+ autoHideTimerId = SetTimer(nullptr, 0, 1000 * db_get_w(0, MODULENAME, "HideTime", SETTING_HIDETIME_DEFAULT), TrayIconAutoHideTimer);
else
KillTimer(nullptr, autoHideTimerId);
}
diff --git a/src/mir_app/src/copyright.h b/src/mir_app/src/copyright.h new file mode 100644 index 0000000000..29b0f97206 --- /dev/null +++ b/src/mir_app/src/copyright.h @@ -0,0 +1,2 @@ + +#define LEGAL_COPYRIGHT "Copyright © 2000-11 Miranda IM, 2012-22 Miranda NG team. This software is released under the terms of the GNU General Public License.\0" diff --git a/src/mir_app/src/resource.h b/src/mir_app/src/resource.h index f181ae7729..b6005fac19 100644 --- a/src/mir_app/src/resource.h +++ b/src/mir_app/src/resource.h @@ -1,6 +1,6 @@ //{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
-// Used by w:\miranda-ng\src\mir_app\res\resource.rc
+// Used by W:\miranda-ng\src\mir_app\res\resource.rc
//
#define IDC_AUTHICON 1
#define IDC_NOTOALL 3
@@ -322,6 +322,9 @@ #define IDC_SELECTCRYPT_COMBO 1110
#define IDC_CRYPTOPROVIDER_DESCR 1111
#define IDC_NUMBER 1113
+#define IDC_BLINKTIME 1114
+#define IDC_BLINKSPIN 1115
+#define IDC_ENABLE_TRAY_BLINK 1116
#define IDC_FINDWHAT 1131
#define IDC_FIND 1132
#define IDC_FILE 1133
@@ -698,8 +701,6 @@ #define IDI_POPUP 40088
#define IDI_NOPOPUP 40089
-#define LEGAL_COPYRIGHT "Copyright © 2000-11 Miranda IM, 2012-22 Miranda NG team. This software is released under the terms of the GNU General Public License.\0"
-
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
diff --git a/src/mir_app/src/stdafx.h b/src/mir_app/src/stdafx.h index 9e8bb456c8..e40748c95a 100644 --- a/src/mir_app/src/stdafx.h +++ b/src/mir_app/src/stdafx.h @@ -104,6 +104,7 @@ typedef struct SslHandle *HSSL; typedef struct GlobalLogSettingsBase GlobalLogSettings;
#include <m_chat_int.h>
+#include "copyright.h"
#include "resource.h"
struct CMPlugin : public PLUGIN<CMPlugin>
|