public void Broadcast(Message message, Widget widget, params object[] args) { if ((int)message < 100) { gui.Dirty = true; } BroadcastMessage m = new BroadcastMessage() { messgae = message, widget = widget, args = args }; handlers.ForEach(t => t(message, widget, args)); foreach (var guiWidget in gui.widgets) { if (m.HasWidget) { if (guiWidget.ID != m.widget.ID) { guiWidget.HandleMessageRecieved(m); } } else { guiWidget.HandleMessageRecieved(m); } } }
public override void HandleMessageRecieved(BroadcastMessage message) { if (message.messgae == Message.ModelImported) { Refresh(); } else if (message.messgae == Message.ActiveModelChanged) { offsetindex = 0; lastActiveIndex = 0; } else if (message.messgae == Message.ActiveMatrixChanged) { Select((int)message.args[1]); } base.HandleMessageRecieved(message); }
public override void HandleMessageRecieved(BroadcastMessage message) { if (message.messgae == Message.ModelImported) { selected = Singleton <QbManager> .INSTANCE.models.Count - 1; // we have a disabled tab not in use... so use it instead // of creating new new tab from the imported model // we still need to update though if (selected < tabs.Count) { UpdateTabs(); return; } var tab = new QbModelTab(message.args[0] as QbModel); tab.handler = tabHandler; tabs.Add(tab); // hacks Client.OpenGLContextThread.Add(() => { tab.AddWidgets(Singleton <GUI> .INSTANCE); UpdateTabs(); }); } else if (message.messgae == Message.ActiveModelChanged) { Singleton <Camera> .INSTANCE.LookAtModel(); } else if (message.messgae == Message.ModelRemoved) { selected = selected < Singleton <QbManager> .INSTANCE.models.Count ? selected : Singleton <QbManager> .INSTANCE.models.Count - 1; UpdateTabs(); } else if (message.messgae == Message.ModelRenamed) { UpdateTabs(); } base.HandleMessageRecieved(message); }
public virtual void HandleMessageRecieved(BroadcastMessage message) { handler.messagerecived?.Invoke(this, message.messgae, message.widget, message.args); }