public QbModelTabs() : base() { float height = Client.window.Qfont.fontData.maxGlyphHeight; height = height.ScaleVerticlSize(); float vBorderOffset = -(3f).ScaleVerticlSize(); float hBorderOffset = (3f).ScaleHorizontalSize(); SetBoundsNoScaling(-1 , 1 - height *borderscale + vBorderOffset, 2, height *borderscale); appearence.AddAppearence("background", new PlainBackground(new Color4(100, 87, 61, 255))); appearence.AddAppearence("border", new PlainBorder(4, new Color4(122, 106, 70, 255))); tabs = new List<QbModelTab>(); foreach (var model in Singleton<QbManager>.INSTANCE.models) { QbModelTab default_tab = new QbModelTab(model); tabHandler = new WidgetEventHandler() { mousedownhandler = (e, mouse) => { if (mouse.IsPressed && mouse.Button == OpenTK.Input.MouseButton.Left) { if (e is QbModelTab) { var tab = e as QbModelTab; selected = tabs.IndexOf(tab); Singleton<QbManager>.INSTANCE.ActiveModel = tab.model; } else if (e is Label) { var tab = e.customData["qbmodeltab"] as QbModelTab; selected = tabs.IndexOf(tab); Singleton<QbManager>.INSTANCE.ActiveModel = tab.model; } UpdateTabs(); } } }; default_tab.handler = tabHandler; tabs.Add(default_tab); } UpdateTabs(); }
public QbModelTabs() : base() { float height = Client.window.Qfont.fontData.maxGlyphHeight; height = height.ScaleVerticlSize(); float vBorderOffset = -(3f).ScaleVerticlSize(); float hBorderOffset = (3f).ScaleHorizontalSize(); SetBoundsNoScaling(-1, 1 - height * borderscale + vBorderOffset, 2, height * borderscale); appearence.AddAppearence("background", new PlainBackground(new Color4(100, 87, 61, 255))); appearence.AddAppearence("border", new PlainBorder(4, new Color4(122, 106, 70, 255))); tabs = new List <QbModelTab>(); foreach (var model in Singleton <QbManager> .INSTANCE.models) { QbModelTab default_tab = new QbModelTab(model); tabHandler = new WidgetEventHandler() { mousedownhandler = (e, mouse) => { if (mouse.IsPressed && mouse.Button == OpenTK.Input.MouseButton.Left) { if (e is QbModelTab) { var tab = e as QbModelTab; selected = tabs.IndexOf(tab); Singleton <QbManager> .INSTANCE.ActiveModel = tab.model; } else if (e is Label) { var tab = e.customData["qbmodeltab"] as QbModelTab; selected = tabs.IndexOf(tab); Singleton <QbManager> .INSTANCE.ActiveModel = tab.model; } UpdateTabs(); } } }; default_tab.handler = tabHandler; tabs.Add(default_tab); } UpdateTabs(); }
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 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); }