I always liked how Flash automatically scales the interface with its vector graphics, and wondered how painlessly it could be implemented in Max. It takes more work, but not that much, and it definitely adds possibilities. Being able to scale a control patch bigger and smaller (when you want finer control of objects, or just want it out of the way but still be usable without scrolling) should help with the eternal screen space dilemmas we’ve all had.
It uses pattrs that are bound to the patching_rect attribute. The only fiddling necessary is scaling the objects to the right spots for the minimum and maximum patch window size (using Scale Spacing can be great for this), and conversely, matching the window size commands to the objects. Then the pattr does all the interpolation.
It will work for most objects, though some scale differently (preset, matrixctrl, etc.)
You’ll need the .xml file with the patch so it can load the two storage slots (1 and 2). The slider at top left will interpolate between these. There are some help popups to explain how it works.
Another option for resizing would be making the interface in OpenGL, which could look really great, but it would take time as well… getting the mouse coordinates to track the window size and match the scaling of the UI objects in the GL scene. No doubt it’s straightforward arithmetic eventually, but getting there would take a bit of fiddling too. I wanted a solution that used standard Max objects and could take advantage of Scale Spacing, or being able to put anything wherever you want, whatever size you want.