public TabItem CloseCurrentTab() { int pos = items.IndexOf(selectedItem); if (pos == items.Count-1) pos--; items.Remove(selectedItem); if (pos >= 0) selectedItem = items[pos]; else selectedItem = null; Refresh(); return selectedItem; }
void tabBar1_SelectedTabChanged(TabItem obj) { if (obj != null) { ideCanvas.Page = obj.assocItem as Classes.IGuiPage; } else ideCanvas.Page = null; }
void i_Click(object sender, EventArgs e) { selectedItem = (sender as ToolStripMenuItem).Tag as TabItem; Refresh(); }
public void AddTab(TabItem m) { items.Add(m); selectedItem = m; this.Refresh(); }
protected override void OnMouseMove(MouseEventArgs e) { lastPoint = e.Location; if (e.Button == System.Windows.Forms.MouseButtons.None && items.Count>0) { bool intersectsPlus = e.Location.X >= this.Width - 26; bool refresh = false; if (intersectsPlus) { hoverItem = null; plusHover = true; refresh = true; } else { if (plusHover) { plusHover = false; refresh = true; } bool isOnX = false; TabItem i = GetHoverItem(e.Location, out isOnX); if (hoverItem != i || (hoverItem == null && i != null)) { hoverItem = i; if (i != null && toolTip1.GetToolTip(this) != i.Type.ToString() + ": " + i.Title) toolTip1.Show(i.Type.ToString() + ": " + i.Title, this, new Point(e.Location.X, e.Location.Y + 20)); refresh = true; } if ((isOnX && xHoverItem != i) || (!isOnX && xHoverItem != null)) { if (isOnX) xHoverItem = i; else xHoverItem = null; refresh = true; } } if (refresh) Refresh(); } }
protected override void OnMouseUp(MouseEventArgs e) { base.OnMouseUp(e); if (e.Location.X >= this.Width - 26 && items.Count>0 && e.Button == System.Windows.Forms.MouseButtons.Left) { if (!contextMenuStrip1.Visible && items.Count > 0) { contextMenuStrip1.Items.Clear(); foreach (TabItem item in items) { ToolStripMenuItem i = new ToolStripMenuItem(item.Title); i.Tag = item; switch (item.Type) { case Classes.CodeType.Task: i.Image = Properties.Resources.thread; break; case Classes.CodeType.Method: i.Image = Properties.Resources.method; break; //case Classes.CodeType.Enum: // i.Image = Properties.Resources._enum; // break; //case Classes.CodeType.Struct: // i.Image = Properties.Resources._struct; // break; } i.Click += new EventHandler(i_Click); if (selectedItem == item) i.Checked = true; contextMenuStrip1.Items.Add(i); } contextMenuStrip1.Items.Add(new ToolStripSeparator()); contextMenuStrip1.Items.Add("Close All").Click += new EventHandler(tabBar_Click); contextMenuStrip1.Show(this.PointToScreen(e.Location)); } } else { bool x = false; TabItem i = GetHoverItem(e.Location, out x); if (i != null && x && e.Button == System.Windows.Forms.MouseButtons.Left) { xHoverItem = null; xClickItem = null; if (selectedItem == i) { int pos = items.IndexOf(i); if (pos < items.Count - 1) selectedItem = items[pos + 1]; else if (pos > 0) selectedItem = items[pos - 1]; else selectedItem = null; } items.Remove(i); Refresh(); } else if (i != null) { if (e.Button == System.Windows.Forms.MouseButtons.Left) selectedItem = i; else if (e.Button == System.Windows.Forms.MouseButtons.Middle) { if (i == selectedItem) this.CloseCurrentTab(); else items.Remove(i); } Refresh(); } } }
protected override void OnMouseLeave(EventArgs e) { hoverItem = xHoverItem = xClickItem = null; plusHover = false; lastPoint = Point.Empty; if (toolTip1.Active) toolTip1.Hide(this); Refresh(); base.OnMouseLeave(e); }
protected override void OnMouseDown(MouseEventArgs e) { base.OnMouseDown(e); if (e.Button == System.Windows.Forms.MouseButtons.Left && items.Count>0) { if (e.Location.X < this.Width - 16) { bool x = false; TabItem i = GetHoverItem(e.Location, out x); if (i != null && x) { xHoverItem = null; xClickItem = i; Refresh(); } } } }
public void SelectTab(Classes.IGuiPage e) { foreach (TabItem item in items) { if (item.assocItem == e) { selectedItem = item; this.Refresh(); return; } } }
public TabItem SelectPrevious() { if (items.Count > 1) { int i = items.IndexOf(selectedItem); if (i >= 1) i--; else i = items.Count - 1; selectedItem = items[i]; Refresh(); } return selectedItem; }
public TabItem SelectNext() { if (items.Count > 1) { int i = items.IndexOf(selectedItem); if (i >= 0 && i < items.Count-1) i++; else i = 0; selectedItem = items[i]; Refresh(); } return selectedItem; }