a customizable dialog widget