Thanks guys. Ending up using this as I need separate events for up and down. I was fooling around with various ways of doing this using mousestate but I couldn't get the timing right. Using gate sorts that out.
Requested noted, but ubutton doesn't do everything that textbutton does either, they are just different objects. Welcome to the world of UI design. One person's annoyance is another person's fantasy and vice versa.