[ASAP!] What is a widget?

1. a part of a GUI that allows a specific type of interaction with the user
2. an action taken by the user or a process, such as a user clicking a mouse or pressing a key on a keyboard
3. an algorithm for handling an error
4. a part of a program that responds to an event​