private void onCloseWindow(ExmWindow target) { ExmWindowChange change = ChangeDispatcher <ExmWindowChange> .GetChange(); change.target = target; dispatcher.dispatchChange(change, ExmWindowChangeType.WINDOW_CLOSED); //... }
void Start() { ExmWindowsManager.instance.dispatcher.addChangeListener(ExmWindowChangeType.WINDOW_OPENED, onSomeWindowOpen); ExmWindowsManager.instance.dispatcher.addChangeListener(ExmWindowChangeType.WINDOW_CLOSED, onSomeWindowClose); ChangeDispatcher <ExmWindowChange> myDispatcher = new ChangeDispatcher <ExmWindowChange>(); myDispatcher.addRedispatch(ExmWindowsManager.instance.dispatcher, ExmWindowChangeType.WINDOW_OPENED); //myDispatcher будет редиспатчить все пойманные события WINDOW_OPENED }
public void openWindow(string title, string message) { ExmWindow w = createWindow(); w.setData(title, message, onCloseWindow); //... ExmWindowChange change = ChangeDispatcher <ExmWindowChange> .GetChange(); change.target = w; dispatcher.dispatchChange(change, ExmWindowChangeType.WINDOW_OPENED); }