Frames that contain active controls and informational controls are described in System Controls. These are the active controls that cause an action to occur when they are pressed, and they contain an identical line of JavaScript in their event handlers.
ActiveDocument.Sections[txlMe.Text].Qiq_onControlClick(this.Parent,this)
(In some template versions, ActiveSection replaces this.Parent. This does not affect the execution of the code).
QIQ_onControlClick examines the name of the control (this.Name) and calls the handler to deal with it. The process of finding the handler is listed:
Standard controls that contain names and handlers are called based on the control name that was clicked. If the name is recognized, the process ends and the remaining steps are ignored.
If the name is not recognized, the control is split on the (^) and passed to the Quick Filters handler. It handles controls with names in the form <filter_name>^qiq<suffix>. If the control is recognized, it is processed and the remaining steps are ignored.
If the handler does not recognize the control, an attempt is made to locate a plug-and-play component (a section of FrameType 1020), by splitting the control name on the (^). For example, some_name^class_name^suffix which returns a component name “class_name”.
If the name of the control cannot be split, or a FrameType 1020 cannot be found, the framework looks at txlClass.Text. It uses txlClass.Text to locate a section of FrameType 1020, and makes the call:
ActiveDocument.Sections[txlClass.Text].Qiq_onClick()
If that fails, processing is completed without useful results.
This method provides a low overhead mechanism for incorporating external functionality into the standard frames. The advantage of being part of the framework includes facilities for floating comment and language handling.