forked from: TundereButton

