Widget messages are generated by Widgets in response to user actions. Messages have a name
, an optional primary parameter
, and one or more optional named parameters. These messages travel up the widget tree where they are handled by ancestor widgets or the core itself.