From 45373ed8b8906f1a7e715b8c830f91fc1b46649a Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 26 Dec 2017 17:41:34 +0300 Subject: standard color table exported from core --- plugins/TabSRMM/src/utils.cpp | 40 +++++++--------------------------------- plugins/TabSRMM/src/utils.h | 8 +++++++- 2 files changed, 14 insertions(+), 34 deletions(-) (limited to 'plugins') diff --git a/plugins/TabSRMM/src/utils.cpp b/plugins/TabSRMM/src/utils.cpp index 79d501e4a0..df7dae8015 100644 --- a/plugins/TabSRMM/src/utils.cpp +++ b/plugins/TabSRMM/src/utils.cpp @@ -112,7 +112,7 @@ search_again: c_closing = colorname.GetLength(); const wchar_t *wszColname = colorname.c_str(); if (endmark != -1 && c_closing > 2 && c_closing <= 6 && iswalnum(colorname[0]) && iswalnum(colorname[c_closing - 1])) { - Utils::RTF_ColorAdd(wszColname, c_closing); + Utils::RTF_ColorAdd(wszColname); if (!was_added) { clr_was_added = was_added = true; goto search_again; @@ -414,48 +414,22 @@ int CTabBaseDlg::FindRTLLocale() ///////////////////////////////////////////////////////////////////////////////////////// // init default color table. the table may grow when using custom colors via bbcodes -static TRTFColorTable _rtf_ctable[] = -{ - { L"black", 0 }, - { L"", RGB(0,0,128) }, - { L"", RGB(0,128,128) }, - { L"", RGB(128,0,128) }, - { L"", RGB(0,128,0) }, - { L"", RGB(128,128,0) }, - { L"", RGB(128,0,0) }, - { L"", RGB(128,128,128) }, - - { L"", RGB(192,192,192) }, - { L"blue", RGB(0, 0, 255) }, - { L"cyan", RGB(0, 255, 255) }, - { L"magenta", RGB(255, 0, 255) }, - { L"green", RGB(0, 255, 0) }, - { L"yellow", RGB(255, 255, 0) }, - { L"red", RGB(255, 0, 0) }, - { L"white", RGB(255, 255, 255) } -}; - void Utils::RTF_CTableInit() { - for (int i = 0; i < _countof(_rtf_ctable); i++) - rtf_clrs.insert(new TRTFColorTable(_rtf_ctable[i])); + int iTableSize; + COLORREF *pTable = Srmm_GetColorTable(&iTableSize); + for (int i = 0; i < iTableSize; i++) + rtf_clrs.insert(new TRTFColorTable(L"", pTable[i])); } ///////////////////////////////////////////////////////////////////////////////////////// // add a color to the global rtf color table -void Utils::RTF_ColorAdd(const wchar_t *tszColname, size_t length) +void Utils::RTF_ColorAdd(const wchar_t *tszColname) { - TRTFColorTable *p = new TRTFColorTable; - wchar_t *stopped; COLORREF clr = wcstol(tszColname, &stopped, 16); - mir_snwprintf(p->szName, length + 1, L"%06x", clr); - - clr = wcstol(tszColname, &stopped, 16); - p->clr = (RGB(GetBValue(clr), GetGValue(clr), GetRValue(clr))); - - rtf_clrs.insert(p); + rtf_clrs.insert(new TRTFColorTable(tszColname, RGB(GetBValue(clr), GetGValue(clr), GetRValue(clr)))); } ///////////////////////////////////////////////////////////////////////////////////////// diff --git a/plugins/TabSRMM/src/utils.h b/plugins/TabSRMM/src/utils.h index 468c174733..eac7e070e5 100644 --- a/plugins/TabSRMM/src/utils.h +++ b/plugins/TabSRMM/src/utils.h @@ -38,6 +38,12 @@ struct TRTFColorTable { + __forceinline TRTFColorTable(const wchar_t *wszName, COLORREF _clr) : + clr(_clr) + { + mir_wstrncpy(szName, wszName, _countof(szName)); + } + wchar_t szName[10]; COLORREF clr; }; @@ -50,7 +56,7 @@ public: static char* FilterEventMarkers(char *szText); static void DoubleAmpersands(wchar_t *pszText, size_t len); static void RTF_CTableInit(); - static void RTF_ColorAdd(const wchar_t *tszColname, size_t length); + static void RTF_ColorAdd(const wchar_t *tszColname); static int ReadContainerSettingsFromDB(const MCONTACT hContact, TContainerSettings *cs, const char *szKey = 0); static int WriteContainerSettingsToDB(const MCONTACT hContact, TContainerSettings *cs, const char *szKey = 0); static void SettingsToContainer(TContainerData *pContainer); -- cgit v1.2.3