/// <summary> /// Creates the search popup with a tree. /// </summary> /// <param name="searchBox">The search box.</param> /// <param name="tree">The tree control.</param> /// <returns>The created menu to setup and show.</returns> public static ContextMenuBase CreateSearchPopup(out TextBox searchBox, out Tree tree) { var menu = new ContextMenuBase { Size = new Float2(320, 220), }; searchBox = new TextBox(false, 1, 1) { Width = menu.Width - 3, WatermarkText = "Search...", Parent = menu, }; var panel1 = new Panel(ScrollBars.Vertical) { Bounds = new Rectangle(0, searchBox.Bottom + 1, menu.Width, menu.Height - searchBox.Bottom - 2), Parent = menu }; var panel2 = new VerticalPanel { Parent = panel1, AnchorPreset = AnchorPresets.HorizontalStretchTop, IsScrollable = true, }; tree = new Tree(false) { Parent = panel2, }; return(menu); }
private Toolbar CreateToolbar( IEnumerable <IToolbarCommand> commands, ContextMenuBase contextMenuBase) { return(new Toolbar( CreateFactoryFor(commands), CreateFactoryFor(contextMenuBase))); }
private Shell CreateShell( ShellCommandBase shellCommand, IHotkeyHandler hotkeyCommander, ContextMenuBase contextMenuBase, ScreenHostBase screenHostBase, DialogHostBase dialogHostBase, ToolbarBase toolbarBase) { return(new Shell( CreateFactoryFor(shellCommand, "startCommand"), CreateFactoryFor(hotkeyCommander), CreateFactoryFor(contextMenuBase), CreateFactoryFor(screenHostBase), CreateFactoryFor(dialogHostBase), CreateFactoryFor(toolbarBase))); }
public void ShowContextMenu <T>(Point location, NodeControl node = null) where T : ContextMenuBase { _parentNodeControl = node; var contextMenu = LayoutRoot.Children.OfType <T>().FirstOrDefault(); if (contextMenu != null) { if (node != null) { contextMenu.Show(node); } else { contextMenu.Show(); } contextMenu.UpdateLayout(); _showingContextMenu = contextMenu; var width = contextMenu.ActualWidth; var height = contextMenu.ActualHeight; ContextMenuOpenType openType; if (location.X > ContextMenuParent.ContainerWidth - width) { if (location.Y > ContextMenuParent.ContainerHeight - height) { openType = ContextMenuOpenType.LeftTop; contextMenu.SpaceForSubMenuY = ContextMenuParent.ContainerHeight - location.Y; } else { openType = ContextMenuOpenType.LeftBottom; contextMenu.SpaceForSubMenuY = ContextMenuParent.ContainerHeight - location.Y - height; } contextMenu.SpaceForSubMenuX = ContextMenuParent.ContainerWidth - location.X; } else { if (location.Y > ContextMenuParent.ContainerHeight - height) { openType = ContextMenuOpenType.RightTop; contextMenu.SpaceForSubMenuY = ContextMenuParent.ContainerHeight - location.Y; } else { openType = ContextMenuOpenType.RightBottom; contextMenu.SpaceForSubMenuY = ContextMenuParent.ContainerHeight - location.Y - height; } contextMenu.SpaceForSubMenuX = ContextMenuParent.ContainerWidth - location.X - width; } switch (openType) { case ContextMenuOpenType.RightBottom: Canvas.SetLeft(contextMenu, location.X); Canvas.SetTop(contextMenu, location.Y); break; case ContextMenuOpenType.RightTop: Canvas.SetLeft(contextMenu, location.X); Canvas.SetTop(contextMenu, location.Y - height); break; case ContextMenuOpenType.LeftBottom: Canvas.SetLeft(contextMenu, location.X - width); Canvas.SetTop(contextMenu, location.Y); break; case ContextMenuOpenType.LeftTop: Canvas.SetLeft(contextMenu, location.X - width); Canvas.SetTop(contextMenu, location.Y - height); break; } } }
protected override void Because() { _contextMenu = sut.CreateFor(_viewItem, _presenter).DowncastTo <ContextMenuBase>(); }
public void SetLastRightClickInfo(string type, string link) { form.InvokeAsyncSafe(() => ContextMenuBase.SetContextInfo(type, link)); }
public void Unregister(ContextMenuBase menu) { _initializedMenus.Remove(menu.Id); }
public void Register(ContextMenuBase menu) { _initializedMenus[menu.Id] = menu; }