Пример #1
0
    void Tooltip::updateSelf(float elapsed)
    {
        // base class processing.
        Window::updateSelf(elapsed);

        // do something based upon current Tooltip state.
        switch (d_state)
        {
        case Inactive:
            doInactiveState(elapsed);
            break;

        case Active:
            doActiveState(elapsed);
            break;

        case FadeIn:
            doFadeInState(elapsed);
            break;

        case FadeOut:
            doFadeOutState(elapsed);
            break;

        default:
            // This should never happen.
            Logger::getSingleton().logEvent("Tooltip (Name: " + getName() + "of Class: " + getType() + ") is in an unknown state.  Switching to Inactive state.", Errors);
            switchToInactiveState();
        }
    }
Пример #2
0
    void Tooltip::doActiveState(float elapsed)
    {
        // if no target, switch immediately to inactive state.
        if (!d_target || d_target->getTooltipText().empty())
        {
            // hide immediately since the text is empty
            hide();

            switchToInactiveState();
        }
        // else see if display timeout has been reached
        else if ((d_displayTime > 0) && ((d_elapsed += elapsed) >= d_displayTime))
        {
            // display time is up, switch states
            switchToInactiveState();
        }
    }
Пример #3
0
 void Tooltip::doFadeOutState(float elapsed)
 {
     // if no target, switch immediately to inactive state.
     if (!d_target || d_target->getTooltipText().empty())
     {
         switchToInactiveState();
     }
     else
     {
         if ((d_elapsed += elapsed) >= d_fadeTime)
         {
             setAlpha(0.0f);
             switchToInactiveState();
         }
         else
         {
             setAlpha(1.0f - (1.0f / d_fadeTime) * d_elapsed);
         }
     }
 }
Пример #4
0
    Tooltip::Tooltip(const String& type, const String& name) :
            Window(type, name)
    {
        d_hoverTime     = 0.4f;
        d_displayTime   = 7.5f;
        d_fadeTime      = 0.33f;

        addTooltipProperties();

        setClippedByParent(false);
        setDestroyedByParent(false);
        setAlwaysOnTop(true);

        switchToInactiveState();
    }