[Lazarus] Toolbar divider issues

Vojtěch Čihák vojtech.cihak at atlas.cz
Sun Nov 9 19:01:43 CET 2014


Hi,
 
CalcPreferredSize is called only when Autosize is True, it's not this case.
 
Furthermore, I found this code in Componenteditors.pas in
procedure TToolBarComponentEditor.ExecuteVerb(Index: Integer);
around line 1255:
 
if NewStyle = tbsDivider then
  NewToolButton.Width := 3; 
 
IMO if default with of divider was 5 before that patch then there is something wrong elsewhere.
 
About changing orientation from horizontal to vertical:
I will look at it, frankly, I never used vert. toolbars so I didn't test it.
 
Thanks for pointing it,
 
Vojtěch 
______________________________________________________________
> Od: Giuliano Colla <giuliano.colla at fastwebnet.it>
> Komu: Lazarus mailing list <lazarus at lists.lazarus.freepascal.org>
> Datum: 09.11.2014 17:41
> Předmět: Re: [Lazarus] Toolbar divider issues
>

Il 09/11/2014 15:04, Vojtěch Čihák ha scritto:
>
> Hi,
>
> with this code:
>
> procedure TToolButton.SetStyle(Value: TToolButtonStyle);
> begin
>   if FStyle = Value then exit;
>   FStyle := Value;
>   if Value = tbsSeparator then Width := 10;
>   if Value = tbsDivider then Width := 5;
>   InvalidatePreferredSize;
>   if IsControlVisible then
>   UpdateVisibleToolbar;
> end;
>
> It now does deault 10px separators - both design-time and code
>
> and 5px dividers from code but still 3px dividers at design-time.
>
> EditorToolBar looks better now. I'll find solution and I'll send a 
> patch to bugtracker.
>

If you look into the matter, please do not forget that a toolbar can be 
either horizontal or vertical.

 From TToolbutton.CalculatePreferredSize:

...
     if Style = tbsDivider then
       if FToolBar.IsVertical then
         PreferredHeight := 5
       else
         PreferredWidth := 5
     else
     if Style = tbsSeparator then
       if FToolBar.IsVertical then
         PreferredHeight := 10
       else
         PreferredWidth := 10;
   end;

In an ideal world, if the user doesn't set a different width or height, 
the preferred values should go into effect, in any configuration, for 
any visual component.
But in a toolbar there's another constraint: if it's horizontal all 
buttons must share the same height, it it's vertical all buttons must 
share the same width, overriding some of the user settings.
That's what makes it a little bit tricky.

Giuliano

-- 
Giuliano Colla

Project planning question: when it's 90% done, are we halfway or not yet?


--
_______________________________________________
Lazarus mailing list
Lazarus at lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus <http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20141109/df4d9bf3/attachment-0003.html>


More information about the Lazarus mailing list