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, 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 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 TextInputPrompt( string title, string prompt, string initialText, Action <string> onAccept, Action onCancel = null, string acceptText = null, string cancelText = null, Func <string, bool> inputValidator = null) { var panel = Ui.OpenWindow("TEXT_INPUT_PROMPT"); Func <bool> doValidate = null; ButtonWidget acceptButton = null, cancelButton = null; // Title panel.Get <LabelWidget>("PROMPT_TITLE").GetText = () => title; // Prompt panel.Get <LabelWidget>("PROMPT_TEXT").GetText = () => prompt; // Text input var input = panel.Get <TextFieldWidget>("INPUT_TEXT"); var isValid = false; input.Text = initialText; input.IsValid = () => isValid; input.OnEnterKey = () => { if (acceptButton.IsDisabled()) { return(false); } acceptButton.OnClick(); return(true); }; input.OnEscKey = () => { if (cancelButton.IsDisabled()) { return(false); } cancelButton.OnClick(); return(true); }; input.TakeKeyboardFocus(); input.CursorPosition = input.Text.Length; input.OnTextEdited = () => doValidate(); // Buttons acceptButton = panel.Get <ButtonWidget>("ACCEPT_BUTTON"); if (!string.IsNullOrEmpty(acceptText)) { acceptButton.GetText = () => acceptText; } acceptButton.OnClick = () => { if (!doValidate()) { return; } Ui.CloseWindow(); onAccept(input.Text); }; cancelButton = panel.Get <ButtonWidget>("CANCEL_BUTTON"); if (!string.IsNullOrEmpty(cancelText)) { cancelButton.GetText = () => cancelText; } cancelButton.OnClick = () => { Ui.CloseWindow(); onCancel?.Invoke(); }; // Validation doValidate = () => { if (inputValidator == null) { return(true); } isValid = inputValidator(input.Text); if (isValid) { acceptButton.Disabled = false; return(true); } acceptButton.Disabled = true; return(false); }; doValidate(); }
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); } } }; }
void BindButtonIcon(ButtonWidget button) { var icon = button.Get <ImageWidget>("ICON"); icon.GetImageName = () => button.IsDisabled() ? icon.ImageName + "-disabled" : icon.ImageName; }