Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!think.com!sdd.hp.com!wuarchive!uunet!tnc!m0154 From: m0154@tnc.UUCP (GUY GARNETT) Newsgroups: comp.sys.amiga.programmer Subject: Re: ResEdit for the Amiga? YES!!, called PowerWindows! Message-ID: <834@tnc.UUCP> Date: 13 Jun 91 13:35:29 GMT References: <30571@hydra.gatech.EDU> <829@tnc.UUCP> <1739@gufalet.let.rug.nl> Reply-To: m0154@tnc.UUCP (GUY GARNETT) Organization: The Next Challenge, Fairfax, Va. Lines: 51 In article <1739@gufalet.let.rug.nl> eoo@let.rug.nl (Eize Oosting) writes: >In article <829@tnc.UUCP> m0154@tnc.UUCP (GUY GARNETT) writes: >>On the other hand, it would be very useful to have an Amiga >>programmer's utility with which you could design menus, gadgets, >>requestors, and other Intuition objects, play with them on the screen, >>and write the definitions out to an object file. Then you simply link >>your code to the "intuition resources" you have created, and away you >>go. It might even be possible to write it so that the editor could >>recognise its "resources" in a program, and allow you to edit them >>without re-linking the program. > >There is a program called PowerWindows II, with which you can create almost >any layout, and then generates Manx or Lattice C code, or even Assembler. >It's very handy. > Well, PowerWindows II is very good at what it does (creating user interface source code), but it falls short of what I described above. First of all, PowerWindows requires you to have one of its supported compilers (SAS, Manx, or a compatible assembler) to generate object modules. So you have to recompile your code to incorporate changes (the "resource editor" concept tries to avoid re-compiling the program, and would hopefully make changes in-place, with no re-linking required either). PowerWindows does not help programmers working in Modula-2, or Draco, or other languages; a "resource editor" which generated loadable (by LoadSeg) object definitions would be usable from any programming language which supported library calls. The procedure would be to LoadSeg() the "resource file", and look in the front of the loaded resource file for an array of "resource headers": each resource header would contain the name of a resource, and its address (all of the addresses, and the pointers in the structures contained in the resource file would be valid, thanks to relocation by LoadSeg). Place the addresses in pointer variables in the host program, and away you go. A properly done resource editor would let you edit the resource file (to change the colors or appearance of various objects, for example) without affecting the program (as long as all the "resource headers" were defined, and pointed to appropriate structures, everything would be fine). For the most popular languages, a utility could be provided to append the resource file to the executable, and a function provided to locate the resource header table. How about it? Wildstar "... I'll see you on the dark side of the Moon!" -- Pink Floyd