changed button call back

now button call back pass self, and button need a name