Include file:
this class (or something derived from it) is supplied to the constructor of an OverlayEditor (or any class derived from an OverlayEditor). The idea behind OverlayKit is it facilitates a much more flexible construction of an OverlayEditor, the central object in any ivtools drawing editor, by allow the use of virtual functions during the construction. Normally virtual functions can't be used by a constructor, but virtual functions on a pre-constructed helper class, like OverlayKit, can be used.
In this way other classes can be derived from OverlayKit with different virtual methods for initializing the pull-down menus and toolbars, and can completely change the appearance and functionality of essentially the same OverlayEditor.
Another feature of the OverlayKit idea is it solves the problem of what to do when a particular vertical application wants to use the features of two different derivations of an OverlayEditor. Prior to OverlayKit you would need to use multiple-inheritance, which can have problems, or permanently decide on the ordering of one derived editor relative to the other, which may be undesirable in future circumstances. With an OverlayKit it is easier to mix and match the desirable features of one lineage of derived OverlayEditor classes with the features of another lineage, pushing capability as needed from the editor to the kit.
There is support for a default OverlayKit for use when constructing an
OverlayEditor. In general any editor-specific state should reside in
the editor, not the kit, but this is not a hard-and-fast rule.