Accordion Panels as a GUI feature
Is there a way to create expandable "accordion" elements in a Max/MSP GUI?
I'm not aware of any object or feature for doing that, exactly. I think you could do a DIY version with bpatcher and thispatcher objects.
Are you aware of the "Show on Parent Patcher Tab" option in the Patcher Inspector? Using that feature you can have each supbpatch (patcher object or abstraction) appear as a separate tab (selectable screen) within a main patcher window. That might be an acceptable substitute for you.
ive tried it with bpatcher but not luck . thispatcher does not respond on messages for me (targeted into patcher/bpatcher):/ (never bothered before so maybe im doing something wrong)
Hi mate. A fellow user (“DO...WHILE”) mentioned the JSUI object in a related post – I haven't used it myself, but perhaps that could be of use?
His example video appears to show an accordion type menu:
yes thanks FEN .
Actually with that hardcore JSUI approach its all possible , but i dont think people want to make such effort with building things from ground up this way . would be cool for them to achieve similar effects with bpatcher and menus .
Here's another approach to tabbed interfaces using a single subpatch (with animation):
Is this approaching what you want? I'm sure there are more elegant ways of achieving it, but it's a start:
You'd need to ensure that clicking a new item closes the one already open. Perhaps you could also target the alpha channels of the gui elements inside the bpatchers so that they fade in and out (or better still, a panel placed over them that matches the background colour). Hope this helps.
Sorry Christopher – I posted my previous comment before noticing yours. That's a very focused solution.
if not bpatcher, then maybe just a bunch of windows.
Thanks everyone. Chris's example is basically exactly what I was thinking of. I haven't yet figured out how that example works, but from a cursory look it seems quite amazing to me! As it happens though, I want to use these accordions within the kind of scrolling bpatcher that FEN first suggested above. (It's a very large and complex GUI.) I guess this is technically possible, but it would require bpatchers nested four layers deep! At that point I think working out all the local send and receives might be more work than it's worth... I wish there were more externals available to do this kind of thing!
Thanks again. - Daniel