I'm sure there's a slick way to do this, but after doing battle with AceGUI for a few hours, it's eluded me.
What I want to do is have a container frame with two scrollframes inside. The scrollframe on the left will contain a simple list of data (labels), and when one is clicked, the scrollframe on the right will be populated with data (labels) about that item. I've managed to put all that together. My issue is sizing the two scrollframes to fill the container frame. If I set the container layout to "Flow" and then set each scrollframe with a static height/width, they're visible, but of course resizing the container frame doesn't resize them. And the "Fill" layout will obviously only take the first scrollframe added, rendering the other one invisible.
What I want is two scrollframes, side by side, that fill the height of the container, but share the width equally. Is there an easy way to do that with AceGUI, or an obvious way to do it by manipulating the underlying frames that the widges wrap?
Yes, actually, TreeGroup is perfect. When I was reading through the widget code, I sort of dismissed that one out of hand because I'm not making a tree of anything. But as long as I don't nest any of the tree elements, it works perfectly for my needs. Thanks for the pointer!
The way to do this (if the tree doesn't work out) would be to register a custom layout and use that.
They are designed to be added to the same as widgets, the 3 that come with AceGUI are just the base ones I needed for AceConfigDialog.
Heres a drycoded example (basically a copy of the "fill" layout with a few tweaks)
--anchor the first 2 controls to have full height and 1/2 the width each
--Make the name unique to avoid clashes if another addon has a slightly different idea of what a 'Split' layout is
local width = content.width or content:GetWidth() or 0
local height = content.height or content:GetHeight() or 0
local controlWidth = width/2
if children and children then
safecall( content.obj.LayoutFinished, content.obj, nil, children.frame:GetHeight() )