Intuition basic structure
Source position: intuition.pas line 2660
type tIntuitionBase = record |
||
LibNode: tLibrary; |
|
Standard Libnode |
ViewLord: tView; |
|
|
ActiveWindow: pWindow; |
|
Currently active Window |
ActiveScreen: pScreen; |
|
Currently Active Screen |
FirstScreen: pScreen; |
|
for linked list of all screens, the FirstScreen variable points to the frontmost Screen. Screens are then maintained in a front to back order using TScreen.NextScreen |
Flags: LongWord; |
|
values are all system private |
MouseY: SmallInt; |
|
Current Mouse position |
MouseX: SmallInt; |
|
|
Seconds: LongWord; |
|
timestamp of most current input event [s] |
Micros: LongWord; |
|
The data beyond this point has changed, is changing, and will continue to change. |
end; |
It is sometimes necessary to examine the IntuitionBase structure. Items such as the address of the active screen and window, current mouse coordinates and more can be found there. It is never a good idea to simply read these fields, as they are prone to sudden change. The IntuitionBase structure must always be locked before looking at its fields.
It is necessary to inform Intuition that an application is about to examine IntuitionBase so that Intuition will not change any variables and IntuitionBase will remain static during the access. The call LockIBase(0) will lock the state of IntuitionBase so that it may be examined. During the time that the application has IntuitionBase locked, all Intuition input processing is frozen. Make every effort to examine IntuitionBase and release the lock as quickly as possible. When done call UnlockIBase(lock) where lock is what LockIBase(0) returned.
The values in IntuitionBase are read-only. Applications should never write values to IntuitionBase.