Table of Contents
WinterBoard Themes - Editing Themes


Overview   Managing Themes   Editing Themes  

Note:
The Home Screen Layout and WinterBoard Themes pages can both work on the same theme - as a matter of fact, when you select a theme to edit on the Home Screen Layout page, it is made the active theme on the WinterBoard page as well. This is meant as a convenience for additional tweaks (such as application names and text styles) to the Home Screen theme. You should not edit icons and Wallpapers and the like on the WinterBoard page. The edits overlap, and since the Home Screen works on all icons, for example, individual changes made on the WinterBoard page will be overwritten. To avoid confusion and complexity, use the two pages for separate themes. You can 'combine' them by activating both. Otherwise, be mindful of the possible conflicts.

The Home Screen Layout theme changes take effect whenever you save the theme; Changes on the WinterBoard page are applied immediately. Multiple templates (see below) can also act on the same file in the theme. Whichever you change last is the one that takes effect.

Should you run into problems, you can always edit the theme files directly, 'manually', on the device (there is a 'WinterBoard Themes' selection in the 'Go' menu,) or in the theme on disk ('Open Theme Folder' in the Commands and Options menu will get you there.)

WinterBoard Templates
There are a few thousand graphics on your device - a way to easily find and edit the interesting ones is sorely needed! iFuntastic introduces the concept of templates to simplify editing themes.

A template is a text file describing one or more resources to edit, their location on the device, and their location in the theme folder. Available templates are listed on the left side. A few come with iFuntastic, but you can also create your own!

Click on a template to show its list of items in the right list, then change individual items as desired.
There are different kinds of templates. The Application Names and Text Styles templates need special handling and are built-in. The kind of template that you can create yourself is generic - it's a list of one or more rows or template entries defining resources.

There are currently three types of entries for images, sounds and XML fields in .strings files. They function similarly: they show the existing resource on the left and the replacement on the right. In between are buttons to pick the replacement, remove the replacement, copy the original to the replacement and edit the replacement. There are also special functions to hide graphics (replace with a transparent image) or suppress sounds (replace with silence.)

Resources can be chosen from a dialog or dropped into the replacement area from the Finder, Safari, iTunes or iPhoto. In addition, iFuntastic keeps a list of images across all themes in the Resource Tree for quick and convenient selection from a popup menu.

The Region Menu and Language (.lproj) Folders
Language folders hold region and language specific .strings files for all the text displayed by the device. Some of them also contain images. The region and language settings of the device determine which folder is picked for the user interface. If you want your theme to change an image or text string, you need to make sure that it's done to the appropriate language folder. The Region Menu lets you pick which folder to work on. Regions and languages are a very complicated subject. For some reason, WinterBoard goes by region (e.g. Germany) when determining which file(s) to use. In general this works, but in the case of application names it's wrong - the iPhone OS goes by language. This can get confusing if you pick Germany as a region and English as a language! To make things worse, when you change the language on the device, the SpringBoard restarts and WinterBoard can update the theme - when you change the region only, it does *not* restart; you have to use the function in the 'Device' menu or change a theme or otherwise cause it to happen. Otherwise WinterBoard uses the wrong application names file.
I told you it was complicated! To sum up: if things seem to be out of whack, restart the SpringBoard and rebuild the application list and then the application names list.

Built-in Application Names Template
The application names template displays a list of the names of all currently known applications on the device. To update the list of applications, select 'Rebuild Application List' from the 'Device' menu in the menubar. The first time you select a region/language, iFuntastic has to gather all application names. This may take a while - the names may be scattered throughout various files on the device, and each file needs to be read and examined. It's a pain. If the list of names seems wrong, then click on the 'Refresh' button to rebuild it.

Theme Files Templates
The four Theme Files templates - Images, Sounds, String and Other - list the respective files in the theme that is currently edited. They are a good way to get an idea what a theme is made of, as well as giving access to special files such as javascript files or images that are used internally by a theme. If you can, you should use built-in or custom templates for files that have an equivalent on the device. The theme files templates don't know about where a file may be kept on the device. One drawback is that the Resource Tree cannot be properly updated (it uses the device path to determine where to store resources across themes.)
Custom Templates
You can create custom templates very easily from complete application or framework folders, as well as the UISounds folder: navigate to the folder of interest in the File Manager, then control-click on the folder. In the item popup you will see a 'Create WinterBoard Template from Folder' option. If you select it, iFuntastic will create a template of all images, sounds and strings files it finds in the folder.

To create more specific templates, create a File Set in the File Manager and drag the desired files into it or add them with the 'File Sets' options in the Command and Options menu above any File Manager list. The files that can be part of a template (and themed) are images, sounds and .strings files.

Available File Sets are listed in the Command and Options menu above the template list. Select one and it will be converted to a template and added to the list.

Another great way to find graphics and put them into a File Set is Graphinder - please view the video online for a demonstration, or read more about it in the Screenshots documentation.

Folders vs. Bundles
Yet another wrinkle: there are multiple locations in a theme that affect the same file on the device. The 'old' way uses the 'Folders' and 'Icons' folders in a theme, the 'new' way uses the 'Bundles' folder if the file to change can be identified with a bundle ID. For example, the icon for the Clock can be changed with the file /Icons/Clock.png, but also with the file /Bundles/com.apple.mobiletimer/icon.png. Since the first version relies on the name 'Clock' which is language specific, the second way is preferred (and more reliable.) iFuntastic has entries for both locations in some, but not all templates. Use 'Bundles' if available, and check the Theme Files Templates for duplications if you get confusing results.

UIImages
UIImages is a tool that is part of WinterBoard. It can unpack the main .artwork file on the device that contains many UI images such as buttons, badges and so on. You can do this with the 'Copy UI Images' option on the iFuntastic Support page.
Unfortunately on the iPhone 3GS, the UIImages tool is currently broken. Since I cannot include the images with iFuntastic, I created corresponding fake images that at least have the same dimensions as the originals. If you see a bright red image in any of the templates, then it's one of the fake ones.

If you have used iFuntastic with a non-3GS device before, or if you have access to one, then you may be able to find the proper UIImages in the Support folder (or copy them from the other device.) Copy them into the UIImages folder for the 3GS and you are all set (however, you should use the Update Image Cache function on the iFuntastic Support page)! The folder(s) in question are in ~/Library/Application Support/bitSplit Enterprises/iFuntastic/iFundex/. Each device and firmware combination has its own folder; for example XXXXXXXXX_iPhone 3.0, where XXXXXXXXX is the serial number of the device. Inside each of these folders, is a so called 'PseudoDevice' folder (internally it is treated as if it were on the device.) Inside of it, finally, is the UIImages folder.