Hi Martin,

I've added the `HeaderBar.overlappingSystemInset` property, which
controls whether the window buttons take up space in the layout.
Setting this property effectively ignores the system inset for layout
purposes.

In your example, you could now place one layout container in the
"leading" area, and another layout container in the "center" area, and
assign different backgrounds to them.

Does this solve your use case?



On Fri, Nov 15, 2024 at 10:09 PM Martin Fox <mar...@martinfox.com> wrote:
>
> Michael,
>
> On the Mac a common UI layout is to have a splitter view that extends to the 
> top of the window with separate toolbars in each panel. Have you given any 
> thought on supporting this layout in an EXTENDED window?
>
> (I realize this is a Mac thing; Apple loves their sidebars. Microsoft dabbled 
> with this design language but it seems to be fading away. I have seen it in a 
> few Windows apps like 1Password.)
>
> In UIKit Apple implements this using separate views. The equivalent in JavaFX 
> would be to add a separate HeaderBarBase object to the top of each panel in a 
> SplitPane. That would require supporting multiple HeaderBarBase instances and 
> providing an API to tell one to ignore leftSystemInset or rightSystemInset 
> (or both). I like this solution since it allows the background visuals for 
> each header bar to be customized.
>
> The way Apple shoe-horned this into the older AppKit is a bit less elegant. 
> There’s still one NSToolbar that spans the entire window. A developer can add 
> special items to the toolbar that track the dividers in an NSSplitView. I 
> would let developers roll their own solutions if they want that design. 
> Replicating that in JavaFX wouldn’t require any alterations to the 
> HeaderBarBase class and it’s too specialized to be added to HeaderBar.
>
> Martin

Reply via email to