Creating An Icon Theme

Icon themes are conceptually quite simple. Like dialogs, almost all system icons are binary resources. Resources can be replaced without any need to modify the programs that use them, and the means for doing this are provided already.

Icon themes work by replacing specific icon resources in the following DLLs:

PMWP.DLL IBM DLL containing the 'core' icons for the OS/2 desktop.
ECSWP.DLL Additional eCS-specific DLL containing icons for most remaining desktop objects.
WPINET.DLL IBM DLL containing icons for Internet object classes.
MMPTMRI.DLL IBM DLL containing icons for Multimedia object classes.
CWMM.DLL Additional DLL containing Multimedia icons if the CW-MM classes are installed.

Creating an icon theme involves the following basic steps:

  1. Choose an identifier for the new icon theme.
  2. Create the icons for the new theme.
  3. Build the resource files for the theme libraries.
  4. Install the new theme into the Icon Themes applet.

These steps are described below.

(These instructions require at least version 1.04 of the Icon Themes applet, running under eCS version 1.1 or later.)

 

Choose an identifier

The theme identifier is a short (one-word) string which will be used as the filenames (minus extension) of the theme resource files. The identifier must be unique for each theme, may contain only letters and/or digits, and should be a maximum of eight characters in length.

This identifier will be used throughout the remaining steps.

 

Create the icons

Creating the icons is generally the most time-intensive part of designing a new icon theme. There are 213 icons in an icon theme, all of which are required.

