[net.micro.amiga] Observation and questions

bobb@tekfdi.UUCP (Robert Bales) (02/13/86)

Just like (almost) everyone else, I'm waiting for the Amiga manuals. Luckily,
I have been able to ocasionally borrow some old manuals from my dealer. But
they don't answer all the questions ! -)

First, an observation: the "complement" drawing mode doesn't work as I would
expect. According to the ROM Kernal Manual, this mode will "for each 1-bit in
the primary drawing pen (FgPen), complement (reverse the state) the
corresponding bit in the target drawing area." For example, if the primary
pen is set to color 2, I would expect the transformations 0->2, 1->3, 2->0,
3->1, etc. (Only the "2" bit complemented.) However, all bits seem to be
complemented. Interesting.

Is there a way to move the mouse pointer to a certain point on the screen?
For a CAD-type graphics program, I would like to be able to enter numerical
co-ordinates from the keyboard and have the pointer move there and then be
movable from that location via the mouse. I am using a borderless, backdrop
window covering the entire screen, so don't have to worry about the pointer
position with respect to my window.

Some thoughts on the above: the pointer is hardware sprite 0, so if I could
find (how?) the location of the definition structure, maybe I could use
"MoveSprite()". Also, when the grid is enabled in DeluxPaint(tm), the pointer
jumps from point to point, so it must be possible to control it apart from
Intuition.

Is there a way to create a window which can't be activated? I would like to
overlay status (text) information on a graphics display and have it protected
against graphics writes. This display is to be output only; I still want the
background window to be active, even if the mouse is "clicked" in the display
area. Must I manage everything myself?

In menus, how does one get Intuition to toggle the check mark of an item?
Setting MENUTOGGLE with or without CHECKIT doesn't do it: with, the item is
always checked after it is first selected, without, the item is never
checked.

Thanks for any help.

    Bob Bales
    Tektronix, Inc.Subject: observation and questions

jimm@amiga.UUCP (Jim Mackraz) (02/14/86)

In article <250@tekfdi.UUCP> bobb@tekfdi.UUCP (Robert Bales) writes:
>
>Is there a way to move the mouse pointer to a certain point on the screen?
>For a CAD-type graphics program, I would like to be able to enter numerical
>co-ordinates from the keyboard and have the pointer move there and then be
>movable from that location via the mouse.

Perhaps it is religion, but Intuition doesn't provide *direct* support for
positioning the mouse pointer, largely to keep the user's mind and body
connected, and his/her mouse on the table.  For your CAD program, after a
location is entered at the keyboard, may I suggest that there may be no need
to move the current locator position?  In systems I am familiar with, the
Locator doesn't track the most recent coordinate input.

However, you can find a way.

>Some thoughts on the above: the pointer is hardware sprite 0, so if I could
>find (how?) the location of the definition structure, maybe I could use
>"MoveSprite()". 
This isn't it.  Changing the sprite location is only a side effect of 
changing the Intuition pointer current location.  One way to change it is to
become an Input Handler (see new ROM Kernel Manual, subject Input Device)
and feed Intuition relative mouse events.  Life will be easier in our
next kickstart release, since calling Intuition() will be better supported.
Another thing to try is writing to the input handler, although I don't
personally know the details on that.

>Also, when the grid is enabled in DeluxPaint(tm), the pointer
>jumps from point to point, so it must be possible to control it apart from
>Intuition.
Sounds like Dan Silva or EA found a way.  This one might be the setting of
an invisible pointer, rounding the mouse coordinates, and managing one's own
*sprite* which isn't where intuition thinks the mouse pointer is.  (A fun part
of this job is guessing how Silva and EA do that voodoo that they do.)

>Is there a way to create a window which can't be activated? I would like to
>overlay status (text) information on a graphics display and have it protected
>against graphics writes. This display is to be output only; I still want the
>background window to be active, even if the mouse is "clicked" in the display
>area.
Any window becomes "active" when clicked in, but you can handle that by sharing
an IDCMP port among all your windows, which has been the subject of past
postings.  A little known feature: the MouseX, MouseY, GZZMouseX and GZZMouseY
fields of each and every window are kept up to date with each input event, so
you won't even need to translate your coordinates.  You might even put gadgets
in your status window(s) to perform control functions.  That way your drawing
window (the backdrop) can be SuperBitmap, with all control gadgets and stuff
in one or more borderless(?) regions which are actually Windows.

I would advise against creating layers in Intuition screens yourself.
(Intuition uses WhichLayer() to resolve select button picks.  Can you
guess which Guru Meditation number this could result in?)

>Must I manage everything myself?
Hopefully, you have that option.

>In menus, how does one get Intuition to toggle the check mark of an item?
>Setting MENUTOGGLE with or without CHECKIT doesn't do it: with, the item is
>always checked after it is first selected, without, the item is never
>checked.
MENUTOGGLE is not a supported feature in release 1.1.  It is high on the 
list for future releases.  The CHECKIT feature is typically used in conjunction
with MutualExclude, or as in Notepad (for correct but weird reasons) one
can modify menu item flags manually (this requires careful reading of the
Intuition manual, and probably some experimentation).

>Thanks for any help.
Thanks for trying fancy stuff.

>    Bob Bales
>    Tektronix, Inc.Subject: observation and questions

jimm (The Intuitive Guy)