That's interesting. The C header files (CarbonCore/Finder.h) give me little-endian data on my x86 machine.
Bill On Dec 11, 6:59 pm, "ted bonkenburg" <[email protected]> wrote: > 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 -~----------~----~----~----~------~----~------~--~---