The icons must be in OS/2 Icon format. An OS/2 Icon consists of a number of images (called 'devices'), each of which may have its own dimensions and colour depth. Each icon should have at least one device at each of the following dimensions: 16x16, 20x20, 32x32 and 40x40. You can also create icons of different colour depths at each size; the WPS will automatically use the icon which best matches the current video mode. (For instance, if an icon has both 16- and 256-colour devices, the 16-colour version would be displayed in when the screen is in a 16-colour mode, and the 256-colour version would be displayed instead at higher colour resolutions.

Each of the five system DLLs modified by the Icon Themes applet has its own set of icons. These are described below, along with pictures showing the default 'eComStation' theme.

You should use the filenames shown in the table for each icon. The provided resource templates assume that these specific filenames will be used. (The numbers refer to the resource ID within the DLL; not all available IDs are defined, hence the occasional gap in the numbering.)

 

Icons in PMWP.DLL

Icons marked as UNKNOWN have functions which I have been unable to identify; they do not seem to be used on the desktop. In general, you can just copy the icons from the 'default' directory for these items.

Sample Filename Function Sample Filename Function
001.ICO DOS prompt (full screen) 056.ICO Desktop
002.ICO CMD prompt (window) 057.ICO Found objects folder (closed)
003.ICO Default PM program 1 058.ICO Minimized window viewer (closed)
004.ICO CMD prompt (full screen) 059.ICO System Setup folder (closed)
006.ICO Default folder (open) 060.ICO Information folder (closed)
008.ICO Startup folder (open) 061.ICO Local System (closed)
009.ICO Local Network folder (open) 062.ICO LAN resource browser (closed)
010.ICO Templates folder (open) 063.ICO Remote LAN server or peer
012.ICO Found objects folder (open) 064.ICO Remote LAN folder (closed)
013.ICO Hard drive volume 065.ICO Remote LAN printer
015.ICO Setup folder (open) 066.ICO LAN resource browser (disconnected)
016.ICO Remote LAN drive 067.ICO Remote LAN server or peer (disconnected)
017.ICO VDISK RAM disk 068.ICO Remote LAN folder (disconnected)
018.ICO Tape drive 069.ICO Remote LAN printer (disconnected)
019.ICO CD/DVD drive 070.ICO Remote LAN drive (disconnected)
020.ICO Template object 071.ICO Drag & drop objects
022.ICO Default WPS class icon 072.ICO Win16 session (window)
023.ICO LAN resource browser (open) 073.ICO Novell NetWare folder
024.ICO Default file 074.ICO LaunchPad (a.k.a. Toolbar)
025.ICO Default PM program 2 075.ICO UNKNOWN
026.ICO Default folder (closed) 076.ICO Removeable media drive 1
027.ICO Drives folder (closed) 077.ICO Window List (LaunchPad)
028.ICO Shredder 078.ICO Lockup (LaunchPad/eCenter)
029.ICO Startup folder (closed) 079.ICO Find Objects (LaunchPad/eCenter)
032.ICO Floppy drive 080.ICO Shutdown (LaunchPad/eCenter)
033.ICO Network folder (closed) 081.ICO UNKNOWN
034.ICO Remote LAN folder (open) 082.ICO Help Center (closed)
035.ICO Local System (open) 083.ICO Help Center (open)
037.ICO Command prompts folder (closed) 084.ICO UNKNOWN
038.ICO Command prompts folder (open) 085.ICO UNKNOWN
039.ICO UNKNOWN 086.ICO Bitmap file
040.ICO UNKNOWN 087.ICO Connections folder (deprecated)
041.ICO UNKNOWN 088.ICO Games folder (closed)
042.ICO UNKNOWN 089.ICO Games folder (open)
043.ICO UNKNOWN 090.ICO Install/Remove folder (closed)
044.ICO Broken shadow 091.ICO Install/Remove folder (open)
046.ICO DOS prompt (window) 092.ICO Programs folder (closed)
047.ICO DOS prompt from floppy drive 093.ICO Printers folder (closed)
048.ICO Templates folder (closed) 094.ICO Printers folder (open)
049.ICO DOS dual-boot 095.ICO Removeable media drive 2
052.ICO Win16 session (full screen) 2146.ICO Lockup (on lockup screen)
053.ICO OS/2 v1.x program group 2147.ICO Lockup (on lockup screen)

 

Icons in ECSWP.DLL

In addition to eCS-specific icons, this library also contains updated versions of several icons which under OS/2 were set from standalone icon files (such as the Peer and Multimedia folders). Not all of the icons in this library are used in the current version of eCS; some of them are for backwards compatibility purposes, and others are for potential use in the future.

Sample Filename Function Sample Filename Function
100.ICO Information folder (open) 125.ICO Appearance folder (closed)
101.ICO Programs folder (open) 126.ICO Appearance folder (open)
102.ICO Minimized Window Viewer (open) 127.ICO Logical Volume Manager GUI
103.ICO Internet folder (open) 128.ICO Refresh Removeable Media
104.ICO Upload folder (open) 130.ICO Network config folder (closed)
105.ICO Upload folder (closed) 131.ICO Network config folder (open)
106.ICO Java folder (open) 132.ICO Network Interfaces folder (closed)
107.ICO Java folder (closed) 133.ICO Network Interfaces folder (open)
108.ICO Download folder (open) 134.ICO Network Interface object
109.ICO Download folder (closed) 135.ICO Network Protocols folder (closed)
110.ICO Personal/data folder (closed) 136.ICO Network Protocols folder (open)
111.ICO Personal/data folder (open) 137.ICO Firewall folder (closed)
112.ICO Drives folder (open) 138.ICO Firewall folder (open)
113.ICO TCP/IP folder (closed) 140.ICO Font folder (closed)
114.ICO TCP/IP folder (open) 141.ICO Font folder (open)
115.ICO Internet Tools folder (open) 200.ICO Multimedia folder (closed)
116.ICO Internet Tools folder (closed) 201.ICO Multimedia folder (open)
117.ICO Dialup folder (closed) 202.ICO Sound folder (closed)
118.ICO Dialup folder (open) 203.ICO Sound folder (open)
119.ICO Internet folder (closed) 204.ICO Movies folder (closed)
120.ICO LAN Server/Peer folder (closed) 205.ICO Movies folder (open)
121.ICO LAN Server/Peer folder (open) 206.ICO VoiceType folder (closed)
122.ICO UPM folder (closed) 207.ICO VoiceType folder (open)
123.ICO UPM folder (open)

 

Icons in WPINET.DLL

The default file and folder icons are duplicates of the same icons from PMWP; you can just copy them.

Sample Filename Function Sample Filename Function
I029.ICO URL object I034.ICO Default file
I030.ICO URL folder (closed) I035.ICO Default folder (closed)
I031.ICO URL folder (open) I036.ICO Default folder (open)
I032.ICO FTP folder object 1 I037.ICO Internet Templates folder (closed)
I033.ICO FTP folder object 2

 

Icons in MMPTMRI.DLL

Many of these icons are duplicated several times. For instance, M34000.ICO, M48002.ICO, and M50003.ICO are identical. You can simply copy the file as needed.

Sample Filename Function Sample Filename Function
M32200.ICO Synthesized (MIDI) audio file M48019.ICO Digital audio file: *._AU
M34000.ICO Image file (generic) M48020.ICO Digital audio file: *.AIF
M36000.ICO Video file (generic) M48021.ICO Digital audio file: *.IFF
M38961.ICO CD device M48022.ICO Digital audio file: *.SND
M40000.ICO Digital audio file (generic) M48023.ICO Video file: *.AVI
M42030.ICO Default file M48024.ICO Video file: *.FLI
M48001.ICO Digital audio file (generic) M48025.ICO Video file: *.MPG
M48002.ICO Image file (generic) M48026.ICO Image file: *.BMP
M48003.ICO Video file (generic) M48031.ICO Image file: *.JPG
M48004.ICO Synthesized (MIDI) audio file M48032.ICO Digital audio file: *.WAV
M48005.ICO Image file: *.TGA M48033.ICO Light Table folder (closed)
M48006.ICO Image file: *.TIF M48034.ICO Light Table folder (open)
M48007.ICO Image file: *.GIF M48035.ICO Broken shadow
M48008.ICO Image file: *.PCX M48038.ICO Digital audio file: *.AU
M48009.ICO Image file: *.PCD M48039.ICO Video file: *.MOV
M48011.ICO Image file: *.AVC M50000.ICO Default file
M48012.ICO Image file: *._IM M50001.ICO Digital audio file (generic)
M48013.ICO Image file: *.DIB M50002.ICO Video file (generic)
M48017.ICO Digital audio file: *.VOC M50003.ICO Image file (generic)
M48018.ICO Digital audio file: *.MOD M50004.ICO Synthesized (MIDI) audio file

 

Icons in CWMM.DLL

CWMM.DLL is (approximately speaking) an alternative to MMPTMRI.DLL on some systems. The two files therefore have many icons in common. Most of these icons (CWMM.DLL) can be copied from those in MMPTMRI.DLL, above.

Sample Filename Function Sample Filename Function
C02.ICO Digital audio file (generic) C17.ICO Video file: *.AVI
C03.ICO Digital audio file: *.MP3 C18.ICO Image file (generic)
C04.ICO Digital audio file: *.OGG C19.ICO Image file: *.AVC
C05.ICO Digital audio file: *.WAV C20.ICO Image file: *.DIB
C06.ICO Digital audio file: *.AIF C21.ICO Image file: *.GIF
C07.ICO Digital audio file: *.AU C22.ICO Image file: *.JPG
C08.ICO Digital audio file: *._AU C23.ICO Image file: *.PCD
C09.ICO Digital audio file: *.IFF C24.ICO Image file: *.PCX
C10.ICO Digital audio file: *.SND C25.ICO Image file: *.TGA
C11.ICO Digital audio file: *.VOC C26.ICO Image file: *.TIF
C12.ICO Synthesized (MIDI) audio file C27.ICO Image file: *._IM
C13.ICO Video file (generic) C28.ICO Image file: *.BMP
C14.ICO Video file: *.MPG C29.ICO Light Table folder (closed)
C15.ICO Video file: *.MOV C30.ICO Light Table folder (open)
C16.ICO Video file: *.FLI

 

Build the resource files

The icons for each DLL must be compiled into separate binary resource files. These instructions require you to have the IBM Resource Compiler (RC.EXE) installed.

  1. Place all your theme icons into an empty directory.

  2. Copy the following files from the 'templates' directory into the directory containing your icons:
            PMWP.RC
            ECSWP.RC
            WPINET.RC
            MMPTMRI.RC
            CWMM.RC

  3. Change to the directory containing your icons and run these commands:
            rc -r pmwp.rc identifier.pmr
            rc -r ecswp.rc identifier.ecr
            rc -r wpinet.rc identifier.inr
            rc -r mmptmri.rc identifier.mmr
            rc -r cwmm.rc identifier.cmr
    where identifier is your theme identifier.

You should now have five resource files, named as follows:

identifier.PMR   (Icons for PMWP.DLL)
identifier.ECR   (Icons for ECSWP.DLL)
identifier.INR   (Icons for WPINET.DLL)
identifier.MMR   (Icons for MMPTMRI.DLL)
identifier.CMR   (Icons for CWMM.DLL)

 

Preview library (optional)

Every theme may provide a 'preview' DLL which contains the ten icons shown in the Preview display of the Icon Themes applet. This is optional; if such a DLL does not exist, the Icon Themes applet can also use the icon files themselves to populate the preview display (see below).

The command file DLL_ICC.CMD automates the creation of this DLL for you. It requires that you have the IBM C Compiler (ICC.EXE) installed on your system (and on your PATH). You may use another compiler to create this DLL, but you will have to perform the necessary actions yourself. Consult your compiler's documentation.

The DLL_ICC.CMD REXX script takes two arguments, the theme identifier and the path to the directory containing the icon files. The directory name may be omitted if it is located under the current directory and has the same name as the theme identifier.

 

Install the theme

To install the new theme into the Icon Themes applet, do the following:

  1. Go to the Icon Themes applet directory, usually \ecs\system\itheme on the eCS boot drive.

  2. Under this directory, create a subdirectory with the same name as your theme's identifier.

  3. Copy the following files from your icons directory into this new subdirectory:
            identifier.PMR
            identifier.ECR
            identifier.INR
            identifier.MMR
            identifier.CMR
  4. If you created a preview DLL, copy this to the same directory. Otherwise, copy the following icon files instead:
            002.ICO
            003.ICO
            013.ICO
            024.ICO
            026.ICO
            033.ICO
            048.ICO
            061.ICO
            092.ICO
            119.ICO
  5. Change back to the Icon Themes applet directory (\ecs\system\itheme) and use a text editor to edit the file THEMES.LST. Add the following line to the end of the file:
            identifier;description
    where identifier is your theme identifier, and description is a one-sentence description of the theme (which will appear in the Icon Themes applet).

  6. Start the Icon Themes applet, go to the 'Themes' menu, and choose 'Build all themes'.

  7. Once the themes have been rebuilt, you should be able to select and apply your new theme like any other.


Icon Themes applet and this toolkit © 2002 - 2003 Alex Taylor.

Original 'eComStation' icons designed by Alessandro Cantatore. Additional icons by Alex Taylor. These icons are reserved for use with the eComStation operating system.

Original 'OS/2' icons are presumably property of IBM Corp.

Other icon sets may have their own terms and copyrights.

This toolkit last updated on 15 October 2003.