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;
             }
         }
     }
 }
Ejemplo n.º 4
0
        /// <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 }
                }
            });
        }