ActionButton1 Template Routing
Code:
ActionButton1 <CheckButton name="ActionButton1" inherits="ActionBarButtonTemplate" parent="MainMenuBarArtFrame" id="1">
|-ActionBarButtonTemplate <CheckButton name="ActionBarButtonTemplate" inherits="ActionBarButtonCodeTemplate, ActionButtonTemplate" virtual="true">
|-ActionButtonTemplate <CheckButton name="ActionButtonTemplate" virtual="true">
|-ActionBarButtonCodeTemplate <CheckButton name="ActionBarButtonCodeTemplate" inherits="SecureActionButtonTemplate" virtual="true">
|-SecureActionButtonTemplate <Button name="SecureActionButtonTemplate" inherits="SecureFrameTemplate" virtual="true">
|-SecureFrameTemplate <Frame name="SecureFrameTemplate" protected="true" virtual="true"/>
ActionButtonTemplate.xml
Code:
<CheckButton name="ActionButtonTemplate" virtual="true">
<Texture name="$parentIcon" parentKey="icon"/>
<Texture name="$parentFlash" parentKey="Flash" file="Interface\Buttons\UI-QuickslotRed" hidden="true"/>
<Texture name="$parentFlyoutBorder" inherits="ActionBarFlyoutButton-IconFrame" parentKey="FlyoutBorder" hidden="true">
<Texture name="$parentFlyoutBorderShadow" inherits="ActionBarFlyoutButton-IconShadow" parentKey="FlyoutBorderShadow" hidden="true">
<Texture name="$parentFlyoutArrow" inherits="ActionBarFlyoutButton-ArrowUp" parentKey="FlyoutArrow" hidden="true"/>
<FontString name="$parentHotKey" inherits="NumberFontNormalSmallGray" parentKey="HotKey" justifyH="RIGHT">
<FontString name="$parentCount" inherits="NumberFontNormal" parentKey="Count" justifyH="RIGHT">
<FontString name="$parentName" parentKey="Name" inherits="GameFontHighlightSmallOutline">
<Texture name="$parentBorder" file="Interface\Buttons\UI-ActionButton-Border" parentKey="Border" hidden="true" alphaMode="ADD">
<Texture parentKey="NewActionTexture" atlas="bags-newitem" useAtlasSize="false" alphaMode="ADD" hidden="true">
<Cooldown name="$parentCooldown" inherits="CooldownFrameTemplate" parentKey="cooldown">
<NormalTexture name="$parentNormalTexture" parentKey="NormalTexture" file="Interface\Buttons\UI-Quickslot2">
<PushedTexture file="Interface\Buttons\UI-Quickslot-Depress"/>
<HighlightTexture alphaMode="ADD" file="Interface\Buttons\ButtonHilight-Square"/>
<CheckedTexture alphaMode="ADD" file="Interface\Buttons\CheckButtonHilight"/>
</CheckButton>
Accessing ActionButton1 objects
Lua Code:
local button = ActionButton1
local buttonName = button:GetName()
local icon = _G[buttonName.."Icon"]
local flash = _G[buttonName.."Flash"]
local flyoutBorder = _G[buttonName.."FlyoutBorder"]
local flyoutBorderShadow = _G[buttonName.."FlyoutBorderShadow"]
local flyoutArrow = _G[buttonName.."FlyoutArrow"]
local hotKey = _G[buttonName.."HotKey"]
local count = _G[buttonName.."Count"]
local name = _G[buttonName.."Name"]
local border = _G[buttonName.."Border"]
local NewActionTexture = button.NewActionTexture
local cooldown = _G[buttonName.."Cooldown"]
local normalTexture = button:GetNormalTexture()
local pushedTexture = button:GetPushedTexture()
local highlightTexture = button:GetHighlightTexture()
local checkedTexture = button:GetCheckedTexture()
WoW API CheckButton:
http://wowprogramming.com/docs/widgets/CheckButton
Other bars
Code:
--OverrideActionBarButtonTemplate
<CheckButton name="OverrideActionBarButtonTemplate" inherits="ActionBarButtonTemplate" virtual="true">
</CheckButton>
--PetActionButtonTemplate
<CheckButton name="PetActionButtonTemplate" inherits="SecureFrameTemplate, ActionButtonTemplate" frameStrata="MEDIUM" virtual="true">
<Texture name="$parentAutoCastable" file="Interface\Buttons\UI-AutoCastableOverlay" hidden="true">
<Frame name="$parentShine" inherits="AutoCastShineTemplate">
<NormalTexture name="$parentNormalTexture2" file="Interface\Buttons\UI-Quickslot2">
</CheckButton>
--PossessButtonTemplate
<CheckButton name="PossessButtonTemplate" inherits="SecureFrameTemplate, ActionButtonTemplate" virtual="true">
</CheckButton>
--StanceButtonTemplate
<CheckButton name="StanceButtonTemplate" inherits="SecureFrameTemplate, ActionButtonTemplate" virtual="true">
<NormalTexture name="$parentNormalTexture2" file="Interface\Buttons\UI-Quickslot2">
</CheckButton>
--ExtraActionButtonTemplate
<CheckButton name="ExtraActionButtonTemplate" inherits="ActionBarButtonCodeTemplate" virtual="true">
<Texture name="$parentIcon" parentKey="icon"/>
<Texture name="$parentFlash" file="Interface\Buttons\UI-QuickslotRed" hidden="true"/>
<FontString name="$parentHotKey" parentKey="HotKey" inherits="NumberFontNormalGray">
<FontString name="$parentCount" parentKey="Count" inherits="NumberFontNormal" justifyH="RIGHT">
<Texture name="$parentFlash" parentKey="Flash" file="Interface\Buttons\UI-QuickslotRed" hidden="true"/>
<Texture file="Interface\UnitPowerBarAlt\SpellPush-Frame" parentKey="style">
<Cooldown name="$parentCooldown" inherits="CooldownFrameTemplate" parentKey="cooldown">
<NormalTexture name="$parentNormalTexture" parentKey="NormalTexture" file="Interface\Buttons\UI-Quickslot2">
<HighlightTexture alphaMode="ADD" file="Interface\Buttons\ButtonHilight-Square"/>
<CheckedTexture alphaMode="ADD" file="Interface\Buttons\CheckButtonHilight"/>
</CheckButton>
All actionbars (minus ExtraActionBar) use ActionButtonTemplate for default button styles.
Notable differences:
PetActionBar has 3 new objects
- AutoCastable
- Shine
- NormalTexture2 (overrides NormalTexture from the ActionButtonTemplate, but retrievable by using button:GetNormalTexture().)
StanceBar has one new object
- NormalTexture2 (overrides NormalTexture from the ActionButtonTemplate, but retrievable by using button:GetNormalTexture().)
ExtraActionBar
ExtraActionButton1 has its own template and thus needs a different style function.
ExtraActionButton1.style is the wierd art around the ExtraActionButton1.
ExtraActionButton1 has two Textures with $parentname = "Flash". Not sure if that is a bug.