Référence › Référence des fonctions › Conditions

Conditions.common.Widget_SpellWidget

publique

Appel

addon:Widget_SpellWidget(spec, editbox, value, nametoid, isvalid, update)

Disponible directement via addon ; aucune dépendance n'est nécessaire.

Ce qu'elle fait

Crée une saisie de sort avec suggestions, validation et prise en charge des liens de sort pour les widgets de condition personnalisée. Le rappel de mise à jour se charge d'enregistrer la valeur choisie ; ajoutez le widget renvoyé au parent du rappel.

Arguments

NomTypeCe qu'elle fait
selfRMAddonInstance de l'addon Rotation Master (implicite avec un appel par deux-points).
specnumberPortée de spécialisation utilisée pour résoudre les suggestions de sorts.
editboxstringType de saisie de référence, comme Spec_EditBox, utilisé pour les suggestions de sorts.
valuetableEnregistrement de valeur de condition contenant les champs spell, ranked et disabled ; mis à jour sur place.
nametoidfunctionRésolveur associant un nom de sort saisi à son ID.
isvalidfunctionPrédicat qui valide la valeur de sort proposée.
updatefunctionFonction de rappel recevant la valeur de sort validée.

Retours

1RMConditionGroupGroupe de champs de sort contenant une icône d'action, une saisie de référence et un contrôle de rang facultatif.

Éditions

Les fonctions utilitaires intégrées sont enregistrées sur toutes les éditions. Ce qui diffère, c'est l'API du jeu qu'elles lisent ; quand l'une manque, la fonction utilitaire se rabat sur une alternative ou renvoie nil avec une raison.

  • Indisponible sur cette édition (la raison figure dans l'infobulle)
  • Uniquement tant que les solutions de repli de Blizzard pour les fonctions obsolètes sont actives
API du jeuClassic EraTBC AnniversaryClassic ProgressionForeverRetail
GameTooltipClassic EraTBC AnniversaryClassic ProgressionForeverRetail

Comment l'addon l'appelle

et 19 autres: Sort de familier disponible (widget), Charges du sort de familier (widget), Temps de recharge du sort de familier (widget), Historique des sorts de familier lancés (widget), Historique des sorts de familier lancés (temps) (widget), Sort de familier à portée (widget), Temps de rechargement du sort de familier (widget), Sort actif ou en attente (widget), Répétition automatique du sort active (widget), Sort disponible (widget), Charges du sort (widget), Temps de recharge du sort (widget), Lueur d'activation du sort (widget), Historique des sorts lancés (widget), Historique des sorts lancés (temps) (widget), Sort à portée (widget), Temps de rechargement du sort (widget), Totem spécifique présent (widget), Temps restant d'un totem spécifique (widget)

Dépendances

Source

Conditions/common.lua, ligne 82. En lecture seule dans le jeu ; Dupliquer crée une copie modifiable.

Conditions.common.Widget_SpellWidget(self, spec, editbox, value, nametoid, isvalid, update)
    local spell_group = addon:CreateConditionGroup()
    spell_group:SetLayout('RM-SpellField')
    local rankChoice

    local spell = addon:CreateSpellEditBox(editbox,value.spell)
    local initialSpell=type(value.spell)=="string" and SpellData:GetSpellId(value.spell) or value.spell
    local spellIcon = addon:CreateSpellActionIcon(spec == (BOOKTYPE_PET or "pet") and "pet" or "spell",initialSpell,isvalid)
    spellIcon:SetWidth(44)
    spellIcon:SetHeight(44)
    spellIcon:SetText(value.spell)
    spellIcon:SetCallback("OnEnterPressed", function(_, _, v)
        v = tonumber(v)
        if v and isvalid(v) then
            value.spell = v
            spellIcon:SetText(v)
            spell:SetText(SpellData:SpellName(value.spell, not value.ranked))
            if GameTooltip:IsOwned(spellIcon.frame) and GameTooltip:IsVisible() then
                GameTooltip:SetHyperlink("spell:" .. v)
            end
        else
            value.spell = nil
            spellIcon:SetText(nil)
            spell:SetText(nil)
            if GameTooltip:IsOwned(spellIcon.frame) and GameTooltip:IsVisible() then
                GameTooltip:Hide()
            end
        end
        update()
    end)
    spellIcon:SetCallback("OnEnter", function()
        if value.spell then
            GameTooltip:SetOwner(spellIcon.frame, "ANCHOR_BOTTOMRIGHT", 3)
            GameTooltip:SetHyperlink("spell:" .. value.spell)
        end
    end)
    spellIcon:SetCallback("OnLeave", function()
        if GameTooltip:IsOwned(spellIcon.frame) then
            GameTooltip:Hide()
        end
    end)
    spellIcon:SetDisabled(value.disabled)
    spell_group:AddChild(spellIcon)

    if addon:ClientHasSpellRanks() and spec ~= (BOOKTYPE_PET or "pet") then
        local nr_button = addon:CreateConditionCheckBox()
        nr_button:SetLabel(L["Use this exact spell rank"])
        nr_button.button.tooltip = RANK_TIP
        nr_button:SetValue(value.ranked or false)
        nr_button:SetCallback("OnValueChanged", function(_, _, val)
            value.ranked = val
            spell:SetUserData("norank", not val)
            spell:SetText(value.spell and SpellData:SpellName(value.spell, not value.ranked))
            update()
        end)
        nr_button:SetDisabled(value.disabled)
        rankChoice=nr_button
    end

    spell:SetFullWidth(true)
    spell:SetLabel('')
    spell:SetText(value.spell and SpellData:SpellName(value.spell, not value.ranked))
    spell:SetUserData("norank", not value.ranked)
    spell:SetUserData("spec", spec)
    spell:SetCallback("OnEnterPressed", function(_, _, v)
        if not addon.isint(v) then
            v = nametoid(v)
        else
            v = tonumber(v)
        end
        if isvalid(v) then
            value.spell = v
            spell:SetText(SpellData:SpellName(value.spell, not value.ranked))
        else
            value.spell = nil
            spell:SetText(nil)
        end
        spellIcon:SetText(value.spell)
        update()
    end)
    spell:SetDisabled(value.disabled)
    spell_group:AddChild(spell)
    if rankChoice then
        rankChoice.frame.GetFontString=function() return rankChoice.button:GetFontString() end
        spell_group:AddChild(rankChoice)
    end

    return spell_group

Retour à Référence des fonctions