void BindStanceButton(ButtonWidget button, UnitStance stance, Func <ButtonWidget, Hotkey> getHotkey)
        {
            var icon = button.Get <ImageWidget>("ICON");

            icon.GetImageName = () => button.IsDisabled() ? icon.ImageName + "-disabled" :
                                button.IsHighlighted() ? icon.ImageName + "-active" : icon.ImageName;

            button.GetKey        = getHotkey;
            button.IsDisabled    = () => { UpdateStateIfNecessary(); return(!actorStances.Any()); };
            button.IsHighlighted = () => actorStances.Any(
                at => !at.Trait.IsTraitDisabled && at.Trait.PredictedStance == stance);
            button.OnClick = () => SetSelectionStance(stance);
        }
예제 #2
0
        void BindButtonIcon(ButtonWidget button)
        {
            var icon           = button.Get <ImageWidget>("ICON");
            var hasDisabled    = ChromeProvider.GetImage(icon.ImageCollection, icon.ImageName + "-disabled") != null;
            var hasActive      = ChromeProvider.GetImage(icon.ImageCollection, icon.ImageName + "-active") != null;
            var hasActiveHover = ChromeProvider.GetImage(icon.ImageCollection, icon.ImageName + "-active-hover") != null;
            var hasHover       = ChromeProvider.GetImage(icon.ImageCollection, icon.ImageName + "-hover") != null;

            icon.GetImageName = () => hasActive && button.IsHighlighted() ?
                                (hasActiveHover && Ui.MouseOverWidget == button ? icon.ImageName + "-active-hover" : icon.ImageName + "-active") :
                                hasDisabled && button.IsDisabled() ? icon.ImageName + "-disabled" :
                                hasHover && Ui.MouseOverWidget == button ? icon.ImageName + "-hover" : icon.ImageName;
        }
        void BindStanceButton(ButtonWidget button, UnitStance stance)
        {
            var icon           = button.Get <ImageWidget>("ICON");
            var hasDisabled    = ChromeProvider.GetImage(icon.ImageCollection, icon.ImageName + "-disabled") != null;
            var hasActive      = ChromeProvider.GetImage(icon.ImageCollection, icon.ImageName + "-active") != null;
            var hasActiveHover = ChromeProvider.GetImage(icon.ImageCollection, icon.ImageName + "-active-hover") != null;
            var hasHover       = ChromeProvider.GetImage(icon.ImageCollection, icon.ImageName + "-hover") != null;

            icon.GetImageName = () => hasActive && button.IsHighlighted() ?
                                (hasActiveHover && Ui.MouseOverWidget == button ? icon.ImageName + "-active-hover" : icon.ImageName + "-active") :
                                hasDisabled && button.IsDisabled() ? icon.ImageName + "-disabled" :
                                hasHover && Ui.MouseOverWidget == button ? icon.ImageName + "-hover" : icon.ImageName;

            button.IsDisabled    = () => { UpdateStateIfNecessary(); return(!actorStances.Any()); };
            button.IsHighlighted = () => actorStances.Any(
                at => !at.Trait.IsTraitDisabled && at.Trait.PredictedStance == stance);
            button.OnClick = () => SetSelectionStance(stance);
        }
예제 #4
0
        public static void BindButtonIcon(ButtonWidget button)
        {
            var icon = button.Get <ImageWidget>("ICON");

            var hasActiveImage         = ChromeProvider.GetImage(icon.ImageCollection, icon.ImageName + "-active") != null;
            var hasActiveDisabledImage = ChromeProvider.GetImage(icon.ImageCollection, icon.ImageName + "-active-disabled") != null;
            var hasActivePressedImage  = ChromeProvider.GetImage(icon.ImageCollection, icon.ImageName + "-active-pressed") != null;
            var hasActiveHoverImage    = ChromeProvider.GetImage(icon.ImageCollection, icon.ImageName + "-active-hover") != null;

            var hasImage         = ChromeProvider.GetImage(icon.ImageCollection, icon.ImageName) != null;
            var hasDisabledImage = ChromeProvider.GetImage(icon.ImageCollection, icon.ImageName + "-disabled") != null;
            var hasPressedImage  = ChromeProvider.GetImage(icon.ImageCollection, icon.ImageName + "-pressed") != null;
            var hasHoverImage    = ChromeProvider.GetImage(icon.ImageCollection, icon.ImageName + "-hover") != null;

            icon.GetImageName = () =>
            {
                var isActive   = button.IsHighlighted();
                var isDisabled = button.IsDisabled();
                var isPressed  = button.Depressed;
                var isHovered  = Ui.MouseOverWidget == button;

                var baseName  = button.IsHighlighted() ? icon.ImageName + "-active" : icon.ImageName;
                var stateName = WidgetUtils.GetStatefulImageName(baseName, isDisabled, isPressed, isHovered);

                if (isActive)
                {
                    if (isDisabled)
                    {
                        return(hasActiveDisabledImage ? stateName : hasActiveImage?baseName : icon.ImageName);
                    }
                    else if (isPressed)
                    {
                        return(hasActivePressedImage ? stateName : hasActiveImage?baseName : icon.ImageName);
                    }
                    else if (isHovered)
                    {
                        return(hasActiveHoverImage ? stateName : hasActiveImage?baseName : icon.ImageName);
                    }
                    else
                    {
                        return(hasActiveImage ? baseName : icon.ImageName);
                    }
                }
                else
                {
                    if (isDisabled)
                    {
                        return(hasDisabledImage ? stateName : baseName);
                    }
                    else if (isPressed)
                    {
                        return(hasPressedImage ? stateName : baseName);
                    }
                    else if (isHovered)
                    {
                        return(hasHoverImage ? stateName : baseName);
                    }
                    else
                    {
                        return(baseName);
                    }
                }
            };
        }