Welcome, Guest. Please login or register.

Author Topic: dowdy old 3.1 zoom gadget question  (Read 1967 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline peroxidechickenTopic starter

  • Full Member
  • ***
  • Join Date: Apr 2002
  • Posts: 170
    • Show only replies by peroxidechicken
dowdy old 3.1 zoom gadget question
« on: June 16, 2003, 12:21:08 AM »
Before I get started, I sticking with 3.1 even if this is a non-issue for the later OSs.  I'm trying to put a simple, graphical interface together and I've gotten very side-tracked into zoom-gadget functionality.  I know a window can be sized and moved with calls to intuition but can the window fields for the zoom co-ordinates be changed (legally or illegally) after the window has been opened?  

I'm using assembler because...  I can.   :-)  And, just in case you're wondering - if you're also of the belief that clicking the zoom gadget after moving the window zooms the window back to the old top-left co-ordinates is undesired window behaviour, that's why I'm bothering to toy with live system structures.  

Any comments or help will be appreciated.  
H2O2
 

Offline peroxidechickenTopic starter

  • Full Member
  • ***
  • Join Date: Apr 2002
  • Posts: 170
    • Show only replies by peroxidechicken
Re: dowdy old 3.1 zoom gadget question
« Reply #1 on: June 17, 2003, 09:05:22 AM »
At the risk of talking to myself, I found out what I needed to know.  It seems that a window structure is actually a little bigger than the RKMs say.  There are 4 word-sized fields 140 bytes (give or take) from the start of a window structure that hold the windows zoom coordinated - and the 4 word fields before that are where the non-zoomed coordinates get saved to.  

Expect to see an annoying little application of limited functionality some time whenever.   :-)
H2O2
 

Offline Thomas

Re: dowdy old 3.1 zoom gadget question
« Reply #2 on: June 17, 2003, 10:56:47 AM »

The zoom button swaps the current and an alternate position maintained by Intuition. You can use the WA_Zoom argument to initialize the alternate position. If you do not give WA_Zoom, the alternate position is equal to the initial one, causing the behaviour you described above.

You must not write to system structures. Especially not into fields that are not documented. They may no longer be there in future OS versions.

Bye,
Thomas