Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 5
0
        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();
        }
Exemplo n.º 6
0
        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();
        }
Exemplo n.º 7
0
        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);
            }
        }
Exemplo n.º 8
0
        private void createSoundSettingsMenuItem()
        {
            ActionMenuItem actionCreatedItem = new ActionMenuItem(Game, this, "Sound Settings", goToSoundSettings);

            AddItem(actionCreatedItem, false);
        }
Exemplo n.º 9
0
        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());
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        protected void CreateDoneMenuItem()
        {
            ActionMenuItem actionCreatedItem = new ActionMenuItem(Game, this, "Done", backToPreviousScreen);

            AddItem(actionCreatedItem, false);
        }
Exemplo n.º 12
0
	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;
	}
Exemplo n.º 13
0
 public void SetUp()
 {
     action = new StubContextualAction();
     item   = new ActionMenuItem(action);
 }
Exemplo n.º 14
0
        private void createPlayMenuItem()
        {
            ActionMenuItem actionCreatedItem = new ActionMenuItem(Game, this, "Play", play);

            AddItem(actionCreatedItem, false);
        }
Exemplo n.º 15
0
    public ActionMenuItem Add(string path, Action action, Func <bool> enabledFunc)
    {
        var ret = ActionMenuItem.Add(Items, path, action);

        return(ret);
    }
Exemplo n.º 16
0
        /// <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
            });
        }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
        private void createQuitMenuItem()
        {
            ActionMenuItem actionCreatedItem = new ActionMenuItem(Game, this, "Quit", Game.Exit);

            AddItem(actionCreatedItem, false);
        }
Exemplo n.º 19
0
        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);
        }
Exemplo n.º 21
0
        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);
        }
Exemplo n.º 22
0
	public void Init (ActionMenuItem item)
	{
		label.text = item.Name;
		button.enabled = item.Enable;
		EventDelegate.Add (button.onClick, item.OnClick);
	}
Exemplo n.º 23
0
        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);
        }
Exemplo n.º 24
0
        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);
        }
Exemplo n.º 25
0
        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);
        }
Exemplo n.º 26
0
 public bool OnActionMenuItemLongClicked(ActionMenu actionMenu, ActionMenuItem menuItem) => false;
Exemplo n.º 27
0
 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);
 }