|
From: | Quentin Mathé |
Subject: | Re: [bug #17377] Various frame related methods in NSWindow return wrong results |
Date: | Wed, 16 Aug 2006 11:53:37 +0200 |
Le 15 août 06 à 19:20, Richard Frith-Macdonald a écrit :
On 11 Aug 2006, at 13:37, Fred Kiefer wrote:Follow-up Comment #5, bug #17377 (project gnustep):The code we have there in the different decorators is there on purpose. When Alexander Malmberg implemented the window decoration handling inside of GNUstep gui he wanted to end up with things right the way they are now. I remember there was documentation for all of this, but I cannot find it at the momenet. The main thing was that Alex came up with three rectangles whereOpenStep only has two, contentRect and frameRect. The third one beingscreenRect, which is the actual space on the screen occupied by the window. Including the window decoration, from what ever source it is coming. For thedifferent decorators two of these three rectangles are identical, but different ones for the different decorators.I would think that you should get the values you are aiming for by using the screenRect methods instead of the frameRect methods. But this would make yourcode incompatible to code for Cocoa or OpenStep.As far as I can tell this screenRect code does not get used anywhere. Perhapsit would be better to reconsider the whole interface.As far as I can tell without going into great detail, Alexander's basic idea seems entirely reasonable.
I agree on this point.
The contentRect should be the rectangle of the window's content view (ie where the user is allowed to draw) ... as in OpenStep/MacOS-X
True on GNUstep also.
The frameRect should be the rectangle that the window occupies on the screen ... as in OpenStep/MacOS-X
It's not always the case with GNUstep, it can be the contentRect.
The screenRect should be the rectangle of the decoration view ... either the same as frameRect if the gui is drawing decorations, or the same as contentRect if the backend windowing system is doing it.
screenRect is always the frameRect at this time.
What I'm not sure is whether the code actually does it that way.
It doesn't.However what you propose seems better than the current terminology. I still think we can find a better term than screenRect. May be backendRect?
Quentin. -- Quentin Mathé qmathe@club-internet.fr
[Prev in Thread] | Current Thread | [Next in Thread] |