Because of how the GA_Text/BUTTON_VarArgs tags are currently implemented (either tag trigger VSNPrintf() to be called if the other has already been set) I would not necessarily recommend changing the number or type of varargs used this way as it can easily lead to DSIs unless you are careful (you would have to first set GA_Text to something safe like an empty string, then update BUTTON_VarArgs and then set GA_Text to what you want).
Also you may want to ensure that the args array stays valid as long as it is used by the gadget.
Something like:
Because of how the GA_Text/BUTTON_VarArgs tags are currently implemented (either tag trigger VSNPrintf() to be called if the other has already been set) I would not necessarily recommend changing the number or type of varargs used this way as it can easily lead to DSIs unless you are careful (you would have to first set GA_Text to something safe like an empty string, then update BUTTON_VarArgs and then set GA_Text to what you want).
Also you may want to ensure that the args array stays valid as long as it is used by the gadget.