|  | 6 | Note: when talking about 'icon' in the following text an icon built by the icon engine is meant not one of the default eCS system icons. | 
          
            |  | 7 |  | 
          
            |  | 8 |  | 
          
            |  | 9 | == How icons are stored == | 
          
            |  | 10 |  | 
          
            |  | 11 | The engine uses paint commands recorded in an initialization file which are interpreted during icon loading. A pointer to the folder holding this ini file is stored in the users ini file '''OS2.INI''': | 
          
            |  | 12 |  | 
          
            |  | 13 |  | 
          
            |  | 14 | {{{ | 
          
            |  | 15 | Application key name:  IconTheme | 
          
            |  | 16 | Key name:              IconFolder | 
          
            |  | 17 | Contents:              Path to folder holding the INI file | 
          
            |  | 18 | }}} | 
          
            |  | 19 |  | 
          
            |  | 20 | Be sure to keep the spelling for the keys. | 
          
            |  | 21 |  | 
          
            |  | 22 |  | 
          
            |  | 23 | === Format of the initialization file === | 
          
            |  | 24 |  | 
          
            |  | 25 | The name of the initialization file must be: | 
          
            |  | 26 |  | 
          
            |  | 27 |  | 
          
            |  | 28 | {{{ | 
          
            |  | 29 | WPSWIZ-THEME.INI | 
          
            |  | 30 | }}} | 
          
            |  | 31 |  | 
          
            |  | 32 |  | 
          
            |  | 33 | All images used for composing icons are located in the directory holding the ini file or a subdirectory of it. The engine uses the ini file loction as an anchor and searches all parts referenced in paint commands relative to this anchor point. | 
          
            |  | 34 |  | 
          
            |  | 35 | Icons are searched based on the objects class name and the object ID. Custom icons created from the settings notebook of an object are referenced using a numeric key. This is not described here. | 
          
            |  | 36 |  | 
          
            |  | 37 | ---- | 
          
            |  | 38 |  | 
          
            |  | 39 | For every class in the system there may be a unique icon. This is used when no object specific icon can be found. | 
          
            |  | 40 |  | 
          
            |  | 41 | {{{ | 
          
            |  | 42 | Application key name:  Class name, e.g. CWDataFile, WPFolder, AMouse | 
          
            |  | 43 | Key names:             Various, will be described later | 
          
            |  | 44 | Contents:              Paint commands and references to files | 
          
            |  | 45 | }}} | 
          
            |  | 46 |  | 
          
            |  | 47 | Note that the application key name must reflect the exact spelling of the class. | 
          
            |  | 48 |  | 
          
            |  | 49 | ---- | 
          
            |  | 50 |  | 
          
            |  | 51 | For an object specific icon the object ID is used as the application key: | 
          
            |  | 52 |  | 
          
            |  | 53 | {{{ | 
          
            |  | 54 | Application key name:  Object ID, e.g. <XWP_SCREEN>, <WP_OS2SYS>, <WP_DESKTOP> | 
          
            |  | 55 | Key names:             Various, will be described later | 
          
            |  | 56 | Contents:              Paint commands and references to files | 
          
            |  | 57 | }}} | 
          
            |  | 58 |  | 
          
            |  | 59 | The application key must be exactly like the ID, this includes the opening and closing braces. | 
          
            |  | 60 |  | 
          
            |  | 61 | ---- | 
          
            |  | 62 |  | 
          
            |  | 63 | The Search order for icons is the following: | 
          
            |  | 64 |  | 
          
            |  | 65 | 1. Object specific icon referenced by numeric ID | 
          
            |  | 66 | 1. Object specific icon referenced by object ID | 
          
            |  | 67 | 1. Class specific icon referenced by class name | 
          
            |  | 68 | 1. Object specific eCS icon | 
          
            |  | 69 | 1. Class specific eCS icon | 
          
            |  | 70 |  | 
          
            |  | 71 | As can be seen the icon engine will fall back to the eCS icon handling when no engine icon can be found. | 
          
            |  | 72 |  |