<?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; clipboard</title>
	<atom:link href="http://dafizilla.wordpress.com/category/clipboard/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; clipboard</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>Table2Clipboard and clipboard application interoperability</title>
		<link>http://dafizilla.wordpress.com/2009/08/01/table2clipboard-and-clipboard-application-interoperability/</link>
		<comments>http://dafizilla.wordpress.com/2009/08/01/table2clipboard-and-clipboard-application-interoperability/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 09:35:18 +0000</pubDate>
		<dc:creator>dafi</dc:creator>
				<category><![CDATA[calc]]></category>
		<category><![CDATA[clipboard]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[openoffice]]></category>
		<category><![CDATA[table2clipboard]]></category>
		<category><![CDATA[xul]]></category>

		<guid isPermaLink="false">http://dafizilla.wordpress.com/?p=657</guid>
		<description><![CDATA[Many users asked to me to add to the extension Table2Clipboard (T2C for friends) the ability to preserve web links and maintain the styles during tables copy.
Preserving links and other HTML tags was a very easy task, I&#8217;ve written the code very quickly and both OpenOffice Calc and Microsoft Excel have handled correctly the pasted [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dafizilla.wordpress.com&blog=887576&post=657&subd=dafizilla&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="alignleft size-full wp-image-675" title="calc_excel_t2c" src="http://dafizilla.files.wordpress.com/2009/08/calc_excel_t2c.png?w=128&#038;h=128" alt="calc_excel_t2c" width="128" height="128" />Many users asked to me to add to the extension <a href="https://addons.mozilla.org/en-US/firefox/addon/1852">Table2Clipboard</a> (T2C for friends) the ability to preserve web links and maintain the styles during tables copy.</p>
<p>Preserving links and other HTML tags was a very easy task, I&#8217;ve written the code very quickly and both OpenOffice Calc and Microsoft Excel have handled correctly the pasted content.</p>
<p>When I started to support <em>style preservation</em> I discovered different and ugly results on the two popular office suites making harder to write cross platform XUL code.</p>
<p>Actually T2C pastes to clipboard inserting data in two different formats (<a href="http://dafizilla.wordpress.com/2007/08/18/put-in-clipboard-same-content-in-multiple-formats-using-xul/">flavors</a>), unicode plain text and HTML format.<br />
When users do &#8220;Paste Special&#8221; the HTML format is pasted and applications (Excel or Calc) render inside the data sheet.</p>
<p>Both Excel and Calc handle only the deprecated <a href="http://www.w3schools.com/tags/tag_FONT.asp">FONT</a> tag and a subset of <a href="http://www.w3schools.com/tags/tag_table.asp">TABLE</a> tag attributes and this represents a great limitation for style preservation from T2C.</p>
<p>If you try to paste from Microsoft Explorer to Microsoft Excel you discover everything is copied, the styles are totally preserved but if you paste from Explorer to OpenOffice Calc all style are lost!!!</p>
<p>Well, Explorer inserts to clipboard <strong>also</strong> <a href="http://en.wikipedia.org/wiki/Rich_Text_Format">RTF</a> formatted text and Excel works very fine with the barely public RTF file format.</p>
<p>Clipboard application interoperability goes to hell, HTML is not fully supported by the &#8220;Paste Special&#8221; feature available on both suites, and as usual Microsoft uses semi proprietary data formats to exchange informations between applications.</p>
<p>I think at least OpenOffice should improve its &#8220;Paste&#8221; feature simply adding support for HTML <a href="https://developer.mozilla.org/En/XUL/Attribute/Style">style</a> attribute.</p>
<p>T2C can preserve correctly styles only implementing platform specific code for OpenOffice and Microsoft Office and I really hate write specific platform.</p>
<p>I&#8217;m considering other alternatives but I see only the darkness of C++, OLE and core dump&#8230;</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dafizilla.wordpress.com/657/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dafizilla.wordpress.com/657/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dafizilla.wordpress.com/657/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dafizilla.wordpress.com/657/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dafizilla.wordpress.com/657/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dafizilla.wordpress.com/657/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dafizilla.wordpress.com/657/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dafizilla.wordpress.com/657/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dafizilla.wordpress.com/657/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dafizilla.wordpress.com/657/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dafizilla.wordpress.com&blog=887576&post=657&subd=dafizilla&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dafizilla.wordpress.com/2009/08/01/table2clipboard-and-clipboard-application-interoperability/feed/</wfw:commentRss>
		<slash:comments>5</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>

		<media:content url="http://dafizilla.files.wordpress.com/2009/08/calc_excel_t2c.png" medium="image">
			<media:title type="html">calc_excel_t2c</media:title>
		</media:content>
	</item>
		<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>