sqInt ioScreenSize(void)
Parms: NONE
return:
(w < < 16) | (h & 0xFFFF); From: Interpreter
Why:
To get size of screen. However this really is the size of the display surface within the operating system window.
Not the size of the physical screen.
Responsibility:
Get the saved window size
If there is no screen by default it returns ((16 < < 16) | 16), or some other number.
MacIntosh
os-9/OSXCarbon
Handle case of being tied to a browser window, since we must report the browser's frame size that contains the squeak window.
If there is no window set, and the user must not explicitly open the window (global in info.plist)
, then make the new window. if the user has to explicitly open a window, then return the saved window size from the image data.
Cocoa:
Same logic as the iPhone, we get the bounds of the mainView which is attached to window with index of 1.
iPhone
The iPhone currently supports only one window, the screen size is the bounds of the mainView which could be the size of the device minus the status bar, or the size of a scrolling window view if the vm is configured to use a scrolling view, which usually is 2x the device screens size.
Unix
Asks the diplay logic for the size of the window, or returns ((64 < < 16) | 64) if headless
Windows
returns the GetClientRect of the browser or native window, if iconified then return size remembered from last call.
BUGS
For multiple host windows we infer which window based on which window is active. Obviously you need to use the proper primitive to get the window size, not the screen size