Added Button types (TOGGLE and PRESS), and added if the button should do its callback when pressed, or released (if when PRESSED button will do its callback until released).