Пример #1
0
        /// <summary>
        /// Construct texture id for button background, based on prefix, button state and whether
        /// the button is active.
        /// </summary>
        /// <returns>Atlas sprite id.</returns>
        internal string GetBackgroundTextureId(ControlEnabledState enabledState,
                                               ControlHoveredState hoveredState,
                                               ControlActiveState activeState)
        {
            string chosenPrefix = string.IsNullOrEmpty(BackgroundPrefix)
                                      ? Prefix
                                      : BackgroundPrefix;
            string ret = chosenPrefix + "-bg";

            if (enabledState == ControlEnabledState.Disabled)
            {
                return(BackgroundDisabled ? ret + "-disabled" : ret + "-normal");
            }

            if (activeState == ControlActiveState.Active)
            {
                return(BackgroundActive ? ret + "-active" : ret + "-normal");
            }

            if (hoveredState == ControlHoveredState.Hovered)
            {
                return(BackgroundHovered ? ret + "-hovered" : ret + "-normal");
            }

            return(ret + "-normal");
        }
Пример #2
0
        internal void UpdateButtonImageAndTooltip()
        {
            if (this.Skin == null)
            {
                // No skin, no textures, nothing to be updated
                return;
            }
            ControlActiveState activeState = CanActivate() && IsActive() ?
                                             ControlActiveState.Active : ControlActiveState.Normal;
            ControlEnabledState enabledState =
                this.enabled ? ControlEnabledState.Enabled : ControlEnabledState.Disabled;

            m_BackgroundSprites.m_Normal
                = m_BackgroundSprites.m_Disabled =
                      m_BackgroundSprites.m_Focused =
                          Skin.GetBackgroundTextureId(
                              enabledState,
                              ControlHoveredState.Normal,
                              activeState);
            m_BackgroundSprites.m_Hovered
                = Skin.GetBackgroundTextureId(
                      enabledState,
                      ControlHoveredState.Hovered,
                      activeState);
            m_PressedBgSprite = Skin.GetBackgroundTextureId(
                enabledState,
                ControlHoveredState.Normal,
                ControlActiveState.Active);

            m_ForegroundSprites.m_Normal          =
                m_ForegroundSprites.m_Disabled    =
                    m_ForegroundSprites.m_Focused =
                        Skin.GetForegroundTextureId(
                            enabledState,
                            ControlHoveredState.Normal,
                            activeState);
            m_ForegroundSprites.m_Hovered
                  = m_PressedFgSprite
                  = Skin.GetForegroundTextureId(
                        enabledState,
                        ControlHoveredState.Hovered,
                        activeState);

            // Update localized tooltip with shortcut key if available
            string shortcutText = GetShortcutTooltip();

            tooltip = GetTooltip() + shortcutText;

            this.isVisible = IsVisible();
            this.Invalidate();
        }
Пример #3
0
        internal void UpdateButtonImage()
        {
            if (this.Skin == null)
            {
                // No skin, no textures, nothing to be updated
                return;
            }

            ControlActiveState activeState = CanActivate() && IsActive()
                                                 ? ControlActiveState.Active
                                                 : ControlActiveState.Normal;
            ControlEnabledState enabledState =
                this.isEnabled ? ControlEnabledState.Enabled : ControlEnabledState.Disabled;

            m_BackgroundSprites.m_Normal
                = m_BackgroundSprites.m_Disabled =
                      m_BackgroundSprites.m_Focused =
                          Skin.GetBackgroundTextureId(
                              enabledState: enabledState,
                              hoveredState: ControlHoveredState.Normal,
                              activeState: activeState);
            m_BackgroundSprites.m_Hovered
                = Skin.GetBackgroundTextureId(
                      enabledState: enabledState,
                      hoveredState: ControlHoveredState.Hovered,
                      activeState: activeState);
            m_PressedBgSprite = Skin.GetBackgroundTextureId(
                enabledState: enabledState,
                hoveredState: ControlHoveredState.Normal,
                activeState: ControlActiveState.Active);

            m_ForegroundSprites.m_Normal          =
                m_ForegroundSprites.m_Disabled    =
                    m_ForegroundSprites.m_Focused =
                        Skin.GetForegroundTextureId(
                            enabledState: enabledState,
                            hoveredState: ControlHoveredState.Normal,
                            activeState: activeState);
            m_ForegroundSprites.m_Hovered
                  = m_PressedFgSprite
                  = Skin.GetForegroundTextureId(
                        enabledState: enabledState,
                        hoveredState: ControlHoveredState.Hovered,
                        activeState: activeState);
        }
Пример #4
0
        /// <summary>
        /// Construct texture id for button foreground, based on prefix, what the button does,
        /// and whether it is active.
        /// </summary>
        /// <returns>Atlas sprite id.</returns>
        internal string GetForegroundTextureId(ControlEnabledState enabledState,
                                               ControlHoveredState hoveredState,
                                               ControlActiveState activeState)
        {
            string ret = Prefix + "-fg";

            if (enabledState == ControlEnabledState.Disabled)
            {
                return(ForegroundDisabled ? ret + "-disabled" : ret + "-normal");
            }

            if (activeState == ControlActiveState.Active)
            {
                return(ForegroundActive ? ret + "-active" : ret + "-normal");
            }

            if (hoveredState == ControlHoveredState.Hovered)
            {
                return(ForegroundHovered ? ret + "-hovered" : ret + "-normal");
            }

            return(ret + "-normal");
        }