home *** CD-ROM | disk | FTP | other *** search
- 0. The Boring Part :
- ====================
-
- Steal should be treated as Public Domain. Anyone can copy the program
- if and only if this is not done on commercial grounds. If ever Steal is
- published somewhere, I demand that this English document file and all three
- source files go along with it. It is allright to copy translations of this
- document file too, if any are avalable, but this English version is the
- original and should therefore always be distributed together with the program.
- The same should be kept in mind for the sources.
-
- Steal is no shareware, but if you like the program I will not protest
- if you'd send me some money. My name and address are below.
-
- If anyone feels like changing the source into something he or she
- thinks is better, feel free to do so. The only thing I always demand is that
- you keep my name in the source and the runtime output, just as it is now. Oh...
- If you realy make something wonderful out of it, why don't we share it? Better
- versions are always welcome!
-
- For those enhanced versions, for comments, complaints, questions and
- money I now list my full address; Better not try to contact me on the phone,
- because this is a postage address, rather than a living address.
-
- Rick van Rein
- Binnenes 67
- 9407 CX Assen
- ( The Netherlands )
-
-
- 1. What's the use of Steal 1.1 ?
- ================================
-
- Steal is a program that grabs parts out of a display. It is no program
- like Snip, neither is it a program to steal whole Screens displays with. This
- program is a means to grab out Intuition's structures.
-
- The user can enter a name of an output file that should be used to
- write the C listing to, in which all data structures are defined. Note that
- BitMaps are not copied; Use some other routine to hack into full displays
- please. Yet, Steal does support grabbing away the way an Image looks, so small
- pictures can be saved. They will be noted down in an array containing
- hexadecimal constants.
-
- A forbidden use of Steal would be, to hack into some commercial package
- to Steal away Intuition elements, and then use the things in your own programs.
- Note that I do not take any responsibility for people using Steal in this way.
-
- A better use of Steal is, to "de-compile" an Intuition item that we
- made by ourselves. I know, this sounds useless, but just imagine: You can write
- your original data structures in an ugly way, mount them on the Screen, and
- then run Steal to get a neatly formatted C listing, with all fields bearing a
- comment on it's contents. This will save you a lot of typing!
-
- Sometimes there will be more convenient ways to build some system
- structure. By running Steal in parallel with such a program, one can drag out a
- C listing describing this Menu. This probably is the easiest way to define your
- own Menus etc.
-
- I will not go into details on how to operate Steal; It's not just a
- coincidence that the graphical user interface of the Amiga is called Intuition!
- Just try out things that you think are logical - The'll probably behave as
- expected. If ever Steal expects you to do something, a report will be printed
- in the title bar of Steal's Window.
-
- There is just one last remark to be made: Anything that should be
- stolen should be outside Steal's own Window, as Steal waits for an
- INACTIVEWINDOW message over the IDCMP whenever it expects something outside the
- Window should be selected. Stealing things out of Steal's Window is only
- possible by running Steal twice in parallel, with one version stealing things
- out of the Window of the second version. Of course, it is possible too to grab
- away the whole WorkBench Screen.
-
-
- 2. Stealing a Gadget :
- ======================
-
- Every Gadget that is visible on the Screen can be grabbed away. This is
- also true for the system's Gadgets like the resizing-button. The only exception
- to this rule is the dragging bar; Not that Steal doesn't support it for some
- reason, but it's Width is zero. Don't ask me why, it's just some bare fact
- about the Amiga.
-
- Stealing icons also presented me with some disappointments; It appears
- that the WorkBench draws all icons "by hand" instead of using Intuition. This
- means that icons are no Gadgets at all. Surprise! I solved it with Icon2Gadget.
-
- Things like this also happen in some other programs; For instance,
- Commodore's Preferences program draws the whole Window when starting up; After
- that, no rendering is done anymore: Intuition does not get any graphical thing
- it may render. The only thing Intuition gets is a list of bare Gadgets
- structures, but no Borders, no Images an not even IntuiTexts. It cannot be
- expected of a program like Steal to pick up graphical details in such a case.
- So, when stealing Preferences' Window, we get an empty Window with some
- invisible click-fields in it.
-
- If we try to steal a Gadget, but the position clicked upon is not the
- position of a Gadget, an error will be given out.
-
-
- 3. Stealing a Menu :
- ====================
-
- Stealing MenuBars can be done by clicking on a Window that has a
- MenuBar connected to it. If there is no MenuBar, an error will be printed. If a
- MenuBar is present in the Window, this bar will be taken out, and a list of all
- structures needed for it's graphical presentation will be put in the output
- file. All structures will be linked as may be expected.
-
-
- 4. Stealing a Window :
- ======================
-
- Stealing a Window is done by clicking on the Window to be stolen. If no
- Window is at the position pointed at, an error will be the result.
-
- Note that Steal does not write a Window structure to it's output file,
- but a NewWindow structure instead, thus following the principle of creating a
- file that's ready to be compiled into some datafile that could be used directly
- in some OpenXXX-command. Some information will be lost in this way, but most of
- the interesting information will still be written out.
-
- When stealing a Window, all Gadgets contained in it will be stolen
- along with it, with the exception of the system's special Gadgets. This is not
- very unusual, as the system adds these Gadgets automatically.
-
-
- 5. Stealing a Screen :
- ======================
-
- Again, not the Screen structure itself will be written out, but a
- NewScreen is. And again, no great losses of information will be the result. But
- there is more to be said about a Screen!
-
- A Screen is a graphical item that contains Windows. Those Windows are
- stolen too, and linked into a list, starting from the Screen. Then, there are
- MenuBars for every Window; Those are stolen too.
-
- When showing some Screen, we must take care of opening all Windows that
- are listed, and the mounting the accompanying MenuBar in it. This cannot be
- done automatically, as the NewWindow structure somehow doesn't contain a field
- that points at a MenuBar.
-
-
- 6. Bugs and warnings :
- ======================
-
- This software runs well on Manx's Aztec C 3.4a, and it should just as
- well run on any other compiler, though I cannot guarantee this, as I haven't
- tried it. The generated C listings are all well typed, so there should be no
- difficulties, as far as I can see.
-
- As mentioned above, BitMaps are not supported in Steal 1.1; This causes
- problems when stealing a Window that contains pre-drawn Gadgets etc. As a
- general rule, accept the fact that everything can be stolen, as long as it
- is hanging from IntuitionBase.
-
- You are not expected to change the display during a hack ("Please hold
- your breath") and neither is it expected that another program acts like this.
- I'll have to sort out a way of disabling these problems, but until now I
- haven't.
-
- I wish you lots of fun with hacking into Intuition, and hopefully
- you'll learn things thanks to Steal 1.1!
-
-
-
- Februari 6, 1991, Rick van Rein.
-