home *** CD-ROM | disk | FTP | other *** search
- HackBench requires V1.2, and should be compiled using Aztec
- 3.40a with 16-bit integers:
-
- cc hbicon
- cc hbobj
- cc hbgad
- ln -o hb hbicon.o hbobj.o hbgad.o -lc
-
- You'll undoubtedly get a few warnings--my include files are
- customized, e.g. Window titles are char *'s instead of UBYTE *'s,
- and my functions.h file has been corrected.
-
- The purpose of HackBench is to provide the source for a
- Workbench-like program; it is not intended to be an actual
- Workbench replacement. Some features are not supported, such as
- Info, Snapshot, Format, and DiskCopy. Use of HackBench takes
- more memory since Workbench is in ROM.
-
- HackBench manages WBObjects. WBObjects are represented
- simultaneously:
- 1) On the disk as a .info file
- 2) On the screen as an icon
- 3) Internally as a WBObject data structure.
- HackBench coordinates things so that icon manipulations are
- transmitted to the disk.
-
- HackBench uses the UserData field of the Intuition Window to
- store a pointer back to the WBObject, and sets the WBENCHWINDOW
- bit in the Window's Flag field as a means of identification.
-
- All the WBObjects existing at any time are linked together
- on a Master List. Order of WBObjects in the Master List
- determines which icon is drawn first, and therefore which one
- appears in front. Each Disk or Drawer has a Children List,
- imitating the structure of the filing system. Objects currently
- selected (and highlighted) appear on the Select List.
-
- The Master List must constantly reflect what is on the
- screen. When a Window is opened, each .info file found is used
- to build a WBObject, which is added to the Children List. Unlike
- Workbench, we save the icons and display them all at once.
-
- When a window is closed, its Children are deleted, except
- for those whose icons are currently open themselves or living on
- the backdrop. If the Drawer is later reopened, these orphans
- must be found and relinked with their Parent to avoid
- duplication.
-
- HackBench has several Intuition-like features that are
- managed without help from Intuition. Icons are stored in Gadget
- structures, but are not actual Intuition Gadgets. HackBench
- handles by itself the display, highlighting and hit detection for
- icons.
-
- An open Drawer simulates an Intuition SuperBitMap Window,
- without using a second BitMap. The icons live in a scrollable
- virtual coordinate system, but the extent of this is not fixed.
- As the icons change position, the virtual coordinates
- automatically extend or contract as necessary.
-