AFAIK, yes. At least I haven’t seen any other possibilities. You can add buttons to it and assign tap handlers to them, but only (as you said) for medium and large widgets. For small widgets, you only have a single tap handler for the whole widget, you can’t assign individual ones to buttons.
There’s a whole bunch of widget examples out there, also with tap handlers.