Il 26/09/2014 13:03, Luca Olivetti ha scritto:
I was looking for a (hopefullyuuuuu) cross platform way to know the
whole size of a window, including its decoration and I found this:
http://lazarus-ccr.sourceforge.net/docs/lcl/lclintf/getwindowsize.html
the documentation on that page reflect what I see on the tooltip in
lazarus (1.2.4), *but* the implementation (at least win32) actually
removes the size of the borders and the caption.
Is the documentation wrong or is it a bug?
Btw: GetWindowRect returns the whole size in windows but not with gtk2.
AFAIK getting the whole size of a window, decorations included, in a
general way, is almost hopeless.
The entity taking care of providing borders and decoration is the window
manager, something neither the compiler nor the widgetset are aware of.
On a given platform you may change your window manager and run the same
program seamlessly.
Each window manager would require a specific implementation to provide
the information, and the application should obtain the information about
the window manager in use, to use the appropriate function, provided the
platform makes it possible.
On Windows the task is somewhat easier, because there's just one window
manager, but it may change from one version to the next. What works with
Vista may not work anymore under Windows 7 or Windows 8. I tested the
GetWindowRect function with the last stable Lazarus version in an old
Windows XP VM, and it returns just the window client area, like it
happens under Linux both with gtk2 and Qt.
Giuliano
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus