On Thu, Dec 11, 2008 at 6:39 PM, Bill <[email protected]> wrote: > > Thanks, Ted. Very helpful. > > Am I correct in believing that the value returned from getxattr > ("com.apple.FinderInfo") is always 32 bytes long in big-endian order? > That seems to be what the ObjC code you pointed to implies.
That sounds right. ted > > Bill > > On Dec 9, 9:27 pm, "ted bonkenburg" <[email protected]> wrote: >> On Tue, Dec 9, 2008 at 7:52 PM, Bill <[email protected]> wrote: >> >> > I'm trying the very nifty new ctypes-based Python binding to FUSE by >> > Giorgos Verigakis (http://code.google.com/p/fusepy/) with MacFUSE, and >> > am at the point of wanting custom folder icons. It's a bit tricky >> > getting custom icons for files; you have to generate a valid OS X HFS+ >> > resource fork containing the icon in Apple's '.icns' format, a format >> > not supported in many image processing suites, and pass it back in >> > response to getxattr(*, 'com.apple.ResourceFork'). But I've got that >> >> I believe you also need to return com.apple.FinderInfo data with the >> kHasCustomIcon bit set. Did you manage to get custom icons working >> without doing this? >> >> The Objective-C framework has some code (BSD-style license) that >> generates FinderInfo and ResourceFork data. You might find that >> useful. See GMFinderInfo.{h,m} and GMResourceFork.{h,m} here: >> >> http://macfuse.googlecode.com/svn/trunk/core/sdk-objc/ >> >> > working. Will that also work for folders? >> >> Sort of. I got this working in the Objective-C API for MacFUSE on >> Tiger and Leopard, so I should be able to help you. I can't quite >> remember all of the details but I took a look through the Objective-C >> API code to see what it is doing (see below). >> >> First of all, I'll assume you don't need to support Tiger. If you do, >> then there are other hoops that you need to jump through. I can go >> over that if need be but will skip for now. >> >> >> >> > I've been told that the way to do it with folders is different; you >> > create a file called 'Icon\r' (yes, containing a carriage return), and >> > put it in the folder, to give a folder a custom icon. I find that >> > hard to believe... >> >> That is part of what you need to do. The "Icon\r" file should reside >> in the directory that you want to have a custom icon. It should be an >> empty file. The Objective-C framework gives it a com.apple.FinderInfo >> that has the kHasCustomIcon and kIsInvisible flags set. The >> com.apple.ResourceFork data of the "Icon\r" file is the same resource >> fork data that you would need to return for a custom icon on a >> standard file. I believe the "Icon\r" file was used because a >> directory could not have a resource fork. On Leopard you do not need >> the "Icon\r" file in the directory listing. However, it should be able >> to be stat'd directly. Finally, the Objective-C framework returns a >> com.apple.FinderInfo on the directory itself with the kHasCustomIcon >> bit set. >> >> Let me know if this works for you. >> >> ted >> >> >> >> > Thanks for any tips. >> >> > Bill > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "MacFUSE" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/macfuse?hl=en -~----------~----~----~----~------~----~------~--~---
