I see two different scenarios:
a) you want to show text in uppercase at the end of the editing
b) you want to display in uppercase while editing
In the first case, it's enough to create a callback for the control and retrieve its value in the commit event, then change to uppercase and then set the control with the updated string.
The second case is quite different: you may need to test in the control callback the val_changed event, retrieve the value every time the callback is triggered, convert to uppercase and then re-output the new string. It is necessary to move the cursor to the end of the string after it is outputted.
You can look at the small example attached. The callback saves the position of the caret so that the operator can add text
inside the string.
Hope this helps
Roberto