A canvas widget