Updated Fireworks to XAML Panel Posted

A new version of the Fireworks to XAML panel is now available for download. In addition to a new Fireworks CS4 skin, the panel now lets you trim Path data and round layout and sizing values (Margins, Heights, Widths), resulting in a much cleaner XAML. Watch the video to see an overview of the new features.

Fireworks to Xaml Panel Overview from Grant Hinkson on Vimeo.


Foundation Fireworks CS4 Published

I’m really excited to announce that Foundation Fireworks CS4 is now in the wild! I’ve been working on this book, along with a number of contributors, over the past several months, and it’s rewarding to finally have it published and in my hands. I’m particularly proud of the Extending Fireworks chapter — this is the chapter I wish I had when I first started writing Fireworks panels.

Two full-length chapters (including Extending Fireworks) have been made available on Adobe’s Fireworks Developer Center. You can download these for free and get a feel for some of the more advanced chapters in the book. Overall, I think we struck a nice balance between introductory concepts and real-world use cases. You’re not only introduced to the vector and bitmap tools, you’re walked through creating Flex skins, Adobe AIR prototypes, and E-Commerce web site layouts. If you’ve been wondering why Fireworks is the prototyping tool of choice for many visual and interface designers, this book may provide the answer!

.NET General

Live Photo Gallery Flickr Plugin

Shortly after Christmas, I downloaded the Windows Live Photo Gallery SDK and tinkered for a couple of hours one afternoon. I have yet to find (or create) the ultimate Flickr upload and sync tool, but I’m always searching for and thinking about it. Someday, when the earth’s rotation slows and we finally have 36 hour days, I’ll create this ultimate tool, but until then, you can check out my moderately nice updates to the Sample Flickr Plugin that ships with the SDK. If you have no idea what I’m talking about, you can:

Photo Gallery includes a publishing API that can be used to create custom plugins to publish your photos to any site. The app ships with a Flickr plugin and the SDK includes the source for the plugin. Without any modification, you can select a number of photos from your library then publish either to an existing Flickr Set or a new set. Along the way, you can set the permissions (public, friend, family, friend & family) for all of the photos you’re uploading.

So, this is where my modification comes in. There are times when I want to tag a few photos as public and the rest as private. With the default plugin, this would require two upload operations. With my updates, the plugin looks for specific tags on each photo that set flickr permissions:

switch (keyword.InnerText) { case "flickr: public" : isPublic = true; break; case "flickr: family" : isFamily = true; break; case "flickr: friends" : isFriend = true; break; case "flickr: friends+family" : isFriend = isFamily = true; break; default : tags.Add(keyword.InnerText); break; }

I can now quickly add a tag using Photo Gallery and let the plugin handle the permissions for me automatically. This is by no means a perfect solution, but something that has saved me some time. I had to change the plugin in a few places throughout the project, but you can find the heart of the change in the SessionLoadItemInfo method of XmlHelper.cs. If you just want to take the plugin for a spin, run PluginSample.msi found in the bin\Debug folder of the zip.

Download Source: Windows Live Photo Gallery Flickr Uploader


I’m Back (Thoughts, Mix10k, Quince, More…)

It’s been months since I’ve posted anything here, and if you’re a faithful follower, I apologize. Not that my monthly posts were anything to really keep you going, but at least monthly is more frequent than tri-monthly. So, where have I been? Writing actually. I have just submitted my final chapter for Foundation Fireworks CS4, a book that will be published by Friends of Ed in March. We’re planning on posting a couple of full chapters in PDF form on the Adobe Devnet site, so you’ll hear more about that book later. I’ve also authored a number of Silverlight chapters that will be published "soon". Stay tuned for more info there as well.

In addition to all the writing that you can’t enjoy yet, I submitted a Mix10k contest entry titled Bitster — check it out and vote for me if you get a chance! I had a lot of fun working on it. I used some bitmap parsing concepts posted by Joe Stegman to create the effect. Of course I had lots of other ideas that I wanted to pursue, but the 10K limit stopped quite a few of those in their tracks.

I’ve also been working on the next release of NetAdvantage for Silverlight Data Visualization — I’m really excited about the work we’re doing there. I have fodder for plenty of posts queued up based on our experience with that product, so watch for a number of posts in the coming weeks and months ahead.

Since this is just a rambling post and a re-cap of the past several months, I want to also mention Quince, the new UX Patterns Explorer from Infragistics. Quince was just introduced today and I think it’s going to grow into a must-have resource for User Experience and Application Design professionals. Using Quince, you can browse existing and accepted patterns that solve common user interface problems. You can also post your own screenshots and solutions – something I’m really excited about. I can’t wait to see the community embrace this tool and advance user interface concepts!

So, that should do for now. Watch for more from me in the coming weeks, but don’t hold me to any sort of commitment! I just can’t make frequent-post commitments.

.NET Fireworks Silverlight WPF XAML

Fireworks to XAML Panel Updates (CS4 + Silverlight Fixes)

UPDATE: Click Here for the Latest Version
If you’re using Fireworks CS4 and the Fireworks to XAML Exporter, chances are you’ve seen a problem with the quotation marks in the rendered XAML. I first saw this several months ago, but assumed it was just an issue with a beta version of Blend I was using at the time. As it turns out, changes to the core Fireworks text rendering engine were actually causing the problem – a result of the way I was copying text to the clipboard.

The original version of the panel creates a Fireworks text block, pastes the generated XAML inside the text block, then does a clipCut() to remove the text block from the stage and copy it to the clipboard. The latest version (posted here), sends the XAML back to the Flash panel and, using the System.setClipboard() method, pastes the XAML to the clipboard. The result is a noticeably faster export operation, a very nice surprise.

I’ve also done a little additional housecleaning, adding support for the new pixel-based rounded corners feature of Fireworks CS4. This is actually one of my favorite new features — where previously the CornerRadius of rectangles in Fireworks was percentage-based (meaning the amount of roundness would change as you resized the rectangle) you can now specify a pixel-based CornerRadius. This approach ensures the same CornerRadius regardless of the size of the rectangle. (This is how both WPF and Silverlight do it also). The updated panel will honor both percentage and pixel-based roundness modes.

I also updated the way text is converted to paths. Now, instead of a group of individual path objects (the result you get when you select Text > Convert to Paths in Fireworks, I go two steps further, first ungrouping the indivual paths, then joining them into a single path. The result is a much cleaner single Path object.

One last fix I made over the weekend addresses a problem exposed by Silverlight. The FW to XAML panel automatically adds a .Resources collection to the outermost panel, should any of its children need to define a brush resource. Often, this Resources collection was rendered as an empty node <Grid.Resources />, something that the Silverlight engine does not like (WPF just ignores it). So, this latest update removes the Resources node if it’s empty. You’re welcome!

Summary of Changes

  • New Clipboard Logic – supports Fireworks CS4, improved performance
  • Support for both percentage and pixel-based rectangle roundness modes (pixel-based mode introduced with FW CS4)
  • Text to Paths operation results in fewer XAML objects
  • No longer render empty Resources collection (exposed via Silverlight)
Additional Notes
As always, you’re guinea pigs. Please let me know if you run into any problems with this update. I have run it through my standard gauntlet of tests, but I may have missed a use case.
Download Latest Version