This patch adds a new type of reusable UI components. Searcher Windows
contain a text field to enter a search keyword and a list of scrollable
matches are presented. The target match can be selected and executed
which invokes a user callback to do something with the match.
This patch also adds one searcher delegate, which wraps the common
command completion searchers for simple use cases.
Should we be doing just like any other dialog that we have created and be constructing these items on the fly?
It seems the matches could use a modified ChoicesField for the matches? Are you currently drawing the choices (matches) manually?