The history of EZKnob

I am wondering about the history of the EZ-family vs. the ‘normal’ GUI stuff, like EZKnob vs. Knob.

With the normal GUI elements one can create the element with no view (nil) specified and then later place the elements in a layout, but that does not work for e.g. EZKnob, as view = nil results in a view being created for you:

k = 5.collect{ Knob() };
View().layout_(HLayout(*k)).front // What I usually do

k = 5.collect{ EZKnob() }; // does not work, 5 independent views are created instead
View().layout_(HLayout(*k)).front // this fails

In general (unless I am missing something) the EZ-family cannot be used with HLayout, VLayout etc., only FlowLayout. Is that because FlowLayout and EZ predates HLayout, VLayout etc? I have not looked into the EZ code yet, but I am curious if it would be possible to make a wrapper around a StaticText, a Knob and a NumberBox (like EZKnob) which would work with HLayout, VLayout etc. Or maybe one already exists?

Yes, HLayout etc. came with the Qt gui which was added long after FlowLayout and EZ classes which (if I remember rightly) have been in SC at least since SC3 was released.

You can roll your own EZ Sliders, etc. These are not meant for public consumption, but I did some here:

Maybe a good example of how to do it, though these are really only meant for my software and do what i want them to do.


Thanks, that will be of great inspiration. I haven’t looked at your code yet but I was messing around with writing a function returning something similar to EZKnob and it seemed quite doable to make a wrapper which also has has the advantage of letting me cherrypick my arguments - the EZKnob has so many I never use.

Thanks, that is nice to know and I will just create my own wrappers instead of using the EZ class.