In the button-box mode, the software presents an interactive graphical interface. Instead of writing out the note, the user may select note fragments by tapping buttons. To switch from contextual mode to button-box mode, a green radio button indicator is displayed below the completion button when the software is confident about the user's syntax. If the user taps this indicator, the existing text is removed, and the corresponding buttons in the button-box interface are selected. As the user selects additional buttons, the interface dynamically expands to reveal additional choices. Because the interface reflects an improving syntactic representation, it also improves with successive notes.
The button-box interface is a direct presentation of a finite-state machine. After the user has written out a token or so of the note, the software finds the FSM that best parses these tokens. The mode switch is presented if the syntax is sufficiently mature - if the average number of times each state has been used to parse earlier notes is greater than 2. If the user selects this indicator, the FSM is incrementally rendered as a set of radio buttons and check boxes.
The two user interface item types correspond to optional choices (check boxes) and exclusive choices (radio buttons). Mapping a FSM into these two item types proceeds one state at a time. Given a particular state to be rendered, any transition that starts a path that does not branch and eventually returns back to the state is rendered as a check box (a loop). The loop corresponds to syntactically optional information. The label for the check box consists of each of the transition labels along the looping path. Other non-looping transitions are rendered as buttons in a single radio button panel along with an extra, unlabeled button. They correspond to syntactically exclusive information. The label for each radio button consists of each transition label up to the point of a subsequent branch or termination. For example, compare the FSM depicted in Figure 7 and the corresponding button-box interface in Figure 3.
Because the transitions for different radio buttons lead to different parts of the FSM, it may confuse the user to render the entire FSM at once. So, each branching state is rendered as it is visited. Initially, the first state in the FSM is rendered. Then, when a radio button is selected, the branching state at the end of its transition path is rendered. Note that check boxes do not trigger additional rendering because the branching state at the end of their loop has already been rendered. This interactive process is repeated as long as the user selects radio buttons that lead to branching states.