XXX: add IS_BUTTON()