Classic Computer Magazine Archive ST-Log ISSUE 18 / APRIL 1988  / PAGE 25


by Maurice Molyneaux

Allergic to all things Commodore, Maurice Molyneaux is an author/artist who— when not writing for ST-Log—continues to struggle with a recalcitrant 8-year-old science fiction novel, paints, illustrates and uses his ST for "every conceivable task." His interests include classic cel animation as well as the computer variety, and he draws the meanest "Star Trek" pictures on microcomputers. His Delphi username is MAURICEM.

It was a dreary morning, and I woke up feeling like a disk that had spent its life in a Commodore 1541 disk drive. I was in a foul mood and looking for something to complain about. The easiest target was my faithful ST. I thumbed my nose at it, angry because I couldn't design my own mouse pointers, as Amiga users can. BASIC programs to do this are useless, because the new pointer will not remain installed when you leave ST BASIC. Drat! Black arrow again!

Not being a master programmer, I couldn't write such a utility myself. I called ST-Log and told Clayton Walnum I'd like a mouse redesigner that would work from the desktop; no stupid ST BASIC programs! Clay gave my suggestion to Charles Johnson, and the rest, as Charles said, is history. Oh, the idea was mine, but the product is solely the mouseterwork of CFJ. Make no mice-take about it, this is his baby. Me? I was just the midwife (so to speak).

In addition to the "Mouse-Ka-Mania" program, this month's disk version of ST-Log contains a file of mouse pointer shapes, if you don't want to design your own. If you don't know how to use the accessory yet, read Charles's "Mouse-Ka-Mania." When you're done, I'll give you some pointers on mouse-terful mice design.

Warning: the MICE.ARC file is only a few K in size, but note that, when you de-arc it, despite the fact that each pointer is only 74 bytes, each will effectively consume 1K of disk space. This is because the smallest amount of space a file can be under GEMDOS is 2 physical disk sectors of 512 bytes each, or 1K. When de-arced, the total number of mouse data files will take up that much disk space, so de-arc the file on another disk if you haven't room on your current one.

Some practical limitations first. The pointer can be no larger than 16 × 16 pixels. You're better off not trying anything too complex, but you can draw simple shapes with reasonable detail. Hands, feet, simple faces, bizarre arrows, insects, little mice (of course), and all manner of other things.

Second to consider: the part of the shape you actually point with, the "hot spot," should be fairly obvious. The hot spot on an arrow-shaped pointer should be at the tip, not the tail end. Fingers should follow the same rule. The ST's bumblebee pointer has the hot spot at its center; hardly an obvious location.

For the modified bee (included in the MICE.ARC file), I moved the hot spot to the front of its head. Cross hair or box cursors usually have a hot spot in their center area. If you create a pointer like this one, it's a good idea to leave a "hole"—in both the data and mask—around the hot spot, through which you can see what it is you're pointing to.

If you're making initials, a word, or any shape that doesn't have a spot that could clearly and obviously be made the hot spot, you might consider moving it as far as you can to one edge of the grid, and drawing a small "+" cross hair in the empty space and make the hotspot the center of it.

Third, keep your pointer simple. It's going to be small, so keep clarity in mind. To keep details like the legs on the ant pointer clear, I intentionally didn't connect them to the body. This separation makes it obvious they are legs.

On most pointers, the mask is 1 pixel wider around the edges than the data, allowing the data to be seen when it moves over a part of the screen of the same color. (Note the mask around the usual arrow; with it, you can see the black arrow against black text, etc.)

The mask can also be used to fill in the parts of the pointer that aren't filled with the data color (as with the white spots in the bee). By leaving holes in both the data and mask, you can create see-through parts in your pointers. This simple effect should not be underestimated. Load and install MAGGLASS as your pointer, and move it back and forth over some text. Notice that you can see through the "lens," and it almost looks as if the image is indeed magnified. This interesting trick is accomplished by carefully choosing which parts of the pointer to make transparent. I didn't make the whole lens see-through, because that spoiled the effect.

Furthermore, you can use the mask to "hide" little details in your pointer. Install the SC1224 pointer and move it over white parts of the screen. Nothing special, huh? Okay, move it in front of the black viewing square on the accessory. See, the letters ST are on the screen. I drew the letters with the mask color and left the rest of the monitor "screen" see-through. In some cases, you can avoid making the mask bigger than the data, but this is dependent on the pointer shape and which resolution it will be used in.

Each of the ST's three display modes has its advantages and disadvantages. In low resolution, it's easy to make a pointer without an overlapping mask. You can even make a pointer that consists only of the data color or the mask color alone, if you carefully select one of the sixteen colors that isn't normally used by the desktop or other programs. Using color fourteen for the data with no mask will be perfectly visible on the default desktop.

You can also use the mask color like a second data color. If you run GEM programs that change the color registers you've assigned your mouse pointer, then you might have a few problems. I like to install the finger pointer, using color fourteen for the mask and fifteen for the data, making fourteen a flesh tone and fifteen a darker hue of the same color. This is a neat-looking, humanlike hand floating about on the desktop! (Note: if you change some of the default colors using the control panel, you'll have to make sure the panel accessory is present whenever you boot, or the system will go back to default colors.)

This won't work well in medium resolution, where you only have four colors. In medium resolution, it's best to use a color like black for the data and make your mask color three—which isn't used by the desktop—and change that to whatever tone you wish. Medium resolution presents its own proportional problems, because the pointer will be just as tall as in low resolution, but half as wide.

Many times, a pointer that looks fine in low or high resolution looks weird in medium. But you can take advantage of this "stretched" look. For the K'tinga pointer (a Klingon battle cruiser to you Earthings), the taller-than-wide ratio of medium resolution makes the pointer look more like the long-necked ship it's supposed to represent. It doesn't look quite so hot in the other resolutions.

High resolution presents its own problems. You really can't make a clear pointer if you don't use both the data and mask. This is because everything in monochrome is made up of pixels of black and white. The gray desktop is just a pattern of alternating black-and-white dots. To draw a black mouse with no white mask would result in the pointer blending into the background at the edges when on the desktop, disappearing completely in front of anything black, but looking sharp in front of white. If you have a solid, single-color pointer, it's a good idea to make the mask just slightly bigger than the data, so it will show up against any conceivable black-and-white combination.

If you plan to design a pointer to be used in all resolutions, I suggest you give it an overlapping mask, and make it a shape that will look good in all resolutions. (Remember, it "stretches" in medium resolution.) Plus, you should design it for use in black and white, even though you might change its colors in low or medium resolution.

Now, go out there and start mouse-ing around. I expect some real mouse-terpieces from you mice-creants! Don't mice-understand me: I'm only engaging in some mouse-chief. And, if you can read aloud this mice-ellaneous act of writer's mice-conduct, then, truly, you have really said a mouse-ful!

No doubt, I'll be mice-quoted. . .