2ee739cc |
1 | Embedded Templates |
2 | ~~~~~~~~~~~~~~~~~~ |
3 | |
4 | For small programs, it's irritating to have a separate templates file |
5 | hanging around. Separate files aren't necessary for sprites or messages, |
6 | so templates become rather annoying. An `embedded template' is a |
7 | position-independent in-memory representation of a window template which |
8 | has had some extra information added to make it particularly easy to |
9 | construct a real window definition. (The idea of adding relocation |
10 | offsets is admittedly based on the Toolbox resource format.) This |
11 | trivial library unpacks embedded templates. |
12 | |
13 | The format of an embedded template is (I think) as follows: |
14 | |
15 | Offset Size Value |
16 | |
17 | 0 4 Offset to window definition ($w$) |
18 | 4 4 Offset to indirected data ($i$) |
19 | 8 4 Offset to limit of the template ($l$) |
20 | 12 $w - 12$ Relocation directives |
21 | |
22 | $w$ $i - w$ Template window definition (as in template files) |
23 | |
24 | $i$ $l - i$ Initialisation strings for indirected icons and |
25 | window titles. This will be copied literally |
26 | into the application's indirected data space. |
27 | |
28 | Each relocation directive consists of a single word; the top four bits of |
29 | a relocation directive determine the `type'; the bottom twenty-eight bits |
30 | give the `offset'. |
31 | |
32 | Currently defined types are: |
33 | |
34 | Type Meaning |
35 | |
36 | 0 Add the address of the indirected data area to the word at the |
37 | given offset into the window definition. |
38 | 1 Store the `window sprite area' in the word at the given offset |
39 | into the window definition. |
40 | 2 Store the `icon sprite area' in the word at the given offset |
41 | into the window definition. |
42 | |
43 | Embedded templates are not meant to be built by hand. Instead, the |
44 | programs `templAOF' and `resGen' will build AOF files containing embedded |
45 | template defintions from standard template files. These can be linked |
46 | into applications and modules. |
47 | |
48 | -- |
49 | [mdw] |