File tree Expand file tree Collapse file tree 1 file changed +33
-1
lines changed
Expand file tree Collapse file tree 1 file changed +33
-1
lines changed Original file line number Diff line number Diff line change @@ -211,7 +211,39 @@ public virtual void CreateButton(Transform parent)
211211 {
212212 if ( Enabled ( PlayerControl . LocalPlayer . Data . Role ) )
213213 {
214- ClickHandler ( ) ;
214+ // Invoke the generic button click event.
215+ var genericEvent = new MiraButtonClickEvent ( this ) ;
216+ MiraEventManager . InvokeEvent ( genericEvent ) ;
217+ if ( genericEvent . IsCancelled )
218+ {
219+ MiraEventManager . InvokeEvent ( new MiraButtonCancelledEvent ( this ) ) ;
220+ }
221+
222+ // Invoke the button click event for specific button.
223+ var eventType = CustomButtonManager . ButtonEventTypes [ GetType ( ) ] ;
224+ var @event = ( MiraCancelableEvent ) Activator . CreateInstance ( eventType , this , genericEvent ) ! ;
225+ var specificInvoked = MiraEventManager . InvokeEvent ( @event , eventType ) ;
226+ if ( @event . IsCancelled )
227+ {
228+ var cancelEventType = CustomButtonManager . ButtonCancelledEventTypes [ GetType ( ) ] ;
229+ var cancelEvent = ( MiraEvent ) Activator . CreateInstance ( cancelEventType , this ) ! ;
230+ MiraEventManager . InvokeEvent ( cancelEvent , cancelEventType ) ;
231+ }
232+
233+ if ( specificInvoked )
234+ {
235+ if ( ! @event . IsCancelled )
236+ {
237+ ClickHandler ( ) ;
238+ }
239+ }
240+ else
241+ {
242+ if ( ! genericEvent . IsCancelled )
243+ {
244+ ClickHandler ( ) ;
245+ }
246+ }
215247 }
216248 } ) ;
217249
You can’t perform that action at this time.
0 commit comments