summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2023-10-30 15:22:28 +0300
committerGeorge Hazan <george.hazan@gmail.com>2023-10-30 15:22:28 +0300
commitee2337c6bc391d0ab1d58123899920c6df0d2ef0 (patch)
tree976d43891e839e11702387f121c505792f284aea
parent16143e784b1697c4b5349bc888c97f7160cf4534 (diff)
fixes #3616 (NewStory: не работают настройки цвета своего имени и имени собеседника)
-rw-r--r--libs/mTextControl/src/FormattedTextDraw.cpp76
-rw-r--r--libs/mTextControl/src/FormattedTextDraw.h14
-rw-r--r--libs/mTextControl/src/services.cpp26
-rw-r--r--plugins/NewStory/src/fonts.cpp8
-rw-r--r--plugins/NewStory/src/history_array.cpp10
-rw-r--r--plugins/NewStory/src/history_array.h9
-rw-r--r--plugins/NewStory/src/history_control.cpp4
-rw-r--r--plugins/NewStory/src/options.cpp2
-rw-r--r--plugins/NewStory/src/stdafx.h1
-rw-r--r--plugins/NewStory/src/templates.cpp108
-rw-r--r--plugins/NewStory/src/templates.h19
-rw-r--r--plugins/NewStory/src/version.h4
12 files changed, 129 insertions, 152 deletions
diff --git a/libs/mTextControl/src/FormattedTextDraw.cpp b/libs/mTextControl/src/FormattedTextDraw.cpp
index e89ab6ad1d..e093048160 100644
--- a/libs/mTextControl/src/FormattedTextDraw.cpp
+++ b/libs/mTextControl/src/FormattedTextDraw.cpp
@@ -156,6 +156,8 @@ HRESULT CFormattedTextDraw::putRTFText(char *newVal)
if (!m_spTextServices)
return S_FALSE;
+ m_bNative = true;
+
STREAMDATATEXT streamData = {};
streamData.isUnicode = false;
streamData.ansi = newVal;
@@ -176,23 +178,25 @@ HRESULT CFormattedTextDraw::putRTFText(char *newVal)
HRESULT CFormattedTextDraw::Draw(HDC hdcDraw, RECT *prc)
{
- LOGFONT lf;
- GetObject(GetCurrentObject(hdcDraw, OBJ_FONT), sizeof(lf), &lf);
-
- LRESULT lResult;
- CHARFORMAT cf;
- cf.cbSize = sizeof(cf);
- cf.dwMask = CFM_FACE/*|CFM_COLOR*/ | CFM_CHARSET | CFM_SIZE |
- (lf.lfWeight >= FW_BOLD ? CFM_BOLD : 0) |
- (lf.lfItalic ? CFM_ITALIC : 0) |
- (lf.lfUnderline ? CFM_UNDERLINE : 0) |
- (lf.lfStrikeOut ? CFM_STRIKEOUT : 0);
- cf.dwEffects = CFE_BOLD | CFE_ITALIC | CFE_STRIKEOUT | CFE_UNDERLINE;
- cf.crTextColor = GetTextColor(hdcDraw);
- cf.bCharSet = lf.lfCharSet;
- cf.yHeight = 1440 * abs(lf.lfHeight) / GetDeviceCaps(hdcDraw, LOGPIXELSY);
- wcsncpy_s(cf.szFaceName, lf.lfFaceName, _TRUNCATE);
- m_spTextServices->TxSendMessage(EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cf, &lResult);
+ if (!m_bNative) {
+ LOGFONT lf;
+ GetObject(GetCurrentObject(hdcDraw, OBJ_FONT), sizeof(lf), &lf);
+
+ LRESULT lResult;
+ CHARFORMAT cf;
+ cf.cbSize = sizeof(cf);
+ cf.dwMask = CFM_FACE/*|CFM_COLOR*/ | CFM_CHARSET | CFM_SIZE |
+ (lf.lfWeight >= FW_BOLD ? CFM_BOLD : 0) |
+ (lf.lfItalic ? CFM_ITALIC : 0) |
+ (lf.lfUnderline ? CFM_UNDERLINE : 0) |
+ (lf.lfStrikeOut ? CFM_STRIKEOUT : 0);
+ cf.dwEffects = CFE_BOLD | CFE_ITALIC | CFE_STRIKEOUT | CFE_UNDERLINE;
+ cf.crTextColor = GetTextColor(hdcDraw);
+ cf.bCharSet = lf.lfCharSet;
+ cf.yHeight = 1440 * abs(lf.lfHeight) / GetDeviceCaps(hdcDraw, LOGPIXELSY);
+ wcsncpy_s(cf.szFaceName, lf.lfFaceName, _TRUNCATE);
+ m_spTextServices->TxSendMessage(EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cf, &lResult);
+ }
m_spTextServices->TxDraw(
DVASPECT_CONTENT, // Draw Aspect
@@ -220,27 +224,29 @@ HRESULT CFormattedTextDraw::get_NaturalSize(HDC hdcDraw, long *Width, long *Heig
if (iCaps == 0)
return S_FALSE;
- LOGFONT lf;
- GetObject(GetCurrentObject(hdcDraw, OBJ_FONT), sizeof(lf), &lf);
-
- LRESULT lResult;
- CHARFORMAT cf;
- cf.cbSize = sizeof(cf);
- cf.dwMask = CFM_FACE/*|CFM_COLOR*/ | CFM_CHARSET | CFM_SIZE |
- (lf.lfWeight >= FW_BOLD ? CFM_BOLD : 0) |
- (lf.lfItalic ? CFM_ITALIC : 0) |
- (lf.lfUnderline ? CFM_UNDERLINE : 0) |
- (lf.lfStrikeOut ? CFM_STRIKEOUT : 0);
- cf.dwEffects = CFE_BOLD | CFE_ITALIC | CFE_STRIKEOUT | CFE_UNDERLINE;
- cf.crTextColor = GetTextColor(hdcDraw);
- cf.bCharSet = lf.lfCharSet;
- cf.yHeight = 1440 * abs(lf.lfHeight) / iCaps;
- wcsncpy_s(cf.szFaceName, lf.lfFaceName, _TRUNCATE);
-
if (!m_spTextServices)
return S_FALSE;
- m_spTextServices->TxSendMessage(EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cf, &lResult);
+ if (!m_bNative) {
+ LOGFONT lf;
+ GetObject(GetCurrentObject(hdcDraw, OBJ_FONT), sizeof(lf), &lf);
+
+ LRESULT lResult;
+ CHARFORMAT cf;
+ cf.cbSize = sizeof(cf);
+ cf.dwMask = CFM_FACE/*|CFM_COLOR*/ | CFM_CHARSET | CFM_SIZE |
+ (lf.lfWeight >= FW_BOLD ? CFM_BOLD : 0) |
+ (lf.lfItalic ? CFM_ITALIC : 0) |
+ (lf.lfUnderline ? CFM_UNDERLINE : 0) |
+ (lf.lfStrikeOut ? CFM_STRIKEOUT : 0);
+ cf.dwEffects = CFE_BOLD | CFE_ITALIC | CFE_STRIKEOUT | CFE_UNDERLINE;
+ cf.crTextColor = GetTextColor(hdcDraw);
+ cf.bCharSet = lf.lfCharSet;
+ cf.yHeight = 1440 * abs(lf.lfHeight) / iCaps;
+ wcsncpy_s(cf.szFaceName, lf.lfFaceName, _TRUNCATE);
+
+ m_spTextServices->TxSendMessage(EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cf, &lResult);
+ }
*Height = 1;
diff --git a/libs/mTextControl/src/FormattedTextDraw.h b/libs/mTextControl/src/FormattedTextDraw.h
index f9ff25f2b6..edfcac0d2f 100644
--- a/libs/mTextControl/src/FormattedTextDraw.h
+++ b/libs/mTextControl/src/FormattedTextDraw.h
@@ -17,17 +17,18 @@
class CFormattedTextDraw : public ITextHost, public MZeroedObject
{
HWND m_hwndParent;
- RECT m_rcClient; // Client Rect
- RECT m_rcViewInset; // view rect inset
- SIZEL m_sizelExtent; // Extent array
+ RECT m_rcClient; // Client Rect
+ RECT m_rcViewInset; // view rect inset
+ SIZEL m_sizelExtent; // Extent array
- int nPixelsPerInchX; // Pixels per logical inch along width
- int nPixelsPerInchY; // Pixels per logical inch along height
+ int nPixelsPerInchX; // Pixels per logical inch along width
+ int nPixelsPerInchY; // Pixels per logical inch along height
CHARFORMAT2W m_CF;
PARAFORMAT2 m_PF;
- uint32_t m_dwPropertyBits; // Property bits
+ uint32_t m_dwPropertyBits; // Property bits
+ bool m_bNative = false; // Doesn't generate RTF itself, uses external plain RTF
ITextServices *m_spTextServices;
ITextDocument *m_spTextDocument;
@@ -45,6 +46,7 @@ public:
__forceinline ITextServices *getTextService() { return m_spTextServices; };
__forceinline ITextDocument *getTextDocument() { return m_spTextDocument; };
+ __forceinline bool isNative() const { return m_bNative; }
__forceinline void setParentWnd(HWND hwnd, RECT rect) { m_hwndParent = hwnd; m_rcClient = rect; }
// IUnknown
diff --git a/libs/mTextControl/src/services.cpp b/libs/mTextControl/src/services.cpp
index 1575b716dd..8c6e06d165 100644
--- a/libs/mTextControl/src/services.cpp
+++ b/libs/mTextControl/src/services.cpp
@@ -85,16 +85,6 @@ MTEXTCONTROL_DLL(TextObject *) MTextCreateW(HANDLE userHandle, const char *szPro
MText_InitFormatting0(result->ftd, result->options);
result->ftd->putTextW((wchar_t *)text);
MText_InitFormatting1(result);
-
- /*
- LRESULT res;
- CMStringA buf;
- EDITSTREAM es = { 0 };
- es.dwCookie = (DWORD_PTR)&buf;
- es.pfnCallback = &EditStreamOutCallback;
- result->ftd->getTextService()->TxSendMessage(EM_STREAMOUT, SF_RTF, (LPARAM)&es, &res);
-
- Netlib_Logf(0, "Rtf created: %s", buf.c_str());*/
return result;
}
@@ -145,14 +135,16 @@ MTEXTCONTROL_DLL(int) MTextDisplay(HDC dc, POINT pos, SIZE sz, TextObject *text)
if (!text || !dc)
return 0;
- COLORREF cl = GetTextColor(dc);
+ if (!text->ftd->isNative()) {
+ COLORREF cl = GetTextColor(dc);
- LRESULT lResult;
- CHARFORMAT cf = { 0 };
- cf.cbSize = sizeof(cf);
- cf.dwMask = CFM_COLOR;
- cf.crTextColor = cl;
- text->ftd->getTextService()->TxSendMessage(EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cf, &lResult);
+ LRESULT lResult;
+ CHARFORMAT cf = { 0 };
+ cf.cbSize = sizeof(cf);
+ cf.dwMask = CFM_COLOR;
+ cf.crTextColor = cl;
+ text->ftd->getTextService()->TxSendMessage(EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cf, &lResult);
+ }
SetBkMode(dc, TRANSPARENT);
diff --git a/plugins/NewStory/src/fonts.cpp b/plugins/NewStory/src/fonts.cpp
index f7e32c1ef9..8cdd428859 100644
--- a/plugins/NewStory/src/fonts.cpp
+++ b/plugins/NewStory/src/fonts.cpp
@@ -20,8 +20,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
MyColourID g_colorTable[COLOR_COUNT] =
{
- { LPGEN("Incoming name"), "ColorNickIn", RGB(0xc8, 0x3f, 0x6b) },
- { LPGEN("Outgoing name"), "ColorNickOut", RGB(0x08, 0x60, 0xbd) },
+ { LPGEN("Incoming name"), "ColorNickIn", RGB(0x00, 0x00, 0x00) },
+ { LPGEN("Outgoing name"), "ColorNickOut", RGB(0x00, 0x00, 0x00) },
{ LPGEN("Incoming messages"), "ColorMsgIn", RGB(0xd6, 0xf5, 0xc0) },
{ LPGEN("Outgoing messages"), "ColorMsgOut", RGB(0xf5, 0xe7, 0xd8) },
@@ -38,7 +38,7 @@ MyColourID g_colorTable[COLOR_COUNT] =
{ LPGEN("Selected item's background"), "ColorSel", GetSysColor(COLOR_HIGHLIGHT) },
{ LPGEN("Selected item's frame"), "ColorSelFrm", GetSysColor(COLOR_HIGHLIGHTTEXT) },
- { LPGEN("Highlighted messages"), "ColorHighlight", RGB(0xf0, 0xf0, 0xf0) },
+ { LPGEN("Highlighted messages"), "ColorHighlight", RGB(0xf0, 0xf0, 0xf0) },
{ LPGEN("Grid background"), "Background", RGB(0xff, 0xff, 0xff) },
{ LPGEN("Separator"), "Separator", RGB(0x60, 0x60, 0x60) },
};
@@ -52,7 +52,7 @@ MyFontID g_fontTable[FONT_COUNT] =
{ LPGEN("Outgoing files"), "FontFileOut" },
{ LPGEN("Status changes"), "FontStatus" },
- { LPGEN("Highlighted messages"), "FontHighlight", DBFONTF_BOLD, RGB(0x7f, 0, 0) },
+ { LPGEN("Highlighted messages"), "FontHighlight", DBFONTF_BOLD, RGB(0x7f, 0, 0) },
{ LPGEN("Other incoming events"), "FontIn" },
{ LPGEN("Other outgoing events"), "FontOut" },
diff --git a/plugins/NewStory/src/history_array.cpp b/plugins/NewStory/src/history_array.cpp
index 67505d91d1..db00f46f98 100644
--- a/plugins/NewStory/src/history_array.cpp
+++ b/plugins/NewStory/src/history_array.cpp
@@ -306,9 +306,6 @@ void ItemData::load(bool bFullLoad)
db_event_markRead(hContact, hEvent);
Clist_RemoveEvent(-1, hEvent);
}
-
- // uncomment this to use RTF engine
- // m_bRtf = true;
__fallthrough;
case EVENTTYPE_STATUSCHANGE:
@@ -372,12 +369,7 @@ void ItemData::load(bool bFullLoad)
void ItemData::setText()
{
- if (m_bRtf) {
- NSRtfProvider prov(this);
- data = MTextCreateEx(htuLog, &prov, MTEXT_FLG_RTF);
- }
- else data = MTextCreateW(htuLog, Proto_GetBaseAccountName(hContact), TplFormatString(getTemplate(), hContact, this));
-
+ data = MTextCreateEx(htuLog, formatRtf().GetBuffer(), MTEXT_FLG_RTF);
savedHeight = -1;
}
diff --git a/plugins/NewStory/src/history_array.h b/plugins/NewStory/src/history_array.h
index cfefca9612..151ff568ca 100644
--- a/plugins/NewStory/src/history_array.h
+++ b/plugins/NewStory/src/history_array.h
@@ -8,12 +8,13 @@ enum
GROUPING_ITEM = 2,
};
+CMStringW TplFormatString(int tpl, MCONTACT hContact, ItemData *item);
+
struct ItemData
{
MCONTACT hContact;
MEVENT hEvent;
- bool m_bRtf;
bool m_bSelected, m_bHighlighted;
bool m_bLoaded, m_bIsResult;
bool m_bOfflineFile, m_bOfflineDownloaded;
@@ -25,7 +26,7 @@ struct ItemData
wchar_t *wtext;
wchar_t *wszNick;
- HANDLE data;
+ HText data;
ItemData();
~ItemData();
@@ -43,6 +44,10 @@ struct ItemData
int getCopyTemplate() const;
void getFontColor(int &fontId, int &colorId) const;
+ CMStringA formatRtf();
+ CMStringW formatString() { return TplFormatString(getTemplate(), hContact, this); }
+ CMStringW formatStringEx(int tpl, wchar_t *sztpl);
+
inline wchar_t *getWBuf()
{
load(true);
diff --git a/plugins/NewStory/src/history_control.cpp b/plugins/NewStory/src/history_control.cpp
index 365ad3e8aa..d7102b980a 100644
--- a/plugins/NewStory/src/history_control.cpp
+++ b/plugins/NewStory/src/history_control.cpp
@@ -290,7 +290,7 @@ void NewstoryListData::Copy(bool bTextOnly)
res.Append(L"\r\n");
}
else { // copy text only
- CMStringW wszText(TplFormatString(p->getCopyTemplate(), p->hContact, p));
+ CMStringW wszText(p->formatString());
RemoveBbcodes(wszText);
res.Append(wszText);
}
@@ -497,7 +497,7 @@ int NewstoryListData::GetItemHeight(int index)
int width = rc.right - rc.left;
SIZE sz = { width - 6, 0 };
- MTextMeasure(hdc, &sz, (HANDLE)item->data);
+ MTextMeasure(hdc, &sz, item->data);
SelectObject(hdc, hOldFont);
ReleaseDC(m_hwnd, hdc);
diff --git a/plugins/NewStory/src/options.cpp b/plugins/NewStory/src/options.cpp
index 2d5f355e1b..ee84cd1b79 100644
--- a/plugins/NewStory/src/options.cpp
+++ b/plugins/NewStory/src/options.cpp
@@ -83,7 +83,7 @@ class CTemplateOptsDlg : public CBaseOptsDlg
item.hEvent = m_hDbEVent;
item.load(true);
- CMStringW wszText(TplFormatStringEx(int(m_curr - templates), m_curr->tmpValue, &item));
+ CMStringW wszText(item.formatStringEx(int(m_curr - templates), m_curr->tmpValue));
preview.SetText(wszText);
gpreview.SetText(wszText);
}
diff --git a/plugins/NewStory/src/stdafx.h b/plugins/NewStory/src/stdafx.h
index 70039c4c3f..fc0c78dd22 100644
--- a/plugins/NewStory/src/stdafx.h
+++ b/plugins/NewStory/src/stdafx.h
@@ -45,6 +45,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <m_langpack.h>
#include <m_message.h>
#include <m_metacontacts.h>
+#include <m_netlib.h>
#include <m_options.h>
#include <m_protocols.h>
#include <m_protosvc.h>
diff --git a/plugins/NewStory/src/templates.cpp b/plugins/NewStory/src/templates.cpp
index 7e6f82a0a7..8d2e1bd242 100644
--- a/plugins/NewStory/src/templates.cpp
+++ b/plugins/NewStory/src/templates.cpp
@@ -27,46 +27,17 @@ wchar_t *months[12] =
};
///////////////////////////////////////////////////////////////////////////////
-// Template formatting for options dialog
-
-CMStringW TplFormatStringEx(int tpl, wchar_t *sztpl, ItemData *item)
-{
- if (tpl < 0 || tpl >= TPL_COUNT || !sztpl)
- return mir_wstrdup(L"");
-
- TemplateVars vars;
-
- auto &T = templates[tpl];
- for (auto &it : T.vf)
- if (it)
- it(&vars, item->hContact, item);
-
- CMStringW buf;
- for (wchar_t *p = sztpl; *p; p++) {
- if (*p == '%') {
- wchar_t *var = vars.GetVar((p[1] & 0xff));
- if (var)
- buf.Append(var);
- p++;
- }
- else buf.AppendChar(*p);
- }
-
- return buf;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-// Template formatting for the control
+// RTF generator
static void AppendUnicodeToBuffer(CMStringA &buf, const wchar_t *p)
{
for (; *p; p++) {
if (*p == '\r' && p[1] == '\n') {
- buf.Append("\\p ");
+ buf.Append("\\par ");
p++;
}
else if (*p == '\n') {
- buf.Append("\\p ");
+ buf.Append("\\par ");
}
else if (*p == '\t') {
buf.Append("\\tab ");
@@ -118,39 +89,35 @@ static void AppendUnicodeToBuffer(CMStringA &buf, const wchar_t *p)
}
}
-CMStringA NSRtfProvider::CreateRtfHeader()
+CMStringA ItemData::formatRtf()
{
CMStringA buf;
buf.Append("{\\rtf1\\ansi\\deff0");
- auto &F = g_fontTable[(m_pItem->dbe.flags & DBEF_SENT) ? FONT_OUTMSG : FONT_INMSG];
+ int fontID, colorID;
+ getFontColor(fontID, colorID);
+ auto &F = g_fontTable[fontID];
buf.AppendFormat("{\\fonttbl{\\f0\\fnil\\fcharset0 %s;}}", F.lf.lfFaceName);
- COLORREF cr = GetSysColor(COLOR_WINDOWTEXT);
+ COLORREF cr = F.cl;
buf.AppendFormat("{\\colortbl \\red%u\\green%u\\blue%u;", GetRValue(cr), GetGValue(cr), GetBValue(cr));
- cr = g_colorTable[(m_pItem->dbe.flags & DBEF_SENT) ? COLOR_OUTNICK : COLOR_INNICK].cl;
+ cr = g_colorTable[(dbe.flags & DBEF_SENT) ? COLOR_OUTNICK : COLOR_INNICK].cl;
buf.AppendFormat("\\red%u\\green%u\\blue%u;}", GetRValue(cr), GetGValue(cr), GetBValue(cr));
- return buf;
-}
-CMStringA NSRtfProvider::CreateRtfBody()
-{
- auto &F = g_fontTable[(m_pItem->dbe.flags & DBEF_SENT) ? FONT_OUTMSG : FONT_INMSG];
- CMStringW wszText = TplFormatString(m_pItem->getTemplate(), m_pItem->hContact, m_pItem);
+ HDC hdc = GetDC(nullptr);
+ int logPixelSY = GetDeviceCaps(hdc, LOGPIXELSY);
+ ReleaseDC(nullptr, hdc);
- CMStringA buf;
- buf.AppendFormat("\\viewkind4\\uc1\\pard \\f0\\b0\\i0\\fs%d ", F.lf.lfHeight);
- AppendUnicodeToBuffer(buf, wszText);
- return buf;
-}
+ buf.AppendFormat("\\uc1\\pard \\cf0\\f0\\b0\\i0\\fs%d ", 2 * abs(F.lf.lfHeight) * 74 / logPixelSY);
+ AppendUnicodeToBuffer(buf, formatString());
-CMStringA NSRtfProvider::CreateRtfFooter()
-{
- return " \\par }";
+ buf.Append("}");
+ Netlib_Logf(0, buf);
+ return buf;
}
///////////////////////////////////////////////////////////////////////////////
-// Template formatting for copying text
+// Template formatting for the control
CMStringW TplFormatString(int tpl, MCONTACT hContact, ItemData *item)
{
@@ -184,6 +151,35 @@ CMStringW TplFormatString(int tpl, MCONTACT hContact, ItemData *item)
}
///////////////////////////////////////////////////////////////////////////////
+// Template formatting for options dialog
+
+CMStringW ItemData::formatStringEx(int tpl, wchar_t *sztpl)
+{
+ CMStringW buf;
+ if (tpl < 0 || tpl >= TPL_COUNT || !sztpl)
+ return buf;
+
+ TemplateVars vars;
+
+ auto &T = templates[tpl];
+ for (auto &it : T.vf)
+ if (it)
+ it(&vars, hContact, this);
+
+ for (wchar_t *p = sztpl; *p; p++) {
+ if (*p == '%') {
+ wchar_t *var = vars.GetVar((p[1] & 0xff));
+ if (var)
+ buf.Append(var);
+ p++;
+ }
+ else buf.AppendChar(*p);
+ }
+
+ return buf;
+}
+
+///////////////////////////////////////////////////////////////////////////////
// TemplateVars members
TemplateVars::TemplateVars()
@@ -246,13 +242,13 @@ void vfEvent(TemplateVars *vars, MCONTACT, ItemData *item)
if (!item->wszNick) {
char *proto = Proto_GetBaseAccountName(item->hContact);
ptrW nick(Contact::GetInfo(CNF_DISPLAY, 0, proto));
- vars->SetNick(nick, false);
+ vars->SetNick(nick);
}
- else vars->SetNick(item->wszNick, false);
+ else vars->SetNick(item->wszNick);
}
else {
wchar_t *nick = (item->wszNick) ? item->wszNick : Clist_GetContactDisplayName(item->hContact, 0);
- vars->SetNick(nick, true);
+ vars->SetNick(nick);
}
// %I: Icon
@@ -392,9 +388,9 @@ void vfOther(TemplateVars *vars, MCONTACT, ItemData *item)
/////////////////////////////////////////////////////////////////////////////////////////
-void TemplateVars::SetNick(wchar_t *v, bool bIncoming)
+void TemplateVars::SetNick(wchar_t *v)
{
- CMStringW wszNick(FORMAT, L"[color=%d]%s[/color]", g_colorTable[(bIncoming) ? COLOR_INNICK : COLOR_OUTNICK].cl, v);
+ CMStringW wszNick(FORMAT, L"[c1]%s[c0]", v);
auto &V = vars['N'];
if (V.del)
diff --git a/plugins/NewStory/src/templates.h b/plugins/NewStory/src/templates.h
index 1ad2deed48..bfb7e123e7 100644
--- a/plugins/NewStory/src/templates.h
+++ b/plugins/NewStory/src/templates.h
@@ -16,7 +16,7 @@ struct TemplateVars
return vars[id].val;
}
- void SetNick(wchar_t *v, bool bIncoming);
+ void SetNick(wchar_t *v);
void SetVar(uint8_t id, wchar_t *v, bool d);
};
@@ -71,21 +71,4 @@ extern TemplateInfo templates[TPL_COUNT];
void LoadTemplates();
void SaveTemplates();
-CMStringW TplFormatString(int tpl, MCONTACT hContact, ItemData *item);
-CMStringW TplFormatStringEx(int tpl, wchar_t *sztpl, ItemData *args);
-
-class NSRtfProvider : public MRtfProvider
-{
- ItemData *m_pItem;
-
-public:
- NSRtfProvider(ItemData *pItem) :
- m_pItem(pItem)
- {}
-
- CMStringA CreateRtfHeader() override;
- CMStringA CreateRtfBody() override;
- CMStringA CreateRtfFooter() override;
-};
-
#endif // __templates_h__ \ No newline at end of file
diff --git a/plugins/NewStory/src/version.h b/plugins/NewStory/src/version.h
index b23dcd2b60..23bd96a08b 100644
--- a/plugins/NewStory/src/version.h
+++ b/plugins/NewStory/src/version.h
@@ -1,7 +1,7 @@
#define __MAJOR_VERSION 0
-#define __MINOR_VERSION 1
+#define __MINOR_VERSION 2
#define __RELEASE_NUM 0
-#define __BUILD_NUM 4
+#define __BUILD_NUM 1
#include <stdver.h>