<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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: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>Comments on: Button click masks</title>
	<atom:link href="http://explodingpixels.wordpress.com/2008/10/11/button-click-masks/feed/" rel="self" type="application/rss+xml" />
	<link>http://explodingpixels.wordpress.com/2008/10/11/button-click-masks/</link>
	<description>Exposing the pixels behind beautiful user interfaces</description>
	<lastBuildDate>Sun, 15 Nov 2009 20:14:25 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Don</title>
		<link>http://explodingpixels.wordpress.com/2008/10/11/button-click-masks/#comment-287</link>
		<dc:creator>Don</dc:creator>
		<pubDate>Thu, 30 Oct 2008 00:03:47 +0000</pubDate>
		<guid isPermaLink="false">http://explodingpixels.wordpress.com/?p=321#comment-287</guid>
		<description>Ken,

Thanks, the engine reads the sdf files and creates the visuals defined in the files. In the specific case of the scrollbars, there is a custom UI class for the scrollbars. Line #6 of application.sdf tells the engine to use that ui for all scrollbars. The source for that UI is part of the source bundle on the site.

Don</description>
		<content:encoded><![CDATA[<p>Ken,</p>
<p>Thanks, the engine reads the sdf files and creates the visuals defined in the files. In the specific case of the scrollbars, there is a custom UI class for the scrollbars. Line #6 of application.sdf tells the engine to use that ui for all scrollbars. The source for that UI is part of the source bundle on the site.</p>
<p>Don</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ken</title>
		<link>http://explodingpixels.wordpress.com/2008/10/11/button-click-masks/#comment-286</link>
		<dc:creator>Ken</dc:creator>
		<pubDate>Wed, 29 Oct 2008 19:17:03 +0000</pubDate>
		<guid isPermaLink="false">http://explodingpixels.wordpress.com/?p=321#comment-286</guid>
		<description>Hey Don,

Interestingly enough, I was just reading &lt;a href=&quot;http://www.pushing-pixels.org/?p=644&quot; rel=&quot;nofollow&quot;&gt;Kirill&#039;s interview with you&lt;/a&gt; this morning and gave your iTunes clone demo a try. 

How does the Java2D painting code tie in with your sdf files? I don&#039;t see any Java source &lt;a href=&quot;http://www.sparseware.com/sage/demos/src/index_covergirls.html&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.

Neat work by the way!

-Ken</description>
		<content:encoded><![CDATA[<p>Hey Don,</p>
<p>Interestingly enough, I was just reading <a href="http://www.pushing-pixels.org/?p=644" rel="nofollow">Kirill&#8217;s interview with you</a> this morning and gave your iTunes clone demo a try. </p>
<p>How does the Java2D painting code tie in with your sdf files? I don&#8217;t see any Java source <a href="http://www.sparseware.com/sage/demos/src/index_covergirls.html" rel="nofollow">here</a>.</p>
<p>Neat work by the way!</p>
<p>-Ken</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Don</title>
		<link>http://explodingpixels.wordpress.com/2008/10/11/button-click-masks/#comment-285</link>
		<dc:creator>Don</dc:creator>
		<pubDate>Wed, 29 Oct 2008 18:28:23 +0000</pubDate>
		<guid isPermaLink="false">http://explodingpixels.wordpress.com/?p=321#comment-285</guid>
		<description>Hey Ken,

I came across this article and I thought it interesting.
I actually have implemented the specific look to mimic the iTunes scroll bars on windows just using Java2D. It is part of an iTunes clone demo. You can see it this week on Pushing Pixels.

Don</description>
		<content:encoded><![CDATA[<p>Hey Ken,</p>
<p>I came across this article and I thought it interesting.<br />
I actually have implemented the specific look to mimic the iTunes scroll bars on windows just using Java2D. It is part of an iTunes clone demo. You can see it this week on Pushing Pixels.</p>
<p>Don</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ken</title>
		<link>http://explodingpixels.wordpress.com/2008/10/11/button-click-masks/#comment-257</link>
		<dc:creator>Ken</dc:creator>
		<pubDate>Wed, 15 Oct 2008 21:43:25 +0000</pubDate>
		<guid isPermaLink="false">http://explodingpixels.wordpress.com/?p=321#comment-257</guid>
		<description>Note that there was a bug in the original code I posted, which I&#039;ve fixed in the blog entry above. CustomButtonUI.paintIcon was saving a refernece to the iconRect variable rather than creating a new rectangle from the values iconRect contained. 

This was problematic as the iconRect variable was statically defined in ButtonUI and reused to layout each button. Thus fIconRect would always have the icon bounds for the last painted button.</description>
		<content:encoded><![CDATA[<p>Note that there was a bug in the original code I posted, which I&#8217;ve fixed in the blog entry above. CustomButtonUI.paintIcon was saving a refernece to the iconRect variable rather than creating a new rectangle from the values iconRect contained. </p>
<p>This was problematic as the iconRect variable was statically defined in ButtonUI and reused to layout each button. Thus fIconRect would always have the icon bounds for the last painted button.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pavan kumar</title>
		<link>http://explodingpixels.wordpress.com/2008/10/11/button-click-masks/#comment-250</link>
		<dc:creator>Pavan kumar</dc:creator>
		<pubDate>Mon, 13 Oct 2008 17:35:21 +0000</pubDate>
		<guid isPermaLink="false">http://explodingpixels.wordpress.com/?p=321#comment-250</guid>
		<description>Hi Ken,

   The vector images are produced using Adobe  Illustrator.

-Pavan</description>
		<content:encoded><![CDATA[<p>Hi Ken,</p>
<p>   The vector images are produced using Adobe  Illustrator.</p>
<p>-Pavan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Swing links of the week: October 12 : Pushing Pixels</title>
		<link>http://explodingpixels.wordpress.com/2008/10/11/button-click-masks/#comment-249</link>
		<dc:creator>Swing links of the week: October 12 : Pushing Pixels</dc:creator>
		<pubDate>Mon, 13 Oct 2008 16:07:12 +0000</pubDate>
		<guid isPermaLink="false">http://explodingpixels.wordpress.com/?p=321#comment-249</guid>
		<description>[...] Orr writes about image-based method to create non-rectangular active (clickable) areas for Swing buttons. While this [...]</description>
		<content:encoded><![CDATA[<p>[...] Orr writes about image-based method to create non-rectangular active (clickable) areas for Swing buttons. While this [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ken</title>
		<link>http://explodingpixels.wordpress.com/2008/10/11/button-click-masks/#comment-248</link>
		<dc:creator>Ken</dc:creator>
		<pubDate>Mon, 13 Oct 2008 10:39:01 +0000</pubDate>
		<guid isPermaLink="false">http://explodingpixels.wordpress.com/?p=321#comment-248</guid>
		<description>Hi Pavan,

If your drawing the vector based art into a BufferedImage before sending it to the screen, then no changes would be needed.

How are you producing your vector art?

-Ken</description>
		<content:encoded><![CDATA[<p>Hi Pavan,</p>
<p>If your drawing the vector based art into a BufferedImage before sending it to the screen, then no changes would be needed.</p>
<p>How are you producing your vector art?</p>
<p>-Ken</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pavan kumar</title>
		<link>http://explodingpixels.wordpress.com/2008/10/11/button-click-masks/#comment-247</link>
		<dc:creator>Pavan kumar</dc:creator>
		<pubDate>Mon, 13 Oct 2008 07:30:49 +0000</pubDate>
		<guid isPermaLink="false">http://explodingpixels.wordpress.com/?p=321#comment-247</guid>
		<description>What changes would be needed if the images were vector based instead.</description>
		<content:encoded><![CDATA[<p>What changes would be needed if the images were vector based instead.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ken</title>
		<link>http://explodingpixels.wordpress.com/2008/10/11/button-click-masks/#comment-239</link>
		<dc:creator>Ken</dc:creator>
		<pubDate>Sat, 11 Oct 2008 13:27:18 +0000</pubDate>
		<guid isPermaLink="false">http://explodingpixels.wordpress.com/?p=321#comment-239</guid>
		<description>Thanks for the tip Eric. I&#039;ve updated the code accordingly.</description>
		<content:encoded><![CDATA[<p>Thanks for the tip Eric. I&#8217;ve updated the code accordingly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Burke</title>
		<link>http://explodingpixels.wordpress.com/2008/10/11/button-click-masks/#comment-238</link>
		<dc:creator>Eric Burke</dc:creator>
		<pubDate>Sat, 11 Oct 2008 13:17:05 +0000</pubDate>
		<guid isPermaLink="false">http://explodingpixels.wordpress.com/?p=321#comment-238</guid>
		<description>You don&#039;t want to call setUI from the constructor. Instead, you should override the updateUI method and set your custom UI delegate from that method. We made this mistake on many of our custom components and found some subtle bugs later on because of it. For example, if anyone ever calls SwingUtilities.updateComponentTreeUI, updateUI will be called again. If you only set your UI in the constructor, the UI will revert back to the one defined by Swing. Furthermore, we&#039;ve seen cases where Windows users, for example, can start a remote desktop connection to their PC, and updateUI may be called. It&#039;s also called when you do things like change the Windows theme from XP to Classic while your app is running. These factors are outside the control of your application code, so even if you never use the SwingUtilities method, the updateUI method may be called.

Search for the &quot;How to Write a Custom Swing Component&quot; article by Kirill Grouchnikov, this shows the correct way to plug in custom UI delegates.</description>
		<content:encoded><![CDATA[<p>You don&#8217;t want to call setUI from the constructor. Instead, you should override the updateUI method and set your custom UI delegate from that method. We made this mistake on many of our custom components and found some subtle bugs later on because of it. For example, if anyone ever calls SwingUtilities.updateComponentTreeUI, updateUI will be called again. If you only set your UI in the constructor, the UI will revert back to the one defined by Swing. Furthermore, we&#8217;ve seen cases where Windows users, for example, can start a remote desktop connection to their PC, and updateUI may be called. It&#8217;s also called when you do things like change the Windows theme from XP to Classic while your app is running. These factors are outside the control of your application code, so even if you never use the SwingUtilities method, the updateUI method may be called.</p>
<p>Search for the &#8220;How to Write a Custom Swing Component&#8221; article by Kirill Grouchnikov, this shows the correct way to plug in custom UI delegates.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
