[futurebasic] Re: [FB] PLST?

Message: < previous - next > : Reply : Subscribe : Cleanse
Home   : August 2004 : Group Archive : Group : All Groups

From: Robert Purves <robert.purves@...>
Date: Thu, 19 Aug 2004 20:42:08 +1200
George Beckman wrote:

> As long as we're on the subject, I am having the same problem.   I get 
> the Staz Leaf.   RC built me a beautiful set of custom icons and 
> patched my plist.   ResEdit shows the correct icon.   But I am afraid 
> that is the end of success.   I have looked in every resource I can 
> think of and cannot find the STAZ Icon, but alas, it appears on virgin 
> machines after an install.

As we all know, it was moderately difficult to get this stuff right for 
MacOS 8/9. For an OS X-only application it's actually easier, provided 
that you go about it the right way. One obstacle to comprehension is 
that OS X makes use of some of the old resources if they are present, 
possibly overriding the plst. Mistakes in the plst tend to pass 
unnoticed, and no-one knows the precedence rules for the two types of 
information (plst and older resources). You bulldoze this obstacle 
away, along with all leaf icons, in step 2 below.

BTW, it's plst, not PLST.  A PLST resource will do nothing.

Robert P.


Tutorial Exercise on OS X icns/plst
-----------------------------------


1. Make Demo App
----------------
Build this tiny program as a Carbon app:

window 1
do
HandleEvents
until 0


2. Clean up the Junk
--------------------
In ResEdit:
   Open the app.
   Do a Get Info; set creator to a unique signature, such as XkkQ or zZzZ
   Delete these resources:
    BNDL
    FB3a
    FREF
    icl4, icl8
    icm#, icm4, icm8
    ICN#
    icns
    ics#, ics4, ics8
    PICT 30333
    SIZE
   Open the plst 0 resource,
     click the middle (hexadecimal) pane,
     Select All,
     press 0 to replace the contents by a single zero byte.
   Save.

In the Finder:
   Duplicate the app.
   Trash the original, and empty the Trash.

Now your app should have the generic OS X app icon. If not, log out 
then in again. Check that the app runs OK, and shows the generic icon 
in the Dock while running. Quit the app.


3. Install New Icon
-------------------
In ResEdit:
   Open the app.
   Paste the plst below into the right-hand (text) pane of the plst 0 
resource,
     replacing the existing contents.
   Copy an icns 128 resource from somewhere*.  Paste it into your app.
   Save.

In the Finder:
   Duplicate the app.
   Trash the original, and empty the Trash.
Now your app should have your new icon. If not, log out then in again.

*Where to get icns 128 resource:  In ResEdit, open an app in the Great 
FB Apps folder on the FB4 CD (Yet Another Mandelbrot Program, 
Compositor, or The Window Maker). Find its icns 128 and Copy it.


Minimal plst 0
--------------
This property-list text does one thing only: it tells the system to 
look for an icns 128 resource as the app's icon. Note that the text has 
exactly 8 lines; if the 2nd line gets irreversibly split by email, 
paste the whole thing into a text editor and remove the carriage return 
or line feed or whatever.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   	<key>CFBundleIconFile</key>
   	<string>128</string>
</dict>
</plist>