For example, I have a custom Widget Blueprint “ButtonImage” with a Button with a child Image. I want to expose the Button’s OnClick method to the Designer. Ie so that I can drag-and-drop an instance of my ButtonImage into a “MyInterface” widget, then set the ButtonImage’s OnClick property in the MyInterface’s Designer.
UMG Widget Blueprint expose child widget properties to Designer
Afaict, the OnClick has to live on the widget the button belongs to, you can’t separate them. You can however have that OnClick call out to another designer file (and call a macro/function/event) in order to do it’s work. But you would still have to setup that call in the Button widget.
You could potentially, depending on what you are trying to do, make a generic-ish event, that the designer can feed in what differentiates it from other buttons of it’s type, either through input pins on the event, or local variables that live in the button widget.
So basically it would be;
Button Widget OnClick → MyInterface.FunctionA(InputPinA, InputPinB, Etc)
Also, and again this will depend on what you are actually trying to do with the button. You could also have the button OnClick call into a dummy function that calls another function that the designer actually works with. In case you need a degree of separation, so you don’t have to change what the button onclick is pointing to if the designers change their mind.