public void OnPointerExit(PointerEventData eventData) { pointerOver = false; if (KInputManager.isFocused) { KInputManager.SetUserActive(); if (states.Length != 0) { if (states[state].use_color_on_hover && states[state].color_on_hover != states[state].color) { toggle_image.color = states[state].color; } if (states[state].use_rect_margins) { toggle_image.rectTransform().sizeDelta = states[state].rect_margins; } StatePresentationSetting[] additional_display_settings = states[state].additional_display_settings; for (int i = 0; i < additional_display_settings.Length; i++) { StatePresentationSetting statePresentationSetting = additional_display_settings[i]; if (!((UnityEngine.Object)statePresentationSetting.image_target == (UnityEngine.Object)null) && statePresentationSetting.use_color_on_hover) { statePresentationSetting.image_target.color = statePresentationSetting.color; } } if (onExit != null) { onExit(); } } } }
public void ChangeState(int new_state_index) { state = new_state_index; try { toggle_image.sprite = states[new_state_index].sprite; toggle_image.color = states[new_state_index].color; if (states[new_state_index].use_rect_margins) { toggle_image.rectTransform().sizeDelta = states[new_state_index].rect_margins; } } catch { string text = base.gameObject.name; Transform transform = base.transform; while ((UnityEngine.Object)transform.parent != (UnityEngine.Object)null) { text = text.Insert(0, transform.name + ">"); transform = transform.parent; } Debug.LogError("Multi Toggle state index out of range: " + text + " idx:" + new_state_index, base.gameObject); } StatePresentationSetting[] additional_display_settings = states[state].additional_display_settings; for (int i = 0; i < additional_display_settings.Length; i++) { StatePresentationSetting statePresentationSetting = additional_display_settings[i]; if (!((UnityEngine.Object)statePresentationSetting.image_target == (UnityEngine.Object)null)) { statePresentationSetting.image_target.sprite = statePresentationSetting.sprite; statePresentationSetting.image_target.color = statePresentationSetting.color; } } RefreshHoverColor(); }
protected void RefreshHoverColor() { if (pointerOver) { if (states[state].use_color_on_hover && states[state].color_on_hover != states[state].color) { toggle_image.color = states[state].color_on_hover; } StatePresentationSetting[] additional_display_settings = states[state].additional_display_settings; for (int i = 0; i < additional_display_settings.Length; i++) { StatePresentationSetting statePresentationSetting = additional_display_settings[i]; if (!((UnityEngine.Object)statePresentationSetting.image_target == (UnityEngine.Object)null) && !((UnityEngine.Object)statePresentationSetting.image_target == (UnityEngine.Object)null) && statePresentationSetting.use_color_on_hover) { statePresentationSetting.image_target.color = statePresentationSetting.color_on_hover; } } } }
/// <summary> /// Generates the checkbox image states. /// </summary> /// <param name="imageColor">The color style for the checked icon.</param> /// <returns>The states for this checkbox.</returns> private static ToggleState[] GenerateStates(ColorStyleSetting imageColor) { // Structs sadly do not work well with detours var sps = new StatePresentationSetting() { color = imageColor.activeColor, use_color_on_hover = true, color_on_hover = imageColor.hoverColor, image_target = null, name = "Partial" }; return(new ToggleState[] { new ToggleState() { // Unchecked color = PUITuning.Colors.Transparent, color_on_hover = PUITuning.Colors. Transparent, sprite = null, use_color_on_hover = false, additional_display_settings = new StatePresentationSetting[] { new StatePresentationSetting() { color = imageColor.activeColor, use_color_on_hover = false, image_target = null, name = "Unchecked" } } }, new ToggleState() { // Checked color = imageColor.activeColor, color_on_hover = imageColor.hoverColor, sprite = PUITuning.Images.Checked, use_color_on_hover = true, additional_display_settings = new StatePresentationSetting[] { sps } }, new ToggleState() { // Partial color = imageColor.activeColor, color_on_hover = imageColor.hoverColor, sprite = PUITuning.Images.Partial, use_color_on_hover = true, additional_display_settings = new StatePresentationSetting[] { sps } } }); }