View Single Post
05-27-16, 07:25 AM   #5
zork
A Pyroguard Emberseer
 
zork's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 1,740
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:
  1. local button = ActionButton1
  2. local buttonName = button:GetName()
  3.  
  4. local icon = _G[buttonName.."Icon"]
  5. local flash = _G[buttonName.."Flash"]
  6. local flyoutBorder = _G[buttonName.."FlyoutBorder"]
  7. local flyoutBorderShadow = _G[buttonName.."FlyoutBorderShadow"]
  8. local flyoutArrow = _G[buttonName.."FlyoutArrow"]
  9. local hotKey = _G[buttonName.."HotKey"]
  10. local count = _G[buttonName.."Count"]
  11. local name = _G[buttonName.."Name"]
  12. local border = _G[buttonName.."Border"]
  13. local NewActionTexture = button.NewActionTexture
  14. local cooldown = _G[buttonName.."Cooldown"]
  15.  
  16. local normalTexture = button:GetNormalTexture()
  17. local pushedTexture = button:GetPushedTexture()
  18. local highlightTexture = button:GetHighlightTexture()
  19. 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.
__________________
| Simple is beautiful.
| WoWI AddOns | GitHub | Zork (WoW)

"I wonder what the non-pathetic people are doing tonight?" - Rajesh Koothrappali (The Big Bang Theory)

Last edited by zork : 05-27-16 at 08:06 AM.