widget shape implementations continued