OptionsCheckbox_OnClick(this) OptionsRow_Hover(this:GetParent(), 1) OptionsRow_Hover(this:GetParent(), nil) OptionsRow_Hover(this, 1) OptionsRow_Hover(this, nil) OptionsSlider_OnValueChanged(this, arg1) OptionsRow_Hover(this:GetParent():GetParent(), 1) OptionsRow_Hover(this:GetParent():GetParent(), nil) OptionsRow_Hover(this, 1) OptionsRow_Hover(this, nil) OptionsRow_Hover(this, 1) OptionsRow_Hover(this, nil) this:SetBackdropColor(0, 0, 0, 0) this:SetBackdropBorderColor(0.6, 0.6, 0.6) this:SetBackdropColor(0, 0, 0, 0) this:SetBackdropBorderColor(0.6, 0.6, 0.6) getglobal(self:GetName() .. "Label"):SetText("Gameplay") getglobal(self:GetName() .. "Label"):SetText("System") self:SetScrollChild(BenillaOptionsFrameContainerBody) OptionsScroll_Fit() BenillaScroll_OnMouseWheel(this, arg1) BenillaScroll_SyncBar(this) BenillaScroll_SyncBar(this) OptionsRow_OnLoad(self, "deselectOnClick", "Sticky Targeting", "OPTION_TOOLTIP_GAMEFIELD_DESELECT") self.invert = 1 OptionsRow_OnLoad(self, "assistAttack", "Attack on assist", "OPTION_TOOLTIP_ASSIST_ATTACK") OptionsRow_OnLoad(self, "autoClearAFK", "Auto Clear AFK", "OPTION_TOOLTIP_CLEAR_AFK") OptionsRow_OnLoad(self, "BlockTrades", "Block Trades", "OPTION_TOOLTIP_BLOCK_TRADES") OptionsRow_OnLoad(self, "autoSelfCast", "Auto Self Cast", "OPTION_TOOLTIP_AUTO_SELF_CAST") OptionsRow_OnLoad(self, "autoLootDefault", "Auto Loot") OptionsRow_OnLoad(self, "mouseInvertPitch", "Invert Mouse", "OPTION_TOOLTIP_INVERT_MOUSE") OptionsRow_OnLoad(self, "mousespeed", "Mouse Sensitivity", "OPTION_TOOLTIP_MOUSE_SENSITIVITY") OptionsSliderRow_Setup(self, 0.5, 1.5, 0.05) OptionsRow_OnLoad(self, "cameraSmoothStyle", "Camera Following Style", "OPTION_TOOLTIP_CAMERA1") OptionsDropdownRow_Setup(self, { { text = "Smart", value = "1", tip = "OPTION_TOOLTIP_CAMERA1" }, { text = "Always", value = "2", tip = "OPTION_TOOLTIP_CAMERA2" }, { text = "Never", value = "0", alt = "3", tip = "OPTION_TOOLTIP_CAMERA3" }, }) OptionsRow_OnLoad(self, "cameraTerrainTilt", "Follow Terrain", "OPTION_TOOLTIP_FOLLOW_TERRAIN") OptionsRow_OnLoad(self, "cameraBobbing", "Head Bob", "OPTION_TOOLTIP_HEAD_BOB") OptionsRow_OnLoad(self, "cameraYawSmoothSpeed", "Auto-Follow Speed", "OPTION_TOOLTIP_AUTO_FOLLOW_SPEED") OptionsSliderRow_Setup(self, 90, 270, 10, "raw") OptionsRow_OnLoad(self, "cameraWaterCollision", "Water Collision", "OPTION_TOOLTIP_WATER_COLLISION") OptionsRow_OnLoad(self, "cameraPivot", "Smart Pivot", "OPTION_TOOLTIP_SMART_PIVOT") OptionsRow_OnLoad(self, "cameraYawMoveSpeed", "Mouse Look Speed", "OPTION_TOOLTIP_MOUSE_LOOK_SPEED") OptionsSliderRow_Setup(self, 90, 270, 10, "raw") self.partner = { cvar = "cameraPitchMoveSpeed", scale = 0.5 } OptionsRow_OnLoad(self, "cameraDistanceMaxFactor", "Max Camera Distance", "OPTION_TOOLTIP_MAX_FOLLOW_DIST") OptionsSliderRow_Setup(self, 1.0, 2.0, 0.1, "yards") OptionsRow_OnLoad(self, "MasterSoundEffects", "Enable All Sound", "OPTION_TOOLTIP_ENABLE_ALL_SOUND") self.soundQuirk = 1 OptionsRow_OnLoad(self, "MasterVolume", "Master Volume", "OPTION_TOOLTIP_MASTER_VOLUME") OptionsRow_OnLoad(self, "SoundVolume", "Sound Volume", "OPTION_TOOLTIP_SOUND_VOLUME", 1) -- era parentInitializer (search pulls Master in -- above a matched child, SettingsPanel.lua l.665) self.parentRow = "RowMaster" OptionsRow_OnLoad(self, "MusicVolume", "Music Volume", "OPTION_TOOLTIP_MUSIC_VOLUME", 1) self.parentRow = "RowMaster" OptionsRow_OnLoad(self, "AmbienceVolume", "Ambience Volume", "OPTION_TOOLTIP_AMBIENCE_VOLUME", 1) self.parentRow = "RowMaster" OptionsRow_OnLoad(self, "EnableMusic", "Enable Music", "OPTION_TOOLTIP_ENABLE_MUSIC") self.soundQuirk = 1 OptionsRow_OnLoad(self, "EnableAmbience", "Enable Ambience", "OPTION_TOOLTIP_ENABLE_AMBIENCE") self.soundQuirk = 1 OptionsRow_OnLoad(self, "EnableErrorSpeech", "Enable Error Speech", "OPTION_TOOLTIP_ENABLE_ERROR_SPEECH") self.soundQuirk = 1 OptionsRow_OnLoad(self, "Sound_EnableSoundWhenGameIsInBG", "Enable Sound in Background", "BENILLA_TOOLTIP_BACKGROUND_SOUND") self.soundQuirk = 1 OptionsRow_OnLoad(self, "uiScale", "UI Scale", "OPTION_TOOLTIP_UI_SCALE") OptionsSliderRow_Setup(self, OptionsFrameSliders[1].minValue, OptionsFrameSliders[1].maxValue, OptionsFrameSliders[1].valueStep) -- era registers its uiscale row CommitFlag.Apply -- (Graphics.lua l.684): the one row whose live -- write would rescale the very slider mid-drag — -- it stages and commits through the Apply button. self.deferred = 1 OptionsRow_OnLoad(self, "farclip", "Terrain Distance", "OPTION_TOOLTIP_FARCLIP") OptionsSliderRow_Setup(self, OptionsFrameSliders[2].minValue, OptionsFrameSliders[2].maxValue, OptionsFrameSliders[2].valueStep, "raw") OptionsRow_OnLoad(self, "WorldDetail", "Environment Detail", "OPTION_TOOLTIP_ENVIRONMENT_DETAIL") -- The stop names are the era preset ladder's (its -- quality dropdowns say Low/Medium/High); 1.12's -- slider had no stop labels to quote. OptionsSliderRow_Setup(self, OptionsFrameSliders[3].minValue, OptionsFrameSliders[3].maxValue, OptionsFrameSliders[3].valueStep, nil, { "Low", "Medium", "High" }) -- The default is the reference's own computation -- rather than a second copy of the number: -- OptionsFrame_SetDefaults displays this row as -- `1 - GetCVarDefault("gamma")` (OptionsFrame.lua -- l.441-445), so the CVar table stays the single -- source and Restore Defaults here lands exactly -- where the reference's would. The `or 1` is for a -- VM whose host registered nothing (a bare kit), -- where the reference would have had a record to -- read because its own lookup creates one. local gd = tonumber(GetCVarDefault("gamma")) or 1 OptionsNumFuncRow_OnLoad(self, GetGamma, SetGamma, tostring(1 - gd), "Brightness", "BENILLA_TOOLTIP_BRIGHTNESS") OptionsSliderRow_Setup(self, OptionsFrameSliders[6].minValue, OptionsFrameSliders[6].maxValue, OptionsFrameSliders[6].valueStep, "travel") OptionsRow_OnLoad(self, "weatherDensity", "Weather Intensity", "OPTION_TOOLTIP_WEATHER_DETAIL") -- The stop names are OURS, and they name the -- reference's own quality table rather than a -- borrowed preset ladder: `0x67b870` maps 0/1/2/3 -- onto the spawn-rate gains {0.1, 0.33, 0.66, 1.0} -- in `[0x8680ec]`, so the top stop really is the -- full rate and the bottom is a tenth of it. 1.12 -- labelled no stop on this slider -- it labelled -- the two ENDS -- but every slider row in this kit -- carries a readout, and "2" is the one thing that -- seat could say that means nothing to a player. OptionsSliderRow_Setup(self, OptionsFrameSliders[9].minValue, OptionsFrameSliders[9].maxValue, OptionsFrameSliders[9].valueStep, nil, { "Minimal", "Low", "Medium", "Full" }) -- Display Mode (1650): MODERN CLASSIC's row, not -- 1.12's, because 1627 already gave us modern -- Classic's two states and a checkbox could only -- name one of them. -- -- Blizzard_SettingsDefinitions_Shared/Graphics.lua -- (live, classic AND classic_era, all identical): -- a BOOLEAN proxy rendered as a dropdown, with -- exactly two entries -- container:Add(true, -- VIDEO_OPTIONS_WINDOWED_FULLSCREEN) and -- container:Add(false, VIDEO_OPTIONS_WINDOWED). -- There is no Fullscreen entry anywhere in it; -- 8.0.1 removed the exclusive mode those clients -- had, which is the same reason 1627 ships none. -- -- It rides gxWindow, OUR persisted CVar, not the -- gxMaximize the modern client uses -- that client -- deleted gxWindow entirely and had to move; we -- did not, and repointing would orphan every -- config.toml already holding the row for nothing. -- Polarity is gxWindow's own: "0" is not-windowed, -- which 1627 redefined as the borderless window. -- -- Not deferred, for the same reason as Vertical -- Sync below: the reference row carries -- gxRestart = 1 and ours applies on the click. OptionsRow_OnLoad(self, "gxWindow", "Display Mode", "BENILLA_TOOLTIP_DISPLAY_MODE") OptionsDropdownRow_Setup(self, { { text = "Windowed (Fullscreen)", value = "0" }, { text = "Windowed", value = "1" }, }) -- Vertical Sync: 1.12's own Video Options checkbox -- 5 (gxVSync), over the window's present mode. -- The reference row carries gxRestart = 1; ours -- does not and must not be marked deferred -- -- wgpu swaps the presentation interval live, so -- the box takes effect as you click it. OptionsRow_OnLoad(self, "gxVSync", "Vertical Sync", "OPTION_TOOLTIP_VERTICAL_SYNC") -- Render Scale (decision 1639) -- benilla's own -- row, no 1.12 counterpart: the reference renders -- straight to the backbuffer and has no second -- image to size. It CLOSES the page, and it is -- the only antialiasing control on it: the -- reference's own Multisampling row was pulled -- 2026-08-27 (decision 1648, the director's call). -- gxMultisample survives as a CVar and $WOW_MSAA -- -- what went is the row, because multisampling -- cannot touch the alpha-tested cutouts that carry -- most of this game's visible aliasing, and above -- 100% this row can. -- -- 50-200%, narrower than the CVar's own clamp -- (RENDER_SCALE_RANGE, 0.25-4.0). That clamp stops -- an absurd value and leaves room for the -- supersampling instrument; this is what a player -- should be offered, and it is where every engine -- puts the same slider. -- -- DEFERRED, and for the reason the flag exists. -- Committing live would rebuild the world's render -- target on every drag tick -- tens of megabytes, -- thirty times across one sweep of the handle. -- Staging to Apply makes that exactly one rebuild, -- which is the same answer uiScale's row already -- reaches for a different reason. OptionsRow_OnLoad(self, "renderScale", "Render Scale", "BENILLA_TOOLTIP_RENDER_SCALE") OptionsSliderRow_Setup(self, 0.5, 2.0, 0.05) self.deferred = 1 for i, name in BENILLA_GRAPHICS_SLIDER_ROWS do local info = OptionsFrameSliders[i] local row = getglobal(this:GetName() .. name) if ( info and row ) then OptionsSliderRow_Setup(row, info.minValue, info.maxValue, info.valueStep, row.fmt, row.stops) end end OptionsGlobalRow_OnLoad(self, "SHOW_COMBAT_TEXT", "Enable Floating Combat Text", "OPTION_TOOLTIP_SHOW_COMBAT_TEXT") self.applyFunc = "CombatText_UpdateOrLoad" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsGlobalRow_OnLoad(self, "COMBAT_TEXT_FLOAT_MODE", "Combat Text Float Mode", "OPTION_TOOLTIP_COMBAT_TEXT_MODE", 1) OptionsDropdownRow_Setup(self, { { text = "Scroll Up", value = "1" }, { text = "Scroll Down", value = "2" }, { text = "Arc", value = "3" }, }) self.parentRow = "RowCombatText" self.applyFunc = "CombatText_UpdateOrLoad" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsGlobalRow_OnLoad(self, "COMBAT_TEXT_SHOW_LOW_HEALTH_MANA", "Show Low Mana and Health", "OPTION_TOOLTIP_COMBAT_TEXT_SHOW_LOW_HEALTH_MANA", 1) self.parentRow = "RowCombatText" self.applyFunc = "CombatText_UpdateOrLoad" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsGlobalRow_OnLoad(self, "COMBAT_TEXT_SHOW_AURAS", "Show Auras", "OPTION_TOOLTIP_COMBAT_TEXT_SHOW_AURAS", 1) self.parentRow = "RowCombatText" self.applyFunc = "CombatText_UpdateOrLoad" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsGlobalRow_OnLoad(self, "COMBAT_TEXT_SHOW_AURA_FADE", "Show Fading Auras", "OPTION_TOOLTIP_COMBAT_TEXT_SHOW_AURA_FADE", 1) self.parentRow = "RowCombatText" self.applyFunc = "CombatText_UpdateOrLoad" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsGlobalRow_OnLoad(self, "COMBAT_TEXT_SHOW_COMBAT_STATE", "Show Combat State", "OPTION_TOOLTIP_COMBAT_TEXT_SHOW_COMBAT_STATE", 1) self.parentRow = "RowCombatText" self.applyFunc = "CombatText_UpdateOrLoad" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsGlobalRow_OnLoad(self, "COMBAT_TEXT_SHOW_DODGE_PARRY_MISS", "Show Dodge/Parries/Misses", "OPTION_TOOLTIP_COMBAT_TEXT_SHOW_DODGE_PARRY_MISS", 1) self.parentRow = "RowCombatText" self.applyFunc = "CombatText_UpdateOrLoad" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsGlobalRow_OnLoad(self, "COMBAT_TEXT_SHOW_RESISTANCES", "Show Damage Reduction", "OPTION_TOOLTIP_COMBAT_TEXT_SHOW_RESISTANCES", 1) self.parentRow = "RowCombatText" self.applyFunc = "CombatText_UpdateOrLoad" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsGlobalRow_OnLoad(self, "COMBAT_TEXT_SHOW_REPUTATION", "Show Reputation", "OPTION_TOOLTIP_COMBAT_TEXT_SHOW_REPUTATION", 1) self.parentRow = "RowCombatText" self.applyFunc = "CombatText_UpdateOrLoad" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsGlobalRow_OnLoad(self, "COMBAT_TEXT_SHOW_REACTIVES", "Show Reactive Spells and Abilities", "OPTION_TOOLTIP_COMBAT_TEXT_SHOW_REACTIVES", 1) self.parentRow = "RowCombatText" self.applyFunc = "CombatText_UpdateOrLoad" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsGlobalRow_OnLoad(self, "COMBAT_TEXT_SHOW_FRIENDLY_NAMES", "Show Friendly Healer Names", "OPTION_TOOLTIP_COMBAT_TEXT_SHOW_FRIENDLY_NAMES", 1) self.parentRow = "RowCombatText" self.applyFunc = "CombatText_UpdateOrLoad" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsGlobalRow_OnLoad(self, "COMBAT_TEXT_SHOW_COMBO_POINTS", "Show Combo Points", "OPTION_TOOLTIP_COMBAT_TEXT_SHOW_COMBO_POINTS", 1) self.parentRow = "RowCombatText" self.applyFunc = "CombatText_UpdateOrLoad" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsGlobalRow_OnLoad(self, "COMBAT_TEXT_SHOW_MANA", "Show Energy Gains", "OPTION_TOOLTIP_COMBAT_TEXT_SHOW_MANA", 1) self.parentRow = "RowCombatText" self.applyFunc = "CombatText_UpdateOrLoad" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsGlobalRow_OnLoad(self, "COMBAT_TEXT_SHOW_HONOR_GAINED", "Show Honor Gained", "OPTION_TOOLTIP_COMBAT_TEXT_SHOW_HONOR_GAINED", 1) self.parentRow = "RowCombatText" self.applyFunc = "CombatText_UpdateOrLoad" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsRow_OnLoad(self, "CombatDamage", "Show Target Damage", "OPTION_TOOLTIP_SHOW_DAMAGE") OptionsRow_OnLoad(self, "CombatLogPeriodicSpells", "Periodic Damage", "OPTION_TOOLTIP_LOG_PERIODIC_EFFECTS", 1) self.parentRow = "RowShowDamage" OptionsRow_OnLoad(self, "PetMeleeDamage", "Pet Damage", "OPTION_TOOLTIP_SHOW_PET_MELEE_DAMAGE", 1) self.parentRow = "RowShowDamage" self.partner = { cvar = "PetSpellDamage" } OptionsFuncRow_OnLoad(self, function() return SHOW_MULTI_ACTIONBAR_1 end, function(value) local on if value and value ~= "0" and value ~= 0 then on = 1 end SHOW_MULTI_ACTIONBAR_1 = on MultiActionBar_Update() SetActionBarToggles(SHOW_MULTI_ACTIONBAR_1, SHOW_MULTI_ACTIONBAR_2, SHOW_MULTI_ACTIONBAR_3, SHOW_MULTI_ACTIONBAR_4) UIParent_ManageFramePositions() end, "0", "Show Bottom Left ActionBar", "OPTION_TOOLTIP_SHOW_MULTIBAR1") OptionsFuncRow_OnLoad(self, function() return SHOW_MULTI_ACTIONBAR_2 end, function(value) local on if value and value ~= "0" and value ~= 0 then on = 1 end SHOW_MULTI_ACTIONBAR_2 = on MultiActionBar_Update() SetActionBarToggles(SHOW_MULTI_ACTIONBAR_1, SHOW_MULTI_ACTIONBAR_2, SHOW_MULTI_ACTIONBAR_3, SHOW_MULTI_ACTIONBAR_4) UIParent_ManageFramePositions() end, "0", "Show Bottom Right ActionBar", "OPTION_TOOLTIP_SHOW_MULTIBAR2") OptionsFuncRow_OnLoad(self, function() return SHOW_MULTI_ACTIONBAR_3 end, function(value) local on if value and value ~= "0" and value ~= 0 then on = 1 end SHOW_MULTI_ACTIONBAR_3 = on MultiActionBar_Update() SetActionBarToggles(SHOW_MULTI_ACTIONBAR_1, SHOW_MULTI_ACTIONBAR_2, SHOW_MULTI_ACTIONBAR_3, SHOW_MULTI_ACTIONBAR_4) UIParent_ManageFramePositions() end, "0", "Show Right ActionBar", "OPTION_TOOLTIP_SHOW_MULTIBAR3") OptionsFuncRow_OnLoad(self, function() return SHOW_MULTI_ACTIONBAR_4 end, function(value) local on if value and value ~= "0" and value ~= 0 then on = 1 end SHOW_MULTI_ACTIONBAR_4 = on MultiActionBar_Update() SetActionBarToggles(SHOW_MULTI_ACTIONBAR_1, SHOW_MULTI_ACTIONBAR_2, SHOW_MULTI_ACTIONBAR_3, SHOW_MULTI_ACTIONBAR_4) UIParent_ManageFramePositions() end, "0", "Show Right ActionBar 2", "OPTION_TOOLTIP_SHOW_MULTIBAR4", 1) OptionsGlobalRow_OnLoad(self, "ALWAYS_SHOW_MULTIBARS", "Always Show ActionBars", "OPTION_TOOLTIP_ALWAYS_SHOW_MULTIBARS") -- A CLICK runs MultiActionBar_UpdateGridVisibility, the -- reference's own click arm (UIOptionsFrame.xml:683). -- The LOAD arm — which only ever SHOWS, because every hide -- is a counted decrement on each well (ActionButton_HideGrid) -- and a load-time hide against wells nobody opened would push -- the count negative — is the stock file's -- VARIABLES_LOADED arm now (UIOptionsFrame.lua l.218-220), -- which is why this row carries no `loadFunc` (2115). self.applyFunc = "MultiActionBar_UpdateGridVisibility" OptionsGlobalRow_OnLoad(self, "LOCK_ACTIONBAR", "Lock ActionBars", "OPTION_TOOLTIP_LOCK_ACTIONBAR") OptionsRow_OnLoad(self, "UberTooltips", "Enhanced Tooltips", "OPTION_TOOLTIP_USE_UBERTOOLTIPS") OptionsRow_OnLoad(self, "statusBarText", "Status Bar Text", "OPTION_TOOLTIP_STATUS_BAR") self.cvarEvent = "STATUS_BAR_TEXT" OptionsGlobalRow_OnLoad(self, "SHOW_TARGET_OF_TARGET", "Show Target of Target", "OPTION_TOOLTIP_SHOW_TARGET_OF_TARGET") self.applyFunc = "TargetofTarget_Update" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsGlobalRow_OnLoad(self, "SHOW_TARGET_OF_TARGET_STATE", "Show When", "OPTION_TOOLTIP_TARGETOFTARGET5", 1) OptionsDropdownRow_Setup(self, { { text = "Raid", value = "1", tip = "OPTION_TOOLTIP_TARGETOFTARGET1" }, { text = "Party", value = "2", tip = "OPTION_TOOLTIP_TARGETOFTARGET2" }, { text = "Solo", value = "3", tip = "OPTION_TOOLTIP_TARGETOFTARGET3" }, { text = "Party or Raid", value = "4", tip = "OPTION_TOOLTIP_TARGETOFTARGET4" }, { text = "Always", value = "5", tip = "OPTION_TOOLTIP_TARGETOFTARGET5" }, }) self.applyFunc = "TargetofTarget_Update" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsFuncRow_OnLoad(self, ShowingCloak, ShowCloak, "1", "Show Cloak", "OPTION_TOOLTIP_SHOW_CLOAK") OptionsFuncRow_OnLoad(self, ShowingHelm, ShowHelm, "1", "Show Helm", "OPTION_TOOLTIP_SHOW_HELM") OptionsGlobalRow_OnLoad(self, "QUEST_FADING_DISABLE", "Instant Quest Text", "OPTION_TOOLTIP_SHOW_QUEST_FADING") OptionsGlobalRow_OnLoad(self, "SHOW_BUFF_DURATIONS", "Buff Durations", "OPTION_TOOLTIP_SHOW_BUFF_DURATION") self.applyFunc = "BuffButtons_UpdatePositions" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsGlobalRow_OnLoad(self, "AUTO_QUEST_WATCH", "Automatic Quest Tracking", "OPTION_TOOLTIP_AUTO_QUEST_WATCH") OptionsRow_OnLoad(self, "profanityFilter", "Profanity Filter", "OPTION_TOOLTIP_PROFANITY_FILTER") OptionsFuncRow_OnLoad(self, TutorialsEnabled, BenillaOptionsFrame_SetTutorialsEnabled, "1", "Show Tutorials", "OPTION_TOOLTIP_SHOW_TUTORIALS") OptionsRow_OnLoad(self, "showGameTips", "Show Loading Screen Tips", "OPTION_TOOLTIP_SHOW_TIPOFTHEDAY") OptionsGlobalRow_OnLoad(self, "SHOW_NEWBIE_TIPS", "Show Detailed Tooltips", "OPTION_TOOLTIP_SHOW_NEWBIE_TIPS") OptionsRow_OnLoad(self, "guildMemberNotify", "Guild Member Alert", "OPTION_TOOLTIP_GUILDMEMBER_ALERT") OptionsGlobalRow_OnLoad(self, "REMOVE_CHAT_DELAY", "Remove Chat Hover Delay", "OPTION_TOOLTIP_REMOVE_CHAT_DELAY") self.applyFunc = "ChatFrame_ApplyMouseOverDelay" -- by NAME, resolved when applied: this file loads before its definer now (1938) OptionsRow_OnLoad(self, "ChatBubbles", "Show Chat Bubbles", "OPTION_TOOLTIP_CHAT_BUBBLES") OptionsRow_OnLoad(self, "showLootSpam", "Detailed Loot Information", "OPTION_TOOLTIP_SHOW_LOOT_SPAM") OptionsRow_OnLoad(self, "ChatBubblesParty", "Show Party Chat Bubbles", "OPTION_TOOLTIP_PARTY_CHAT_BUBBLES") OptionsRow_OnLoad(self, "spamFilter", "Disable Spam Filter", "OPTION_TOOLTIP_DISABLE_SPAM_FILTER") self.invert = 1 OptionsRow_OnLoad(self, "nameplateShowEnemies", "Enemy Name Plates") OptionsRow_OnLoad(self, "nameplateShowFriends", "Friendly Name Plates") OptionsRow_OnLoad(self, "UnitNamePlayer", "Player Names", "OPTION_TOOLTIP_SHOW_PLAYER_NAMES") OptionsRow_OnLoad(self, "UnitNamePlayerGuild", "Player Guild Names", "OPTION_TOOLTIP_SHOW_GUILD_NAMES", 1) self.parentRow = "RowPlayerNames" OptionsRow_OnLoad(self, "UnitNameNPC", "NPC Names", "OPTION_TOOLTIP_SHOW_NPC_NAMES") OptionsRow_OnLoad(self, "UnitNameOwn", "Show Own Name", "OPTION_TOOLTIP_SHOW_OWN_NAME") KeyBindings_CharacterToggle(this) GameTooltip:SetOwner(this, "ANCHOR_RIGHT") GameTooltip:SetText(KeyBindings_String("CHARACTER_SPECIFIC_KEYBINDING_TOOLTIP", "Click this to toggle between general key bindings and key bindings specific to this character."), nil, nil, nil, nil, 1) GameTooltip:Hide() getglobal(this:GetName() .. "Label"):SetText( KeyBindings_String("CHARACTER_SPECIFIC_KEYBINDINGS", "Character Specific Key Bindings")) ScrollFrame_OnLoad() FauxScrollFrame_OnVerticalScroll(KEYBINDINGS_ROW_HEIGHT, KeyBindingsPage_Update) if not KeyBindingsPage.selected then ScrollFrameTemplate_OnMouseWheel(arg1) end if not KeyBindingsPage.selected then BenillaFauxScrollFrame_OnMouseWheel(getglobal(this:GetName() .. "ScrollFrame"), arg1) end if this:GetText() == "" then BenillaOptionsFrameSearchBoxInstructions:Show() BenillaOptionsFrameSearchBoxClearButton:Hide() else BenillaOptionsFrameSearchBoxInstructions:Hide() BenillaOptionsFrameSearchBoxClearButton:Show() end OptionsSearch_OnTextChanged(this:GetText()) this:ClearFocus() BenillaOptionsFrame_UpdateScale() BenillaOptionsFrame_SelectCategory(this.selectedCategory or "Controls") if UpdateMicroButtons then UpdateMicroButtons() end BenillaOptionsFrameSearchBox:SetText("") OptionsPage_DiscardPending() KeyBindings_SetSelected(nil) KeyBindings_Output("") if UpdateMicroButtons then UpdateMicroButtons() end