implement widget event, and Popup widget