Riferimento › Riferimento delle funzioni › Conditions

Conditions.common.Widget_SpellWidget

pubblica

Chiamala come

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

Disponibile direttamente tramite addon; non serve alcuna dipendenza.

Cosa fa

Crea un campo per incantesimi con suggerimenti, convalida e supporto ai link degli incantesimi per i widget delle condizioni personalizzate. La callback di aggiornamento si occupa di salvare il valore scelto; aggiungi il widget restituito al genitore della callback.

Argomenti

NomeTipoCosa fa
selfRMAddonIstanza dell'addon Rotation Master (implicita nelle chiamate con due punti).
specnumberAmbito di specializzazione usato per risolvere i suggerimenti degli incantesimi.
editboxstringTipo di input di riferimento, ad esempio Spec_EditBox, usato per i suggerimenti degli incantesimi.
valuetableRecord del valore della condizione contenente i campi spell, ranked e disabled; aggiornato sul posto.
nametoidfunctionRisolutore che associa un nome di incantesimo digitato al suo ID.
isvalidfunctionPredicato che convalida il valore proposto per l'incantesimo.
updatefunctionCallback che riceve il valore dell'incantesimo confermato.

Valori restituiti

1RMConditionGroupGruppo di campi incantesimo contenente un'icona di azione, un input di riferimento e un controllo facoltativo del grado.

Edizioni

Le funzioni di supporto integrate sono registrate su ogni edizione. Ciò che cambia è l'API di gioco che leggono; dove ne manca una, la funzione di supporto ripiega su un'alternativa o restituisce nil con un motivo.

  • Non disponibile su quell'edizione (il motivo è nel suggerimento)
  • Solo mentre sono attivi i ripieghi di Blizzard per le API deprecate
API di giocoClassic EraTBC AnniversaryClassic progressionForeverRetail
GameTooltipClassic EraTBC AnniversaryClassic progressionForeverRetail

Come la chiama l'addon

e altri 19: Incantesimo del famiglio disponibile (widget), Cariche dell'incantesimo del famiglio (widget), Tempo di recupero dell'incantesimo del famiglio (widget), Cronologia dei lanci del famiglio (widget), Tempo nella cronologia dei lanci del famiglio (widget), Incantesimo del famiglio a portata (widget), Tempo di ricarica dell'incantesimo del famiglio (widget), Incantesimo attivo o in attesa (widget), Ripetizione automatica dell'incantesimo attiva (widget), Incantesimo disponibile (widget), Cariche dell'incantesimo (widget), Tempo di recupero dell'incantesimo (widget), Bagliore di attivazione dell'incantesimo (widget), Cronologia dei lanci (widget), Tempo nella cronologia dei lanci (widget), Incantesimo a portata (widget), Tempo di ricarica dell'incantesimo (widget), Totem specifico presente (widget), Tempo rimanente del totem specifico (widget)

Dipendenze

Sorgente

Conditions/common.lua, riga 82. Nel gioco è in sola lettura; Duplica crea una copia modificabile.

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

Torna a Riferimento delle funzioni