[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