High level user interface componets such as scroll bars, menus, dialog boxes, buttons, etc. are known as widgets. Most X programmers use widgets because most of the tedious programming has already been done by the widget creator. The programmer simply has to assemble them as required and write the code which will be invoked in response to events within them.