public ActionMenuItem Add(string path, Action action, bool enabled) { var ret = ActionMenuItem.Add(Items, path, action); if (ret == null) { return(null); } ret.Enabled = enabled; return(ret); }
public static ActionMenuItem Add(ToolStripItemCollection items, string path, Action action) { var a = path.Split(new[] { " > ", " | " }, StringSplitOptions.RemoveEmptyEntries); var l = items; for (var x = 0; x <= a.Length - 1; x++) { var found = false; foreach (var i in l.OfType <ToolStripMenuItem>()) { if (x < a.Length - 1) { if (i.Text == a[x] + " ") { found = true; l = i.DropDownItems; } } } if (!found) { if (x == a.Length - 1) { if (a[x] == "-") { l.Add(new ToolStripSeparator()); } else { ActionMenuItem item = new ActionMenuItem(a[x] + " ", action); l.Add(item); l = item.DropDownItems; return(item); } } else { ActionMenuItem item = new ActionMenuItem(); item.Text = a[x] + " "; l.Add(item); l = item.DropDownItems; } } } return(null); }
public MenuWithDelegates() { r_MainMenu = new MainMenu("Welcome to the Main Menu!(Delegate implementation)"); r_VersionAndSpacesSubMenu = new SubMenuItem("Version and Spaces"); r_CountSpacesActionMenu = new ActionMenuItem("Count Spaces"); r_ShowVersionActionMenu = new ActionMenuItem("Show Version"); r_ShowDateAndTimeSubMenu = new SubMenuItem("Show Date And Time"); r_ShowDateActionMenuItem = new ActionMenuItem("Show Date"); r_ShowTimeActionMenuItem = new ActionMenuItem("Show Time"); addMethodsAndListeners(); // Bad name. //Menu is now configured by the user (programmer), and can now be shown. r_MainMenu.Show(); }
UIButton GetButton(ActionMenuItem item) { var button = new UIButton(new RectangleF(0, 0, 1, 1)); button.SetTitle(item.Text, UIControlState.Normal); if (!item.IsDestructive) { button.BackgroundColor = item.BackgroundColor.ToUIColor(); } else { button.SetBackgroundImage(DestructiveBackground, UIControlState.Normal); } button.TitleEdgeInsets = new UIEdgeInsets(0, 15, 0, 15); button.Enabled = true; return(button); }
public void RunDelegateMenu() { SubMenuItem versionAndDigits = new SubMenuItem("Version and Digits"); SubMenuItem dateAndTime = new SubMenuItem("Show Date/Time"); ActionMenuItem countCapitalsItem = new ActionMenuItem("Count Capitals"); ActionMenuItem showVersionItem = new ActionMenuItem("Show Version"); ActionMenuItem showTimeItem = new ActionMenuItem("Show Time"); ActionMenuItem showDateItem = new ActionMenuItem("Show Date"); countCapitalsItem.ActionMenuItemChosen += CountCapitalsItem_WasSelected; showVersionItem.ActionMenuItemChosen += ShowVersionItem_WasSelected; showTimeItem.ActionMenuItemChosen += ShowTimeItem_WasSelected; showDateItem.ActionMenuItemChosen += ShowDateItem_WasSelected; this.r_MainMenu.AddItem(versionAndDigits); this.r_MainMenu.AddItem(dateAndTime); versionAndDigits.AddItem(countCapitalsItem); versionAndDigits.AddItem(showVersionItem); dateAndTime.AddItem(showTimeItem); dateAndTime.AddItem(showDateItem); this.r_MainMenu.Show(); }
public void RunInterfaceMenu() { ActionsClass actionsClass = new ActionsClass(); SubMenuItem versionAndDigits = new SubMenuItem("Version and Digits"); SubMenuItem dateAndTime = new SubMenuItem("Show Date/Time"); ActionMenuItem countCapitals = new ActionMenuItem("Count Capitals", 1); ActionMenuItem showVersion = new ActionMenuItem("Show Version", 2); ActionMenuItem showTime = new ActionMenuItem("Show Time", 3); ActionMenuItem showDate = new ActionMenuItem("Show Date", 4); countCapitals.ActionsListener = actionsClass; showVersion.ActionsListener = actionsClass; showTime.ActionsListener = actionsClass; showDate.ActionsListener = actionsClass; this.r_MainMenu.AddItem(versionAndDigits); this.r_MainMenu.AddItem(dateAndTime); versionAndDigits.AddItem(countCapitals); versionAndDigits.AddItem(showVersion); dateAndTime.AddItem(showTime); dateAndTime.AddItem(showDate); this.r_MainMenu.Show(); }
public bool OnActionMenuItemClicked(ActionMenu actionMenu, ActionMenuItem menuItem) { switch (menuItem.ItemId) { case Resource.Id.share_document_link: // Sharing link to the Instant document. ShowShareTextMenu("Share Document Link", documentInfo.Url); return(true); case Resource.Id.share_document_code: // Sharing code of the Instant document, that can be used at pspdfkit.com/instant/try. ShowShareTextMenu("Share Document Code", documentInfo.EncodedDocumentId); return(true); case Resource.Id.open_in_browser: // Opens Instant document link in the web browser. ShowOpenInBrowserMenu(); return(true); default: return(false); } }
private void createSoundSettingsMenuItem() { ActionMenuItem actionCreatedItem = new ActionMenuItem(Game, this, "Sound Settings", goToSoundSettings); AddItem(actionCreatedItem, false); }
public void MenuItem_Fluent_Tests() { MenuItem item = new MenuItem(); item.SetTitle("Title").SetIcon("Icon").SetHelpText("Help").SetActionUrl("Action").SetAnchorClass("AnchorClass"). SetIconClass("IconClass").SetItemClass("ItemClass"); Assert.AreEqual("Title", item.Title); Assert.AreEqual("Icon", item.Icon); Assert.AreEqual("Help", item.HelpText); Assert.AreEqual("Action", item.ActionUrl); Assert.AreEqual("AnchorClass", item.AnchorClass); Assert.AreEqual("IconClass", item.IconClass); Assert.AreEqual("ItemClass", item.ItemClass); MenuList list = new MenuList(); list.SetListClass("ListClass"); Assert.AreEqual("ListClass", list.ListClass); ActionMenuItem<HomeController> ai = new ActionMenuItem<HomeController>(); ai.SetMenuAction(p => p.Index()); Assert.AreEqual("p.Index()", ai.MenuAction.Body.ToString()); }
UIView SetupButtons(nfloat width, nfloat height) { ActionMenuItem destructive = null; nfloat largestWidth = 0, acceptableSize = width * 0.80f; #region RightButton Setting if (_cell.RightContextActions.Count > 0) { for (var i = 0; i < _cell.RightContextActions.Count; i++) { var item = _cell.RightContextActions[i]; //버튼이 3개 이상인 경우 More 버튼 처리를 위한 로직 if (_rightButtons.Count == 3) { if (destructive != null) { break; } if (!item.IsDestructive) { continue; } _rightButtons.RemoveAt(_rightButtons.Count - 1); } if (item.IsDestructive) { destructive = item; } var button = GetButton(item); button.Tag = i; var buttonWidth = button.TitleLabel.SizeThatFits(new SizeF(width, height)).Width + 30; if (buttonWidth > largestWidth) { largestWidth = buttonWidth; } if (destructive == item) { _rightButtons.Insert(0, button); } else { _rightButtons.Add(button); } } var needMoreRight = _cell.RightContextActions.Count > _rightButtons.Count; if (_cell.RightContextActions.Count > 2) { CullRightButtons(acceptableSize, ref needMoreRight, ref largestWidth); } var resize = false; //MORE 버튼 if (needMoreRight) { if (largestWidth * 2 > acceptableSize) { largestWidth = acceptableSize / 2; resize = true; } var button = new UIButton(new RectangleF(0, 0, largestWidth, height)); button.SetBackgroundImage(NormalBackground, UIControlState.Normal); button.TitleEdgeInsets = new UIEdgeInsets(0, 15, 0, 15); button.SetTitle(StringResources.More, UIControlState.Normal); var moreWidth = button.TitleLabel.SizeThatFits(new SizeF(width, height)).Width + 30; if (moreWidth > largestWidth) { largestWidth = moreWidth; CullRightButtons(acceptableSize, ref needMoreRight, ref largestWidth); if (largestWidth * 2 > acceptableSize) { largestWidth = acceptableSize / 2; resize = true; } } button.Tag = -1; button.TouchUpInside += OnRightButtonActivated; if (resize) { button.TitleLabel.AdjustsFontSizeToFitWidth = true; } _rightMoreButton = button; _rightButtons.Add(button); } var handler = new PropertyChangedEventHandler(OnMenuItemPropertyChanged); var totalWidth = _rightButtons.Count * largestWidth; for (var n = 0; n < _rightButtons.Count; n++) { var b = _rightButtons[n]; if (b.Tag >= 0) { var item = _cell.RightContextActions[(int)b.Tag]; item.PropertyChanged += handler; } var offset = (n + 1) * largestWidth; var x = width - offset; if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0)) { x += totalWidth; } b.Frame = new RectangleF(x, 0, largestWidth, height); if (resize) { b.TitleLabel.AdjustsFontSizeToFitWidth = true; } b.SetNeedsLayout(); if (b != _rightMoreButton) { b.TouchUpInside += OnRightButtonActivated; } } } #endregion //RightButton Setting End #region LeftButton Setting if (_cell.LeftContextActions.Count > 0) { for (var i = 0; i < _cell.LeftContextActions.Count; i++) { var item = _cell.LeftContextActions[i]; //버튼이 3개 이상인 경우 More 버튼 처리를 위한 로직 if (_leftButtons.Count == 3) { if (destructive != null) { break; } if (!item.IsDestructive) { continue; } _leftButtons.RemoveAt(_leftButtons.Count - 1); } if (item.IsDestructive) { destructive = item; } var button = GetButton(item); button.Tag = i; var buttonWidth = button.TitleLabel.SizeThatFits(new SizeF(width, height)).Width + 30; if (buttonWidth > largestWidth) { largestWidth = buttonWidth; } if (destructive == item) { _leftButtons.Insert(0, button); } else { _leftButtons.Add(button); } } var needMoreLeft = _cell.LeftContextActions.Count > _leftButtons.Count; if (_cell.LeftContextActions.Count > 2) { CullLeftButtons(acceptableSize, ref needMoreLeft, ref largestWidth); } var resize = false; //MORE 버튼 if (needMoreLeft) { if (largestWidth * 2 > acceptableSize) { largestWidth = acceptableSize / 2; resize = true; } var button = new UIButton(new RectangleF(0, 0, largestWidth, height)); button.SetBackgroundImage(NormalBackground, UIControlState.Normal); button.TitleEdgeInsets = new UIEdgeInsets(0, 15, 0, 15); button.SetTitle(StringResources.More, UIControlState.Normal); var moreWidth = button.TitleLabel.SizeThatFits(new SizeF(width, height)).Width + 30; if (moreWidth > largestWidth) { largestWidth = moreWidth; CullLeftButtons(acceptableSize, ref needMoreLeft, ref largestWidth); if (largestWidth * 2 > acceptableSize) { largestWidth = acceptableSize / 2; resize = true; } } button.Tag = -1; button.TouchUpInside += OnLeftButtonActivated; if (resize) { button.TitleLabel.AdjustsFontSizeToFitWidth = true; } _leftMoreButton = button; _leftButtons.Add(button); } var handler = new PropertyChangedEventHandler(OnMenuItemPropertyChanged); var totalWidth = _leftButtons.Count * largestWidth; for (var n = 0; n < _leftButtons.Count; n++) { var b = _leftButtons[n]; if (b.Tag >= 0) { var item = _cell.LeftContextActions[(int)b.Tag]; item.PropertyChanged += handler; } var offset = largestWidth; var x = -offset * (_leftButtons.Count - n); //if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0)) // x -= totalWidth; b.Frame = new RectangleF(x, 0, largestWidth, height); if (resize) { b.TitleLabel.AdjustsFontSizeToFitWidth = true; } b.SetNeedsLayout(); if (b != _leftMoreButton) { b.TouchUpInside += OnLeftButtonActivated; } } } #endregion //LeftButton Setting End return(null); }
protected void CreateDoneMenuItem() { ActionMenuItem actionCreatedItem = new ActionMenuItem(Game, this, "Done", backToPreviousScreen); AddItem(actionCreatedItem, false); }
private ActionMenuItem BuildActionMenuItem (string name, EventDelegate.Callback onClick, bool enable) { ActionMenuItem item = new ActionMenuItem (); item.Name = name; item.OnClick = onClick; item.Enable = enable; return item; }
public void SetUp() { action = new StubContextualAction(); item = new ActionMenuItem(action); }
private void createPlayMenuItem() { ActionMenuItem actionCreatedItem = new ActionMenuItem(Game, this, "Play", play); AddItem(actionCreatedItem, false); }
public ActionMenuItem Add(string path, Action action, Func <bool> enabledFunc) { var ret = ActionMenuItem.Add(Items, path, action); return(ret); }
/// <summary> /// Converts an <see cref="ActionMenuItem" /> to a serializable <see cref="ActionMenuItemInfo" /> for transport as part /// of a data contract. /// </summary> /// <param name="item">The action menu item.</param> /// <param name="request">The action request.</param> /// <param name="targetGetter">A function that gets the info for the action target.</param> /// <param name="defaultTargetGetter">A default function that gets the info for the action target.</param> /// <returns>The final action menu item info.</returns> public static ActionMenuItemInfo ToInfo(this ActionMenuItem item, ActionRequestExtended request, Func <ActionRequestExtended, ActionMenuItem, ActionTargetInfo> targetGetter, Func <ActionRequestExtended, ActionMenuItem, ActionTargetInfo> defaultTargetGetter) { if (item == null) { throw new ArgumentNullException(nameof(item)); } if (request == null) { throw new ArgumentNullException(nameof(request)); } var label = item.Name; if (request.IsMultipleSelection && item.AppliesToMultiSelection == true && !string.IsNullOrEmpty(item.MultiSelectName)) { // show the "multi selection" label when appropriate label = item.MultiSelectName; } if (request.ActionDisplayContext != ActionContext.ContextMenu && request.ActionDisplayContext != ActionContext.All && !string.IsNullOrEmpty(item.EmptySelectName) && ((!request.IsMultipleSelection && request.LastSelectedResource == null) || (request.IsMultipleSelection && item.AppliesToMultiSelection != true && item.AppliesToSelection == true))) { // show the "empty selection" label in appropriate contexts. label = item.EmptySelectName; } var targetInfo = targetGetter == null?defaultTargetGetter(request, item) : targetGetter(request, item); var additionalData = request.AdditionalData == null ? new Dictionary <string, object>() : new Dictionary <string, object>(request.AdditionalData); var displayName = GetDisplayName(label, targetInfo, additionalData); var wfActionMenuItem = item.As <WorkflowActionMenuItem>( ); if (wfActionMenuItem?.ActionMenuItemToWorkflow != null) { // align the workflow name var wf = wfActionMenuItem.ActionMenuItemToWorkflow; displayName = wf.Name; // add the related resource name (if necessary) if (wf.InputArgumentForRelatedResource != null) { additionalData.Add(ActionMenuItemInfo.AdditionalDataRelatedResourceArgKey, wf.InputArgumentForRelatedResource.Name); } } var gd = item.As <GenerateDocumentActionMenuItem>( ); if (gd?.ActionMenuItemToReportTemplate != null) { // align the report template name displayName = gd.ActionMenuItemToReportTemplate.Name; } string expression = null; Dictionary <string, ActionEntityReference> expressionEntities = null; if (item.ActionRequiresExpression != null) { // disable by expression; should be evaluated on server but here for cache expression = item.ActionRequiresExpression.ActionExpressionString; if (item.ActionRequiresExpression.ActionExpressionEntities != null) { expressionEntities = new Dictionary <string, ActionEntityReference>(); var refs = item.ActionRequiresExpression.ActionExpressionEntities .Select(e => new { e.Name, e.ReferencedEntity }) .GroupBy(e => e.Name) .Select(g => g.First()).ToList(); refs.ForEach(r => expressionEntities.Add(r.Name, new ActionEntityReference { Id = r.ReferencedEntity.Id, TypeId = r.ReferencedEntity.IsOfType.First().Id })); } } List <Permission> permissions = null; List <Permission> parentPermissions = null; if (item.ActionRequiresPermission.Any()) { permissions = item.ActionRequiresPermission.ToList(); } if (item.ActionRequiresParentPermission.Any()) { parentPermissions = item.ActionRequiresParentPermission.ToList(); } return(new ActionMenuItemInfo { Id = item.Id, Alias = item.Alias, EntityId = targetInfo?.Entity?.Id ?? 0, Order = item.MenuOrder ?? 0, Name = displayName, Description = item.Description, MultiSelectName = item.MultiSelectName, EmptySelectName = item.EmptySelectName, Icon = item.MenuIconUrl, IsSeparator = item.IsMenuSeparator == true, IsButton = item.IsActionButton == true, IsMenu = item.IsActionItem == true, IsContextMenu = item.IsContextMenu == true, IsSystem = item.IsSystem == true || item.TenantId == 0, // System Tenant(?) AppliesToSelection = item.AppliesToSelection == true, AppliesToMultipleSelection = item.AppliesToMultiSelection == true, HtmlActionMethod = item.HtmlActionMethod, HtmlActionState = item.HtmlActionState, HtmlActionTarget = item.HtmlActionTarget, RequiresPermissions = permissions, RequiresParentPermissions = parentPermissions, AdditionalData = additionalData, Expression = expression, ExpressionEntities = expressionEntities }); }
protected override void LoadContent() { base.LoadContent(); Vector2 size = GetScreenPosition(new Vector2(0.6f, 0.75f)); Bounds = new Rectangle(0, 0, (int)size.X, (int)size.Y); OptionMenuItem<Tuple<int, int>> resolution = new OptionMenuItem<Tuple<int, int>>("Resolution", "res"); foreach (var res in GraphicsAdapter.DefaultAdapter.SupportedDisplayModes.Select(m => new Tuple<int,int>(m.Width, m.Height)).Distinct().OrderBy(r => r.Item1)) resolution.AddOption(res.Item1 + "x" + res.Item2, res); resolution.SetStartOption(new Tuple<int, int>(gameInstance.Graphics.PreferredBackBufferWidth, gameInstance.Graphics.PreferredBackBufferHeight)); resolution.Bounds = Bounds; resolution.Font = MenuFont; resolution.ArrowLeft = ArrowLeft; resolution.ArrowRight = ArrowRight; resolution.Background = OptionSelected; resolution.FontColor = ItemColor; resolution.FontColorSelected = Color.Black; AddMenuItem(resolution); OptionMenuItem<int> displayMode = new OptionMenuItem<int>("Display Mode", "display"); displayMode.AddOption("Fullscreen", 1); displayMode.AddOption("Windowed", 2); displayMode.SetStartOption(gameInstance.Graphics.IsFullScreen ? 1 : 2); displayMode.Bounds = Bounds; displayMode.Font = MenuFont; displayMode.ArrowLeft = ArrowLeft; displayMode.ArrowRight = ArrowRight; displayMode.Background = OptionSelected; displayMode.FontColor = ItemColor; displayMode.FontColorSelected = Color.Black; AddMenuItem(displayMode); TextInputMenuItem playerName = new TextInputMenuItem("Player Name", "name"); playerName.Bounds = Bounds; playerName.Font = MenuFont; playerName.EnteredText = GameSettings.Default.PlayerName; playerName.Background = OptionSelected; playerName.FontColor = ItemColor; playerName.FontColorSelected = Color.Black; AddMenuItem(playerName); BoolOptionMenuItem shadows = new BoolOptionMenuItem("Shadows", "shadows"); shadows.Bounds = Bounds; shadows.Font = MenuFont; shadows.SetStartOption(GameSettings.Default.Shadows); shadows.ArrowLeft = ArrowLeft; shadows.ArrowRight = ArrowRight; shadows.Background = OptionSelected; shadows.FontColor = ItemColor; shadows.FontColorSelected = Color.Black; AddMenuItem(shadows); BoolOptionMenuItem bloom = new BoolOptionMenuItem("Bloom", "bloom"); bloom.Bounds = Bounds; bloom.Font = MenuFont; bloom.SetStartOption(GameSettings.Default.Bloom); bloom.ArrowLeft = ArrowLeft; bloom.ArrowRight = ArrowRight; bloom.Background = OptionSelected; bloom.FontColor = ItemColor; bloom.FontColorSelected = Color.Black; AddMenuItem(bloom); MenuItem item = new StateActionMenuItem("Cancel", GameState.MainMenu); item.Background = ButtonBackground; item.Font = MenuFont; item.FontColor = ItemColor; item.FontColorSelected = ItemColorSelected; item.SetWidth(Bounds.Width); AddMenuItem(item); item = new ActionMenuItem("Apply", ApplySettings); item.Background = ButtonBackground; item.Font = MenuFont; item.FontColor = ItemColor; item.FontColorSelected = ItemColorSelected; item.SetWidth(Bounds.Width); AddMenuItem(item); }
private void createQuitMenuItem() { ActionMenuItem actionCreatedItem = new ActionMenuItem(Game, this, "Quit", Game.Exit); AddItem(actionCreatedItem, false); }
protected override void LoadContent() { base.LoadContent(); Vector2 size = GetScreenPosition(new Vector2(0.5f, 0.5f)); Bounds = new Rectangle(0, 0, (int)size.X, (int)size.Y); serverInput = new TextInputMenuItem("Server IP", "server"); serverInput.Bounds = Bounds; serverInput.Font = MenuFont; serverInput.Background = OptionSelected; serverInput.FontColor = ItemColor; serverInput.FontColorSelected = Color.Black; AddMenuItem(serverInput); MenuItem item = new ActionMenuItem("Connect", ConnectToServer, "connect"); item.Background = ButtonBackground; item.Font = MenuFont; item.FontColor = ItemColor; item.FontColorSelected = ItemColorSelected; item.SetWidth(Bounds.Width); AddMenuItem(item); item = new StateActionMenuItem("Cancel", GameState.MainMenu, "cancel"); item.Background = ButtonBackground; item.Font = MenuFont; item.FontColor = ItemColor; item.FontColorSelected = ItemColorSelected; item.SetWidth(Bounds.Width); AddMenuItem(item); }
/// <summary> /// Updates the visibility for the given menu item and its children, and returns the updated visibility /// </summary> /// <param name="menuItem">The menu items for which to update the visibility</param> private async Task <bool> UpdateMenuItemVisibility(ActionMenuItem menuItem) { var possibleTargets = GetMenuActionTargets(); // Note: Excludes view models for the selected file // Default to not visible var isVisible = false; if (menuItem.Actions != null) { // Visibility is determined by every available action // If any one of those actions is applicable, then this menu item is visible foreach (var item in menuItem.Actions) { if (!isVisible) { if (item.AlwaysVisible) { // Then this action is always visible isVisible = true; // And don't bother checking the rest break; } else { foreach (var target in possibleTargets) { // Check to see if this target is supported if (await item.SupportsObject(target)) { // If it is, then this menu item should be visible isVisible = true; // And don't bother checking the rest break; } } if (!isVisible && SelectedFile?.Model != null) { // Check to see if the action supports any view models // If there are any view models that support the selected file, isVisible = false; foreach (var vm in SelectedFile.GetViewModels(this)) { if (await item.SupportsObject(vm)) { isVisible = true; break; } } } } } else { // Then this menu item is visible, and don't bother checking the rest break; } } } // Update children foreach (var item in menuItem.Children) { if (await UpdateMenuItemVisibility(item)) { isVisible = true; } } // Set the visibility to the value we calculated menuItem.IsVisible = isVisible; // Set this item to visible if there's a visible return(isVisible); }
private void ConnectToServer() { string server = (GetMenuItem("server") as TextInputMenuItem).EnteredText; gameInstance.GetService<ServerClient>().Connect(System.Net.IPAddress.Parse(server)); MenuItem start = new StateActionMenuItem("Connecting...", GameState.CarChooser, "start"); start.Background = ButtonBackground; start.Font = MenuFont; start.Enabled = false; start.FontColor = ItemColor; start.FontColorSelected = ItemColorSelected; start.SetWidth(Bounds.Width); SetMenuItem("connect", start); MenuItem disconnect = new ActionMenuItem("Disconnect", Disconnect, "disconnect"); disconnect.Background = ButtonBackground; disconnect.Font = MenuFont; disconnect.FontColor = ItemColor; disconnect.FontColorSelected = ItemColorSelected; disconnect.SetWidth(Bounds.Width); SetMenuItem("cancel", disconnect); }
public void Init (ActionMenuItem item) { label.text = item.Name; button.enabled = item.Enable; EventDelegate.Add (button.onClick, item.OnClick); }
private void Disconnect() { gameInstance.GetService<ServerClient>().Disconnect(); MenuItem item = new ActionMenuItem("Connect", ConnectToServer, "connect"); item.Background = ButtonBackground; item.Font = MenuFont; item.FontColor = ItemColor; item.FontColorSelected = ItemColorSelected; item.SetWidth(Bounds.Width); SetMenuItem("start", item); item = new StateActionMenuItem("Cancel", GameState.MainMenu, "cancel"); item.Background = ButtonBackground; item.Font = MenuFont; item.FontColor = ItemColor; item.FontColorSelected = ItemColorSelected; item.SetWidth(Bounds.Width); SetMenuItem("disconnect", item); }
public void GetActionsWithExpressionItems() { // arrange var scientistType = Entity.GetByName <EntityType>("Scientist").First(); var bornField = scientistType.GetAllFields().FirstOrDefault(f => f.Name == "Born"); var scientist = Entity.Create(new EntityRef(scientistType)); scientist.SetField("core:name", "Alex Engelhardt"); scientist.SetField(new EntityRef(bornField), new DateTime(1977, 10, 24)); scientist.Save(); var alanTuring = Entity.GetByName <Resource>("Alan Turing").First(); alanTuring.Should().NotBeNull(); alanTuring.Id.Should().BeGreaterThan(0); var report = Entity.Create <ReadiNow.Model.Report>(); var sb = new ConsoleBehavior(); var am = new ActionMenu(); var a = new ActionMenuItem { Name = "Test '%Resource%' Action", EmptySelectName = "Test Expression Action", IsActionItem = true, IsActionButton = true, IsContextMenu = true, AppliesToSelection = true, ActionRequiresExpression = new ActionExpression { ActionExpressionString = "datediff(year, Born, [Alan].[Born]) = 0", ActionExpressionEntities = new EntityCollection <NamedReference> { new NamedReference { Name = "Alan", ReferencedEntity = alanTuring } } } }; am.MenuItems.Add(a); am.IncludeActionsAsButtons.Add(a); sb.BehaviorActionMenu = am; report.SelectionBehavior = sb; report.Save(); var svc = new ActionService(); svc.FlushCaches(); var request = new ActionRequestExtended { LastSelectedResourceId = scientist.Id, SelectedResourceIds = new[] { scientist.Id }, EntityTypeId = scientistType.Id, ReportId = report.Id, ReportBaseType = scientistType, HostResourceIds = new long[0] }; // act var result = svc.GetActions(request); // assert result.Should().NotBeNull(); result.Actions.Should().NotBeNull(); result.Actions.Count.Should().BeGreaterThan(0); var action = result.Actions.FirstOrDefault(i => i.Name == "Test 'Alex Engelhardt' Action"); action.Should().NotBeNull(); action.IsEnabled.Should().BeFalse(); action.EntityId.Should().Be(scientist.Id); request.LastSelectedResourceId = alanTuring.Id; request.SelectedResourceIds = new[] { alanTuring.Id }; var result2 = svc.GetActions(request); result2.Should().NotBeNull(); result2.Actions.Should().NotBeNull(); result2.Actions.Count.Should().BeGreaterThan(0); var action2 = result2.Actions.FirstOrDefault(i => i.Name == "Test 'Alan Turing' Action"); action2.Should().NotBeNull(); action2.IsEnabled.Should().BeTrue(); action2.EntityId.Should().Be(alanTuring.Id); }
public HamburgerMenuService() { MenuItems = new List <Models.MenuItem> { new SymbolNavigationMenuItem { Symbol = Symbol.List, Name = "To Watch", Type = MenuItemType.Main, PageType = typeof(ToWatchPage) }, new SymbolNavigationMenuItem { Symbol = Symbol.Clock, Name = "Upcoming", Type = MenuItemType.Main, PageType = typeof(UpcomingPage) }, new SymbolNavigationMenuItem { Symbol = Symbol.Calendar, Name = "Agenda", Type = MenuItemType.Main, PageType = typeof(AgendaPage) }, new SymbolNavigationMenuItem { Symbol = Symbol.World, Name = "Explore", Type = MenuItemType.Main, PageType = typeof(ExplorePage) }, new SymbolNavigationMenuItem { Symbol = Symbol.Library, Name = "Collection", Type = MenuItemType.Main, PageType = typeof(CollectionPage) } }; var settingsMenuItem = new SymbolNavigationMenuItem { Symbol = Symbol.Setting, Name = "Settings", Type = MenuItemType.Options, PageType = typeof(SettingsPage) }; MenuItems.Add(settingsMenuItem); var feedbackMenuItem = new GlyphNavigationMenuItem { Glyph = "\uE939", Name = "Feedback", Type = MenuItemType.Options, PageType = typeof(FeedbackPage) }; MenuItems.Add(feedbackMenuItem); var logoutMenuItem = new ActionMenuItem { Glyph = "\uE7E8", Name = "Logout", Type = MenuItemType.Options, Action = () => { ServiceLocator.Current.GetInstance <LoginViewModel>().Logout(); } }; MenuItems.Add(logoutMenuItem); }
public bool OnActionMenuItemLongClicked(ActionMenu actionMenu, ActionMenuItem menuItem) => false;
public void CannotActionMenuItemWithNoAction() { var item = new ActionMenuItem<HomeController>(); item.Prepare(controllerContext); }
public void CannotActionMenuItemWithNoAction() { var item = new ActionMenuItem <HomeController>(); item.Prepare(controllerContext); }
private void FillMenu(IEnumerable<IModelMenuItem> node, ChoiceActionItem root) { string text = (root != null) ? root.Id : ((ModelNode)node).Id; List<ChoiceActionItem> list = new List<ChoiceActionItem>(); foreach (IModelMenuItem current in node) { MenuItemBase menuItemBase = this.OnCreateCustomMenuItem(current, this.MenuItemsAction, text); if (menuItemBase == null) { if (current is IModelMenuActionItem) { menuItemBase = new ActionMenuItem(current as IModelMenuActionItem, this.MenuItemsAction, text); } else if (current is IModelMenuViewItem) { menuItemBase = new ViewMenuItem(current as IModelMenuViewItem, this.MenuItemsAction, text); } else if (current is IModelMenuFolder) { IModelMenuFolder modelMenuFolder = current as IModelMenuFolder; menuItemBase = new MenuFolderItem(modelMenuFolder, text); this.FillMenu(modelMenuFolder, menuItemBase); } else if (current is IModelMenuTemplateLink) { IModelMenuTemplateLink modelMenuTemplateLink = current as IModelMenuTemplateLink; menuItemBase = new MenuFolderItem(modelMenuTemplateLink, text); this.FillMenu(modelMenuTemplateLink.Template, menuItemBase); } } if (menuItemBase != null) { this.OnMenuItemCreated(menuItemBase); list.Add(menuItemBase); } } root.Items.AddRange(list); }