Refactoring of ButtonWidget
ButtonWidget now supports a Drawable icon