[haiku-commits] Re: haiku: hrev45588 - src/kits/tracker

  • From: Jessica Hamilton <jessica.l.hamilton@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 1 May 2013 03:26:38 +1200

>  3a12979: FindPanel: Set the MIME type field to fixed width
>>>>
>>> [...]
>>>
>>>> +  fMimeTypeField->**SetExplicitSize(
>>>> +          BSize(be_control_look->**DefaultItemSpacing() * 20,
>>>> B_SIZE_UNSET));
>>>> +          // ResizeMenuField() makes fMimeTypeField too wide.
>>>>
>>> I'm not sure if it's actually honored, but what about
>>> SetExplicitMaxSize()
>>> instead?
>>>
>> I don't want this menu field to adjust its width based on its contents
>> because
>> that would alter the width of the window so I need to do both
>> SetExplicitMinSize and SetExplicitMaxSize.
>>
>
> Do you mean resize in general, or only if a menu item gets chosen?
>

My original design was such that choosing a menu-item wouldn't cause the
window to resize, so that the behaviour would be as similar to the
FindPanel before the use of the Layout API. This is what ResizeMenuField
does (loops through all menu items, finding the longest string).

However, in some circumstances, the mime type menu field ends up
unreasonably large, so John has chosen a fixed size that should be
sufficient for the general case, with only very large menu item text
(presumably) getting clipped.

An alternative might have been to pass a maximum to ResizeMenuField, so
that width = std::min(maximumAllowedWidth, width);

Jessica

Other related posts: