[Lazarus] Patch for improved window layout
Kostas Michalopoulos
badsector at slashstone.com
Sun Mar 1 05:37:59 CET 2009
> 2009/3/1 Kostas Michalopoulos <badsector at slashstone.com>:
>> 1. The component bar ("MainIDEBar")'s height is calculated to match the
>> contents and current window size.
> This is a good idea in general, however your patch IMHO has some flaws,
> which I'll list in order from least to most significant:
> 1) CalcMainIDEBarHeight function has inconsistent indenting and no
> try-finally block
I'll check it.
> 2) I am not sure how this code takes into account MainMenu height
It doesn't. It seems the menu is considered as a part of the frame so its
added transparently when the SetBounds is called.
> 3) It certainly does not take into account possibility for more than a
> single row of components
> on the tab (which, I presume, was the main reason for original large
> height).
The original large height wasn't large enough to show two rows. But I don't
have encountered a computer that even fills the component bar. Although by
resizing it I saw that the components simply disappear, which I think isn't
a good idea. I believe the best would be to scroll (like in Delphi - ideally
they would fill the available horizontal/vertical space and scroll for the
rest) or at least have a visual clue that there are more components.
> Perhaps a better suggestion would be to measure sizes of real components,
> instead of creating a fake ones.
Initially I thought this, but the problem is that the real components are
aligned so their sizes mean nothing.
>
>> 2. Line up the windows so they don't appear inconsistent and they don't
>> overlap each other.
>> 3. Make the default new form size to cover a large area made up of the
>> area
>> left by the object inspector, the main bar and the messages window.
>> 4. Resize the source editor window to be smaller than the default new
>> form
>> size but similar in aspect.
>
> These are merely a tweaks for magic constants.
> I have nothing against it, but I think this is, at best, a workaround
> until docking code is finished.
They make Lazarus look better now at least :-).
Kostas
More information about the Lazarus
mailing list