Does anyone have a quick and easy way to determine where the VISIBLE topLeft of the user's screen is? - I mean, the Macintosh menubar takes a couple of dozen pixels, I think, so if we set a stack's topLeft to 0,0, we end up with its top 'chopped off' by the menubar.
I know that other operating systems (ie, Linux) can have menu (and other types of) bars across the top - and bottom - of the screen, too...
Is there a generic way to find out where the VISIBLE' top/bottom of the screen is? - so that we can create stacks that 'snap' to the top or bottom edge of the screen...
Hi Ivor
I don't think there is a universal quick and easy way: there is also the issue of whether you want to refer to the top left of the titlebar of your window, or the top left of the actual window contents. Although this may not after all be what you're looking for, FWIW I have the following info, which comes out of an app I've written that wants to use all the available space without bumping into title bars, toolbars, menubars etc. The workable rectangle (i.e. the part of the screen you can use to write pixels into) is generated in the variable gMyRect:
-- The WindowBoundingRect is set by default to avoid the toolbars and stuff on the screen
-- but it seems we have to do our own calculations to make room for the window's title bar
-- and side and bottom decorations. This table was created by experiment:
-- OS Platform SystemVersion Title Bar LeftSide RightSide Bottom
-- Windows 95 Win32 4.0 24 4 4 4
-- Windows 98 Win32 4.10 24 4 4 4
-- Windows XP Win32 NT 5.1 30 4 4 4
-- Mac OS 9 MacOS 9.2.2 22 6 7 6
-- Mac OS X MacOS 10.2.6 22 1 1 1
--
put the windowBoundingRect into gMyRect-- left, top, right, bottom
put the SystemVersion into SClSysVer
if the platform is "Win32" then
-- in principle the user can alter the height of the title bar
-- thanks to Ken Ray and Jan Schenkel for explaining this technique
put "HKEY_CURRENT_USER\Control Panel\desktop\WindowMetrics\CaptionHeight" into SClRegKey
put queryRegistry(SClRegKey) into SClCaptionHeight
put abs(SClCaptionHeight DIV 15) + 5 into SClTitleHeight
add SClTitleHeight to item 2 of gMyRect
add 4 to item 1 of gMyRect -- left edge
subtract 4 from item 3 of gMyRect -- right edge
subtract 4 from item 4 of gMyRect -- bottom
else
if the platform is "MacOS" then
set the itemDelimiter to "." -- versions are of the form "x.y.z"
if item 1 of sclSysVer >= 10 then -- it's OSX
set the itemDelimiter to ","
add 22 to item 2 of gMyRect -- top
add 1 to item 1 of gMyRect -- left
subtract 1 from item 3 of gMyRect -- right
subtract 1 from item 4 of gMyRect -- bottom
else
set the itemDelimiter to "," -- it's an earlier MacOS
add 22 to item 2 of gMyRect -- top
add 6 to item 1 of gMyRect -- left
subtract 7 from item 3 of gMyRect -- right
subtract 6 from item 4 of gMyRect -- bottom
end if
-- we assume that Unix doesn't get a look in
end if
end if
set the windowBoundingRect to gMyRect
set the rectangle of this stack to gMyRectHTH
Graham
---------------------------------------------------
Graham Samuel / The Living Fossil Co. / UK & France
_______________________________________________ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
