|Stable release||2.1.3 / August 1994|
|Operating system||Mac OS|
|Type||Software development tool|
|Website||Mac OS 8 and 9 Developer Documentation: ResEdit|
ResEdit is a developer tool application for the Apple Macintosh, used to create and edit resources directly in the Mac's resource fork architecture. It is an alternative to tools such as REdit, and the resource compiler Rez. For the average user, ResEdit is generally easier to use, because it uses a graphical user interface. Although it had been intended to be a developer tool, power users often use it to edit icons, menus, and other elements of an application's GUI, customizing it to their own preferences.
Resources on the Macintosh can be of many different types, and in fact any arbitrary data can be turned into a resource. While the system defines many standard formats for particular kinds of resources (for example, an icon, or a window template), programmers are also free to define their own. ResEdit includes support for editing many of the standard types and for creating arbitrary resources with any structure a programmer saw fit.
ResEdit is one of the earliest examples of a GUI layout tool, an essential component for rapid application development. For example, the Mac OS defines a standard resource called a dialog template and a dialog items list (resource types 'DLOG' and 'DITL' respectively). In ResEdit, it's possible to simply create these types and add GUI elements to them in an almost WYSIWYG fashion, such that a user interface could be designed directly as it would appear to the end user of the application. Later, the application code can create a functional dialog box using the stored resource data which matches the appearance you lay out in ResEdit. While hardly a revolutionary concept today, when ResEdit first appeared in the mid-1980s, this was a considerable innovation. ResEdit includes standard editors for window templates (
WIND), menus (
MENU), dialog boxes, controls (
CNTL), color palettes (
pltt), icons (
ICN#), and various other standard types.
One of ResEdit's most powerful features (which first appeared with ResEdit version 2.0) is the ability to define arbitrary data structures as resources using a simple template building feature. Here, the programmer can simply add elemental data types to a list to define a template (itself stored as a resource of type
TMPL). This template allows ResEdit to build a GUI editor on the fly that allows entry of data and package it into the structure defined in the template. It's a simple matter for a programmer to define a matching data structure in a chosen programming language, such as C, load the resource in a standard manner and access the data as the defined C type. ResEdit includes a number of predefined templates for many standard OS resources that do not require a graphical editor.
ResEdit was never upgraded to run natively on Mac OS X (or, indeed, on PowerPC-based Macintoshes), and Apple now discourages the use of resource forks in new Mac OS X applications, preferring the more portable NeXT-derived application bundles. A long-standing third-party commercial alternative named Resorcerer remains available, and more recently there have been a number of attempts to build open-source Mac OS X-native resource editors, including one called ResKnife. ResEdit will run in Mac OS X's Classic compatibility mode, but Classic is neither available on Intel Macintosh computers, nor in Mac OS X v10.5 or later. However, an Intel Mac can run ResEdit via an emulator such as SheepShaver or Basilisk II.
The last official version of ResEdit is 2.1.3, released in August 1994. Unofficial hacks released as ResEdit 2.1.4 and up exist that add features such as the ability to edit data forks, but these are entirely unsupported by Apple.
- ResEdit Reference (PDF)
- Download ResEdit 2.1.3 from apple.com (MacBinary)
- Download ResEdit 2.1.3 from mirror of ftp.apple.com (BinHex) (README file)
- CODE resource decompiler/editor for ResEdit - mirror of ftp.apple.com (BinHexed Stuffit file) (README file for CODE resource decompiler/editor - mirror)