view BuffFrame.xml @ 37:e84d645c8ab8

- revised the tracker update function to build its complete data list up front and use the values as points of comparison for determining possible out of place blocks, which will be iterated over afterward to remove what wasn't re-used - also entailed revising the exact role of global event handlers and function hooks, limiting their directions of communication so one doesn't end up calling the other multiple or inifinity times - schema handling polish
author Nenue
date Mon, 18 Apr 2016 07:56:23 -0400
parents ed642234f017
children
line wrap: on
line source
<Ui>
  <!--
  Veneer
  BuffFrame module
  -->


  <!-- Buff-button underlay  -->
  <Frame name="VeneerDecorTemplate" virtual="true" enableMouse="true" movable="true" frameStrata="BACKGROUND" hidden="true">
    <Size x="30" y="30" />
    <Layers>
      <Layer level="BACKGROUND">
        <Texture name="$parentButtonArea" setAllPoints="true" parentKey="background" alphaMode="BLEND">
          <Color r="1" g="1" b="1" a="1" />
        </Texture>
        <Texture name="$parentButtonBackdrop" parentKey="backgroundFill" alphaMode="BLEND">
          <Anchors>
            <Anchor point="BOTTOMLEFT" relativePoint="BOTTOMLEFT" x="1" y="1" relativeKey="$parent.background" />
            <Anchor point="TOPRIGHT" relativePoint="TOPRIGHT" x="-1" y="-1" relativeKey="$parent.background" />
          </Anchors>
          <Color r="0" g="0" b="0" a="1" />
        </Texture>
      </Layer>
    </Layers>
  </Frame>

  <!-- Buff button overlay, and positioning anchor -->
  <Frame name="VeneerGuideTemplate" virtual="true" movable="true" frameStrata="LOW">
    <Scripts>
      <OnShow>
        self.mouseover = self:IsMouseOver()
      </OnShow>
      <OnUpdate>
        if self:IsMouseOver() and not self.contains then
          self.caster:Show()
        else
          self.caster:Hide()
        end
      </OnUpdate>
    </Scripts>
    <Layers>
      <Layer level="ARTWORK">
        <Texture name="$parentLegend" parentKey="legend" parentArray="config" setAllPoints="true" hidden="true">
          <Color a="0.5" r="0" g="1" b="0" />
        </Texture>
        <Texture name="$parentCountLegend" parentKey="count" parentArray="config" hidden="true">
          <Color a="0.75" r="1" g=".5" b="0" />
        </Texture>


        <Texture name="$parentIconArea" parentKey="icon" alphaMode="ADD">
          <Color r="0" g="0" b="0" a="0" />
        </Texture>
        <Texture name="$parentTextLegend" parentKey="duration" parentArray="config" hidden="true" alphaMode="BLEND">
          <Color a="0.25" r="1" g="1" b="1" />
        </Texture>
      </Layer>
      <Layer level="OVERLAY">
        <FontString inherits="VeneerFontNormal" parentArray="config" name="$parentID" parentKey="idText" hidden="true" outline="NORMAL">
          <Anchors>
            <Anchor point="CENTER" />
          </Anchors>
        </FontString>
        <FontString inherits="VeneerFontNormal" parentKey="caster" outline="NORMAL">
          <Anchors>
            <Anchor point="TOPLEFT" relativePoint="TOPLEFT" relativeKey="$parent.icon" />
          </Anchors>
        </FontString>
      </Layer>
      <Layer level="HIGHLIGHT">

      </Layer>
    </Layers>
  </Frame>


  <!-- Anchor frame orientation-setting widget; click handler copies frame anchors over to buff buttons -->
  <Button name="VeneerAnchorButton" virtual="true" parentArray="anchorButton" hidden="true">
    <Scripts>
      <OnClick>
        self:GetParent():SetChildAnchors(self)
      </OnClick>
    </Scripts>
    <Size x="15" y="15" />
    <Layers>
      <Layer level="BACKGROUND">
        <Texture setAllPoints="true">
          <Color r="0" g="0" b="0" a="1" />
        </Texture>
      </Layer>
      <Layer level="OVERLAY">
        <Texture>
          <Color r="0" g="1" b="0.5" a="1" />
          <Anchors>
            <Anchor point="BOTTOMLEFT" x="1" y="1" />
            <Anchor point="TOPRIGHT" x="-1" y="-1" />
          </Anchors>
        </Texture>
      </Layer>
    </Layers>
  </Button>

  <Frame name="VeneerAnchorTemplate" virtual="true" enableMouse="false" movable="true" sizable="true" clampedToScreen="true">
    <Layers>
      <Layer level="BACKGROUND">
        <Texture name="$parentBackground" setAllPoints="true" parentArray="config" hidden="true">
          <Color r="0" g="0.2" b="1" a="0.2" />
        </Texture>
        <FontString name="$parentHeading" inherits="VeneerFontHighlight" parentArray="config" parentKey="heading" hidden="true">
          <Anchors>
            <Anchor point="BOTTOMLEFT" relativePoint="TOPLEFT" />
          </Anchors>
        </FontString>
        <FontString name="$parentDebug" inherits="VeneerFontNormal" parentArray="debug" parentKey="debug">
          <Anchors>
            <Anchor point="BOTTOMLEFT" relativePoint="TOPLEFT" />
          </Anchors>
        </FontString>
      </Layer>
      <Layer level="OVERLAY">

        <Texture name="$parentCutJoint" parentKey="alignedJoint" hidden="true">
          <Size x="4" y="4" />
          <Color r="1" g="0" b="0" a="1" />
        </Texture>
        <Texture name="$parentCutY" parentKey="cuttingJointX" hidden="true">
          <Size x="4" y="48" />
          <Color r="1" g="1" b="0" a="1" />
        </Texture>
        <Texture name="$parentCutX" parentKey="cuttingJointY" hidden="true">
          <Size x="48" y="4" />
          <Color r="1" g="1" b="0" a="1" />
        </Texture>
        <Texture name="$parentPoppedY" parentKey="poppingJointX" hidden="true">
          <Size x="4" y="48" />
          <Color r="0" g="1" b="1" a="1" />
        </Texture>
        <Texture name="$parentPoppedX" parentKey="poppingJointY" hidden="true">
          <Size x="48" y="4" />
          <Color r="0" g="1" b="1" a="1" />
        </Texture>
        <Texture name="$parentChildSpace" parentKey="childSpace" hidden="true">
          <Color r="0" g=".5" b="1" a="0.5" />
        </Texture>
      </Layer>
      <Layer level="HIGHLIGHT">
        <Texture name="$parentHighlight" setAllPoints="true" parentArray="config" hidden="true">
          <Color r="1" g="1" b="0" a="0.2" />
        </Texture>
      </Layer>
    </Layers>
    <Frames>
      <Button name="$parentAnchorUL" inherits="VeneerAnchorButton">
        <Anchors>
          <Anchor point="TOPLEFT" />
        </Anchors>
      </Button>
      <Button name="$parentAnchorUR" inherits="VeneerAnchorButton">
        <Anchors>
          <Anchor point="TOPRIGHT" />
        </Anchors>
      </Button>
      <Button name="$parentAnchorUR" inherits="VeneerAnchorButton">
        <Anchors>
          <Anchor point="BOTTOMRIGHT" />
        </Anchors>
      </Button>
      <Button name="$parentAnchorUR" inherits="VeneerAnchorButton">
        <Anchors>
          <Anchor point="BOTTOMLEFT" />
        </Anchors>
      </Button>
    </Frames>
  </Frame>

  <Frame name="VeneerConsolidatedBuffsAnchor" inherits="VeneerAnchorTemplate" virtual="true">
    <Layers>
      <Layer level="OVERLAY">
        <!-- need to make our own number label since the original is buried under secure layer -->
        <FontString inherits="VeneerFontNormal" name="$parentLabel" parentKey="label">
          <Anchors>
            <Anchor point="TOP" relativePoint="BOTTOM" x="0" y="-2" />
          </Anchors>
        </FontString>
        <!--
        <Texture name="$parentBackdrop" parentKey="background" setAllPoints="true" alphaMode="BLEND">
          <Color r="0" g="0" b="0" a="1" />
          <Anchors>
            <Anchor point="BOTTOMLEFT" x="1" y="1" />
            <Anchor point="TOPRIGHT" x="-1" y="-1" />
          </Anchors>
        </Texture>
        <Texture name="$parentIcon" parentKey="border" setAllPoints="true" alphaMode="BLEND">
          <Color r="1" g="1" b="1" a="1" />
        </Texture>
        -->
      </Layer>
    </Layers>
  </Frame>

  <Frame name="VeneerRaidBuffTemplate" virtual="true" enableMouse="false">
    <Layers>
      <Layer level="ARTWORK">
        <Texture name="$parentLegend" parentKey="legend" parentArray="config" setAllPoints="true" hidden="true">
          <Color a="0.5" r="0" g="1" b="0" />
        </Texture>
        <Texture name="$parentCountLegend" parentKey="count" parentArray="config" hidden="true">
          <Color a="0.75" r="1" g=".5" b="0" />
        </Texture>


        <Texture name="$parentIconArea" parentKey="icon" alphaMode="ADD">
          <Color r="0" g="0" b="0" a="0" />
        </Texture>
        <Texture name="$parentTextLegend" parentKey="duration" parentArray="config" hidden="true" alphaMode="BLEND">
          <Color a="0.25" r="1" g="1" b="1" />
        </Texture>
      </Layer>
      <Layer level="OVERLAY">
        <FontString inherits="VeneerFontNormal" parentArray="config" name="$parentSymbol" parentKey="symbol">
          <Anchors>
            <Anchor point="TOP" />
          </Anchors>
        </FontString>
        <FontString inherits="VeneerFontNormal" parentArray="config" name="$parentID" parentKey="idText" hidden="true">
          <Anchors>
            <Anchor point="BOTTOM" />
          </Anchors>
        </FontString>
      </Layer>
    </Layers>
  </Frame>

  <Button name="VeneerMissingBuffTemplate" virtual="true">
    <Scripts>
      <OnClick>
        if self.spell and not InCombatLockdown() then
          CastSpellByID(self.spell)
        end
      </OnClick>
    </Scripts>
    <Layers>
      <Layer level="BORDER">
        <Texture setAllPoints="true">
          <Color r="1" g="1" b="1" a="0.25" />
        </Texture>
      </Layer>
      <Layer level="ARTWORK">
        <Texture name="$parentIcon" parentKey="icon">
          <Size x="20" y="20" />
          <Anchors>
            <Anchor point="LEFT" />
          </Anchors>
        </Texture>
      </Layer>
      <Layer level="OVERLAY">
        <FontString name="$parentLabel" parentKey="label" inherits="VeneerFontNormal" justifyH="LEFT">
          <Anchors>
            <Anchor point="LEFT" relativePoint="RIGHT" relativeKey="icon" />
          </Anchors>
        </FontString>
      </Layer>
    </Layers>
  </Button>


  <Script file="BuffAnchors.lua" />
  <Script file="RaidBuffTray.lua" />
  <Script file="BuffButton.lua" />
</Ui>