AnimatedAppTile.framework ========================= What is it? This is a little framework to enable animated application icons on the Fiend dock under RDR2. I've used it with Scott Hess's TimeMon.app, as well as with a small clock application. Installation Put this framework in one of the standard framework locations, such as /Local/Library/Frameworks. Applications will need to be linked with this framework to get animated application tiles. So how do you use this? There appear to be two ways of creating animated tiles. The first is to use -[NSApplication setApplicationIconImage:] to update the image. The second is to use the private -[NSApplication _appIcon] method to get the window, and add a view the window. This framework includes a new application class, AATApplication, that creates a (hidden) tile window, marks it as the "Token" window for the application (so that Fiend can identify it) and intercepts calls to -[NSApplication setApplicationIconImage:] to make sure the image is updated in this tile window. Alternatively, you can use -[AATApplication setCustomTileView:] to add your custom view to the application tile. Once you've installed the framework, you need to rebuild the target application, making sure that it is using AATApplication as the application class. I've created a small application, StevesClock.app, which uses the framework to present the digital clock/calendar from the previous Clock.app or Preferences.app. I've also used this with Scott Hess's TimeMon-4.0. The only other change I needed to make was in -[Percentages update]. Right after the [stipple lockFocus] I've added an [[NSColor redColor] set]. Something strange is going on, since this shouldn't do anything, but without it the image doesn't get redrawn on the tile... Why is it needed? Under RDR2, application tiles are not created, even if you ask it to in the -[NSWorkspace launchApplication:showIcon:autolaunch:] method. It appears that when the Workspace launches an application, it adds "-MachLaunch N1 N2" to the arguments, where N1 seems to have be a dock index (or something), and N2 is the global window number for the application tile. So it would appear that the Workspace used to create and manage the application tile, but it is currently not doing this, and just passing "-1" for N2. Without a tile window, Fiend can't animate the icon. Known Problems The current version of Fiend (2.0b1) automatically replaces the tiles of any running applications that were on the dock, putting them back along the bottom of the screen. However, the tile window created by this framework is not fully functional -- it doesn't activate the application when clicked, and cannot be moved. Comments and suggestions are welcomed. Steve Nygard