CtrlCore: WriteClipboardHTML (thanks omari)

git-svn-id: svn://ultimatepp.org/upp/trunk@12846 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2019-03-17 09:49:35 +00:00
parent 18171cca3b
commit 3e4d44a2d8
2 changed files with 31 additions and 0 deletions

View file

@ -296,4 +296,33 @@ const char *ClipFmtsRTF()
return sClipFmtsRTF;
}
void WriteClipboardHTML(const String& html)
{
String data;
data =
"Version:0.9\n"
"StartHTML:#000001#\n"
"EndHTML:#000002#\n"
"StartFragment:#000003#\n"
"EndFragment:#000004#\n"
"StartSelection:#000003#\n"
"EndSelection:#000004#\n"
"<HTML>\n"
"<!--StartFragment -->"
"<!--EndFragment -->\n"
"</HTML>\n"
;
data.Replace("#000001#", Sprintf("%08u", data.Find("<HTML>") + 6));
int start = data.Find("<!--StartFragment -->") + 21;
data.Replace("#000003#", Sprintf("%08u", start));
data.Replace("#000004#", Sprintf("%08u", data.Find("<!--EndFragment -->") + html.GetCount()));
data.Replace("#000002#", Sprintf("%08u", data.Find("</HTML>") + html.GetCount()));
data.Insert(start, html);
WriteClipboard("HTML Format", data);
}
}

View file

@ -1667,6 +1667,8 @@ String EncodeRTF(const RichText& richtext, byte charset, int dot_page_width)
String EncodeRTF(const RichText& richtext);
RichText ParseRTF(const char *rtf);
void WriteClipboardHTML(const String& html);
#include <CtrlCore/TopWindow.h>
#include GUIPLATFORM_INCLUDE_AFTER