diff options
author | George Hazan <ghazan@miranda.im> | 2023-03-21 19:58:07 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2023-03-21 19:58:07 +0300 |
commit | dac1f81c2dc56851ac33e9f38065952c4724c384 (patch) | |
tree | 4b20800f5f61e5a867436ede2c7deaec67200525 /src/core/stdmsg | |
parent | a46d893e212c2948811b10a6ac84b0150efa09dd (diff) |
fixes #3444 (StdMsg/Scriver: убрать корневые чекбоксы в деревьях)
Diffstat (limited to 'src/core/stdmsg')
-rw-r--r-- | src/core/stdmsg/res/resource.rc | 2 | ||||
-rw-r--r-- | src/core/stdmsg/src/chat_manager.cpp | 1 | ||||
-rw-r--r-- | src/core/stdmsg/src/chat_options.cpp | 285 | ||||
-rw-r--r-- | src/core/stdmsg/src/msgdialog.cpp | 2 | ||||
-rw-r--r-- | src/core/stdmsg/src/srmm.cpp | 8 | ||||
-rw-r--r-- | src/core/stdmsg/src/stdafx.h | 38 |
6 files changed, 77 insertions, 259 deletions
diff --git a/src/core/stdmsg/res/resource.rc b/src/core/stdmsg/res/resource.rc index 9611fdc9be..0b3720a96d 100644 --- a/src/core/stdmsg/res/resource.rc +++ b/src/core/stdmsg/res/resource.rc @@ -176,7 +176,7 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD EXSTYLE WS_EX_CONTROLPARENT
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
- CONTROL "Tree1",IDC_CHECKBOXES,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_DISABLEDRAGDROP | TVS_FULLROWSELECT | WS_BORDER | WS_TABSTOP,10,12,280,205
+ CONTROL "",IDC_CHECKBOXES,"SysTreeView32",TVS_DISABLEDRAGDROP | WS_HSCROLL | WS_TABSTOP,10,12,280,205
GROUPBOX "Options",IDC_STATIC,0,0,300,227
END
diff --git a/src/core/stdmsg/src/chat_manager.cpp b/src/core/stdmsg/src/chat_manager.cpp index a06c0a89f6..6e153aeef9 100644 --- a/src/core/stdmsg/src/chat_manager.cpp +++ b/src/core/stdmsg/src/chat_manager.cpp @@ -102,7 +102,6 @@ static void OnLoadSettings() g_Settings.bTabsEnable = db_get_b(0, CHAT_MODULE, "Tabs", 1) != 0;
g_Settings.bTabsAtBottom = db_get_b(0, CHAT_MODULE, "TabBottom", 0) != 0;
g_Settings.bTabCloseOnDblClick = db_get_b(0, CHAT_MODULE, "TabCloseOnDblClick", 0) != 0;
- g_Settings.bAddColonToAutoComplete = db_get_b(0, CHAT_MODULE, "AddColonToAutoComplete", 1) != 0;
g_Settings.iSplitterX = db_get_w(0, CHAT_MODULE, "SplitterX", 105);
if (g_Settings.iSplitterX <= 50)
diff --git a/src/core/stdmsg/src/chat_options.cpp b/src/core/stdmsg/src/chat_options.cpp index 9a2514c51d..b6b519ab10 100644 --- a/src/core/stdmsg/src/chat_options.cpp +++ b/src/core/stdmsg/src/chat_options.cpp @@ -21,68 +21,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "resource.h" #include "stdafx.h" -struct branch_t -{ - const wchar_t *szDescr; - const char *szDBName; - int iMode; - bool bDefault; - HTREEITEM hItem; -}; - -static branch_t branch1[] = { - { LPGENW("Flash window when someone speaks"), "FlashWindow", 0, false }, - { LPGENW("Flash window when a word is highlighted"), "FlashWindowHighlight", 0, true }, - { LPGENW("Show list of users in the chat room"), "ShowNicklist", 0, true }, - { LPGENW("Show the topic of the room on your contact list (if supported)"), "TopicOnClist", 0, false }, - { LPGENW("Do not play sounds when the chat room is focused"), "SoundsFocus", 0, false }, - { LPGENW("Do not pop up the window when joining a chat room"), "PopupOnJoin", 0, false }, - { LPGENW("Show contact statuses if protocol supports them"), "ShowContactStatus", 0, false }, - { LPGENW("Display contact status icon before user role icon"), "ContactStatusFirst", 0, false }, -}; - -static branch_t branch2[] = { - { LPGENW("Prefix all events with a timestamp"), "ShowTimeStamp", 0, true }, - { LPGENW("Only prefix with timestamp if it has changed"), "ShowTimeStampIfChanged", 0, false }, - { LPGENW("Timestamp has same color as the event"), "TimeStampEventColour", 0, false }, - { LPGENW("Indent the second line of a message"), "LogIndentEnabled", 0, true }, - { LPGENW("Limit user names in the message log to 20 characters"), "LogLimitNames", 0, true }, - { LPGENW("Add ':' to auto-completed user names"), "AddColonToAutoComplete", 0, true }, - { LPGENW("Strip colors from messages in the log"), "StripFormatting", 0, false }, - { LPGENW("Enable the 'event filter' for new rooms"), "FilterEnabled", 0, 0 } -}; - -static branch_t branch4[] = { - { LPGENW("Show icon for topic changes"), "IconFlags", GC_EVENT_TOPIC, false }, - { LPGENW("Show icon for users joining"), "IconFlags", GC_EVENT_JOIN, true }, - { LPGENW("Show icon for users disconnecting"), "IconFlags", GC_EVENT_QUIT, false }, - { LPGENW("Show icon for messages"), "IconFlags", GC_EVENT_MESSAGE, false }, - { LPGENW("Show icon for actions"), "IconFlags", GC_EVENT_ACTION, false }, - { LPGENW("Show icon for highlights"), "IconFlags", GC_EVENT_HIGHLIGHT, false }, - { LPGENW("Show icon for users leaving"), "IconFlags", GC_EVENT_PART, false }, - { LPGENW("Show icon for users kicking other user"), "IconFlags", GC_EVENT_KICK, false }, - { LPGENW("Show icon for notices"), "IconFlags", GC_EVENT_NOTICE, false }, - { LPGENW("Show icon for name changes"), "IconFlags", GC_EVENT_NICK, false }, - { LPGENW("Show icon for information messages"), "IconFlags", GC_EVENT_INFORMATION, false }, - { LPGENW("Show icon for status changes"), "IconFlags", GC_EVENT_ADDSTATUS, false }, -}; - -static INT CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lp, LPARAM pData) -{ - wchar_t szDir[MAX_PATH]; - switch (uMsg) { - case BFFM_INITIALIZED: - SendMessage(hwnd, BFFM_SETSELECTION, TRUE, pData); - break; - - case BFFM_SELCHANGED: - if (SHGetPathFromIDList((LPITEMIDLIST)lp, szDir)) - SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, (LPARAM)szDir); - break; - } - return 0; -} - // add icons to the skinning module static IconItem iconList1[] = @@ -133,192 +71,81 @@ void AddIcons(void) class COptMainDlg : public CDlgBase { - HTREEITEM hListHeading1, hListHeading2, hListHeading4; - - CCtrlTreeView checkBoxes; - - void CheckHeading(HTREEITEM hHeading) - { - BOOL bChecked = TRUE; - - if (hHeading == nullptr) - return; - - TVITEMEX tvi; - tvi.mask = TVIF_HANDLE | TVIF_STATE; - tvi.hItem = checkBoxes.GetNextItem(hHeading, TVGN_CHILD); - while (tvi.hItem && bChecked) { - if (tvi.hItem != branch1[0].hItem && tvi.hItem != branch1[1].hItem) { - checkBoxes.GetItem(&tvi); - if (((tvi.state & TVIS_STATEIMAGEMASK) >> 12 == 1)) - bChecked = FALSE; - } - tvi.hItem = checkBoxes.GetNextSibling(tvi.hItem); - } - tvi.stateMask = TVIS_STATEIMAGEMASK; - tvi.state = INDEXTOSTATEIMAGEMASK(bChecked ? 2 : 1); - tvi.hItem = hHeading; - checkBoxes.SetItem(&tvi); - } + uint32_t m_dwFlags; - void CheckBranches(HTREEITEM hHeading) - { - BOOL bChecked = TRUE; - - if (hHeading == nullptr) - return; - - TVITEMEX tvi; - tvi.mask = TVIF_HANDLE | TVIF_STATE; - tvi.hItem = hHeading; - checkBoxes.GetItem(&tvi); - if (((tvi.state & TVIS_STATEIMAGEMASK) >> 12 == 2)) - bChecked = FALSE; - tvi.hItem = checkBoxes.GetNextItem(hHeading, TVGN_CHILD); - tvi.stateMask = TVIS_STATEIMAGEMASK; - while (tvi.hItem) { - tvi.state = INDEXTOSTATEIMAGEMASK(bChecked ? 2 : 1); - if (tvi.hItem != branch1[0].hItem && tvi.hItem != branch1[1].hItem) - checkBoxes.SetItem(&tvi); - tvi.hItem = checkBoxes.GetNextSibling(tvi.hItem); - } - } - - HTREEITEM InsertBranch(char *pszDescr, BOOL bExpanded) - { - TVINSERTSTRUCT tvis = {}; - tvis.hInsertAfter = TVI_LAST; - tvis.item.mask = TVIF_TEXT | TVIF_STATE; - tvis.item.pszText = Langpack_PcharToTchar(pszDescr); - tvis.item.stateMask = bExpanded ? TVIS_STATEIMAGEMASK | TVIS_EXPANDED : TVIS_STATEIMAGEMASK; - tvis.item.state = bExpanded ? INDEXTOSTATEIMAGEMASK(1) | TVIS_EXPANDED : INDEXTOSTATEIMAGEMASK(1); - HTREEITEM res = checkBoxes.InsertItem(&tvis); - mir_free(tvis.item.pszText); - return res; - } - - void FillBranch(HTREEITEM hParent, branch_t *branch, int nValues, uint32_t defaultval) - { - int iState; - - if (hParent == nullptr) - return; - - TVINSERTSTRUCT tvis; - tvis.hParent = hParent; - tvis.hInsertAfter = TVI_LAST; - tvis.item.mask = TVIF_TEXT | TVIF_STATE; - for (int i = 0; i < nValues; i++, branch++) { - tvis.item.pszText = TranslateW(branch->szDescr); - tvis.item.stateMask = TVIS_STATEIMAGEMASK; - if (branch->iMode) - iState = ((db_get_dw(0, CHAT_MODULE, branch->szDBName, defaultval) & branch->iMode) & branch->iMode) != 0 ? 2 : 1; - else - iState = db_get_b(0, CHAT_MODULE, branch->szDBName, branch->bDefault) != 0 ? 2 : 1; - tvis.item.state = INDEXTOSTATEIMAGEMASK(iState); - branch->hItem = checkBoxes.InsertItem(&tvis); - } - } - - void SaveBranch(branch_t *branch, int nValues) - { - int iState = 0; - - TVITEMEX tvi; - tvi.mask = TVIF_HANDLE | TVIF_STATE; - for (int i = 0; i < nValues; i++, branch++) { - tvi.hItem = branch->hItem; - checkBoxes.GetItem(&tvi); - uint8_t bChecked = (((tvi.state & TVIS_STATEIMAGEMASK) >> 12) == 1) ? 0 : 1; - if (branch->iMode) { - if (bChecked) - iState |= branch->iMode; - if (iState & GC_EVENT_ADDSTATUS) - iState |= GC_EVENT_REMOVESTATUS; - db_set_dw(0, CHAT_MODULE, branch->szDBName, (uint32_t)iState); - } - else db_set_b(0, CHAT_MODULE, branch->szDBName, bChecked); - } - } - - void FixHeadings() - { - CheckHeading(hListHeading1); - CheckHeading(hListHeading2); - CheckHeading(hListHeading4); - } + CCtrlTreeOpts checkBoxes; public: - COptMainDlg() - : CDlgBase(g_plugin, IDD_OPTIONS1), + COptMainDlg() : + CDlgBase(g_plugin, IDD_OPTIONS1), checkBoxes(this, IDC_CHECKBOXES) { - checkBoxes.OnItemChanged = Callback(this, &COptMainDlg::onChange_Tree); - } - - bool OnInitDialog() override - { - SetWindowLongPtr(checkBoxes.GetHwnd(), GWL_STYLE, GetWindowLongPtr(checkBoxes.GetHwnd(), GWL_STYLE) | TVS_NOHSCROLL | TVS_CHECKBOXES); - - hListHeading1 = InsertBranch(LPGEN("Appearance and functionality of chat room windows"), db_get_b(0, CHAT_MODULE, "Branch1Exp", 0) ? TRUE : FALSE); - hListHeading2 = InsertBranch(LPGEN("Appearance of the message log"), db_get_b(0, CHAT_MODULE, "Branch2Exp", 0) ? TRUE : FALSE); - hListHeading4 = InsertBranch(LPGEN("Icons to display in the message log"), db_get_b(0, CHAT_MODULE, "Branch4Exp", 0) ? TRUE : FALSE); - - FillBranch(hListHeading1, branch1, _countof(branch1), 0); - FillBranch(hListHeading2, branch2, _countof(branch2), 0); - FillBranch(hListHeading4, branch4, _countof(branch4), 0x0000); - - FixHeadings(); - return true; + m_dwFlags = db_get_dw(0, CHAT_MODULE, "IconFlags"); + + auto *pwszSection = TranslateT("Appearance and functionality of chat room windows"); + checkBoxes.AddOption(pwszSection, TranslateT("Flash window when someone speaks"), Chat::bFlashWindow); + checkBoxes.AddOption(pwszSection, TranslateT("Flash window when a word is highlighted"), Chat::bFlashWindowHighlight); + checkBoxes.AddOption(pwszSection, TranslateT("Show list of users in the chat room"), Chat::bShowNicklist); + checkBoxes.AddOption(pwszSection, TranslateT("Show the topic of the room on your contact list (if supported)"), Chat::bTopicOnClist); + checkBoxes.AddOption(pwszSection, TranslateT("Do not play sounds when the chat room is focused"), g_plugin.bSoundsFocus); + checkBoxes.AddOption(pwszSection, TranslateT("Do not pop up the window when joining a chat room"), Chat::bPopupOnJoin); + checkBoxes.AddOption(pwszSection, TranslateT("Show contact statuses if protocol supports them"), Chat::bShowContactStatus); + checkBoxes.AddOption(pwszSection, TranslateT("Display contact status icon before user role icon"), Chat::bContactStatusFirst); + + pwszSection = TranslateT("Appearance of the message log"); + checkBoxes.AddOption(pwszSection, TranslateT("Prefix all events with a timestamp"), Chat::bShowTime); + checkBoxes.AddOption(pwszSection, TranslateT("Only prefix with timestamp if it has changed"), Chat::bShowTimeIfChanged); + checkBoxes.AddOption(pwszSection, TranslateT("Timestamp has same color as the event"), Chat::bTimeStampEventColour); + checkBoxes.AddOption(pwszSection, TranslateT("Indent the second line of a message"), Chat::bLogIndentEnabled); + checkBoxes.AddOption(pwszSection, TranslateT("Limit user names in the message log to 20 characters"), Chat::bLogLimitNames); + checkBoxes.AddOption(pwszSection, TranslateT("Add ':' to auto-completed user names"), g_plugin.bAddColonToAutoComplete); + checkBoxes.AddOption(pwszSection, TranslateT("Strip colors from messages in the log"), Chat::bStripFormat); + checkBoxes.AddOption(pwszSection, TranslateT("Enable the 'event filter' for new rooms"), Chat::bFilterEnabled); + + pwszSection = TranslateT("Icons to display in the message log"); + checkBoxes.AddOption(pwszSection, TranslateT("Show icon for topic changes"), m_dwFlags, GC_EVENT_TOPIC); + checkBoxes.AddOption(pwszSection, TranslateT("Show icon for users joining"), m_dwFlags, GC_EVENT_JOIN); + checkBoxes.AddOption(pwszSection, TranslateT("Show icon for users disconnecting"), m_dwFlags, GC_EVENT_QUIT); + checkBoxes.AddOption(pwszSection, TranslateT("Show icon for messages"), m_dwFlags, GC_EVENT_MESSAGE); + checkBoxes.AddOption(pwszSection, TranslateT("Show icon for actions"), m_dwFlags, GC_EVENT_ACTION); + checkBoxes.AddOption(pwszSection, TranslateT("Show icon for highlights"), m_dwFlags, GC_EVENT_HIGHLIGHT); + checkBoxes.AddOption(pwszSection, TranslateT("Show icon for users leaving"), m_dwFlags, GC_EVENT_PART); + checkBoxes.AddOption(pwszSection, TranslateT("Show icon for users kicking other user"), m_dwFlags, GC_EVENT_KICK); + checkBoxes.AddOption(pwszSection, TranslateT("Show icon for notices"), m_dwFlags, GC_EVENT_NOTICE); + checkBoxes.AddOption(pwszSection, TranslateT("Show icon for name changes"), m_dwFlags, GC_EVENT_NICK); + checkBoxes.AddOption(pwszSection, TranslateT("Show icon for information messages"), m_dwFlags, GC_EVENT_INFORMATION); + checkBoxes.AddOption(pwszSection, TranslateT("Show icon for status changes"), m_dwFlags, GC_EVENT_ADDSTATUS); } bool OnApply() override { - SaveBranch(branch1, _countof(branch1)); - SaveBranch(branch2, _countof(branch2)); - SaveBranch(branch4, _countof(branch4)); + db_set_dw(0, CHAT_MODULE, "IconFlags", m_dwFlags); g_chatApi.ReloadSettings(); Chat_UpdateOptions(); return true; } - - void OnDestroy() override - { - uint8_t b = checkBoxes.GetItemState(hListHeading1, TVIS_EXPANDED) & TVIS_EXPANDED ? 1 : 0; - db_set_b(0, CHAT_MODULE, "Branch1Exp", b); - b = checkBoxes.GetItemState(hListHeading2, TVIS_EXPANDED) & TVIS_EXPANDED ? 1 : 0; - db_set_b(0, CHAT_MODULE, "Branch2Exp", b); - b = checkBoxes.GetItemState(hListHeading4, TVIS_EXPANDED) & TVIS_EXPANDED ? 1 : 0; - db_set_b(0, CHAT_MODULE, "Branch4Exp", b); - } - - void onChange_Tree(CCtrlTreeView::TEventInfo *evt) - { - TVITEMEX tvi; - tvi.mask = TVIF_HANDLE | TVIF_STATE; - tvi.hItem = evt->hItem; - checkBoxes.GetItem(&tvi); - - if (tvi.hItem == branch1[0].hItem && INDEXTOSTATEIMAGEMASK(1) == tvi.state) - checkBoxes.SetItemState(branch1[1].hItem, INDEXTOSTATEIMAGEMASK(1), TVIS_STATEIMAGEMASK); - if (tvi.hItem == branch1[1].hItem && INDEXTOSTATEIMAGEMASK(1) == tvi.state) - checkBoxes.SetItemState(branch1[0].hItem, INDEXTOSTATEIMAGEMASK(1), TVIS_STATEIMAGEMASK); - - if (tvi.hItem == hListHeading1) - CheckBranches(hListHeading1); - else if (tvi.hItem == hListHeading2) - CheckBranches(hListHeading2); - else if (tvi.hItem == hListHeading4) - CheckBranches(hListHeading4); - else - FixHeadings(); - } }; ///////////////////////////////////////////////////////////////////////////////////////// // Log & other options +static INT CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lp, LPARAM pData) +{ + wchar_t szDir[MAX_PATH]; + switch (uMsg) { + case BFFM_INITIALIZED: + SendMessage(hwnd, BFFM_SETSELECTION, TRUE, pData); + break; + + case BFFM_SELCHANGED: + if (SHGetPathFromIDList((LPITEMIDLIST)lp, szDir)) + SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, (LPARAM)szDir); + break; + } + return 0; +} + class COptLogDlg : public CDlgBase { CCtrlEdit edtGroup, edtLogDir, edtLogTimestamp, edtTimestamp, edtHighlight, edtInStamp, edtOutStamp, edtLimit; diff --git a/src/core/stdmsg/src/msgdialog.cpp b/src/core/stdmsg/src/msgdialog.cpp index 94f32896df..e57543fac0 100644 --- a/src/core/stdmsg/src/msgdialog.cpp +++ b/src/core/stdmsg/src/msgdialog.cpp @@ -1002,7 +1002,7 @@ LRESULT CMsgDialog::WndProc_Message(UINT msg, WPARAM wParam, LPARAM lParam) }
if (m_szTabSave[0] != '\0' && wParam != VK_RIGHT && wParam != VK_LEFT && wParam != VK_SPACE && wParam != VK_RETURN && wParam != VK_BACK && wParam != VK_DELETE) {
- if (g_Settings.bAddColonToAutoComplete && m_iTabStart == 0)
+ if (g_plugin.bAddColonToAutoComplete && m_iTabStart == 0)
SendMessageA(m_message.GetHwnd(), EM_REPLACESEL, FALSE, (LPARAM) ": ");
m_szTabSave[0] = '\0';
diff --git a/src/core/stdmsg/src/srmm.cpp b/src/core/stdmsg/src/srmm.cpp index 4485d40bb3..3e64fc62f6 100644 --- a/src/core/stdmsg/src/srmm.cpp +++ b/src/core/stdmsg/src/srmm.cpp @@ -81,7 +81,13 @@ CMPlugin::CMPlugin() : iLoadHistory(SRMMMOD, "LoadHistory", LOADHISTORY_UNREAD),
nLoadCount(SRMMMOD, "LoadCount", 10),
- nLoadTime(SRMMMOD, "LoadTime", 10)
+ nLoadTime(SRMMMOD, "LoadTime", 10),
+
+ // chat options
+ bSoundsFocus(CHAT_MODULE, "SoundsFocus", false),
+
+ // chat log options
+ bAddColonToAutoComplete(CHAT_MODULE, "AddColonToAutoComplete", true)
{}
/////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/stdmsg/src/stdafx.h b/src/core/stdmsg/src/stdafx.h index 8a8633954b..2255d06693 100644 --- a/src/core/stdmsg/src/stdafx.h +++ b/src/core/stdmsg/src/stdafx.h @@ -144,7 +144,6 @@ struct GlobalLogSettings : public GlobalLogSettingsBase int iSplitterX, iSplitterY;
bool bTabsEnable, bTabsAtBottom, bTabCloseOnDblClick;
- bool bAddColonToAutoComplete;
};
/////////////////////////////////////////////////////////////////////////////////////////
@@ -155,40 +154,27 @@ struct CMPlugin : public PLUGIN<CMPlugin> HANDLE hLogger;
- CMOption<bool> bShowButtons;
- CMOption<bool> bSendButton;
- CMOption<bool> bShowTyping;
- CMOption<bool> bShowTypingWin;
- CMOption<bool> bShowTypingTray;
- CMOption<bool> bShowTypingClist;
- CMOption<bool> bShowIcons;
- CMOption<bool> bShowTime;
- CMOption<bool> bShowDate;
- CMOption<bool> bShowAvatar;
- CMOption<bool> bShowNames;
- CMOption<bool> bShowSecs;
- CMOption<bool> bShowReadChar;
- CMOption<bool> bAutoClose;
- CMOption<bool> bAutoMin;
- CMOption<bool> bTypingNew;
- CMOption<bool> bTypingUnknown;
- CMOption<bool> bCtrlSupport;
- CMOption<bool> bShowFormat;
- CMOption<bool> bSavePerContact;
- CMOption<bool> bDoNotStealFocus;
- CMOption<bool> bCascade;
- CMOption<bool> bDeleteTempCont;
- CMOption<bool> bUseStatusWinIcon;
+ // private chat log options
+ CMOption<bool> bShowButtons, bSendButton, bShowTyping, bShowTypingWin, bShowTypingTray, bShowTypingClist;
+ CMOption<bool> bShowIcons, bShowTime, bShowDate, bShowAvatar, bShowNames, bShowSecs, bShowReadChar;
+ CMOption<bool> bAutoClose, bAutoMin, bTypingNew, bTypingUnknown, bCtrlSupport, bShowFormat;
+ CMOption<bool> bSavePerContact, bDoNotStealFocus, bCascade, bDeleteTempCont, bUseStatusWinIcon;
CMOption<bool> bLimitAvatarHeight;
CMOption<uint16_t> iAvatarHeight;
+ // chat appearance
+ CMOption<bool> bSoundsFocus;
+
+ // chat log appearance
+ CMOption<bool> bAddColonToAutoComplete;
+
CMOption<uint32_t> popupFlags;
CMOption<uint32_t> msgTimeout;
CMOption<uint32_t> nFlashMax;
CMOption<uint8_t> iLoadHistory;
- CMOption<uint16_t> nLoadCount, nLoadTime;
+ CMOption<uint16_t> nLoadCount, nLoadTime;
bool bSmileyInstalled = false;
|