UMG button pressed fills up progress bar

You can add 3 different events for a button. One handles Click and Release and the other 2 are for pressing and for releasing.

So you could take the Pressed Event to set a bool to true and the Released event to set it back to false.

And then you use a timeline that goes from 0 to 1 in X seconds (that depends on you) and the finished exec will call the TakeAll Function.
If you release the button, and the bool is false, you just revert the TimeLine.