diff options
Diffstat (limited to 'plugins/Toaster/src/toast_notification.cpp')
-rw-r--r-- | plugins/Toaster/src/toast_notification.cpp | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/plugins/Toaster/src/toast_notification.cpp b/plugins/Toaster/src/toast_notification.cpp index aa1f6ee5df..89a24f32d7 100644 --- a/plugins/Toaster/src/toast_notification.cpp +++ b/plugins/Toaster/src/toast_notification.cpp @@ -2,6 +2,19 @@ using namespace Microsoft::WRL;
+CMString GetStringChunk(const TCHAR *haystack, const TCHAR *start, const TCHAR *end)
+{
+ const TCHAR *sstart = wcsstr(haystack, start);
+ if (sstart == NULL)
+ return CMString();
+
+ sstart = sstart + mir_wstrlen(start);
+ const TCHAR *send = wcsstr(sstart, end);
+ if (send == NULL)
+ return CMString(sstart);
+ return CMString(sstart, send - sstart);
+}
+
ToastNotification::ToastNotification(_In_ wchar_t* text, _In_ wchar_t* caption, _In_ wchar_t* imagePath)
: _text(text), _caption(caption), _imagePath(imagePath)
{
@@ -39,7 +52,7 @@ HRESULT ToastNotification::CreateXml(_Outptr_ ABI::Windows::Data::Xml::Dom::IXml xmlAddAttr(xmlImageNode, L"placement", L"appLogoOverride");
xmlAddAttr(xmlImageNode, L"id", L"1");
- xmlAddAttr(xmlImageNode, L"src", CMStringW(FORMAT, L"file:///%s", _imagePath));
+ xmlAddAttr(xmlImageNode, L"src", CMString(FORMAT, L"file:///%s", _imagePath));
}
HXML xmlTitleNode = xmlAddChild(xmlBindingNode, L"text", _caption != NULL ? _caption : L"Miranda NG");
@@ -48,6 +61,19 @@ HRESULT ToastNotification::CreateXml(_Outptr_ ABI::Windows::Data::Xml::Dom::IXml {
HXML xmlTextNode = xmlAddChild(xmlBindingNode, L"text", _text);
xmlAddAttr(xmlTextNode, L"id", L"2");
+
+/*
+ if (IsWinVer10Plus())
+ {
+ CMString link = GetStringChunk(_text, L"[img]", L"[/img]");
+ if (!link.IsEmpty())
+ {
+ HXML xmlInlineImageNode = xmlAddChild(xmlBindingNode, L"image", NULL);
+ xmlAddAttr(xmlInlineImageNode, L"placement", L"inline");
+ xmlAddAttr(xmlInlineImageNode, L"src", link);
+ }
+ }
+*/
}
TCHAR *xtmp = xmlToString(xmlToast, NULL);
@@ -90,4 +116,5 @@ HRESULT ToastNotification::Show(_In_ ToastEventHandler* handler) HRESULT ToastNotification::Hide()
{
return notifier->Hide(notification.Get());
-}
\ No newline at end of file +}
+
|