From fb74b51d6642fcf4c34a5594873eec152cc48b05 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 22 Jan 2021 22:03:31 +0300 Subject: further clist options optimization --- src/core/stdclist/res/resource.rc | 38 +++++++++++++++++-------------------- src/core/stdclist/src/clistopts.cpp | 4 ---- src/core/stdclist/src/resource.h | 2 -- src/mir_app/res/resource.rc | 8 +++++++- src/mir_app/src/clistopts.cpp | 8 ++++++++ src/mir_app/src/clisttray.cpp | 6 +++--- src/mir_app/src/mir_app.def | 2 ++ src/mir_app/src/mir_app64.def | 2 ++ src/mir_app/src/resource.h | 2 ++ 9 files changed, 41 insertions(+), 31 deletions(-) (limited to 'src') diff --git a/src/core/stdclist/res/resource.rc b/src/core/stdclist/res/resource.rc index 614c54ac26..45f06891dc 100644 --- a/src/core/stdclist/res/resource.rc +++ b/src/core/stdclist/res/resource.rc @@ -40,7 +40,7 @@ BEGIN LTEXT "This will erase all history and settings for this contact!",IDC_STATIC,7,18,239,16 END -IDD_OPT_CLIST DIALOGEX 0, 0, 314, 219 +IDD_OPT_CLIST DIALOGEX 0, 0, 314, 189 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD EXSTYLE WS_EX_CONTROLPARENT FONT 8, "MS Shell Dlg", 0, 0, 0x1 @@ -48,23 +48,21 @@ BEGIN 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 "Single click interface",IDC_ONECLK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,83,298,10 - CONTROL "Always show status in tooltip",IDC_ALWAYSSTATUS,"Button",BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP,10,96,151,11 - CONTROL "Disable icon blinking",IDC_DISABLEBLINK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,110,86,9 - EDITTEXT IDC_BLINKTIME,12,123,35,12,ES_NUMBER - CONTROL "Spin5",IDC_BLINKSPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,39,123,11,14 - LTEXT "ms delay",IDC_STMSDELAY,52,126,113,8 - CONTROL "Show",IDC_DONTCYCLE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,10,158,90,10 - COMBOBOX IDC_PRIMARYSTATUS,104,157,78,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "icon when statuses differ",IDC_STATIC,189,159,116,8,NOT WS_GROUP - CONTROL "Cycle icons every",IDC_CYCLE,"Button",BS_AUTORADIOBUTTON,10,175,89,10 - EDITTEXT IDC_CYCLETIME,103,174,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,158,10,14 - LTEXT "seconds, when statuses differ",IDC_STATIC,141,176,165,8,NOT WS_GROUP - CONTROL "Show multiple icons",IDC_MULTITRAY,"Button",BS_AUTORADIOBUTTON,10,192,91,10 - CONTROL "Only when statuses differ",IDC_ALWAYSMULTI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,108,192,198,10 - GROUPBOX "System tray icon",IDC_STATIC,2,72,310,70 - GROUPBOX "System tray icon when using multiple protocols",IDC_STATIC,2,146,310,66 + 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, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,53,287,10 @@ -230,9 +228,7 @@ BEGIN VERTGUIDE, 2 VERTGUIDE, 308 TOPMARGIN, 2 - BOTTOMMARGIN, 217 - HORZGUIDE, 179 - HORZGUIDE, 196 + BOTTOMMARGIN, 187 END IDD_OPT_CLUI, DIALOG diff --git a/src/core/stdclist/src/clistopts.cpp b/src/core/stdclist/src/clistopts.cpp index 9f7ee3c2b6..fa86e449df 100644 --- a/src/core/stdclist/src/clistopts.cpp +++ b/src/core/stdclist/src/clistopts.cpp @@ -57,8 +57,6 @@ public: sortByStatus.SetState(g_plugin.getByte("SortByStatus", SETTING_SORTBYSTATUS_DEFAULT)); chkOfflineBottom.SetState(g_plugin.getByte("NoOfflineBottom")); - CheckDlgButton(m_hwnd, IDC_ONECLK, g_plugin.getByte("Tray1Click", SETTING_TRAY1CLICK_DEFAULT)); - CheckDlgButton(m_hwnd, IDC_ALWAYSSTATUS, g_plugin.getByte("AlwaysStatus", SETTING_ALWAYSSTATUS_DEFAULT)); CheckDlgButton(m_hwnd, IDC_ALWAYSMULTI, !g_plugin.getByte("AlwaysMulti", SETTING_ALWAYSMULTI_DEFAULT)); int iTrayIcon = g_plugin.getByte("TrayIcon", SETTING_TRAYICON_DEFAULT); @@ -92,8 +90,6 @@ public: 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("Tray1Click", IsDlgButtonChecked(m_hwnd, IDC_ONECLK)); - g_plugin.setByte("AlwaysStatus", IsDlgButtonChecked(m_hwnd, IDC_ALWAYSSTATUS)); 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.setWord("CycleTime", cycleTime.GetPosition()); diff --git a/src/core/stdclist/src/resource.h b/src/core/stdclist/src/resource.h index 76473f5926..6f22f577d9 100644 --- a/src/core/stdclist/src/resource.h +++ b/src/core/stdclist/src/resource.h @@ -18,7 +18,6 @@ #define IDC_SHOWMAINMENU 1075 #define IDC_CLIENTDRAG 1076 #define IDC_TOOLWND 1097 -#define IDC_ONECLK 1098 #define IDC_SHOWCAPTION 1098 #define IDC_SHOWHIDE 1100 #define IDC_SORTBYSTATUS 1101 @@ -26,7 +25,6 @@ #define IDC_READMSG 1102 #define IDC_AUTOSIZE 1102 #define IDC_AUTOSIZEUPWARD 1103 -#define IDC_ALWAYSSTATUS 1103 #define IDC_NETSEARCH 1104 #define IDC_SORTBYPROTO 1105 #define IDC_SHOWOPTIONS 1105 diff --git a/src/mir_app/res/resource.rc b/src/mir_app/res/resource.rc index cd5f6037e3..8a87c31d8d 100644 --- a/src/mir_app/res/resource.rc +++ b/src/mir_app/res/resource.rc @@ -777,7 +777,7 @@ BEGIN EDITTEXT IDC_CREDITSFILE,4,32,202,67,ES_CENTER | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | WS_VSCROLL END -IDD_OPT_CLIST DIALOGEX 0, 0, 302, 202 +IDD_OPT_CLIST DIALOGEX 0, 0, 302, 214 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD EXSTYLE WS_EX_CONTROLPARENT FONT 8, "MS Shell Dlg", 0, 0, 0x1 @@ -793,6 +793,9 @@ BEGIN CONTROL "Search works as filter",IDC_FILTER_SEARCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,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 END IDD_OPT_CHAT_EVENTS DIALOGEX 0, 0, 306, 201 @@ -952,6 +955,7 @@ BEGIN PUSHBUTTON "Set password",IDC_USERPASS1,200,153,111,17 END + ///////////////////////////////////////////////////////////////////////////// // // DESIGNINFO @@ -1181,6 +1185,7 @@ BEGIN IDD_OPT_CLIST, DIALOG BEGIN + BOTTOMMARGIN, 165 END IDD_OPT_CHAT_EVENTS, DIALOG @@ -1402,6 +1407,7 @@ IDI_SOUND ICON "sound.ico" IDI_DATABASE ICON "database.ico" + ///////////////////////////////////////////////////////////////////////////// // // Cursor diff --git a/src/mir_app/src/clistopts.cpp b/src/mir_app/src/clistopts.cpp index d4ae7a8293..e69ee22f05 100644 --- a/src/mir_app/src/clistopts.cpp +++ b/src/mir_app/src/clistopts.cpp @@ -34,6 +34,9 @@ CMOption Clist::HideEmptyGroups(MODULENAME, "HideEmptyGroups", false); CMOption Clist::DisableIconBlink(MODULENAME, "NoIconBlink", false); CMOption Clist::RemoveTempContacts(MODULENAME, "RemoveTempContacts", true); +CMOption Clist::Tray1Click(MODULENAME, "Tray1Click", IsWinVer7Plus()); +CMOption Clist::TrayAlwaysStatus(MODULENAME, "AlwaysStatus", false); + CMOption Clist::FilterSearch("CLC", "FilterSearch", false); CMOption Clist::OfflineModes("CLC", "OfflineModes", MODEF_OFFLINE); @@ -59,23 +62,28 @@ static const offlineValues[] = class ClistCommonOptsDlg : public CDlgBase { CCtrlCheck chkUseGroups, chkHideOffline, chkConfirmDelete, chkHideEmptyGroups, chkRemoveTempContacts, chkDisableIconBlink, chkFilterSearch; + CCtrlCheck chkAlwaysStatus, chkOneClick; CCtrlTreeView hideStatuses; public: ClistCommonOptsDlg() : CDlgBase(g_plugin, IDD_OPT_CLIST), hideStatuses(this, IDC_HIDEOFFLINEOPTS), + chkOneClick(this, IDC_ONECLK), chkUseGroups(this, IDC_USEGROUPS), chkHideOffline(this, IDC_HIDEOFFLINE), chkFilterSearch(this, IDC_FILTER_SEARCH), + chkAlwaysStatus(this, IDC_ALWAYSSTATUS), chkConfirmDelete(this, IDC_CONFIRMDELETE), chkHideEmptyGroups(this, IDC_HIDEEMPTYGROUPS), chkDisableIconBlink(this, IDC_DISABLEICONBLINK), chkRemoveTempContacts(this, IDC_REMOVETEMP) { + CreateLink(chkOneClick, Clist::Tray1Click); CreateLink(chkUseGroups, Clist::UseGroups); CreateLink(chkHideOffline, Clist::HideOffline); CreateLink(chkFilterSearch, Clist::FilterSearch); + CreateLink(chkAlwaysStatus, Clist::TrayAlwaysStatus); CreateLink(chkConfirmDelete, Clist::ConfirmDelete); CreateLink(chkHideEmptyGroups, Clist::HideEmptyGroups); CreateLink(chkDisableIconBlink, Clist::DisableIconBlink); diff --git a/src/mir_app/src/clisttray.cpp b/src/mir_app/src/clisttray.cpp index 1543ea515e..814d3e1fe7 100644 --- a/src/mir_app/src/clisttray.cpp +++ b/src/mir_app/src/clisttray.cpp @@ -83,7 +83,7 @@ MIR_APP_DLL(wchar_t*) Clist_TrayIconMakeTooltip(const wchar_t *szPrefix, const c CMStringW tszTip; if (szPrefix && szPrefix[0]) { - if (!db_get_b(0, "CList", "AlwaysStatus", SETTING_ALWAYSSTATUS_DEFAULT)) { + if (!Clist::TrayAlwaysStatus) { wcsncpy_s(g_clistApi.szTip, MAX_TIP_SIZE, szPrefix, _TRUNCATE); return g_clistApi.szTip; } @@ -126,7 +126,7 @@ MIR_APP_DLL(wchar_t*) Clist_TrayIconMakeTooltip(const wchar_t *szPrefix, const c ptrW ProtoXStatus(sttGetXStatus(szProto)); wchar_t *szStatus = Clist_GetStatusModeDescription(pa->iRealStatus, 0); if (szPrefix && szPrefix[0]) { - if (db_get_b(0, "CList", "AlwaysStatus", SETTING_ALWAYSSTATUS_DEFAULT)) { + if (Clist::TrayAlwaysStatus) { if (hasTips()) { if (ProtoXStatus != nullptr) mir_snwprintf(g_clistApi.szTip, MAX_TIP_SIZE, L"%s%s%-12.12s\t%s%s%-24.24s", szPrefix, szSeparator, pa->tszAccountName, szStatus, szSeparator, ProtoXStatus.get()); @@ -676,7 +676,7 @@ INT_PTR fnTrayIconProcessMessage(WPARAM wParam, LPARAM lParam) if (msg->lParam == WM_MBUTTONUP) g_clistApi.pfnShowHide(); - else if (msg->lParam == (db_get_b(0, "CList", "Tray1Click", SETTING_TRAY1CLICK_DEFAULT) ? WM_LBUTTONUP : WM_LBUTTONDBLCLK)) { + else if (msg->lParam == (Clist::Tray1Click ? WM_LBUTTONUP : WM_LBUTTONDBLCLK)) { if ((GetAsyncKeyState(VK_CONTROL) & 0x8000)) { POINT pt; HMENU hMenu = Menu_GetStatusMenu(); diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def index 25c60a0135..58619f5392 100644 --- a/src/mir_app/src/mir_app.def +++ b/src/mir_app/src/mir_app.def @@ -769,3 +769,5 @@ _Netlib_GetTlsUnique@8 @831 NONAME ?usesPassword@MDatabaseCommon@@QBE_NXZ @857 NONAME ?SetPassword@MDatabaseCommon@@QAEXPB_W@Z @858 NONAME ?EnableEncryption@MDatabaseReadonly@@UAGHH@Z @859 NONAME +?Tray1Click@Clist@@3V?$CMOption@_N@@A @860 NONAME +?TrayAlwaysStatus@Clist@@3V?$CMOption@_N@@A @861 NONAME diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def index f347c13879..0b45f3ea01 100644 --- a/src/mir_app/src/mir_app64.def +++ b/src/mir_app/src/mir_app64.def @@ -769,3 +769,5 @@ Netlib_GetTlsUnique @831 NONAME ?usesPassword@MDatabaseCommon@@QEBA_NXZ @857 NONAME ?SetPassword@MDatabaseCommon@@QEAAXPEB_W@Z @858 NONAME ?EnableEncryption@MDatabaseReadonly@@UEAAHH@Z @859 NONAME +?Tray1Click@Clist@@3V?$CMOption@_N@@A @860 NONAME +?TrayAlwaysStatus@Clist@@3V?$CMOption@_N@@A @861 NONAME diff --git a/src/mir_app/src/resource.h b/src/mir_app/src/resource.h index 8eb66e8175..776a7ee737 100644 --- a/src/mir_app/src/resource.h +++ b/src/mir_app/src/resource.h @@ -244,6 +244,7 @@ #define IDC_BBRESET 1052 #define IDC_NICK 1053 #define IDC_BTN_EXPORT 1054 +#define IDC_ALWAYSSTATUS 1055 #define IDC_FONTLIST 1056 #define IDC_CHOOSEFONT 1057 #define IDC_EFFECT 1058 @@ -306,6 +307,7 @@ #define IDC_SPIN1 1103 #define IDC_SEPARATOR 1104 #define IDC_EDIT1 1105 +#define IDC_ONECLK 1106 #define IDC_BUILDTIME 1108 #define IDC_CREDITSFILE 1109 #define IDC_SELECTCRYPT_COMBO 1110 -- cgit v1.2.3