<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Snippets code from my daily experience &#187; nsIClipboard</title>
	<atom:link href="http://dafizilla.wordpress.com/category/nsiclipboard/feed/" rel="self" type="application/rss+xml" />
	<link>http://dafizilla.wordpress.com</link>
	<description>Just another unnecessary code resource blog</description>
	<lastBuildDate>Sun, 20 Dec 2009 10:00:19 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='dafizilla.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/635b338f35d7304cae2e1b31926d3592?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Snippets code from my daily experience &#187; nsIClipboard</title>
		<link>http://dafizilla.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://dafizilla.wordpress.com/osd.xml" title="Snippets code from my daily experience" />
		<item>
		<title>Posting syntax highlighted code on wordpress.com using Komodo macro</title>
		<link>http://dafizilla.wordpress.com/2009/01/20/posting-syntax-highlighted-code-on-wordpresscom-using-komodo-macro/</link>
		<comments>http://dafizilla.wordpress.com/2009/01/20/posting-syntax-highlighted-code-on-wordpresscom-using-komodo-macro/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 13:30:23 +0000</pubDate>
		<dc:creator>dafi</dc:creator>
				<category><![CDATA[clipboard]]></category>
		<category><![CDATA[koIFileEx]]></category>
		<category><![CDATA[koIFileService]]></category>
		<category><![CDATA[koScintillaSchemeService]]></category>
		<category><![CDATA[komodo]]></category>
		<category><![CDATA[macro]]></category>
		<category><![CDATA[nsIClipboard]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[xul]]></category>

		<guid isPermaLink="false">http://dafizilla.wordpress.com/?p=481</guid>
		<description><![CDATA[Soon or later any blogger talking about software development will post some snippet of code.
To make code more cool and attractive he/she will use syntax highlight.
There are many alternatives for many blog platforms like Pygments, GeSHI, CodeHighlighter, WP-Syntax and so on.
This blog is hosted on the free version of WordPress.com, it doesn&#8217;t allow to use [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dafizilla.wordpress.com&blog=887576&post=481&subd=dafizilla&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Soon or later any blogger talking about software development will post some snippet of code.</p>
<p>To make code more cool and attractive he/she will use syntax highlight.</p>
<p>There are many alternatives for many blog platforms like <a href="http://pygments.org/">Pygments</a>, <a href="http://qbnz.com/highlighter/">GeSHI</a>, <a href="http://wordpress.org/extend/plugins/code-highlighter/">CodeHighlighter</a>, <a href="http://wordpress.org/extend/plugins/wp-syntax/">WP-Syntax</a> and so on.</p>
<p>This blog is hosted on the <strong>free </strong>version of <a href="http://wordpress.com/">WordPress.com</a>, it doesn&#8217;t allow to use any plugin or user-defined CSS so adding <strong><em>sexy</em> </strong>code is very difficult.</p>
<p>Komodo has the ability to <a href="http://docs.activestate.com/komodo/5.0/files.html#files_printhtml">print to HTML files</a> code with the syntax highlighted, this feature is fully accessible from APIs so I&#8217;ve written a macro that</p>
<ul>
<li>make CSS style inline replacing HTML class with corresponding style attributes</li>
<li>copy to clipboard (using the new Komodo 5 clipboard helper library) in HTML format so user can paste directly on Visual WordPress mode</li>
</ul>
<p>Below you find the macro source code obviously highlighted by itself <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<h3>How to get the selected text (or the whole Komodo view) converted to HTML</h3>
<p>The variable str at end contains the converted HTML</p>
<pre><span style="font-size:12px;"><span style="color:#871f78;">var</span><span class="default"> </span><span class="identifiers">view</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span class="identifiers">ko</span><span style="color:#781f87;">.</span><span class="identifiers">views</span><span style="color:#781f87;">.</span><span class="identifiers">manager</span><span style="color:#781f87;">.</span><span class="identifiers">currentView</span><span style="color:#781f87;">;</span>

<span style="color:#871f78;">var</span><span class="default"> </span><span class="identifiers">tmpFileSvc</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span class="identifiers">Components</span><span style="color:#781f87;">.</span><span class="identifiers">classes</span><span style="color:#781f87;">[</span><span style="color:#23238e;">"@activestate.com/koFileService;1"</span><span style="color:#781f87;">]</span>
<span class="default">                 </span><span style="color:#781f87;">.</span><span class="identifiers">getService</span><span style="color:#781f87;">(</span><span class="identifiers">Components</span><span style="color:#781f87;">.</span><span class="identifiers">interfaces</span><span style="color:#781f87;">.</span><span class="identifiers">koIFileService</span><span style="color:#781f87;">)</span>
<span class="identifiers">fname</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span class="identifiers">tmpFileSvc</span><span style="color:#781f87;">.</span><span class="identifiers">makeTempName</span><span style="color:#781f87;">(</span><span style="color:#23238e;">".html"</span><span style="color:#781f87;">);</span>

<span style="color:#871f78;">var</span><span class="default"> </span><span class="identifiers">lang</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span class="identifiers">view</span><span style="color:#781f87;">.</span><span class="identifiers">document</span><span style="color:#781f87;">.</span><span class="identifiers">languageObj</span><span style="color:#781f87;">;</span>
<span style="color:#871f78;">var</span><span class="default"> </span><span class="identifiers">forceColor</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span style="color:#871f78;">true</span><span style="color:#781f87;">;</span>
<span style="color:#871f78;">var</span><span class="default"> </span><span class="identifiers">selectionOnly</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span class="identifiers">view</span><span style="color:#781f87;">.</span><span class="identifiers">selection</span><span class="default"> </span><span style="color:#781f87;">!=</span><span class="default"> </span><span style="color:#23238e;">""</span><span style="color:#781f87;">;</span>
<span style="color:#871f78;">var</span><span class="default"> </span><span class="identifiers">schemeService</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span class="identifiers">Components</span><span style="color:#781f87;">.</span><span class="identifiers">classes</span><span style="color:#781f87;">[</span><span style="color:#23238e;">'@activestate.com/koScintillaSchemeService;1'</span><span style="color:#781f87;">].</span><span class="identifiers">getService</span><span style="color:#781f87;">();</span>
<span class="identifiers">schemeService</span><span style="color:#781f87;">.</span><span class="identifiers">convertToHTMLFile</span><span style="color:#781f87;">(</span><span class="identifiers">view</span><span style="color:#781f87;">.</span><span class="identifiers">scimoz</span><span style="color:#781f87;">,</span>
<span class="default">                                </span><span class="identifiers">view</span><span style="color:#781f87;">.</span><span class="identifiers">document</span><span style="color:#781f87;">.</span><span class="identifiers">displayPath</span><span style="color:#781f87;">,</span>
<span class="default">                                </span><span class="identifiers">view</span><span style="color:#781f87;">.</span><span class="identifiers">document</span><span style="color:#781f87;">.</span><span class="identifiers">language</span><span style="color:#781f87;">,</span>
<span class="default">                                </span><span class="identifiers">lang</span><span style="color:#781f87;">.</span><span class="identifiers">styleBits</span><span style="color:#781f87;">,</span>
<span class="default">                                </span><span class="identifiers">view</span><span style="color:#781f87;">.</span><span class="identifiers">document</span><span style="color:#781f87;">.</span><span class="identifiers">encoding</span><span style="color:#781f87;">.</span><span class="identifiers">python_encoding_name</span><span style="color:#781f87;">,</span>
<span class="default">                                </span><span class="identifiers">fname</span><span style="color:#781f87;">,</span>
<span class="default">                                </span><span class="identifiers">selectionOnly</span><span style="color:#781f87;">,</span>
<span class="default">                                </span><span class="identifiers">forceColor</span><span style="color:#781f87;">);</span>

<span style="color:#871f78;">var</span><span class="default"> </span><span class="identifiers">file</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span class="identifiers">Components</span><span style="color:#781f87;">.</span><span class="identifiers">classes</span><span style="color:#781f87;">[</span><span style="color:#23238e;">"@activestate.com/koFileEx;1"</span><span style="color:#781f87;">]</span>
<span class="default">        </span><span style="color:#781f87;">.</span><span class="identifiers">createInstance</span><span style="color:#781f87;">(</span><span class="identifiers">Components</span><span style="color:#781f87;">.</span><span class="identifiers">interfaces</span><span style="color:#781f87;">.</span><span class="identifiers">koIFileEx</span><span style="color:#781f87;">)</span>
<span class="identifiers">file</span><span style="color:#781f87;">.</span><span class="identifiers">URI</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span class="identifiers">ko</span><span style="color:#781f87;">.</span><span class="identifiers">uriparse</span><span style="color:#781f87;">.</span><span class="identifiers">localPathToURI</span><span style="color:#781f87;">(</span><span class="identifiers">fname</span><span style="color:#781f87;">);</span>
<span class="identifiers">file</span><span style="color:#781f87;">.</span><span class="identifiers">open</span><span style="color:#781f87;">(</span><span style="color:#23238e;">'rb'</span><span style="color:#781f87;">);</span>
<span style="color:#871f78;">var</span><span class="default"> </span><span class="identifiers">str</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span class="identifiers">file</span><span style="color:#781f87;">.</span><span class="identifiers">readfile</span><span style="color:#781f87;">();</span>
<span class="identifiers">file</span><span style="color:#781f87;">.</span><span class="identifiers">close</span><span style="color:#781f87;">();</span></span></pre>
<h3>Applying the replace to str</h3>
<p>Nothing really interesting, simply the replace method is called many times to make CSS style inline inside span tags</p>
<h3>Copy to clipboard in HTML format</h3>
<p>Komodo 5 allows to interact with clipboard wrapping XPCOM services, these APIs allow to copy in the so called HTML <a href="https://developer.mozilla.org/en/Using_the_Clipboard">flavor</a> so content preserves styles and colors.</p>
<pre><span style="font-size:12px;"><span class="identifiers">xtk</span><span style="color:#781f87;">.</span><span class="identifiers">include</span><span style="color:#781f87;">(</span><span style="color:#23238e;">"clipboard"</span><span style="color:#781f87;">);</span>

<span style="color:#871f78;">var</span><span class="default"> </span><span class="identifiers">transferable</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span class="identifiers">xtk</span><span style="color:#781f87;">.</span><span class="identifiers">clipboard</span><span style="color:#781f87;">.</span><span class="identifiers">addTextDataFlavor</span><span style="color:#781f87;">(</span><span style="color:#23238e;">"text/html"</span><span style="color:#781f87;">,</span><span class="default"> </span><span class="identifiers">str</span><span style="color:#781f87;">);</span>
<span class="identifiers">transferable</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span class="identifiers">xtk</span><span style="color:#781f87;">.</span><span class="identifiers">clipboard</span><span style="color:#781f87;">.</span><span class="identifiers">addTextDataFlavor</span><span style="color:#781f87;">(</span><span style="color:#23238e;">"text/unicode"</span><span style="color:#781f87;">,</span><span class="default"> </span><span class="identifiers">str</span><span style="color:#781f87;">,</span><span class="default"> </span><span class="identifiers">transferable</span><span style="color:#781f87;">);</span>
<span class="identifiers">xtk</span><span style="color:#781f87;">.</span><span class="identifiers">clipboard</span><span style="color:#781f87;">.</span><span class="identifiers">copyFromTransferable</span><span style="color:#781f87;">(</span><span class="identifiers">transferable</span><span style="color:#781f87;">);</span>
</span></pre>
<h3>That&#8217;s all folks</h3>
<p>After running this macro on a Komodo view you can paste directly on WordPress Visual editor and obtain your beautiful code.</p>
<p>Using HTML flavor you can paste into any application able to accept Special Formats like Microsoft Word or OpenOffice Writer.</p>
<p>The full macro source code can be found on <a href="http://dafizilla.svn.sourceforge.net/viewvc/dafizilla/trunk/komodo/macros/Word&#112;ress.js?view=markup">Macro SVN repository</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dafizilla.wordpress.com/481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dafizilla.wordpress.com/481/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dafizilla.wordpress.com/481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dafizilla.wordpress.com/481/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dafizilla.wordpress.com/481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dafizilla.wordpress.com/481/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dafizilla.wordpress.com/481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dafizilla.wordpress.com/481/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dafizilla.wordpress.com/481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dafizilla.wordpress.com/481/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dafizilla.wordpress.com&blog=887576&post=481&subd=dafizilla&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dafizilla.wordpress.com/2009/01/20/posting-syntax-highlighted-code-on-wordpresscom-using-komodo-macro/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5759d7f64a710425e4ab730ba7a8311e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dafi</media:title>
		</media:content>
	</item>
		<item>
		<title>Put in clipboard same content in multiple formats using XUL.</title>
		<link>http://dafizilla.wordpress.com/2007/08/18/put-in-clipboard-same-content-in-multiple-formats-using-xul/</link>
		<comments>http://dafizilla.wordpress.com/2007/08/18/put-in-clipboard-same-content-in-multiple-formats-using-xul/#comments</comments>
		<pubDate>Sat, 18 Aug 2007 11:09:08 +0000</pubDate>
		<dc:creator>dafi</dc:creator>
				<category><![CDATA[clipboard]]></category>
		<category><![CDATA[nsIClipboard]]></category>
		<category><![CDATA[nsISupportsString]]></category>
		<category><![CDATA[nsITransferable]]></category>
		<category><![CDATA[xpcom]]></category>
		<category><![CDATA[xul]]></category>

		<guid isPermaLink="false">http://dafizilla.wordpress.com/2007/08/18/put-in-clipboard-same-content-in-multiple-formats-using-xul/</guid>
		<description><![CDATA[Copy plain text in clipboard can be obtained using code shown below.


Components.classes["@mozilla.org/widget/clipboardhelper;1"]

    .getService(Components.interfaces.nsIClipboardHelper)

    .copyString("&#60;font color=’#FF0000′&#62;Hello world&#60;/font&#62;");


Using this approach you can easily copy HTML text but&#8230; it remains plain text!
So if you copy the string &#60;font color=&#8217;#FF0000&#8242;&#62;Hello world&#60;/font&#62; inside OpenOffice Calc (or Microsoft Word) you don&#8217;t see the text &#8220;Hello world&#8221; in red but the plain HTML tag.
Copy data (not [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dafizilla.wordpress.com&blog=887576&post=25&subd=dafizilla&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Copy plain text in clipboard can be obtained using code shown below.</p>
<pre><span style="font-size:12px;">

<span class="identifiers">Components</span><span style="color:#781f87;">.</span><span class="identifiers">classes</span><span style="color:#781f87;">[</span><span style="color:#23238e;">"@mozilla.org/widget/clipboardhelper;1"</span><span style="color:#781f87;">]</span>

<span class="default">    </span><span style="color:#781f87;">.</span><span class="identifiers">getService</span><span style="color:#781f87;">(</span><span class="identifiers">Components</span><span style="color:#781f87;">.</span><span class="identifiers">interfaces</span><span style="color:#781f87;">.</span><span class="identifiers">nsIClipboardHelper</span><span style="color:#781f87;">)</span>

<span class="default">    </span><span style="color:#781f87;">.</span><span class="identifiers">copyString</span><span style="color:#781f87;">(</span><span style="color:#23238e;">"&lt;font color=’#FF0000′&gt;Hello world&lt;/font&gt;"</span><span style="color:#781f87;">);</span>

</span></pre>
<p>Using this approach you can easily copy HTML text but&#8230; it remains plain text!<br />
So if you copy the string <span style="color:#000000;"><strong>&lt;font color=&#8217;#FF0000&#8242;&gt;Hello world&lt;/font&gt;</strong></span> inside OpenOffice Calc (or Microsoft Word) you don&#8217;t see the text &#8220;<span style="color:#ff0000;">Hello world</span>&#8221; in red but the plain HTML tag.</p>
<p>Copy data (not necessary text) using a specific format requires <a href="http://www.xulplanet.com/references/xpcomref/ifaces/nsITransferable.html">nsITransferable</a>&#8217;s use.<br />
You specify the mime type and if destination application (where you paste the data) is able to understand the format the correct result appears.</p>
<p>The code below insert real HTML data into clipboard and when you paste for example in OpenOffice you see the colored text.</p>
<pre><span style="font-size:12px;">

<span style="color:#871f78;">var</span><span class="default"> </span><span class="identifiers">textHtml</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span style="color:#23238e;">"&lt;font color='#FF0000'&gt;Hello world&lt;/font&gt;"</span><span style="color:#781f87;">;</span>

<span style="color:#871f78;">var</span><span class="default"> </span><span class="identifiers">xferable</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span class="identifiers">Components</span><span style="color:#781f87;">.</span><span class="identifiers">classes</span><span style="color:#781f87;">[</span><span style="color:#23238e;">"@mozilla.org/widget/transferable;1"</span><span style="color:#781f87;">]</span>

<span class="default">    </span><span style="color:#781f87;">.</span><span class="identifiers">createInstance</span><span style="color:#781f87;">(</span><span class="identifiers">Components</span><span style="color:#781f87;">.</span><span class="identifiers">interfaces</span><span style="color:#781f87;">.</span><span class="identifiers">nsITransferable</span><span style="color:#781f87;">);</span>

<span class="identifiers">xferable</span><span style="color:#781f87;">.</span><span class="identifiers">addDataFlavor</span><span style="color:#781f87;">(</span><span style="color:#23238e;">"text/html"</span><span style="color:#781f87;">);</span>

<span style="color:#871f78;">var</span><span class="default"> </span><span class="identifiers">htmlstring</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span class="identifiers">Components</span><span style="color:#781f87;">.</span><span class="identifiers">classes</span><span style="color:#781f87;">[</span><span style="color:#23238e;">"@mozilla.org/supports-string;1"</span><span style="color:#781f87;">]</span>

<span class="default">    </span><span style="color:#781f87;">.</span><span class="identifiers">createInstance</span><span style="color:#781f87;">(</span><span class="identifiers">Components</span><span style="color:#781f87;">.</span><span class="identifiers">interfaces</span><span style="color:#781f87;">.</span><span class="identifiers">nsISupportsString</span><span style="color:#781f87;">);</span>

<span class="identifiers">htmlstring</span><span style="color:#781f87;">.</span><span class="identifiers">data</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span class="identifiers">textHtml</span><span style="color:#781f87;">;</span>

<span class="identifiers">xferable</span><span style="color:#781f87;">.</span><span class="identifiers">setTransferData</span><span style="color:#781f87;">(</span><span style="color:#23238e;">"text/html"</span><span style="color:#781f87;">,</span><span class="default"> </span><span class="identifiers">htmlstring</span><span style="color:#781f87;">,</span><span class="default"> </span><span class="identifiers">textHtml</span><span style="color:#781f87;">.</span><span class="identifiers">length</span><span class="default"> </span><span style="color:#781f87;">*</span><span class="default"> </span><span style="color:#8b0000;">2</span><span style="color:#781f87;">);</span>

<span style="color:#871f78;">var</span><span class="default"> </span><span class="identifiers">clipboard</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span class="identifiers">Components</span><span style="color:#781f87;">.</span><span class="identifiers">classes</span><span style="color:#781f87;">[</span><span style="color:#23238e;">"@mozilla.org/widget/clipboard;1"</span><span style="color:#781f87;">]</span>

<span class="default">    </span><span style="color:#781f87;">.</span><span class="identifiers">getService</span><span style="color:#781f87;">(</span><span class="identifiers">Components</span><span style="color:#781f87;">.</span><span class="identifiers">interfaces</span><span style="color:#781f87;">.</span><span class="identifiers">nsIClipboard</span><span style="color:#781f87;">);</span>

<span class="identifiers">clipboard</span><span style="color:#781f87;">.</span><span class="identifiers">setData</span><span style="color:#781f87;">(</span><span class="identifiers">xferable</span><span style="color:#781f87;">,</span><span class="default"> </span><span style="color:#871f78;">null</span><span style="color:#781f87;">,</span>

<span class="default">        </span><span class="identifiers">Components</span><span style="color:#781f87;">.</span><span class="identifiers">interfaces</span><span style="color:#781f87;">.</span><span class="identifiers">nsIClipboard</span><span style="color:#781f87;">.</span><span class="identifiers">kGlobalClipboard</span><span style="color:#781f87;">);</span>

</span></pre>
<p>Consider you want be able to choose if text must be pasted like HTML or plain text, for example because some application can&#8217;t handle stylished code.<br />
Consider a plain text editor, it handles text not colorful HTML so you need the ability to paste based on destination application.<br />
It&#8217;s easy! You only need to add a new flavor to the code shown above</p>
<pre><span style="font-size:12px;">

<span style="color:#871f78;">var</span><span class="default"> </span><span class="identifiers">plainText</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span style="color:#23238e;">"Hello world in plain"</span><span style="color:#781f87;">;</span>

<span class="identifiers">xferable</span><span style="color:#781f87;">.</span><span class="identifiers">addDataFlavor</span><span style="color:#781f87;">(</span><span style="color:#23238e;">"text/unicode"</span><span style="color:#781f87;">);</span>

<span style="color:#871f78;">var</span><span class="default"> </span><span class="identifiers">unicodestring</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span class="identifiers">Components</span><span style="color:#781f87;">.</span><span class="identifiers">classes</span><span style="color:#781f87;">[</span><span style="color:#23238e;">"@mozilla.org/supports-string;1"</span><span style="color:#781f87;">]</span>

<span class="default">    </span><span style="color:#781f87;">.</span><span class="identifiers">createInstance</span><span style="color:#781f87;">(</span><span class="identifiers">Components</span><span style="color:#781f87;">.</span><span class="identifiers">interfaces</span><span style="color:#781f87;">.</span><span class="identifiers">nsISupportsString</span><span style="color:#781f87;">);</span>

<span class="identifiers">unicodestring</span><span style="color:#781f87;">.</span><span class="identifiers">data</span><span class="default"> </span><span style="color:#781f87;">=</span><span class="default"> </span><span class="identifiers">plainText</span><span style="color:#781f87;">;</span>

<span class="identifiers">xferable</span><span style="color:#781f87;">.</span><span class="identifiers">setTransferData</span><span style="color:#781f87;">(</span><span style="color:#23238e;">"text/unicode"</span><span style="color:#781f87;">,</span><span class="default"> </span><span class="identifiers">unicodestring</span><span style="color:#781f87;">,</span><span class="default"> </span><span class="identifiers">plainText</span><span style="color:#781f87;">.</span><span class="identifiers">length</span><span class="default"> </span><span style="color:#781f87;">*</span><span class="default"> </span><span style="color:#8b0000;">2</span><span style="color:#781f87;">);</span></span></pre>
<p>Now text editors receive the string &#8220;Hello world in plain&#8221; without any formatting and rich editors receive a colored &#8220;Hello world&#8221;.<br />
Rich editors like OpenOffice Calc or Writer allow user to choose how to paste using the &#8220;Paste special&#8221; function.<br />
You can choose to paste the same data in different format or different data per different format.</p>
<p><a href="http://dafizilla.sourceforge.net/table2clip/index.php">Table2Clipboard</a> uses two flavors, you can take a look at its source code <a href="http://dafizilla.svn.sourceforge.net/viewvc/dafizilla/trunk/table2clipboard/src/main/content/t2c/t2cOverlay.js?revision=13&amp;view=markup#l_87">here</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dafizilla.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dafizilla.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dafizilla.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dafizilla.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dafizilla.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dafizilla.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dafizilla.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dafizilla.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dafizilla.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dafizilla.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dafizilla.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dafizilla.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dafizilla.wordpress.com&blog=887576&post=25&subd=dafizilla&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dafizilla.wordpress.com/2007/08/18/put-in-clipboard-same-content-in-multiple-formats-using-xul/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5759d7f64a710425e4ab730ba7a8311e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dafi</media:title>
		</media:content>
	</item>
	</channel>
</rss>