add interface for widget custom size