Basic 'tool' infrastructure for mouse input