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); }
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); }
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); } } }; }