public void Close(D3DBrowserTab page) { if (page != null && internalTabs.Contains(page)) { int activeIndex = activePage == page ? internalTabs.IndexOf(activePage) : -1; internalTabs.Remove(page); TabsNode.Remove(page.D3DNode); ReOrderTabsNode(); page.CloseInternal(); if (activeIndex >= 0) { activePage = null; if (activeIndex >= internalTabs.Count) activeIndex = internalTabs.Count - 1; if (activeIndex >= 0) { activePage = internalTabs[activeIndex]; activePage.Active = true; } } ReOrderTabsNode(); RaiseTabCountChanged(); } }
public void TabNext() { var index = internalTabs.IndexOf(activePage); if (index >= 0) { if (index == internalTabs.Count - 1) { CurrentCamTabAngle = (float)(CurrentCamTabAngle - Math.PI * 2); } ActivePage = internalTabs[(index + 1) % internalTabs.Count]; MoveCameraTo(CurrentCamRadius, (float)ActivePage.CurrentAngle); } }
public void TabPrev() { var index = internalTabs.IndexOf(activePage); if (index >= 0) { if (index == 0) { CurrentCamTabAngle = (float)(Math.PI * 2 - CurrentCamTabAngle); } ActivePage = internalTabs[(((index - 1) % internalTabs.Count) + internalTabs.Count) % internalTabs.Count]; MoveCameraTo(CurrentCamRadius, (float)ActivePage.CurrentAngle); } }
public D3DBrowserTab NewTab(string url) { var new_page = new D3DBrowserTab(this, Host.RenderingWidth, Host.RenderingHeight); new_page.Navigate(url); internalTabs.Add(new_page); ActivePage = new_page; activePage = new_page; TabsNode.Add(new_page.D3DNode); ReOrderTabsNode(); RaiseTabCountChanged(); return new_page; }