1 CAPI Reference Entries
text-input-paneis a pane for entering a single line of text.
The position of the caret in the text (from 0).
The maximum number of characters allowed.
A function called when the user completes the input by pressing tab.
The type of arguments to the callback.
A function called when a change is made.
A function called to validate a change.
text-input-paneprovides a great deal of flexibility in its handling of the text being entered. It starts with the initial text and caret-position specified by
:caret-positionrespectively, and limits the number of characters entered with the
:max-characterskeyword (which defaults to
nil, meaning there is no maximum). The pane can be enabled and disabled with the accessor
completion-functioncan be specified which will get called when the completion gesture is made by the user (or pressing the Tab key). The function is called with the pane and the text to complete and should return either
nil, the completed text or a list of possible completions. In the latter case, the CAPI will prompt the user for the selection they wish and this will become the new text.
change-callbackis called with the text, the pane itself, the interface and the caret position. The arguments that are passed to the callback can be specified with the
confirm-change-functionwhich gets passed the new text, the pane itself, its interface and the new caret position, and which should return non-
nilif it is okay to make the change. If
nilis returned, then the pane will be unaltered (and a beep will be signalled indicating that the new values were invalid.
before-change-callbackin LispWorks 3.1. Both the old initarg and the old accessor are still supported, but may not be in future releases.
(capi:contain (make-instance 'capi:text-input-pane :text "Hello world"))
(setq text-input-pane (capi:contain (make-instance 'capi:text-input-pane :enabled nil)))
(setf (capi:text-input-pane-enabled text-input-pane) t) (setf (capi:text-input-pane-enabled text-input-pane) nil) (setf (capi:text-input-pane-text text-input-pane) "New text")
(capi:contain (make-instance 'capi:text-input-pane :max-characters 10))
(capi:contain (make-instance 'capi:text-input-pane :text "Hello world" :callback #'(lambda (text interface) (capi:display-message "Interface ~S's text: ~S" interface text))))
Generated with Harlequin WebMaker