Most of your points are differences of style and preferences; I agree with some of the suggestions, but to each his own.
With respect to start vs. OnCalculate, I myself don't mind using either one, but jeanlouis' comment about pre-600 syntax prompted me to switch, even though to me it makes no difference. Does it make porting to MT5 any easier? I don't use MT5 so I don't yet care.
Regarding initializing as "OFF", I did not intend to leave in the optional line that did that. That was a mistake as I rushed to post before going out. Now I've added a variable to control it, defaulting as "ON".
Regarding the button in the main window rather than the sub-window, that was the original requestor's preference.
Attached is my latest, and last, update (v1.4) of the VIX indicator with the button defaulting as "ON", and the 'Auto_Adjust_Window_Height' now defaulting as 'true' (Easily changed back to false if desired).
Regarding your suggestion to try a 2-button code example, I don't see why it would be difficult, but indeed I do not have any more time for this topic.
The point of 'adjustWindowHeight()' (controlled by 'Auto_Adjust_Window_Height', which is now 'true') is to minimize the height of the sub-window whenever the button is pushed OFF, yet restore it (to an initially fixed value) when ON. Furthermore, by providing a fixed height value control, it is possible to always initialize the sub-window height to some desired size, whereas without it, it often takes up a fairly large percentage of the total chart window size. If you find that you're usually changing the initial sub-window size, this feature might come in handy, but there are some disadvantages, namely that the initial height is fixed in pixels, regardless of the size of new chart you open. Therefore it may be too big or too small. However, it is still mostly adjustable. (There is some strange MT4 bug behavior that might interfere with dragging the sub-window upper-edge up or down; go back to 'false' if it you prefer).
Lastly, the benefit of using "recalc" as I had done in an earlier version is that when turning the button from OFF-to-ON, it instantly updates the chart without requiring any new tick. Your latest version of Zigzag still does not do that. It won't update until there's a tick.
Attached File(s)