internal static void SetDockArrowVisibility(DockArrow arrow, WndArrow dar) { try { var wa = Screen.GetWorkingArea(new System.Drawing.Point(0, 0)); switch (arrow) { case DockArrow.LeftUp: if (!PNStatic.DockedNotes[DockStatus.Left].Any(n => n.Dialog.Top < wa.Top)) { dar.Hide(); } break; case DockArrow.LeftDown: if (!PNStatic.DockedNotes[DockStatus.Left].Any(n => (n.Dialog.Top + n.Dialog.Height) > wa.Bottom)) { dar.Hide(); } break; case DockArrow.TopLeft: if (!PNStatic.DockedNotes[DockStatus.Top].Any(n => n.Dialog.Left < wa.Left)) { dar.Hide(); } break; case DockArrow.TopRight: if (!PNStatic.DockedNotes[DockStatus.Top].Any(n => (n.Dialog.Left + n.Dialog.Width) > wa.Right)) { dar.Hide(); } break; case DockArrow.RightUp: if (!PNStatic.DockedNotes[DockStatus.Right].Any(n => n.Dialog.Top < wa.Top)) { dar.Hide(); } break; case DockArrow.RightDown: if (!PNStatic.DockedNotes[DockStatus.Right].Any(n => (n.Dialog.Top + n.Dialog.Height) > wa.Bottom)) { dar.Hide(); } break; case DockArrow.BottomLeft: if (!PNStatic.DockedNotes[DockStatus.Bottom].Any(n => n.Dialog.Left < wa.Left)) { dar.Hide(); } break; case DockArrow.BottomRight: if (!PNStatic.DockedNotes[DockStatus.Bottom].Any(n => (n.Dialog.Left + n.Dialog.Width) > wa.Right)) { dar.Hide(); } break; } } catch (Exception ex) { PNStatic.LogException(ex); } }
internal static void ShiftDockDown(DockArrow arrow) { try { List<PNote> notes = null; if (arrow == DockArrow.LeftUp) { notes = PNStatic.DockedNotes[DockStatus.Left]; } else if (arrow == DockArrow.RightUp) { notes = PNStatic.DockedNotes[DockStatus.Right]; } if (notes != null) { foreach (var n in notes) { n.Dialog.Top += n.Dialog.Height; } } var dar = PNStatic.DockArrows[arrow]; SetDockArrowVisibility(arrow, dar); } catch (Exception ex) { PNStatic.LogException(ex); } }
internal WndArrow(DockArrow dockArrow) : this() { DockDirection = dockArrow; }
internal static void ShiftDockRight(DockArrow arrow) { try { List<PNote> notes = null; if (arrow == DockArrow.TopLeft) { notes = PNStatic.DockedNotes[DockStatus.Top]; } else if (arrow == DockArrow.BottomLeft) { notes = PNStatic.DockedNotes[DockStatus.Bottom]; } if (notes != null) { foreach (var n in notes) { n.Dialog.Left += n.Dialog.Width; } } var dar = PNStatic.DockArrows[arrow]; SetDockArrowVisibility(arrow, dar); } catch (Exception ex) { PNStatic.LogException(ex); } }