Proportional Gadget
Source position: intuition.pas line 530
type tPropInfo = record |
||
Flags: Word; |
|
General purpose flag bits (e.g. AUTOKNOB, FREEHORIZ, FREEVERT, PROPBORDERLESS, KNOBHIT or PROPNEWLOOK) |
HorizPot: Word; |
|
16-bit FixedPoint horizontal quantity percentage |
VertPot: Word; |
|
16-bit FixedPoint vertical quantity percentage |
HorizBody: Word; |
|
horizontal Body |
VertBody: Word; |
|
vertical Body |
CWidth: Word; |
|
Container width (with any relativity absoluted) Intuition sets and maintain |
CHeight: Word; |
|
Container height (with any relativity absoluted) Intuition sets and maintain |
HPotRes: Word; |
|
Horizontal pot increment |
VPotRes: Word; |
|
Vertical pot increment |
LeftBorder: Word; |
|
Left Container border |
TopBorder: Word; |
|
Top Container border |
end; |
You initialize the Pot variables before the Gadget is added to the system. Then you can look here for the current settings any time, even while User is playing with this Gadget. To adjust these after the Gadget is added to the System, use ModifyProp() The Pots are the actual proportional settings, where a value of zero means zero and a value of MAXPOT means that the Gadget is set to its maximum setting.
The 16-bit FixedPoint Body variables describe what percentage of the entire body of stuff referred to by this Gadget is actually shown at one time. This is used with the AUTOKNOB routines, to adjust the size of the AUTOKNOB according to how much of the data can be seen. This is also used to decide how far to advance the Pots when User hits the Container of the Gadget. For instance, if you were controlling the display of a 5-line Window of text with this Gadget, and there was a total of 15 lines that could be displayed, you would set the VertBody value to (MAXBODY / (TotalLines / DisplayLines)) = MAXBODY / 3. Therefore, the AUTOKNOB would fill 1/3 of the container, and if User hits the Cotainer outside of the knob, the pot would advance 1/3 (plus or minus) If there's no body to show, or the total amount of displayable info is less than the display area, set the Body variables to the max. To adjust these after the Gadget is added to the System, use ModifyProp()