Look at List Widget with Radio Button List View, and when custom it's checked, just show a TextBox where to ad the custom value, for the other values hide the text box, and bind selectedValue to the textBox, for value1 set it to 10, for value2 set it to 20, and for value3(custom) set it to 0.
You will need to build an infotable on the server side with this format and return it with a helper service:
Then you just need to bind this service result to the list widget.
After that, you can use Selected Row(s) Value to bind it to a TextBox.
This TextBox should have the visibility binded to a expression which evaluates if Text Selected value it's = "Custom".
At the end, you just need to bind TextBox value to the service that sets the value on the server.