diff options
author | George Hazan <george.hazan@gmail.com> | 2024-03-20 20:38:35 +0300 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2024-03-20 20:38:35 +0300 |
commit | 33aa78b58cd86f9b8e38032ff157ff614c23d73c (patch) | |
tree | 026466d6a6f1fa45f010498e9aeba58e3897f670 /plugins/NewStory/src | |
parent | 2e98fcfccb79d443911f56c2b5210b5361c65d5c (diff) |
various drawing quirks
Diffstat (limited to 'plugins/NewStory/src')
-rw-r--r-- | plugins/NewStory/src/history_array.cpp | 8 | ||||
-rw-r--r-- | plugins/NewStory/src/history_array.h | 2 | ||||
-rw-r--r-- | plugins/NewStory/src/history_control.cpp | 3 | ||||
-rw-r--r-- | plugins/NewStory/src/templates.cpp | 9 |
4 files changed, 12 insertions, 10 deletions
diff --git a/plugins/NewStory/src/history_array.cpp b/plugins/NewStory/src/history_array.cpp index a22708743e..e9cc5989fa 100644 --- a/plugins/NewStory/src/history_array.cpp +++ b/plugins/NewStory/src/history_array.cpp @@ -214,14 +214,16 @@ int ItemData::calcHeight(int top, int width, POINT *pPos) if (m_bOfflineDownloaded != 0) // Download completed icon
sz.cx -= 18;
+ leftOffset = pos.x;
if (savedHeight == -1) {
m_doc->render(sz.cx);
- savedHeight = m_doc->height();
+ savedHeight = m_doc->height() + 5;
+ Netlib_Logf(0, "Event %d rendered to %d with width %d", dbe.getEvent(), savedHeight, sz.cx);
}
if (pPos)
*pPos = pos;
- return savedHeight + 5;
+ return savedHeight;
}
void ItemData::checkCreate()
@@ -457,8 +459,6 @@ void ItemData::load(bool bLoadAlways) void ItemData::setText()
{
m_doc = litehtml::document::createFromString(formatHtml(), &pOwner->webPage);
- m_doc->render(pOwner->cachedWindowWidth);
- savedHeight = m_doc->height();
}
// Array
diff --git a/plugins/NewStory/src/history_array.h b/plugins/NewStory/src/history_array.h index f5a39ba5bd..e805d8f45d 100644 --- a/plugins/NewStory/src/history_array.h +++ b/plugins/NewStory/src/history_array.h @@ -19,7 +19,7 @@ struct ItemData bool m_bOfflineFile;
uint8_t m_grouping, m_bOfflineDownloaded;
- int savedTop, savedHeight;
+ int savedTop, savedHeight, leftOffset;
DB::EventInfo dbe;
wchar_t *wtext;
diff --git a/plugins/NewStory/src/history_control.cpp b/plugins/NewStory/src/history_control.cpp index b49ddf9adc..558fd4ca03 100644 --- a/plugins/NewStory/src/history_control.cpp +++ b/plugins/NewStory/src/history_control.cpp @@ -671,6 +671,7 @@ void NewstoryListData::Paint(simpledib::dib &dib, RECT *rcDraw) continue;
auto *pItem = LoadItem(idx);
+ pItem->savedTop = top;
POINT pos;
int height = pItem->calcHeight(top, cachedWindowWidth, &pos);
@@ -1446,7 +1447,7 @@ LRESULT CALLBACK NewstoryListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM auto *pItem = data->LoadItem(idx);
litehtml::position::vector redraw_boxes;
- pItem->m_doc->on_mouse_over(pt.x, pt.y, pt.x, pt.y, redraw_boxes);
+ pItem->m_doc->on_mouse_over(pt.x - pItem->leftOffset, pt.y - pItem->savedTop, pt.x, pt.y, redraw_boxes);
}
break;
diff --git a/plugins/NewStory/src/templates.cpp b/plugins/NewStory/src/templates.cpp index e24574c880..030866aaa2 100644 --- a/plugins/NewStory/src/templates.cpp +++ b/plugins/NewStory/src/templates.cpp @@ -139,12 +139,13 @@ CMStringA ItemData::formatHtml(const wchar_t *pwszStr) str.AppendFormat(".nick {color: #%06X }\n", color2html(g_colorTable[(dbe.flags & DBEF_SENT) ? COLOR_OUTNICK : COLOR_INNICK].cl));
str.Append("</style></head><body class=\"body\">\n");
- AppendString(str, T2Utf((pwszStr) ? pwszStr : formatString()));
- str.Append("</body></html>");
+ CMStringA szBody;
+ AppendString(szBody, T2Utf((pwszStr) ? pwszStr : formatString()).get());
+ UrlAutodetect(szBody);
+ str += szBody;
- // url autodetect
- UrlAutodetect(str);
+ str.Append("</body></html>");
// Netlib_Logf(0, str);
return str;
|