Base control for text input