T h e m e   R e s o u r c e s


These are the types of resources found in themes
clr#   frme   layo   plut   ppat   pxm#   scen   tdat   tic#   tinf




c l r #
The "clr#" (short for Color List) resource is a place to change text colors in a theme.


f r m e
The "frme" (short for Frame) resource is a super-cool grouping of "
plut" images that makes them act more predictably in different conditions.

Frame resources are based on one main "plut" image. That image can then be put into a "frame", similar to how a real picture can be put into a picture frame. A frame is a 1-pixel wide border around the main image. In that frame, you can put more "plut" images into all of the new pixels around the border.

The thing that makes frames so functional is that the parts that will change size in the theme are in the middles of the top, left, bottom, and right sides. So if you put images in those 4 areas that look good when stretched out, the frame will look great. This also allows you to make the corners look however you want, and they will never be stretched. Just the middle stretches.

Just one frame of pixels isn't suited for many things, so that's why you can add more frames. So, there has to be a way to tell the Mac where to put the extra frames. Frame 0 is the main frame. Frame 1 is just inside by 1 pixel, frame 2 is inside by 2 pixels, and so on. BUT, frame -1 is OUTSIDE the main frame by one pixel and frame -2 is outside by 2 pixels and so on. Use as many frames as necessary to make the super-cool stretchable image you want.


l a y o
The "layo" (short for Layout) resource is the backbone of the theme. It tells everything where to go.

The 2 main parts to the "layo" resource are the Coordinate Entries and the Item Entries.

The Coordinate Entry. The Coordinate Entry defines custom boundaries for the Item Entries later in the resource. All of these entries must first have a Reference. This can either be a default setting or the number of a different Coordinate Entry. From there, you must fill in an offset for the reference. For example, If I wanted make a top boundary to use for an Item Entry (below) that was 3 pixels below the default top boundary, I would enter Default Top as the reference, and 3 for the offset. If I was going ABOVE default top by 3 pixels, though, it would be an offset of -3. Offsets get bigger the closer you get to the bottom right corner, just like the longer you read this webpage, the closer you get to the bottom, right corner.

There is also a second part of each Coordinate Entry that is actually a second, backup boundary. The reason you would want to have a backup boundary would be to limit the first boundary to the second boundary. For example, if there was ever a window that was so small that there wasn't enough room for the zoom button, normally the zoom button would hang off the right side of the window if it was not limited to the right side of the window. So, if you wanted to limit it to the right side of the window, you would put in the info for the right side of the window as the second Coordinate Reference and Offset, and you would choose either Constrain-to, Collapse-to, or Snap-to as the second (backup) coordinate type. Collapse-to will make the any Item entries referring to it disappear completely. Constrain-to will simply push the boundary to make the Item Entry's space smaller. Snap-to is similar to Constrain-to, but it constrains by snapping down to the largest possible size that is a factor of a number you set. This is useful for repeated images that you don't want to just chop off; with this, you could have exactly one repetition of the image snap off at a time. I never really fully understood how this works, but it definitely does work. It always took lots of fiddling for me before I got the desired effect. It may help to look at the Gizmo theme - it uses this backup coordinate. If you can get ahold of Doohickey, it uses it a LOT everywhere, and allows you to see it in action as you resize a window. (This is the nearly-complete theme I made from absolute scratch, so feel free to eMail me for it. I got bored and never quite finished it.)

The last part of the Coordinate Entry is the FIRST Coordinate Type. This can be set to Variable to get special boundaries directly from the Mac or to Average. Average finds the center between the 1st and 2nd references and makes that the boundary.

Just one thing that you must remember: DO NOT mix vertical and horizontal boundaries. It will just cause the layo not to work at all.

The Item Entry. The Item Entry's job is to link to an image somewhere else in the theme, give it special functions, and tell it where to go. There is a massive list of settings that you can turn on or off at the beginning of the Item Entry. I don't see a need to explain them, because they are very self-explanatory. After the list of settings, there are 4 coordinate references for the top, left, bottom, and right boundaries. You can enter the specific number of a coordinate from above OR you can select a default setting.

Next is the image reference area. Choose the type of image (sometimes called "component") you want, then enter it's info. For pxm#, the index is the ID of the image inside the "pxm#" resource you want to use. The first image is ID 0, the second is ID 1, etc.


p l u t
The "plut" (short for Color Pixel Pattern Look Up Table) resource is a simple resource that defines colors and links to "
ppat" resources.


p p a t
The "ppat" (short for Color Pixel Pattern) resource is an image resource.


p x m #
The "pxm#" (short for Pixmap List) resource is a maskable, multi-image image resource.


s c e n
The "scen" (short for Theme Scenario) resource is similar to the "tinf" resource, but it gives the theme a Theme entry in the first tab of the Appearance control panel. You can assign many settings to the Theme entry from within this resource that will automatically be set if the first tab is used to switch themes.


t d a t
The "tdat" (short for Theme Data) resource is a place that keeps record of all of the separate resources in the theme. It must be updated for any new resources or the theme will not function properly.


t i c #
The "tic#" (short for Theme Icon List) resource is a the connection between generic icon signatures in the Mac OS and the ID numbers of the replacement icons in the theme.


t i n f
The "tinf" (short for Theme Information) resource is a place for general settings of the theme.











Contact the
webmaster.