/// <summary> /// Adds menu items for all panels or toolbars, except the doc panel, to a menu. /// On menu item click will show that panel. /// </summary> public void ZAddShowPanelsToMenu(ToolStripDropDown m, bool toolbars, bool clear = false) { m.SuspendLayout(); if (clear) { m.Items.Clear(); } var a = _aPanel.FindAll(v => !v.HasDocument && (toolbars == v.HasToolbar)); a.Sort((v1, v2) => v1.Name.CompareTo(v2.Name)); foreach (var v in a) { var s = v.Text; if (!v.Visible) { s += " (hidden)"; } m.Items.Add(s, v.Image, (unu, sed) => { v.Show(true); }); } //add Reset... m.Items.Add(new ToolStripSeparator()); (m.Items.Add("Reset...", null, (unu, sed) => { if (ZResetLayoutAfterRestart) { ZResetLayoutAfterRestart = false; } else { ZResetLayoutAfterRestart = ADialog.ShowOkCancel("Reset panel/toolbar layout", "After restarting this application."); } }) as ToolStripMenuItem).Checked = ZResetLayoutAfterRestart; m.ResumeLayout(); }
private void _bClick(object sender, EventArgs e) { if (!(_lb.SelectedItem is AToolbar tb)) { return; } if (tb._c.IsDisposed) { ADialog.Show("Closed", owner: this); return; } var w = tb._c.Hwnd(); var r = w.Rect; if (sender == _bShow) { if (AScreen.IsInAnyScreen(r)) { r.Inflate(2, 2); var osd = new AOsdRect { Rect = r, Color = 0xff0000 }; osd.Show(); ATimer.After(1000, _ => osd.Dispose()); } else { ADialog.Show("Offscreen", "Rectangle: " + r.ToString(), owner: this); } } else if (sender == _bMove) { if (!w.IsVisible && !ADialog.ShowOkCancel("Hidden", "Move this hidden toolbar?", owner: this)) { return; } var xy = AMouse.XY; w.MoveLL(xy.x, xy.y); var w2 = this.Hwnd(); if (!w.ZorderIsAbove(w2)) { w.ZorderAbove(w2); } } }