summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/NewStory/src/fonts.cpp1
-rw-r--r--plugins/NewStory/src/fonts.h2
-rw-r--r--plugins/NewStory/src/history_array.cpp16
-rw-r--r--plugins/NewStory/src/history_array.h2
-rw-r--r--plugins/NewStory/src/templates.cpp8
5 files changed, 19 insertions, 10 deletions
diff --git a/plugins/NewStory/src/fonts.cpp b/plugins/NewStory/src/fonts.cpp
index a85652fdb1..7345202e67 100644
--- a/plugins/NewStory/src/fonts.cpp
+++ b/plugins/NewStory/src/fonts.cpp
@@ -40,6 +40,7 @@ MyColourID g_colorTable[COLOR_COUNT] =
{ LPGEN("Highlighted messages"), "ColorHighlight", RGB(0xf0, 0xf0, 0xf0) },
{ LPGEN("Grid background"), "Background", RGB(0xff, 0xff, 0xff) },
+ { LPGEN("Quoting"), "Quote", RGB(0x80, 0x80, 0xff) },
{ LPGEN("Separator"), "Separator", RGB(0x60, 0x60, 0x60) },
{ LPGEN("Progress indicator"), "Progress", RGB(0xff, 0x00, 0x00) },
};
diff --git a/plugins/NewStory/src/fonts.h b/plugins/NewStory/src/fonts.h
index 08183d0d01..78c048a018 100644
--- a/plugins/NewStory/src/fonts.h
+++ b/plugins/NewStory/src/fonts.h
@@ -11,7 +11,7 @@ enum
COLOR_STATUS,
COLOR_INOTHER, COLOR_OUTOTHER,
COLOR_SELTEXT, COLOR_SELBACK, COLOR_SELFRAME,
- COLOR_HIGHLIGHT_BACK, COLOR_BACK, COLOR_FRAME, COLOR_PROGRESS,
+ COLOR_HIGHLIGHT_BACK, COLOR_BACK, COLOR_QUOTE, COLOR_FRAME, COLOR_PROGRESS,
COLOR_COUNT
};
diff --git a/plugins/NewStory/src/history_array.cpp b/plugins/NewStory/src/history_array.cpp
index d8a9a36a25..191790475c 100644
--- a/plugins/NewStory/src/history_array.cpp
+++ b/plugins/NewStory/src/history_array.cpp
@@ -76,6 +76,7 @@ ItemData::ItemData()
ItemData::~ItemData()
{
+ mir_free(qtext);
mir_free(wtext);
if (dbe.szReplyId)
mir_free((char*)dbe.szReplyId);
@@ -428,23 +429,22 @@ void ItemData::load(bool bLoadAlways)
if (MEVENT hReply = db_event_getById(dbe.szModule, dbe.szReplyId)) {
DB::EventInfo dbei(hReply);
if (dbei) {
- CMStringW str(L"> ");
+ CMStringW str;
+
+ wchar_t wszTime[100];
+ TimeZone_PrintTimeStamp(0, dbe.timestamp, L"D t", wszTime, _countof(wszTime), 0);
if (dbei.flags & DBEF_SENT) {
if (char *szProto = Proto_GetBaseAccountName(hContact))
- str.AppendFormat(L"%s %s: ", ptrW(Contact::GetInfo(CNF_DISPLAY, 0, szProto)).get(), TranslateT("wrote"));
+ str.AppendFormat(L"%s %s %s:\n", wszTime, ptrW(Contact::GetInfo(CNF_DISPLAY, 0, szProto)).get(), TranslateT("wrote"));
}
- else str.AppendFormat(L"%s %s: ", Clist_GetContactDisplayName(hContact, 0), TranslateT("wrote"));
+ else str.AppendFormat(L"%s %s %s:\n", wszTime, Clist_GetContactDisplayName(hContact, 0), TranslateT("wrote"));
ptrW wszText(DbEvent_GetTextW(&dbei));
if (mir_wstrlen(wszText) > 43)
wcscpy(wszText.get() + 40, L"...");
str.Append(wszText);
- str.Append(L"\r\n");
- str.Append(wtext);
-
- mir_free(wtext);
- wtext = str.Detach();
+ qtext = str.Detach();
}
}
diff --git a/plugins/NewStory/src/history_array.h b/plugins/NewStory/src/history_array.h
index b94a38888e..9a5e6f52d2 100644
--- a/plugins/NewStory/src/history_array.h
+++ b/plugins/NewStory/src/history_array.h
@@ -22,7 +22,7 @@ struct ItemData
int savedTop, savedHeight, leftOffset;
DB::EventInfo dbe;
- wchar_t *wtext;
+ wchar_t *wtext, *qtext;
wchar_t *wszNick;
struct NewstoryListData *pOwner;
diff --git a/plugins/NewStory/src/templates.cpp b/plugins/NewStory/src/templates.cpp
index 471b7d1dfd..26032b2fa1 100644
--- a/plugins/NewStory/src/templates.cpp
+++ b/plugins/NewStory/src/templates.cpp
@@ -146,9 +146,17 @@ CMStringW ItemData::formatHtml(const wchar_t *pwszStr)
wchar_t szFont[100];
str.AppendFormat(L"body {margin: 0px; text-align: left; %s; color: NSText; overflow: auto;}\n", font2html(F.lf, szFont));
str.AppendFormat(L".nick {color: #%06X }\n", color2html(g_colorTable[(dbe.flags & DBEF_SENT) ? COLOR_OUTNICK : COLOR_INNICK].cl));
+ if (qtext)
+ str.AppendFormat(L".quote {border-left: 4px solid #%06X; padding-left: 8px; }\n", color2html(g_colorTable[COLOR_QUOTE].cl));
str.Append(L"</style></head><body class=\"body\">\n");
+ if (qtext) {
+ str.Append(L"<div class=\"quote\">");
+ AppendString(str, qtext);
+ str.Append(L"</div>\n");
+ }
+
CMStringW wszOrigText((pwszStr) ? pwszStr : formatString());
SMADD_BATCHPARSE sp = {};