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

Reply via email to