From 8553c260ff9939c9d78bbaf2634bb26a20342a3a Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 9 May 2025 16:46:02 +0300 Subject: end of clist common settings zoo in m_clist.h --- src/core/stdclist/src/clistopts.cpp | 27 ++++++------ src/core/stdclist/src/cluiopts.cpp | 85 ++++++++++++++++++------------------- src/core/stdclist/src/init.cpp | 11 +++-- src/core/stdclist/src/stdafx.h | 2 + src/core/stdmsg/src/msgoptions.cpp | 2 +- src/mir_app/mir_app.vcxproj | 3 ++ src/mir_app/mir_app.vcxproj.filters | 9 ++++ src/mir_app/src/clc.h | 2 +- src/mir_app/src/clccontact.cpp | 6 +-- src/mir_app/src/clcutils.cpp | 2 +- src/mir_app/src/clistevents.cpp | 8 ++-- src/mir_app/src/clistgroups.cpp | 2 +- src/mir_app/src/clistmod.cpp | 9 ++-- src/mir_app/src/clistopts.cpp | 64 +++++++++++++++++++--------- src/mir_app/src/clisttray.cpp | 40 ++++++++--------- src/mir_app/src/clui.cpp | 28 ++++++------ src/mir_app/src/cluiservices.cpp | 12 +++--- src/mir_app/src/menu_groups.cpp | 4 +- src/mir_app/src/mir_app.def | 29 ++++++++++--- src/mir_app/src/mir_app64.def | 29 ++++++++++--- 20 files changed, 216 insertions(+), 158 deletions(-) (limited to 'src') diff --git a/src/core/stdclist/src/clistopts.cpp b/src/core/stdclist/src/clistopts.cpp index e0bdfb7c34..58f21cfbab 100644 --- a/src/core/stdclist/src/clistopts.cpp +++ b/src/core/stdclist/src/clistopts.cpp @@ -49,19 +49,18 @@ public: bool OnInitDialog() override { - sortByName.SetState(!g_plugin.getByte("SortByStatus", SETTING_SORTBYSTATUS_DEFAULT) && !g_plugin.getByte("SortByProto", SETTING_SORTBYPROTO_DEFAULT)); - sortByProto.SetState(g_plugin.getByte("SortByProto", SETTING_SORTBYPROTO_DEFAULT)); - sortByStatus.SetState(g_plugin.getByte("SortByStatus", SETTING_SORTBYSTATUS_DEFAULT)); + sortByName.SetState(!g_plugin.bSortByStatus && !g_plugin.bSortByProto); + sortByProto.SetState(g_plugin.bSortByProto); + sortByStatus.SetState(g_plugin.bSortByStatus); chkOfflineBottom.SetState(g_plugin.getByte("NoOfflineBottom")); - CheckDlgButton(m_hwnd, IDC_ALWAYSMULTI, !g_plugin.getByte("AlwaysMulti", SETTING_ALWAYSMULTI_DEFAULT)); + CheckDlgButton(m_hwnd, IDC_ALWAYSMULTI, !Clist::bAlwaysMulti); - int iTrayIcon = g_plugin.getByte("TrayIcon", SETTING_TRAYICON_DEFAULT); - chkCycle.SetState(iTrayIcon == SETTING_TRAYICON_CYCLE); - chkMulti.SetState(iTrayIcon == SETTING_TRAYICON_MULTI); - chkDontCycle.SetState(iTrayIcon == SETTING_TRAYICON_SINGLE); + chkCycle.SetState(Clist::iTrayIcon == SETTING_TRAYICON_CYCLE); + chkMulti.SetState(Clist::iTrayIcon == SETTING_TRAYICON_MULTI); + chkDontCycle.SetState(Clist::iTrayIcon == SETTING_TRAYICON_SINGLE); - cycleTime.SetPosition(g_plugin.getWord("CycleTime", SETTING_CYCLETIME_DEFAULT)); + cycleTime.SetPosition(Clist::iCycleTime); ptrA szPrimaryStatus(g_plugin.getStringA("PrimaryStatus")); @@ -81,12 +80,12 @@ public: bool OnApply() override { - g_plugin.setByte("SortByStatus", g_bSortByStatus = sortByStatus.IsChecked()); - g_plugin.setByte("SortByProto", g_bSortByProto = sortByProto.IsChecked()); + g_plugin.bSortByStatus = g_bSortByStatus = sortByStatus.IsChecked(); + g_plugin.bSortByProto = 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.IsChecked() ? SETTING_TRAYICON_SINGLE : (chkCycle.IsChecked() ? SETTING_TRAYICON_CYCLE : SETTING_TRAYICON_MULTI))); - g_plugin.setWord("CycleTime", cycleTime.GetPosition()); + Clist::bAlwaysMulti = !IsDlgButtonChecked(m_hwnd, IDC_ALWAYSMULTI); + Clist::iTrayIcon = chkDontCycle.IsChecked() ? SETTING_TRAYICON_SINGLE : (chkCycle.IsChecked() ? SETTING_TRAYICON_CYCLE : SETTING_TRAYICON_MULTI); + Clist::iCycleTime = cycleTime.GetPosition(); PROTOACCOUNT *pa = (PROTOACCOUNT *)status.GetCurData(); if (pa == nullptr) diff --git a/src/core/stdclist/src/cluiopts.cpp b/src/core/stdclist/src/cluiopts.cpp index 892874b573..61d5baca69 100644 --- a/src/core/stdclist/src/cluiopts.cpp +++ b/src/core/stdclist/src/cluiopts.cpp @@ -29,35 +29,33 @@ static INT_PTR CALLBACK DlgProcCluiOpts(HWND hwndDlg, UINT msg, WPARAM wParam, L switch (msg) { case WM_INITDIALOG: TranslateDialogDefault(hwndDlg); - CheckDlgButton(hwndDlg, IDC_BRINGTOFRONT, g_plugin.getByte("BringToFront", SETTING_BRINGTOFRONT_DEFAULT) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_ONTOP, g_plugin.getByte("OnTop", SETTING_ONTOP_DEFAULT) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_TOOLWND, g_plugin.getByte("ToolWindow", SETTING_TOOLWINDOW_DEFAULT) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_MIN2TRAY, g_plugin.getByte("Min2Tray", SETTING_MIN2TRAY_DEFAULT) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_BRINGTOFRONT, Clist::bBringToFront); + CheckDlgButton(hwndDlg, IDC_ONTOP, Clist::bOnTop); + CheckDlgButton(hwndDlg, IDC_TOOLWND, Clist::bToolWindow); + CheckDlgButton(hwndDlg, IDC_MIN2TRAY, Clist::bMinimizeToTray); if (IsDlgButtonChecked(hwndDlg, IDC_TOOLWND)) EnableWindow(GetDlgItem(hwndDlg, IDC_MIN2TRAY), FALSE); - CheckDlgButton(hwndDlg, IDC_SHOWCAPTION, db_get_b(0, "CLUI", "ShowCaption", SETTING_SHOWCAPTION_DEFAULT) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_SHOWMAINMENU, db_get_b(0, "CLUI", "ShowMainMenu", SETTING_SHOWMAINMENU_DEFAULT) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_CLIENTDRAG, db_get_b(0, "CLUI", "ClientAreaDrag", SETTING_CLIENTDRAG_DEFAULT) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_SHOWCAPTION, Clist::bShowCaption); + CheckDlgButton(hwndDlg, IDC_SHOWMAINMENU, Clist::bShowMainMenu); + CheckDlgButton(hwndDlg, IDC_CLIENTDRAG, Clist::bClientAreaDrag); if (BST_UNCHECKED == IsDlgButtonChecked(hwndDlg, IDC_SHOWCAPTION)) { EnableWindow(GetDlgItem(hwndDlg, IDC_MIN2TRAY), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_TOOLWND), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_TITLETEXT), FALSE); } - CheckDlgButton(hwndDlg, IDC_FADEINOUT, db_get_b(0, "CLUI", "FadeInOut", 0) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_AUTOSIZE, db_get_b(0, "CLUI", "AutoSize", 0) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_DROPSHADOW, g_plugin.getByte("WindowShadow", 0) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_ONDESKTOP, g_plugin.getByte("OnDesktop", 0) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_DISABLEDOCKING, db_get_b(0, "CLUI", "DockToSides", 1) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_FADEINOUT, db_get_b(0, "CLUI", "FadeInOut", 0)); + CheckDlgButton(hwndDlg, IDC_AUTOSIZE, db_get_b(0, "CLUI", "AutoSize", 0)); + CheckDlgButton(hwndDlg, IDC_DROPSHADOW, g_plugin.getByte("WindowShadow", 0)); + CheckDlgButton(hwndDlg, IDC_ONDESKTOP, g_plugin.getByte("OnDesktop", 0)); + CheckDlgButton(hwndDlg, IDC_DISABLEDOCKING, db_get_b(0, "CLUI", "DockToSides", 1)); SendDlgItemMessage(hwndDlg, IDC_MAXSIZESPIN, UDM_SETRANGE, 0, MAKELONG(100, 0)); SendDlgItemMessage(hwndDlg, IDC_MAXSIZESPIN, UDM_SETPOS, 0, db_get_b(0, "CLUI", "MaxSizeHeight", 75)); - CheckDlgButton(hwndDlg, IDC_AUTOSIZEUPWARD, db_get_b(0, "CLUI", "AutoSizeUpward", 0) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_AUTOHIDE, - g_plugin.getByte("AutoHide", SETTING_AUTOHIDE_DEFAULT) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_AUTOSIZEUPWARD, db_get_b(0, "CLUI", "AutoSizeUpward", 0)); + CheckDlgButton(hwndDlg, IDC_AUTOHIDE, Clist::bAutoHide); SendDlgItemMessage(hwndDlg, IDC_HIDETIMESPIN, UDM_SETRANGE, 0, MAKELONG(900, 1)); - SendDlgItemMessage(hwndDlg, IDC_HIDETIMESPIN, UDM_SETPOS, 0, - MAKELONG(g_plugin.getWord("HideTime", SETTING_HIDETIME_DEFAULT), 0)); + SendDlgItemMessage(hwndDlg, IDC_HIDETIMESPIN, UDM_SETPOS, 0, MAKELONG(Clist::iHideTime, 0)); EnableWindow(GetDlgItem(hwndDlg, IDC_HIDETIME), IsDlgButtonChecked(hwndDlg, IDC_AUTOHIDE)); EnableWindow(GetDlgItem(hwndDlg, IDC_HIDETIMESPIN), IsDlgButtonChecked(hwndDlg, IDC_AUTOHIDE)); EnableWindow(GetDlgItem(hwndDlg, IDC_STATIC01), IsDlgButtonChecked(hwndDlg, IDC_AUTOHIDE)); @@ -75,7 +73,7 @@ static INT_PTR CALLBACK DlgProcCluiOpts(HWND hwndDlg, UINT msg, WPARAM wParam, L else SetDlgItemTextA(hwndDlg, IDC_TITLETEXT, MIRANDANAME); } - CheckDlgButton(hwndDlg, IDC_TRANSPARENT, g_plugin.getByte("Transparent", SETTING_TRANSPARENT_DEFAULT) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_TRANSPARENT, Clist::bTransparent); if (BST_UNCHECKED == IsDlgButtonChecked(hwndDlg, IDC_TRANSPARENT)) { EnableWindow(GetDlgItem(hwndDlg, IDC_STATIC11), FALSE); @@ -88,8 +86,8 @@ static INT_PTR CALLBACK DlgProcCluiOpts(HWND hwndDlg, UINT msg, WPARAM wParam, L SendDlgItemMessage(hwndDlg, IDC_TRANSACTIVE, TBM_SETRANGE, FALSE, MAKELONG(1, 255)); SendDlgItemMessage(hwndDlg, IDC_TRANSINACTIVE, TBM_SETRANGE, FALSE, MAKELONG(1, 255)); - SendDlgItemMessage(hwndDlg, IDC_TRANSACTIVE, TBM_SETPOS, TRUE, g_plugin.getByte("Alpha", SETTING_ALPHA_DEFAULT)); - SendDlgItemMessage(hwndDlg, IDC_TRANSINACTIVE, TBM_SETPOS, TRUE, g_plugin.getByte("AutoAlpha", SETTING_AUTOALPHA_DEFAULT)); + SendDlgItemMessage(hwndDlg, IDC_TRANSACTIVE, TBM_SETPOS, TRUE, Clist::iAlpha); + SendDlgItemMessage(hwndDlg, IDC_TRANSINACTIVE, TBM_SETPOS, TRUE, Clist::iAutoAlpha); SendMessage(hwndDlg, WM_HSCROLL, 0x12345678, 0); return TRUE; @@ -135,35 +133,36 @@ static INT_PTR CALLBACK DlgProcCluiOpts(HWND hwndDlg, UINT msg, WPARAM wParam, L case WM_HSCROLL: { char str[10]; - mir_snprintf(str, "%d%%", 100 * SendDlgItemMessage(hwndDlg, IDC_TRANSINACTIVE, TBM_GETPOS, 0, 0) / 255); + mir_snprintf(str, "%d%%", 100 * (int)SendDlgItemMessage(hwndDlg, IDC_TRANSINACTIVE, TBM_GETPOS, 0, 0) / 255); SetDlgItemTextA(hwndDlg, IDC_INACTIVEPERC, str); - mir_snprintf(str, "%d%%", 100 * SendDlgItemMessage(hwndDlg, IDC_TRANSACTIVE, TBM_GETPOS, 0, 0) / 255); + mir_snprintf(str, "%d%%", 100 * (int)SendDlgItemMessage(hwndDlg, IDC_TRANSACTIVE, TBM_GETPOS, 0, 0) / 255); SetDlgItemTextA(hwndDlg, IDC_ACTIVEPERC, str); } if (wParam != 0x12345678) SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; + case WM_NOTIFY: if (((LPNMHDR)lParam)->code == PSN_APPLY) { - g_plugin.setByte("OnTop", (uint8_t)IsDlgButtonChecked(hwndDlg, IDC_ONTOP)); - g_plugin.setByte("ToolWindow", (uint8_t)IsDlgButtonChecked(hwndDlg, IDC_TOOLWND)); - g_plugin.setByte("BringToFront", (uint8_t)IsDlgButtonChecked(hwndDlg, IDC_BRINGTOFRONT)); + Clist::bOnTop = IsDlgButtonChecked(hwndDlg, IDC_ONTOP); + Clist::bToolWindow = IsDlgButtonChecked(hwndDlg, IDC_TOOLWND); + Clist::bBringToFront = IsDlgButtonChecked(hwndDlg, IDC_BRINGTOFRONT); db_set_b(0, "CLUI", "FadeInOut", (uint8_t)IsDlgButtonChecked(hwndDlg, IDC_FADEINOUT)); db_set_b(0, "CLUI", "AutoSize", (uint8_t)IsDlgButtonChecked(hwndDlg, IDC_AUTOSIZE)); db_set_b(0, "CLUI", "MaxSizeHeight", (uint8_t)GetDlgItemInt(hwndDlg, IDC_MAXSIZEHEIGHT, nullptr, FALSE)); db_set_b(0, "CLUI", "AutoSizeUpward", (uint8_t)IsDlgButtonChecked(hwndDlg, IDC_AUTOSIZEUPWARD)); - g_plugin.setByte("AutoHide", (uint8_t)IsDlgButtonChecked(hwndDlg, IDC_AUTOHIDE)); - g_plugin.setWord("HideTime", (uint16_t)SendDlgItemMessage(hwndDlg, IDC_HIDETIMESPIN, UDM_GETPOS, 0, 0)); - g_plugin.setByte("Transparent", (uint8_t)IsDlgButtonChecked(hwndDlg, IDC_TRANSPARENT)); - g_plugin.setByte("Alpha", (uint8_t)SendDlgItemMessage(hwndDlg, IDC_TRANSACTIVE, TBM_GETPOS, 0, 0)); - g_plugin.setByte("AutoAlpha", (uint8_t)SendDlgItemMessage(hwndDlg, IDC_TRANSINACTIVE, TBM_GETPOS, 0, 0)); + Clist::bAutoHide = IsDlgButtonChecked(hwndDlg, IDC_AUTOHIDE); + Clist::iHideTime = SendDlgItemMessage(hwndDlg, IDC_HIDETIMESPIN, UDM_GETPOS, 0, 0); + Clist::bTransparent = IsDlgButtonChecked(hwndDlg, IDC_TRANSPARENT); + Clist::iAlpha = SendDlgItemMessage(hwndDlg, IDC_TRANSACTIVE, TBM_GETPOS, 0, 0); + Clist::iAutoAlpha = SendDlgItemMessage(hwndDlg, IDC_TRANSINACTIVE, TBM_GETPOS, 0, 0); g_plugin.setByte("WindowShadow", (uint8_t)IsDlgButtonChecked(hwndDlg, IDC_DROPSHADOW)); g_plugin.setByte("OnDesktop", (uint8_t)IsDlgButtonChecked(hwndDlg, IDC_ONDESKTOP)); db_set_b(0, "CLUI", "DockToSides", (uint8_t)IsDlgButtonChecked(hwndDlg, IDC_DISABLEDOCKING)); - db_set_b(0, "CLUI", "ShowCaption", (uint8_t)IsDlgButtonChecked(hwndDlg, IDC_SHOWCAPTION)); - db_set_b(0, "CLUI", "ShowMainMenu", (uint8_t)IsDlgButtonChecked(hwndDlg, IDC_SHOWMAINMENU)); - db_set_b(0, "CLUI", "ClientAreaDrag", (uint8_t)IsDlgButtonChecked(hwndDlg, IDC_CLIENTDRAG)); - g_plugin.setByte("Min2Tray", (uint8_t)IsDlgButtonChecked(hwndDlg, IDC_MIN2TRAY)); + Clist::bShowCaption = IsDlgButtonChecked(hwndDlg, IDC_SHOWCAPTION); + Clist::bShowMainMenu = IsDlgButtonChecked(hwndDlg, IDC_SHOWMAINMENU); + Clist::bClientAreaDrag = IsDlgButtonChecked(hwndDlg, IDC_CLIENTDRAG); + Clist::bMinimizeToTray = IsDlgButtonChecked(hwndDlg, IDC_MIN2TRAY); { wchar_t title[256]; GetDlgItemText(hwndDlg, IDC_TITLETEXT, title, _countof(title)); @@ -218,7 +217,7 @@ static INT_PTR CALLBACK DlgProcCluiOpts(HWND hwndDlg, UINT msg, WPARAM wParam, L ShowWindow(g_clistApi.hwndContactList, IsDlgButtonChecked(hwndDlg, IDC_MIN2TRAY) ? SW_HIDE : SW_SHOW); if (IsDlgButtonChecked(hwndDlg, IDC_TRANSPARENT)) { SetWindowLongPtr(g_clistApi.hwndContactList, GWL_EXSTYLE, GetWindowLongPtr(g_clistApi.hwndContactList, GWL_EXSTYLE) | WS_EX_LAYERED); - SetLayeredWindowAttributes(g_clistApi.hwndContactList, RGB(0, 0, 0), (uint8_t)g_plugin.getByte("AutoAlpha", SETTING_AUTOALPHA_DEFAULT), LWA_ALPHA); + SetLayeredWindowAttributes(g_clistApi.hwndContactList, RGB(0, 0, 0), Clist::iAutoAlpha, LWA_ALPHA); } else SetWindowLongPtr(g_clistApi.hwndContactList, GWL_EXSTYLE, GetWindowLongPtr(g_clistApi.hwndContactList, GWL_EXSTYLE) & ~WS_EX_LAYERED); @@ -237,18 +236,18 @@ static INT_PTR CALLBACK DlgProcSBarOpts(HWND hwndDlg, UINT msg, WPARAM wParam, L switch (msg) { case WM_INITDIALOG: TranslateDialogDefault(hwndDlg); - CheckDlgButton(hwndDlg, IDC_SHOWSBAR, db_get_b(0, "CLUI", "ShowSBar", 1) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_SHOWSBAR, db_get_b(0, "CLUI", "ShowSBar", 1)); { uint8_t showOpts = db_get_b(0, "CLUI", "SBarShow", 1); - CheckDlgButton(hwndDlg, IDC_SHOWICON, showOpts & 1 ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_SHOWPROTO, showOpts & 2 ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_SHOWSTATUS, showOpts & 4 ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_SHOWICON, showOpts & 1); + CheckDlgButton(hwndDlg, IDC_SHOWPROTO, showOpts & 2); + CheckDlgButton(hwndDlg, IDC_SHOWSTATUS, showOpts & 4); } CheckDlgButton(hwndDlg, IDC_RIGHTSTATUS, db_get_b(0, "CLUI", "SBarRightClk", 0) ? BST_UNCHECKED : BST_CHECKED); - CheckDlgButton(hwndDlg, IDC_RIGHTMIRANDA, IsDlgButtonChecked(hwndDlg, IDC_RIGHTSTATUS) == BST_UNCHECKED ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_EQUALSECTIONS, db_get_b(0, "CLUI", "EqualSections", 0) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_SBPANELBEVEL, db_get_b(0, "CLUI", "SBarBevel", 1) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_SHOWGRIP, db_get_b(0, "CLUI", "ShowGrip", 1) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_RIGHTMIRANDA, IsDlgButtonChecked(hwndDlg, IDC_RIGHTSTATUS) == BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_EQUALSECTIONS, db_get_b(0, "CLUI", "EqualSections", 0)); + CheckDlgButton(hwndDlg, IDC_SBPANELBEVEL, db_get_b(0, "CLUI", "SBarBevel", 1)); + CheckDlgButton(hwndDlg, IDC_SHOWGRIP, db_get_b(0, "CLUI", "ShowGrip", 1)); if (BST_UNCHECKED == IsDlgButtonChecked(hwndDlg, IDC_SHOWSBAR)) { EnableWindow(GetDlgItem(hwndDlg, IDC_SHOWICON), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_SHOWPROTO), FALSE); diff --git a/src/core/stdclist/src/init.cpp b/src/core/stdclist/src/init.cpp index a918b62e02..b44dfb3a04 100644 --- a/src/core/stdclist/src/init.cpp +++ b/src/core/stdclist/src/init.cpp @@ -56,8 +56,11 @@ PLUGININFOEX pluginInfoEx = { }; CMPlugin::CMPlugin() : - PLUGIN("CList", pluginInfoEx) -{} + PLUGIN("CList", pluginInfoEx), + bSortByProto(m_szModuleName, "SortByProto", false), + bSortByStatus(m_szModuleName, "SortByStatus", false) +{ +} ///////////////////////////////////////////////////////////////////////////////////////// // returns plugin's interfaces information @@ -112,8 +115,8 @@ int CMPlugin::Load() g_plugin.delSetting("NoOfflineBottom"); } - g_bSortByStatus = g_plugin.getBool("SortByStatus", SETTING_SORTBYSTATUS_DEFAULT); - g_bSortByProto = g_plugin.getBool("SortByProto", SETTING_SORTBYPROTO_DEFAULT); + g_bSortByStatus = bSortByStatus; + g_bSortByProto = bSortByProto; g_bOfflineToBottom = g_plugin.getBool("OfflineBottom", true); Clist_GetInterface(); diff --git a/src/core/stdclist/src/stdafx.h b/src/core/stdclist/src/stdafx.h index 8fa152e0de..55168cad80 100644 --- a/src/core/stdclist/src/stdafx.h +++ b/src/core/stdclist/src/stdafx.h @@ -59,6 +59,8 @@ struct CMPlugin : public PLUGIN { CMPlugin(); + CMOption bSortByStatus, bSortByProto; + int Load() override; }; diff --git a/src/core/stdmsg/src/msgoptions.cpp b/src/core/stdmsg/src/msgoptions.cpp index 3fd9bf5bad..f0a0266488 100644 --- a/src/core/stdmsg/src/msgoptions.cpp +++ b/src/core/stdmsg/src/msgoptions.cpp @@ -429,7 +429,7 @@ public: void ResetCList(CCtrlClc::TEventInfo* = nullptr) { - clist.SetUseGroups(Clist::UseGroups); + clist.SetUseGroups(Clist::bUseGroups); clist.SetHideEmptyGroups(1); } diff --git a/src/mir_app/mir_app.vcxproj b/src/mir_app/mir_app.vcxproj index 85bcd1d071..8ba67cd5d1 100644 --- a/src/mir_app/mir_app.vcxproj +++ b/src/mir_app/mir_app.vcxproj @@ -175,6 +175,9 @@ + + + diff --git a/src/mir_app/mir_app.vcxproj.filters b/src/mir_app/mir_app.vcxproj.filters index 4fb2f19c70..554aeccc7d 100644 --- a/src/mir_app/mir_app.vcxproj.filters +++ b/src/mir_app/mir_app.vcxproj.filters @@ -499,6 +499,15 @@ Source Files\FindAdd + + Source Files\Contact list + + + Source Files\Contact list + + + Source Files\Contact list + diff --git a/src/mir_app/src/clc.h b/src/mir_app/src/clc.h index 20540c0fdd..bd6ccd49c0 100644 --- a/src/mir_app/src/clc.h +++ b/src/mir_app/src/clc.h @@ -98,7 +98,7 @@ int ClcOptInit(WPARAM, LPARAM); namespace Clist { - extern CMOption RemoveTempContacts, EnableIconBlink, EnableTrayFlash; + extern CMOption bRemoveTempContacts, bEnableIconBlink, bEnableTrayFlash; }; /* clistmenus.c */ diff --git a/src/mir_app/src/clccontact.cpp b/src/mir_app/src/clccontact.cpp index 8d9d7c85c1..973316efa4 100644 --- a/src/mir_app/src/clccontact.cpp +++ b/src/mir_app/src/clccontact.cpp @@ -29,7 +29,7 @@ extern HANDLE hGroupChangeEvent; MIR_APP_DLL(void) Clist_LoadContactTree(void) { - bool hideOffline = Clist::HideOffline; + bool hideOffline = Clist::bHideOffline; for (auto &hContact : Contacts()) { int status = Contact::GetStatus(hContact); if ((!hideOffline || status != ID_STATUS_OFFLINE) && !Contact::IsHidden(hContact)) @@ -56,12 +56,12 @@ MIR_APP_DLL(int) Clist_ContactChangeGroup(MCONTACT hContact, MGROUP hGroup) int fnSetHideOffline(int iValue) { if (iValue == -1) // invert the current value - iValue = !Clist::HideOffline; + iValue = !Clist::bHideOffline; switch (iValue) { case 0: case 1: - Clist::HideOffline = iValue; + Clist::bHideOffline = iValue; break; default: diff --git a/src/mir_app/src/clcutils.cpp b/src/mir_app/src/clcutils.cpp index 57d9997037..3000d7132c 100644 --- a/src/mir_app/src/clcutils.cpp +++ b/src/mir_app/src/clcutils.cpp @@ -728,7 +728,7 @@ void fnLoadClcOptions(HWND hwnd, ClcData *dat, BOOL bFirst) dat->gammaCorrection = db_get_b(0, "CLC", "GammaCorrect", CLCDEFAULT_GAMMACORRECT); dat->bShowIdle = db_get_b(0, "CLC", "ShowIdle", CLCDEFAULT_SHOWIDLE) != 0; dat->bNoVScrollbar = db_get_b(0, "CLC", "NoVScrollBar", false) != 0; - dat->bFilterSearch = Clist::FilterSearch; + dat->bFilterSearch = Clist::bFilterSearch; SendMessage(hwnd, INTM_SCROLLBARCHANGED, 0, 0); dat->greyoutFlags = db_get_dw(0, "CLC", "GreyoutFlags", CLCDEFAULT_GREYOUTFLAGS); diff --git a/src/mir_app/src/clistevents.cpp b/src/mir_app/src/clistevents.cpp index 9dd77b3d3b..7933408654 100644 --- a/src/mir_app/src/clistevents.cpp +++ b/src/mir_app/src/clistevents.cpp @@ -404,17 +404,17 @@ static int CListEventSettingsChanged(WPARAM hContact, LPARAM lParam) int InitCListEvents(void) { if (db_get_b(0, MODULENAME, "DisableTrayFlash")) { - Clist::EnableTrayFlash = false; + Clist::bEnableTrayFlash = false; db_unset(0, MODULENAME, "DisableTrayFlash"); } if (db_get_b(0, MODULENAME, "DisableIconBlink")) { - Clist::EnableIconBlink = false; + Clist::bEnableIconBlink = false; db_unset(0, MODULENAME, "DisableIconBlink"); } - g_bEnableTrayFlash = Clist::EnableTrayFlash; - g_bEnableIconFlash = Clist::EnableIconBlink; + g_bEnableTrayFlash = Clist::bEnableTrayFlash; + g_bEnableIconFlash = Clist::bEnableIconBlink; HookEvent(ME_DB_CONTACT_SETTINGCHANGED, CListEventSettingsChanged); HookEvent(ME_DB_EVENT_MARKED_READ, CListEventMarkedRead); diff --git a/src/mir_app/src/clistgroups.cpp b/src/mir_app/src/clistgroups.cpp index 655dad825c..04ba6e6326 100644 --- a/src/mir_app/src/clistgroups.cpp +++ b/src/mir_app/src/clistgroups.cpp @@ -225,7 +225,7 @@ MIR_APP_DLL(int) Clist_GroupDelete(MGROUP hGroup, bool bSilent) if (pGroup == nullptr) return 1; - if (!bSilent && Clist::ConfirmDelete) { + if (!bSilent && Clist::bConfirmDelete) { wchar_t szQuestion[256 + 100]; mir_snwprintf(szQuestion, TranslateT("Are you sure you want to delete group '%s'? This operation cannot be undone."), pGroup->groupName); if (MessageBoxW(g_clistApi.hwndContactList, szQuestion, TranslateT("Delete group"), MB_YESNO | MB_ICONQUESTION) == IDNO) diff --git a/src/mir_app/src/clistmod.cpp b/src/mir_app/src/clistmod.cpp index cb09bec6e8..dede1547b0 100644 --- a/src/mir_app/src/clistmod.cpp +++ b/src/mir_app/src/clistmod.cpp @@ -336,7 +336,7 @@ int fnShowHide() switch (iVisibleState) { case GWVS_PARTIALLY_COVERED: //If we don't want to bring it to top, we can use a simple break. This goes against readability ;-) but the comment explains it. - if (!db_get_b(0, "CList", "BringToFront", SETTING_BRINGTOFRONT_DEFAULT)) + if (!Clist::bBringToFront) break; case GWVS_COVERED: //Fall through (and we're already falling) case GWVS_HIDDEN: @@ -351,7 +351,7 @@ int fnShowHide() if (bShow == TRUE) { ShowWindow(g_clistApi.hwndContactList, SW_RESTORE); - if (!db_get_b(0, "CList", "OnTop", SETTING_ONTOP_DEFAULT)) + if (!Clist::bOnTop) SetWindowPos(g_clistApi.hwndContactList, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE); else SetWindowPos(g_clistApi.hwndContactList, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); @@ -366,8 +366,7 @@ int fnShowHide() MoveWindow(g_clistApi.hwndContactList, rcWindow.left, rcWindow.top, rcWindow.right - rcWindow.left, rcWindow.bottom - rcWindow.top, TRUE); } else { // It needs to be hidden - if (db_get_b(0, "CList", "ToolWindow", SETTING_TOOLWINDOW_DEFAULT) || - db_get_b(0, "CList", "Min2Tray", SETTING_MIN2TRAY_DEFAULT)) { + if (Clist::bToolWindow || Clist::bMinimizeToTray) { ShowWindow(g_clistApi.hwndContactList, SW_HIDE); db_set_b(0, "CList", "State", SETTING_STATE_HIDDEN); } @@ -433,7 +432,7 @@ void UnloadContactListModule() return; // remove transitory contacts - if (Clist::RemoveTempContacts) { + if (Clist::bRemoveTempContacts) { for (MCONTACT hContact = db_find_first(); hContact != 0; ) { MCONTACT hNext = db_find_next(hContact); if (!Contact::OnList(hContact)) diff --git a/src/mir_app/src/clistopts.cpp b/src/mir_app/src/clistopts.cpp index ac0e2018c1..d2c1cfeab5 100644 --- a/src/mir_app/src/clistopts.cpp +++ b/src/mir_app/src/clistopts.cpp @@ -25,21 +25,43 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "stdafx.h" #include "clc.h" -CMOption Clist::UseGroups(MODULENAME, "UseGroups", true); -CMOption Clist::HideOffline(MODULENAME, "HideOffline", false); -CMOption Clist::ConfirmDelete(MODULENAME, "ConfirmDelete", true); -CMOption Clist::EnableIconBlink(MODULENAME, "EnableIconBlink", true); -CMOption Clist::EnableTrayFlash(MODULENAME, "EnableTrayFlash", true); -CMOption Clist::HideEmptyGroups(MODULENAME, "HideEmptyGroups", false); -CMOption Clist::RemoveTempContacts(MODULENAME, "RemoveTempContacts", true); - -CMOption Clist::Tray1Click(MODULENAME, "Tray1Click", IsWinVer7Plus()); -CMOption Clist::TrayAlwaysStatus(MODULENAME, "AlwaysStatus", false); +// Clist +CMOption Clist::bOnTop(MODULENAME, "OnTop", true); +CMOption Clist::bAutoHide(MODULENAME, "AutoHide", false); +CMOption Clist::bUseGroups(MODULENAME, "UseGroups", true); +CMOption Clist::bToolWindow(MODULENAME, "ToolWindow", true); +CMOption Clist::bTransparent(MODULENAME, "Transparent", false); +CMOption Clist::bAlwaysMulti(MODULENAME, "AlwaysMulti", false); +CMOption Clist::bHideOffline(MODULENAME, "HideOffline", false); +CMOption Clist::bBringToFront(MODULENAME, "BringToFront", false); +CMOption Clist::bConfirmDelete(MODULENAME, "ConfirmDelete", true); +CMOption Clist::bMinimizeToTray(MODULENAME, "Min2Tray", true); +CMOption Clist::bEnableIconBlink(MODULENAME, "EnableIconBlink", true); +CMOption Clist::bEnableTrayFlash(MODULENAME, "EnableTrayFlash", true); +CMOption Clist::bHideEmptyGroups(MODULENAME, "HideEmptyGroups", false); +CMOption Clist::bRemoveTempContacts(MODULENAME, "RemoveTempContacts", true); + +CMOption Clist::bTray1Click(MODULENAME, "Tray1Click", IsWinVer7Plus()); +CMOption Clist::bTrayAlwaysStatus(MODULENAME, "AlwaysStatus", false); + +CMOption Clist::iTrayIcon(MODULENAME, "TrayIcon", SETTING_TRAYICON_SINGLE); +CMOption Clist::iAlpha(MODULENAME, "Alpha", 200); +CMOption Clist::iAutoAlpha(MODULENAME, "AutoAlpha", 150); + +CMOption Clist::iHideTime(MODULENAME, "HideTime", 30); +CMOption Clist::iCycleTime(MODULENAME, "CycleTime", 4); + CMOption Clist::IconFlashTime(MODULENAME, "IconFlashTime", 550); -CMOption Clist::FilterSearch("CLC", "FilterSearch", false); +// CLC +CMOption Clist::bFilterSearch("CLC", "FilterSearch", false); CMOption Clist::OfflineModes("CLC", "OfflineModes", MODEF_OFFLINE); +// CLUI +CMOption Clist::bShowCaption("CLUI", "ShowCaption", true); +CMOption Clist::bShowMainMenu("CLUI", "ShowMainMenu", true); +CMOption Clist::bClientAreaDrag("CLUI", "ClientAreaDrag", true); + struct { uint32_t style; @@ -85,16 +107,16 @@ public: chkEnableTrayBlink.OnChange = Callback(this, &ClistCommonOptsDlg::onChange_TrayBlink); CreateLink(spinBlink, Clist::IconFlashTime); - 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(chkEnableIconBlink, Clist::EnableIconBlink); - CreateLink(chkEnableTrayBlink, Clist::EnableTrayFlash); - CreateLink(chkRemoveTempContacts, Clist::RemoveTempContacts); + CreateLink(chkOneClick, Clist::bTray1Click); + CreateLink(chkUseGroups, Clist::bUseGroups); + CreateLink(chkHideOffline, Clist::bHideOffline); + CreateLink(chkFilterSearch, Clist::bFilterSearch); + CreateLink(chkAlwaysStatus, Clist::bTrayAlwaysStatus); + CreateLink(chkConfirmDelete, Clist::bConfirmDelete); + CreateLink(chkHideEmptyGroups, Clist::bHideEmptyGroups); + CreateLink(chkEnableIconBlink, Clist::bEnableIconBlink); + CreateLink(chkEnableTrayBlink, Clist::bEnableTrayFlash); + CreateLink(chkRemoveTempContacts, Clist::bRemoveTempContacts); } bool OnInitDialog() override diff --git a/src/mir_app/src/clisttray.cpp b/src/mir_app/src/clisttray.cpp index 56378d9cf8..60fe2bfae7 100644 --- a/src/mir_app/src/clisttray.cpp +++ b/src/mir_app/src/clisttray.cpp @@ -88,7 +88,7 @@ MIR_APP_DLL(wchar_t*) Clist_TrayIconMakeTooltip(const wchar_t *szPrefix, const c CMStringW tszTip; if (szPrefix && szPrefix[0]) { - if (!Clist::TrayAlwaysStatus) { + if (!Clist::bTrayAlwaysStatus) { wcsncpy_s(g_clistApi.szTip, MAX_TIP_SIZE, szPrefix, _TRUNCATE); return g_clistApi.szTip; } @@ -131,7 +131,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 (Clist::TrayAlwaysStatus) { + if (Clist::bTrayAlwaysStatus) { 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()); @@ -235,8 +235,7 @@ 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, MODULENAME, "TrayIcon", SETTING_TRAYICON_DEFAULT); - if (trayIconSetting == SETTING_TRAYICON_SINGLE) { + if (Clist::iTrayIcon == SETTING_TRAYICON_SINGLE) { DBVARIANT dbv = { DBVT_DELETED }; char *szProto; if (!db_get_s(0, MODULENAME, "PrimaryStatus", &dbv) && (averageMode < 0 || db_get_b(0, MODULENAME, "AlwaysPrimary", 0))) @@ -247,7 +246,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, MODULENAME, "AlwaysMulti", SETTING_ALWAYSMULTI_DEFAULT))) { + else if (Clist::iTrayIcon == SETTING_TRAYICON_MULTI && (averageMode < 0 || Clist::bAlwaysMulti)) { g_clistApi.trayIconCount = netProtoCount; for (int i = 0; i < g_arAccounts.getCount(); i++) { int j = Clist_GetAccountIndex(i); @@ -261,7 +260,7 @@ int fnTrayIconInit(HWND hwnd) else { Clist_TrayIconAdd(hwnd, nullptr, nullptr, averageMode); - if (trayIconSetting == SETTING_TRAYICON_CYCLE && averageMode < 0) + if (Clist::iTrayIcon == SETTING_TRAYICON_CYCLE && averageMode < 0) Clist_TraySetTimer(); } } @@ -368,8 +367,8 @@ 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, MODULENAME, "TrayIcon", SETTING_TRAYICON_DEFAULT) == SETTING_TRAYICON_MULTI) { - uint32_t time1 = db_get_w(0, MODULENAME, "CycleTime", SETTING_CYCLETIME_DEFAULT) * 200; + if (Clist::iTrayIcon == SETTING_TRAYICON_MULTI) { + uint32_t time1 = Clist::iCycleTime * 200; uint32_t time2 = Clist::IconFlashTime + 1000; uint32_t time = max(max(uint32_t(2000), time1), time2); if (RefreshTimerId) @@ -408,8 +407,7 @@ MIR_APP_DLL(int) Clist_TrayIconSetBaseInfo(HICON hIcon, const char *szPreferredP } if ((Clist_GetProtocolVisibility(szPreferredProto)) && (Proto_GetAverageStatus(nullptr) == -1) && - (db_get_b(0, MODULENAME, "TrayIcon", SETTING_TRAYICON_DEFAULT) == SETTING_TRAYICON_MULTI) && - !(db_get_b(0, MODULENAME, "AlwaysMulti", SETTING_ALWAYSMULTI_DEFAULT))) + (Clist::iTrayIcon == SETTING_TRAYICON_MULTI) && !Clist::bAlwaysMulti) goto LBL_Error; } @@ -457,7 +455,7 @@ static VOID CALLBACK TrayCycleTimerProc(HWND, UINT, UINT_PTR, DWORD) MIR_APP_DLL(void) Clist_TraySetTimer() { - CycleTimerId = SetTimer(nullptr, CycleTimerId, db_get_w(0, MODULENAME, "CycleTime", SETTING_CYCLETIME_DEFAULT) * 1000, TrayCycleTimerProc); + CycleTimerId = SetTimer(nullptr, CycleTimerId, Clist::iCycleTime * 1000, TrayCycleTimerProc); } ///////////////////////////////////////////////////////////////////////////////////////// @@ -491,13 +489,11 @@ 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, MODULENAME, "TrayIcon", SETTING_TRAYICON_DEFAULT); - if (averageMode > 0) { - if (trayIconSetting != SETTING_TRAYICON_MULTI) + if (Clist::iTrayIcon != SETTING_TRAYICON_MULTI) return Clist_TrayIconSetBaseInfo(g_clistApi.pfnGetIconFromStatusMode(0, nullptr, averageMode), nullptr); - if (db_get_b(0, MODULENAME, "AlwaysMulti", SETTING_ALWAYSMULTI_DEFAULT)) + if (Clist::bAlwaysMulti) return Clist_TrayIconSetBaseInfo(g_clistApi.pfnGetIconFromStatusMode(0, szChangedProto, Proto_GetStatus(szChangedProto)), (char*)szChangedProto); if (g_clistApi.trayIcon == nullptr || g_clistApi.trayIcon[0].szProto == nullptr) @@ -507,7 +503,7 @@ int fnTrayCalcChanged(const char *szChangedProto, int averageMode, int netProtoC g_clistApi.pfnTrayIconInit(g_clistApi.hwndContactList); } else { - switch (trayIconSetting) { + switch (Clist::iTrayIcon) { case SETTING_TRAYICON_CYCLE: Clist_TraySetTimer(); return Clist_TrayIconSetBaseInfo(ImageList_GetIcon(hCListImages, g_clistApi.pfnIconFromStatusMode(szChangedProto, Proto_GetStatus(szChangedProto), 0), ILD_NORMAL), nullptr); @@ -515,7 +511,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, MODULENAME, "AlwaysMulti", SETTING_ALWAYSMULTI_DEFAULT)) + else if ((g_clistApi.trayIconCount > 1 || netProtoCount == 1) || Clist::bAlwaysMulti) return Clist_TrayIconSetBaseInfo(g_clistApi.pfnGetIconFromStatusMode(0, szChangedProto, Proto_GetStatus(szChangedProto)), (char*)szChangedProto); else { Clist_TrayIconDestroy(g_clistApi.hwndContactList); @@ -585,10 +581,10 @@ int fnTrayIconPauseAutoHide(WPARAM, LPARAM) initcheck 0; mir_cslock lck(trayLockCS); - if (db_get_b(0, MODULENAME, "AutoHide", SETTING_AUTOHIDE_DEFAULT)) { + if (Clist::bAutoHide) { if (GetActiveWindow() != g_clistApi.hwndContactList) { KillTimer(nullptr, autoHideTimerId); - autoHideTimerId = SetTimer(nullptr, 0, 1000 * db_get_w(0, MODULENAME, "HideTime", SETTING_HIDETIME_DEFAULT), TrayIconAutoHideTimer); + autoHideTimerId = SetTimer(nullptr, 0, 1000 * Clist::iHideTime, TrayIconAutoHideTimer); } } return 0; @@ -659,9 +655,9 @@ INT_PTR fnTrayIconProcessMessage(WPARAM wParam, LPARAM lParam) break; case WM_ACTIVATE: - if (db_get_b(0, MODULENAME, "AutoHide", SETTING_AUTOHIDE_DEFAULT)) { + if (Clist::bAutoHide) { if (LOWORD(msg->wParam) == WA_INACTIVE) - autoHideTimerId = SetTimer(nullptr, 0, 1000 * db_get_w(0, MODULENAME, "HideTime", SETTING_HIDETIME_DEFAULT), TrayIconAutoHideTimer); + autoHideTimerId = SetTimer(nullptr, 0, 1000 * Clist::iHideTime, TrayIconAutoHideTimer); else KillTimer(nullptr, autoHideTimerId); } @@ -683,7 +679,7 @@ INT_PTR fnTrayIconProcessMessage(WPARAM wParam, LPARAM lParam) if (msg->lParam == WM_MBUTTONUP) g_clistApi.pfnShowHide(); - else if (msg->lParam == (Clist::Tray1Click ? WM_LBUTTONUP : WM_LBUTTONDBLCLK)) { + else if (msg->lParam == (Clist::bTray1Click ? WM_LBUTTONUP : WM_LBUTTONDBLCLK)) { if ((GetAsyncKeyState(VK_CONTROL) & 0x8000)) { POINT pt; HMENU hMenu = Menu_GetStatusMenu(); diff --git a/src/mir_app/src/clui.cpp b/src/mir_app/src/clui.cpp index 031b0a9424..ea8280d428 100644 --- a/src/mir_app/src/clui.cpp +++ b/src/mir_app/src/clui.cpp @@ -53,8 +53,8 @@ void fnLoadCluiGlobalOpts() { cluiopt.showsbar = db_get_b(0, "CLUI", "ShowSBar", 1); cluiopt.showgrip = db_get_b(0, "CLUI", "ShowGrip", 1); - cluiopt.transparent = db_get_b(0, "CList", "Transparent", SETTING_TRANSPARENT_DEFAULT); - cluiopt.alpha = db_get_b(0, "CList", "Alpha", SETTING_ALPHA_DEFAULT); + cluiopt.transparent = Clist::bTransparent; + cluiopt.alpha = Clist::iAlpha; } // Disconnect all protocols. @@ -205,7 +205,7 @@ static INT_PTR MenuItem_DeleteContact(WPARAM hContact, LPARAM lParam) return 0; int action; - if (Clist::ConfirmDelete && !(GetKeyState(VK_SHIFT) & 0x8000)) { + if (Clist::bConfirmDelete && !(GetKeyState(VK_SHIFT) & 0x8000)) { // Ask user for confirmation, and if the contact should be archived (hidden, not deleted) dlg.SetParent((HWND)lParam); action = dlg.DoModal(); @@ -324,12 +324,11 @@ int LoadCLUIModule(void) Utils_AssertInsideScreen(&pos); g_clistApi.hwndContactList = CreateWindowEx( - (db_get_b(0, "CList", "ToolWindow", SETTING_TOOLWINDOW_DEFAULT) ? WS_EX_TOOLWINDOW : WS_EX_APPWINDOW), + (Clist::bToolWindow ? WS_EX_TOOLWINDOW : WS_EX_APPWINDOW), _A2W(MIRANDACLASS), titleText, WS_POPUPWINDOW | WS_THICKFRAME | WS_CLIPCHILDREN | - (db_get_b(0, "CLUI", "ShowCaption", SETTING_SHOWCAPTION_DEFAULT) ? WS_CAPTION | WS_SYSMENU | - (db_get_b(0, "CList", "Min2Tray", SETTING_MIN2TRAY_DEFAULT) ? 0 : WS_MINIMIZEBOX) : 0), + (Clist::bShowCaption ? WS_CAPTION | WS_SYSMENU | (Clist::bMinimizeToTray ? 0 : WS_MINIMIZEBOX) : 0), pos.left, pos.top, pos.right - pos.left, pos.bottom - pos.top, nullptr, nullptr, g_clistApi.hInst, nullptr); @@ -350,7 +349,7 @@ int LoadCLUIModule(void) int state = db_get_b(0, "CList", "State", SETTING_STATE_NORMAL); - if (!db_get_b(0, "CLUI", "ShowMainMenu", SETTING_SHOWMAINMENU_DEFAULT)) + if (!Clist::bShowMainMenu) SetMenu(g_clistApi.hwndContactList, nullptr); if (state == SETTING_STATE_NORMAL) @@ -358,9 +357,7 @@ int LoadCLUIModule(void) else if (state == SETTING_STATE_MINIMIZED) ShowWindow(g_clistApi.hwndContactList, SW_SHOWMINIMIZED); - SetWindowPos(g_clistApi.hwndContactList, - db_get_b(0, "CList", "OnTop", SETTING_ONTOP_DEFAULT) ? HWND_TOPMOST : HWND_NOTOPMOST, - 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE); + SetWindowPos(g_clistApi.hwndContactList, Clist::bOnTop ? HWND_TOPMOST : HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE); CMenuItem mi(&g_plugin); @@ -487,7 +484,7 @@ LRESULT CALLBACK fnContactListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM case M_CREATECLC: g_clistApi.hwndContactTree = CreateWindow(CLISTCONTROL_CLASSW, L"", - WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | CLS_CONTACTLIST | (Clist::UseGroups ? CLS_USEGROUPS : 0) | (Clist::HideOffline ? CLS_HIDEOFFLINE : 0) | (Clist::HideEmptyGroups ? CLS_HIDEEMPTYGROUPS : 0), + WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | CLS_CONTACTLIST | (Clist::bUseGroups ? CLS_USEGROUPS : 0) | (Clist::bHideOffline ? CLS_HIDEOFFLINE : 0) | (Clist::bHideEmptyGroups ? CLS_HIDEEMPTYGROUPS : 0), 0, 0, 0, 0, hwnd, nullptr, g_clistApi.hInst, nullptr); SendMessage(hwnd, WM_SIZE, 0, 0); break; @@ -541,7 +538,7 @@ LRESULT CALLBACK fnContactListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM SetWindowPos(g_clistApi.hwndContactTree, nullptr, 0, 0, rect.right, rect.bottom - (rcStatus.bottom - rcStatus.top), SWP_NOZORDER); } if (wParam == SIZE_MINIMIZED) { - if ((GetWindowLongPtr(hwnd, GWL_EXSTYLE) & WS_EX_TOOLWINDOW) || db_get_b(0, "CList", "Min2Tray", SETTING_MIN2TRAY_DEFAULT)) { + if ((GetWindowLongPtr(hwnd, GWL_EXSTYLE) & WS_EX_TOOLWINDOW) || Clist::bMinimizeToTray) { ShowWindow(hwnd, SW_HIDE); db_set_b(0, "CList", "State", SETTING_STATE_HIDDEN); } @@ -628,7 +625,7 @@ LRESULT CALLBACK fnContactListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM if (transparentFocus) SetLayeredWindowAttributes(hwnd, RGB(0, 0, 0), (uint8_t)cluiopt.alpha, LWA_ALPHA); else - SetLayeredWindowAttributes(hwnd, RGB(0, 0, 0), (uint8_t)db_get_b(0, "CList", "AutoAlpha", SETTING_AUTOALPHA_DEFAULT), LWA_ALPHA); + SetLayeredWindowAttributes(hwnd, RGB(0, 0, 0), Clist::iAutoAlpha, LWA_ALPHA); } if (!transparentFocus) KillTimer(hwnd, TM_AUTOALPHA); @@ -691,8 +688,7 @@ LRESULT CALLBACK fnContactListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM case SC_MINIMIZE: case SC_CLOSE: - if ((GetWindowLongPtr(hwnd, GWL_EXSTYLE) & WS_EX_TOOLWINDOW) || - db_get_b(0, "CList", "Min2Tray", SETTING_MIN2TRAY_DEFAULT)) { + if ((GetWindowLongPtr(hwnd, GWL_EXSTYLE) & WS_EX_TOOLWINDOW) || Clist::bMinimizeToTray) { ShowWindow(hwnd, SW_HIDE); db_set_b(0, "CList", "State", SETTING_STATE_HIDDEN); @@ -840,7 +836,7 @@ LRESULT CALLBACK fnContactListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM if ((hitFlags & (CLCHT_NOWHERE | CLCHT_INLEFTMARGIN | CLCHT_BELOWITEMS)) == 0) break; - if (db_get_b(0, "CLUI", "ClientAreaDrag", SETTING_CLIENTDRAG_DEFAULT)) { + if (Clist::bClientAreaDrag) { POINT pt = nmc->pt; ClientToScreen(g_clistApi.hwndContactTree, &pt); return SendMessage(hwnd, WM_SYSCOMMAND, SC_MOVE | HTCAPTION, MAKELPARAM(pt.x, pt.y)); diff --git a/src/mir_app/src/cluiservices.cpp b/src/mir_app/src/cluiservices.cpp index 9bab528b29..8fc47b516e 100644 --- a/src/mir_app/src/cluiservices.cpp +++ b/src/mir_app/src/cluiservices.cpp @@ -34,24 +34,24 @@ EXTERN_C MIR_APP_DLL(void) Clist_EndRebuild(void) LONG_PTR dwStyle = GetWindowLongPtr(g_clistApi.hwndContactTree, GWL_STYLE); // CLC does this automatically, but we need to force it if hideoffline or hideempty has changed - if ((Clist::HideOffline == 0) != ((dwStyle & CLS_HIDEOFFLINE) == 0)) { - if (Clist::HideOffline) + if ((Clist::bHideOffline == 0) != ((dwStyle & CLS_HIDEOFFLINE) == 0)) { + if (Clist::bHideOffline) dwStyle |= CLS_HIDEOFFLINE; else dwStyle &= ~CLS_HIDEOFFLINE; bRebuild = true; } - if ((Clist::HideEmptyGroups == 0) != ((dwStyle & CLS_HIDEEMPTYGROUPS) == 0)) { - if (Clist::HideEmptyGroups) + if ((Clist::bHideEmptyGroups == 0) != ((dwStyle & CLS_HIDEEMPTYGROUPS) == 0)) { + if (Clist::bHideEmptyGroups) dwStyle |= CLS_HIDEEMPTYGROUPS; else dwStyle &= ~CLS_HIDEEMPTYGROUPS; bRebuild = true; } - if ((Clist::UseGroups == 0) != ((dwStyle & CLS_USEGROUPS) == 0)) { - if (Clist::UseGroups) + if ((Clist::bUseGroups == 0) != ((dwStyle & CLS_USEGROUPS) == 0)) { + if (Clist::bUseGroups) dwStyle |= CLS_USEGROUPS; else dwStyle &= ~CLS_USEGROUPS; diff --git a/src/mir_app/src/menu_groups.cpp b/src/mir_app/src/menu_groups.cpp index 1890a11bbf..83dfb3d584 100644 --- a/src/mir_app/src/menu_groups.cpp +++ b/src/mir_app/src/menu_groups.cpp @@ -120,7 +120,7 @@ static INT_PTR HideGroupsHelper(WPARAM, LPARAM) static INT_PTR UseGroupsHelper(WPARAM, LPARAM) { int newVal = !(GetWindowLongPtr(g_clistApi.hwndContactTree, GWL_STYLE) & CLS_USEGROUPS); - Clist::UseGroups = newVal; + Clist::bUseGroups = newVal; SendMessage(g_clistApi.hwndContactTree, CLM_SETUSEGROUPS, newVal, 0); return newVal; } @@ -178,7 +178,7 @@ static INT_PTR DeleteGroupHelper(WPARAM wParam, LPARAM) static int OnBuildGroupMenu(WPARAM wParam, LPARAM) { - bool bChecked = Clist::HideOffline; + bool bChecked = Clist::bHideOffline; Menu_SetChecked(hmiHideOfflineUsers, bChecked); bChecked = SendMessage(g_clistApi.hwndContactTree, CLM_GETHIDEOFFLINEROOT, 0, 0) != 0; diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def index 42abcbbee4..fe6aefe6cd 100644 --- a/src/mir_app/src/mir_app.def +++ b/src/mir_app/src/mir_app.def @@ -683,10 +683,10 @@ Netlib_Dump @812 NONAME ?ProtoBroadcastAsync@PROTO_INTERFACE@@QAEXIHHPAXJ@Z @813 NONAME ProtoBroadcastAsync @814 NONAME ?ProcessFileDrop@CSrmmBaseDialog@@IAE_NPAUHDROP__@@I@Z @815 NONAME -?ConfirmDelete@Clist@@3V?$CMOption@_N@@A @816 NONAME -?HideEmptyGroups@Clist@@3V?$CMOption@_N@@A @817 NONAME -?HideOffline@Clist@@3V?$CMOption@_N@@A @818 NONAME -?UseGroups@Clist@@3V?$CMOption@_N@@A @819 NONAME +?bConfirmDelete@Clist@@3V?$CMOption@_N@@A @816 NONAME +?bHideEmptyGroups@Clist@@3V?$CMOption@_N@@A @817 NONAME +?bHideOffline@Clist@@3V?$CMOption@_N@@A @818 NONAME +?bUseGroups@Clist@@3V?$CMOption@_N@@A @819 NONAME ?OfflineModes@Clist@@3V?$CMOption@I@@A @820 NONAME ?getChat@CSrmmBaseDialog@@QBEPAUSESSION_INFO@@XZ @821 NONAME ?EventCursor@MDatabaseCommon@@UAGPAV0DB@@II@Z @822 NONAME @@ -708,7 +708,7 @@ _Netlib_GetTlsUnique@12 @831 NONAME ?SafeDeleteDirectory@PU@@YGHPB_W@Z @838 NONAME ?SafeDeleteFile@PU@@YGHPB_W@Z @839 NONAME ?SafeMoveFile@PU@@YGHPB_W0@Z @840 NONAME -?FilterSearch@Clist@@3V?$CMOption@_N@@A @841 NONAME +?bFilterSearch@Clist@@3V?$CMOption@_N@@A @841 NONAME ?FillContactSettings@MDatabaseCommon@@IAEXXZ @842 NONAME ?GetContactSettingWorker@MDatabaseCommon@@MAGHIPBD0PAUDBVARIANT@@H@Z @843 NONAME ?WriteContactSetting@MDatabaseCommon@@UAGHIPBD0PAUDBVARIANT@@@Z @844 NONAME @@ -727,8 +727,8 @@ _Netlib_GetTlsUnique@12 @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 +?bTray1Click@Clist@@3V?$CMOption@_N@@A @860 NONAME +?bTrayAlwaysStatus@Clist@@3V?$CMOption@_N@@A @861 NONAME ?Flush@MDatabaseCommon@@UAGHXZ @862 NONAME ?getIcon@CHAT_MANAGER@@QBGPAUHICON__@@H@Z @863 NONAME ?getSoundName@SESSION_INFO@@QBEPBDH@Z @864 NONAME @@ -1006,3 +1006,18 @@ Proto_CanDeleteHistory @1118 NONAME ??6@YGPAUMHttpRequest@@PAU0@ABUBOOL_PARAM@@@Z @1137 NONAME ?bShowFormatting@Chat@@3V?$CMOption@_N@@A @1138 NONAME ?setDescr@FILE_BLOB@DB@@QAEXPB_W@Z @1139 NONAME +?bShowMainMenu@Clist@@3V?$CMOption@_N@@A @1140 NONAME +?bShowCaption@Clist@@3V?$CMOption@_N@@A @1141 NONAME +?bToolWindow@Clist@@3V?$CMOption@_N@@A @1142 NONAME +?bClientAreaDrag@Clist@@3V?$CMOption@_N@@A @1143 NONAME +?bOnTop@Clist@@3V?$CMOption@_N@@A @1144 NONAME +?bAlwaysMulti@Clist@@3V?$CMOption@_N@@A @1145 NONAME +?bAutoHide@Clist@@3V?$CMOption@_N@@A @1146 NONAME +?bMinimizeToTray@Clist@@3V?$CMOption@_N@@A @1147 NONAME +?bTransparent@Clist@@3V?$CMOption@_N@@A @1148 NONAME +?iTrayIcon@Clist@@3V?$CMOption@E@@A @1149 NONAME +?bBringToFront@Clist@@3V?$CMOption@_N@@A @1150 NONAME +?iCycleTime@Clist@@3V?$CMOption@G@@A @1151 NONAME +?iHideTime@Clist@@3V?$CMOption@G@@A @1152 NONAME +?iAlpha@Clist@@3V?$CMOption@E@@A @1153 NONAME +?iAutoAlpha@Clist@@3V?$CMOption@E@@A @1154 NONAME diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def index a4bc7159cc..987822ddc2 100644 --- a/src/mir_app/src/mir_app64.def +++ b/src/mir_app/src/mir_app64.def @@ -683,10 +683,10 @@ Netlib_Dump @812 NONAME ?ProtoBroadcastAsync@PROTO_INTERFACE@@QEAAXIHHPEAX_J@Z @813 NONAME ProtoBroadcastAsync @814 NONAME ?ProcessFileDrop@CSrmmBaseDialog@@IEAA_NPEAUHDROP__@@I@Z @815 NONAME -?ConfirmDelete@Clist@@3V?$CMOption@_N@@A @816 NONAME -?HideEmptyGroups@Clist@@3V?$CMOption@_N@@A @817 NONAME -?HideOffline@Clist@@3V?$CMOption@_N@@A @818 NONAME -?UseGroups@Clist@@3V?$CMOption@_N@@A @819 NONAME +?bConfirmDelete@Clist@@3V?$CMOption@_N@@A @816 NONAME +?bHideEmptyGroups@Clist@@3V?$CMOption@_N@@A @817 NONAME +?bHideOffline@Clist@@3V?$CMOption@_N@@A @818 NONAME +?bUseGroups@Clist@@3V?$CMOption@_N@@A @819 NONAME ?OfflineModes@Clist@@3V?$CMOption@I@@A @820 NONAME ?getChat@CSrmmBaseDialog@@QEBAPEAUSESSION_INFO@@XZ @821 NONAME ?EventCursor@MDatabaseCommon@@UEAAPEAV0DB@@II@Z @822 NONAME @@ -708,7 +708,7 @@ Netlib_GetTlsUnique @831 NONAME ?SafeDeleteDirectory@PU@@YAHPEB_W@Z @838 NONAME ?SafeDeleteFile@PU@@YAHPEB_W@Z @839 NONAME ?SafeMoveFile@PU@@YAHPEB_W0@Z @840 NONAME -?FilterSearch@Clist@@3V?$CMOption@_N@@A @841 NONAME +?bFilterSearch@Clist@@3V?$CMOption@_N@@A @841 NONAME ?FillContactSettings@MDatabaseCommon@@IEAAXXZ @842 NONAME ?GetContactSettingWorker@MDatabaseCommon@@MEAAHIPEBD0PEAUDBVARIANT@@H@Z @843 NONAME ?WriteContactSetting@MDatabaseCommon@@UEAAHIPEBD0PEAUDBVARIANT@@@Z @844 NONAME @@ -727,8 +727,8 @@ 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 +?bTray1Click@Clist@@3V?$CMOption@_N@@A @860 NONAME +?bTrayAlwaysStatus@Clist@@3V?$CMOption@_N@@A @861 NONAME ?Flush@MDatabaseCommon@@UEAAHXZ @862 NONAME ?getIcon@CHAT_MANAGER@@QEBAPEAUHICON__@@H@Z @863 NONAME ?getSoundName@SESSION_INFO@@QEBAPEBDH@Z @864 NONAME @@ -1006,3 +1006,18 @@ Proto_CanDeleteHistory @1118 NONAME ??6@YAPEAUMHttpRequest@@PEAU0@AEBUBOOL_PARAM@@@Z @1137 NONAME ?bShowFormatting@Chat@@3V?$CMOption@_N@@A @1138 NONAME ?setDescr@FILE_BLOB@DB@@QEAAXPEB_W@Z @1139 NONAME +?bShowMainMenu@Clist@@3V?$CMOption@_N@@A @1140 NONAME +?bShowCaption@Clist@@3V?$CMOption@_N@@A @1141 NONAME +?bToolWindow@Clist@@3V?$CMOption@_N@@A @1142 NONAME +?bClientAreaDrag@Clist@@3V?$CMOption@_N@@A @1143 NONAME +?bOnTop@Clist@@3V?$CMOption@_N@@A @1144 NONAME +?bAlwaysMulti@Clist@@3V?$CMOption@_N@@A @1145 NONAME +?bAutoHide@Clist@@3V?$CMOption@_N@@A @1146 NONAME +?bMinimizeToTray@Clist@@3V?$CMOption@_N@@A @1147 NONAME +?bTransparent@Clist@@3V?$CMOption@_N@@A @1148 NONAME +?iTrayIcon@Clist@@3V?$CMOption@E@@A @1149 NONAME +?bBringToFront@Clist@@3V?$CMOption@_N@@A @1150 NONAME +?iCycleTime@Clist@@3V?$CMOption@G@@A @1151 NONAME +?iHideTime@Clist@@3V?$CMOption@G@@A @1152 NONAME +?iAlpha@Clist@@3V?$CMOption@E@@A @1153 NONAME +?iAutoAlpha@Clist@@3V?$CMOption@E@@A @1154 NONAME -- cgit v1.2.3