On 14-Feb-09, at 12:31 PM, ed.boyce@duke.edu wrote:
We will be changing the VM's application's name and registration to Cobalt.app with a new Cobalt specific application registration that we obtained from Apple. This is seemly necessary because we generated new .icns files, but the system didn't seem to want to recognize them, clinging to the Squeak filetype associations.
Adding a new file type association is fraught with fun... After fiddling with the logic you need to finder duplicate the application and see if the finder notices the world has changed, pay close attention to the version number of the info.plist it dictates who is most current and has precedence over older versions.
In searching through the MacOS specific source files, we found a couple of places where we need to swap out the Squeak application ID for Cobalt's. But if you had a comprehensive list of code locations where this change is necessary, that would be a great help. Are we correct in our conclusion that there's no way to change the app registration short of doing a rebuild?
I don't believe you need to change the C source to work around this issue.
'FAST' I think is only used for
(a) CreateMouseTrackingRegion which is a region id identifier for mouse tracking so we know when to change the mouse cursor when it leaves the squeak window, it can be anything, so you need not change it.
(b) at image save time we set the file to stim and FAST, but you can in smalltalk use the setMacFileTypeAndCreator to set the image file to whatever, so you don't need to change the snapshot primitive. & writeImageFile primitive (Oops I see we do it twice, oh well a bug). To override this just set the mac file type and creator in the Smalltalk code after doing the snapshot.
Note when we open an existing file for read/write and the file type is BINA or ???? or null we set the type and creator to "TEXT","R*ch" which is the signature for BBEdit. This too can be overridden in Smalltalk.
Icon files, which do you need, or do you have replacements?
We've made Cobalt replacements for all of these. Besides changing the filename references in info.plist and changing the app registration, do you know of other steps that will be necessary?
Look at the UTI info.plist requirements.
-- = = = ======================================================================== John M. McIntosh johnmci@smalltalkconsulting.com Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com = = = ========================================================================