режим предателя + UI референсы и DragonUI

This commit is contained in:
2026-04-09 02:05:29 +04:00
parent 1109d19bb5
commit e8f1ae4ab9
397 changed files with 202750 additions and 37 deletions
@@ -0,0 +1,635 @@
TRADE_SKILLS_DISPLAYED = 8;
MAX_TRADE_SKILL_REAGENTS = 8;
TRADE_SKILL_HEIGHT = 16;
TRADE_SKILL_TEXT_WIDTH = 275;
TradeSkillTypePrefix = {
["optimal"] = " [+++] ",
["medium"] = " [++] ",
["easy"] = " [+] ",
["trivial"] = " ",
["header"] = " ",
}
TradeSkillTypeColor = { };
TradeSkillTypeColor["optimal"] = { r = 1.00, g = 0.50, b = 0.25, font = GameFontNormalLeftOrange };
TradeSkillTypeColor["medium"] = { r = 1.00, g = 1.00, b = 0.00, font = GameFontNormalLeftYellow };
TradeSkillTypeColor["easy"] = { r = 0.25, g = 0.75, b = 0.25, font = GameFontNormalLeftLightGreen };
TradeSkillTypeColor["trivial"] = { r = 0.50, g = 0.50, b = 0.50, font = GameFontNormalLeftGrey };
TradeSkillTypeColor["header"] = { r = 1.00, g = 0.82, b = 0, font = GameFontNormalLeft };
UIPanelWindows["TradeSkillFrame"] = { area = "left", pushable = 3, showFailedFunc = "TradeSkillFrame_ShowFailed" };
CURRENT_TRADESKILL = "";
function TradeSkillFrame_Show()
ShowUIPanel(TradeSkillFrame);
TradeSkillCreateButton:Disable();
TradeSkillCreateAllButton:Disable();
if ( GetTradeSkillSelectionIndex() == 0 ) then
TradeSkillFrame_SetSelection(GetFirstTradeSkill());
else
TradeSkillFrame_SetSelection(GetTradeSkillSelectionIndex());
end
FauxScrollFrame_SetOffset(TradeSkillListScrollFrame, 0);
TradeSkillListScrollFrameScrollBar:SetMinMaxValues(0, 0);
TradeSkillListScrollFrameScrollBar:SetValue(0);
SetPortraitTexture(TradeSkillFramePortrait, "player");
TradeSkillOnlyShowMakeable(TradeSkillFrameAvailableFilterCheckButton:GetChecked());
TradeSkillFrame_Update();
-- Moved to the bottom to prevent addons which hook it from blocking tradeskills
CloseDropDownMenus();
end
function TradeSkillFrame_Hide()
HideUIPanel(TradeSkillFrame);
end
function TradeSkillFrame_ShowFailed(self)
CloseTradeSkill();
end
function TradeSkillFrame_OnLoad(self)
self:RegisterEvent("TRADE_SKILL_UPDATE");
self:RegisterEvent("TRADE_SKILL_FILTER_UPDATE");
self:RegisterEvent("UNIT_PORTRAIT_UPDATE");
self:RegisterEvent("UPDATE_TRADESKILL_RECAST");
end
function TradeSkillFrame_OnEvent(self, event, ...)
if ( not TradeSkillFrame:IsShown() ) then
return;
end
if ( event == "TRADE_SKILL_UPDATE" or event == "TRADE_SKILL_FILTER_UPDATE" ) then
TradeSkillCreateButton:Disable();
TradeSkillCreateAllButton:Disable();
if ( (event ~= "TRADE_SKILL_FILTER_UPDATE") and (GetTradeSkillSelectionIndex() > 1) and (GetTradeSkillSelectionIndex() <= GetNumTradeSkills()) ) then
TradeSkillFrame_SetSelection(GetTradeSkillSelectionIndex());
else
TradeSkillFrame_SetSelection(GetFirstTradeSkill());
FauxScrollFrame_SetOffset(TradeSkillListScrollFrame, 0);
TradeSkillListScrollFrameScrollBar:SetValue(0);
end
TradeSkillFrame_Update();
elseif ( event == "UNIT_PORTRAIT_UPDATE" ) then
local arg1 = ...;
if ( arg1 == "player" ) then
SetPortraitTexture(TradeSkillFramePortrait, "player");
end
elseif ( event == "UPDATE_TRADESKILL_RECAST" ) then
TradeSkillInputBox:SetNumber(GetTradeskillRepeatCount());
end
end
function TradeSkillFrame_Update()
local numTradeSkills = GetNumTradeSkills();
local skillOffset = FauxScrollFrame_GetOffset(TradeSkillListScrollFrame);
local name, rank, maxRank = GetTradeSkillLine();
if ( CURRENT_TRADESKILL ~= name ) then
StopTradeSkillRepeat();
if ( CURRENT_TRADESKILL ~= "" ) then
-- To fix problem with switching between two tradeskills
UIDropDownMenu_Initialize(TradeSkillInvSlotDropDown, TradeSkillInvSlotDropDown_Initialize);
UIDropDownMenu_SetSelectedID(TradeSkillInvSlotDropDown, 1);
UIDropDownMenu_Initialize(TradeSkillSubClassDropDown, TradeSkillSubClassDropDown_Initialize);
UIDropDownMenu_SetSelectedID(TradeSkillSubClassDropDown, 1);
end
CURRENT_TRADESKILL = name;
end
-- If no tradeskills
if ( numTradeSkills == 0 ) then
TradeSkillFrameTitleText:SetFormattedText(TRADE_SKILL_TITLE, GetTradeSkillLine());
TradeSkillSkillName:Hide();
-- TradeSkillSkillLineName:Hide();
TradeSkillSkillIcon:Hide();
TradeSkillRequirementLabel:Hide();
TradeSkillRequirementText:SetText("");
TradeSkillCollapseAllButton:Disable();
for i=1, MAX_TRADE_SKILL_REAGENTS, 1 do
_G["TradeSkillReagent"..i]:Hide();
end
else
TradeSkillSkillName:Show();
-- TradeSkillSkillLineName:Show();
TradeSkillSkillIcon:Show();
TradeSkillCollapseAllButton:Enable();
end
if ( rank < 75 ) and ( not IsTradeSkillLinked() ) then
TradeSkillFrameEditBox:Hide();
SetTradeSkillItemNameFilter(""); --In case they are switching from an inspect WITH a filter directly to their own without.
else
TradeSkillFrameEditBox:Show();
end
-- ScrollFrame update
FauxScrollFrame_Update(TradeSkillListScrollFrame, numTradeSkills, TRADE_SKILLS_DISPLAYED, TRADE_SKILL_HEIGHT, nil, nil, nil, TradeSkillHighlightFrame, 293, 316 );
TradeSkillHighlightFrame:Hide();
local skillName, skillType, numAvailable, isExpanded, altVerb;
local skillIndex, skillButton, skillButtonText, skillButtonCount;
local nameWidth, countWidth;
local skillNamePrefix = " ";
for i=1, TRADE_SKILLS_DISPLAYED, 1 do
skillIndex = i + skillOffset;
skillName, skillType, numAvailable, isExpanded, altVerb = GetTradeSkillInfo(skillIndex);
skillButton = _G["TradeSkillSkill"..i];
skillButtonText = _G["TradeSkillSkill"..i.."Text"];
skillButtonCount = _G["TradeSkillSkill"..i.."Count"];
if ( skillIndex <= numTradeSkills ) then
-- Set button widths if scrollbar is shown or hidden
if ( TradeSkillListScrollFrame:IsShown() ) then
skillButton:SetWidth(293);
else
skillButton:SetWidth(323);
end
local color = TradeSkillTypeColor[skillType];
if ( color ) then
skillButton:SetNormalFontObject(color.font);
skillButtonCount:SetVertexColor(color.r, color.g, color.b);
skillButton.r = color.r;
skillButton.g = color.g;
skillButton.b = color.b;
end
if ( ENABLE_COLORBLIND_MODE == "1" ) then
skillNamePrefix = TradeSkillTypePrefix[skillType] or " ";
end
skillButton:SetID(skillIndex);
skillButton:Show();
-- Handle headers
if ( skillType == "header" ) then
skillButton:SetText(skillName);
skillButtonText:SetWidth(TRADE_SKILL_TEXT_WIDTH);
skillButtonCount:SetText("");
if ( isExpanded ) then
skillButton:SetNormalTexture("Interface\\Buttons\\UI-MinusButton-Up");
else
skillButton:SetNormalTexture("Interface\\Buttons\\UI-PlusButton-Up");
end
_G["TradeSkillSkill"..i.."Highlight"]:SetTexture("Interface\\Buttons\\UI-PlusButton-Hilight");
_G["TradeSkillSkill"..i]:UnlockHighlight();
else
if ( not skillName ) then
return;
end
skillButton:SetNormalTexture("");
_G["TradeSkillSkill"..i.."Highlight"]:SetTexture("");
if ( numAvailable <= 0 ) then
skillButton:SetText(skillNamePrefix..skillName);
skillButtonText:SetWidth(TRADE_SKILL_TEXT_WIDTH);
skillButtonCount:SetText(skillCountPrefix);
else
skillName = skillNamePrefix..skillName;
skillButtonCount:SetText("["..numAvailable.."]");
TradeSkillFrameDummyString:SetText(skillName);
nameWidth = TradeSkillFrameDummyString:GetWidth();
countWidth = skillButtonCount:GetWidth();
skillButtonText:SetText(skillName);
if ( nameWidth + 2 + countWidth > TRADE_SKILL_TEXT_WIDTH ) then
skillButtonText:SetWidth(TRADE_SKILL_TEXT_WIDTH-2-countWidth);
else
skillButtonText:SetWidth(0);
end
end
-- Place the highlight and lock the highlight state
if ( GetTradeSkillSelectionIndex() == skillIndex ) then
TradeSkillHighlightFrame:SetPoint("TOPLEFT", "TradeSkillSkill"..i, "TOPLEFT", 0, 0);
TradeSkillHighlightFrame:Show();
skillButtonCount:SetVertexColor(HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b);
skillButton:LockHighlight();
skillButton.isHighlighted = true;
else
skillButton:UnlockHighlight();
skillButton.isHighlighted = false;
end
end
else
skillButton:Hide();
end
end
-- Set the expand/collapse all button texture
local numHeaders = 0;
local notExpanded = 0;
for i=1, numTradeSkills, 1 do
local skillName, skillType, numAvailable, isExpanded, altVerb = GetTradeSkillInfo(i);
if ( skillName and skillType == "header" ) then
numHeaders = numHeaders + 1;
if ( not isExpanded ) then
notExpanded = notExpanded + 1;
end
end
if ( GetTradeSkillSelectionIndex() == i ) then
-- Set the max makeable items for the create all button
TradeSkillFrame.numAvailable = math.abs(numAvailable);
end
end
-- If all headers are not expanded then show collapse button, otherwise show the expand button
if ( notExpanded ~= numHeaders ) then
TradeSkillCollapseAllButton.collapsed = nil;
TradeSkillCollapseAllButton:SetNormalTexture("Interface\\Buttons\\UI-MinusButton-Up");
else
TradeSkillCollapseAllButton.collapsed = 1;
TradeSkillCollapseAllButton:SetNormalTexture("Interface\\Buttons\\UI-PlusButton-Up");
end
end
function TradeSkillFrame_SetSelection(id)
local skillName, skillType, numAvailable, isExpanded, altVerb = GetTradeSkillInfo(id);
local creatable = 1;
if ( not skillName ) then
creatable = nil;
end
TradeSkillHighlightFrame:Show();
if ( skillType == "header" ) then
TradeSkillHighlightFrame:Hide();
if ( isExpanded ) then
CollapseTradeSkillSubClass(id);
else
ExpandTradeSkillSubClass(id);
end
return;
end
TradeSkillFrame.selectedSkill = id;
SelectTradeSkill(id);
if ( GetTradeSkillSelectionIndex() > GetNumTradeSkills() ) then
return;
end
local color = TradeSkillTypeColor[skillType];
if ( color ) then
TradeSkillHighlight:SetVertexColor(color.r, color.g, color.b);
end
-- General Info
local skillLineName, skillLineRank, skillLineMaxRank = GetTradeSkillLine();
TradeSkillFrameTitleText:SetFormattedText(TRADE_SKILL_TITLE, skillLineName);
-- Set statusbar info
TradeSkillRankFrame:SetStatusBarColor(0.0, 0.0, 1.0, 0.5);
TradeSkillRankFrameBackground:SetVertexColor(0.0, 0.0, 0.75, 0.5);
TradeSkillRankFrame:SetMinMaxValues(0, skillLineMaxRank);
TradeSkillRankFrame:SetValue(skillLineRank);
TradeSkillRankFrameSkillRank:SetText(skillLineRank.."/"..skillLineMaxRank);
TradeSkillSkillName:SetText(skillName);
if ( GetTradeSkillCooldown(id) ) then
TradeSkillSkillCooldown:SetText(COOLDOWN_REMAINING.." "..SecondsToTime(GetTradeSkillCooldown(id)));
else
TradeSkillSkillCooldown:SetText("");
end
TradeSkillSkillIcon:SetNormalTexture(GetTradeSkillIcon(id));
local minMade,maxMade = GetTradeSkillNumMade(id);
if ( maxMade > 1 ) then
if ( minMade == maxMade ) then
TradeSkillSkillIconCount:SetText(minMade);
else
TradeSkillSkillIconCount:SetText(minMade.."-"..maxMade);
end
if ( TradeSkillSkillIconCount:GetWidth() > 39 ) then
TradeSkillSkillIconCount:SetText("~"..floor((minMade + maxMade)/2));
end
else
TradeSkillSkillIconCount:SetText("");
end
-- Reagents
local numReagents = GetTradeSkillNumReagents(id);
if(numReagents > 0) then
TradeSkillReagentLabel:Show();
else
TradeSkillReagentLabel:Hide();
end
for i=1, numReagents, 1 do
local reagentName, reagentTexture, reagentCount, playerReagentCount = GetTradeSkillReagentInfo(id, i);
local reagent = _G["TradeSkillReagent"..i]
local name = _G["TradeSkillReagent"..i.."Name"];
local count = _G["TradeSkillReagent"..i.."Count"];
if ( not reagentName or not reagentTexture ) then
reagent:Hide();
else
reagent:Show();
SetItemButtonTexture(reagent, reagentTexture);
name:SetText(reagentName);
-- Grayout items
if ( playerReagentCount < reagentCount ) then
SetItemButtonTextureVertexColor(reagent, 0.5, 0.5, 0.5);
name:SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b);
creatable = nil;
else
SetItemButtonTextureVertexColor(reagent, 1.0, 1.0, 1.0);
name:SetTextColor(HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b);
end
if ( playerReagentCount >= 100 ) then
playerReagentCount = "*";
end
count:SetText(playerReagentCount.." /"..reagentCount);
end
end
-- Place reagent label
local reagentToAnchorTo = numReagents;
if ( (numReagents > 0) and (mod(numReagents, 2) == 0) ) then
reagentToAnchorTo = reagentToAnchorTo - 1;
end
for i=numReagents + 1, MAX_TRADE_SKILL_REAGENTS, 1 do
_G["TradeSkillReagent"..i]:Hide();
end
local spellFocus = BuildColoredListString(GetTradeSkillTools(id));
if ( spellFocus ) then
TradeSkillRequirementLabel:Show();
TradeSkillRequirementText:SetText(spellFocus);
else
TradeSkillRequirementLabel:Hide();
TradeSkillRequirementText:SetText("");
end
if ( creatable ) then
TradeSkillCreateButton:Enable();
TradeSkillCreateAllButton:Enable();
else
TradeSkillCreateButton:Disable();
TradeSkillCreateAllButton:Disable();
end
if ( GetTradeSkillDescription(id) ) then
TradeSkillDescription:SetText(GetTradeSkillDescription(id))
TradeSkillReagentLabel:SetPoint("TOPLEFT", "TradeSkillDescription", "BOTTOMLEFT", 0, -10);
else
TradeSkillDescription:SetText(" ");
TradeSkillReagentLabel:SetPoint("TOPLEFT", "TradeSkillDescription", "TOPLEFT", 0, 0);
end
-- Reset the number of items to be created
TradeSkillInputBox:SetNumber(GetTradeskillRepeatCount());
--Hide inapplicable buttons if we are inspecting. Otherwise show them
if ( IsTradeSkillLinked() ) then
TradeSkillCreateButton:Hide();
TradeSkillCreateAllButton:Hide();
TradeSkillDecrementButton:Hide();
TradeSkillInputBox:Hide();
TradeSkillIncrementButton:Hide();
TradeSkillLinkButton:Hide();
TradeSkillFrameBottomLeftTexture:SetTexture([[Interface\PaperDollInfoFrame\SkillFrame-BotLeft]]);
TradeSkillFrameBottomRightTexture:SetTexture([[Interface\PaperDollInfoFrame\SkillFrame-BotRight]]);
else
--Change button names and show/hide them depending on if this tradeskill creates an item or casts something
if ( not altVerb ) then
--Its an item with 'Create'
TradeSkillCreateAllButton:Show();
TradeSkillDecrementButton:Show();
TradeSkillInputBox:Show();
TradeSkillIncrementButton:Show();
TradeSkillFrameBottomLeftTexture:SetTexture([[Interface\TradeSkillFrame\UI-TradeSkill-BotLeft]]);
TradeSkillFrameBottomRightTexture:SetTexture([[Interface\ClassTrainerFrame\UI-ClassTrainer-BotRight]])
else
--Its something else
TradeSkillCreateAllButton:Hide();
TradeSkillDecrementButton:Hide();
TradeSkillInputBox:Hide();
TradeSkillIncrementButton:Hide();
TradeSkillFrameBottomLeftTexture:SetTexture([[Interface\ClassTrainerFrame\UI-ClassTrainer-BotLeft]]);
TradeSkillFrameBottomRightTexture:SetTexture([[Interface\ClassTrainerFrame\UI-ClassTrainer-BotRight]]);
end
if ( GetTradeSkillListLink() ) then
TradeSkillLinkButton:Show();
else
TradeSkillLinkButton:Hide();
end
TradeSkillCreateButton:SetText(altVerb or CREATE);
TradeSkillCreateButton:Show();
end
end
function TradeSkillSkillButton_OnClick(self, button)
if ( button == "LeftButton" ) then
TradeSkillFrame_SetSelection(self:GetID());
TradeSkillFrame_Update();
end
end
function TradeSkillFilter_OnTextChanged(self)
local text = self:GetText();
if ( text == SEARCH ) then
SetTradeSkillItemNameFilter("");
return;
end
local minLevel, maxLevel;
local approxLevel = strmatch(text, "^~(%d+)");
if ( approxLevel ) then
minLevel = approxLevel - 2;
maxLevel = approxLevel + 2;
else
minLevel, maxLevel = strmatch(text, "^(%d+)%s*-*%s*(%d*)$");
end
if ( minLevel ) then
if ( maxLevel == "" or maxLevel < minLevel ) then
maxLevel = minLevel;
end
SetTradeSkillItemNameFilter(nil);
SetTradeSkillItemLevelFilter(minLevel, maxLevel);
else
SetTradeSkillItemLevelFilter(0, 0);
SetTradeSkillItemNameFilter(text);
end
end
function TradeSkillCollapseAllButton_OnClick(self)
if (self.collapsed) then
self.collapsed = nil;
ExpandTradeSkillSubClass(0);
else
self.collapsed = 1;
TradeSkillListScrollFrameScrollBar:SetValue(0);
CollapseTradeSkillSubClass(0);
end
end
function TradeSkillSubClassDropDown_OnLoad(self)
SetTradeSkillSubClassFilter(0, 1, 1);
UIDropDownMenu_Initialize(self, TradeSkillSubClassDropDown_Initialize);
UIDropDownMenu_SetWidth(self, 120);
UIDropDownMenu_SetSelectedID(self, 1);
end
function TradeSkillSubClassDropDown_Initialize()
TradeSkillFilterFrame_LoadSubClasses(GetTradeSkillSubClasses());
end
function TradeSkillFilterFrame_LoadSubClasses(...)
local selectedID = UIDropDownMenu_GetSelectedID(TradeSkillSubClassDropDown);
local numSubClasses = select("#", ...);
local allChecked = GetTradeSkillSubClassFilter(0);
-- the first button in the list is going to be an "all subclasses" button
local info = UIDropDownMenu_CreateInfo();
info.text = ALL_SUBCLASSES;
info.func = TradeSkillSubClassDropDownButton_OnClick;
-- select this button if nothing else was selected
info.checked = allChecked and (selectedID == nil or selectedID == 1);
UIDropDownMenu_AddButton(info);
if ( info.checked ) then
UIDropDownMenu_SetText(TradeSkillSubClassDropDown, ALL_SUBCLASSES);
end
local checked;
for i=1, select("#", ...), 1 do
-- if there are no filters then don't check any individual subclasses
if ( allChecked ) then
checked = nil;
else
checked = GetTradeSkillSubClassFilter(i);
if ( checked ) then
UIDropDownMenu_SetText(TradeSkillSubClassDropDown, select(i, ...));
end
end
info.text = select(i, ...);
info.func = TradeSkillSubClassDropDownButton_OnClick;
info.checked = checked;
UIDropDownMenu_AddButton(info);
end
end
function TradeSkillInvSlotDropDown_OnLoad(self)
SetTradeSkillInvSlotFilter(0, 1, 1);
UIDropDownMenu_Initialize(self, TradeSkillInvSlotDropDown_Initialize);
UIDropDownMenu_SetWidth(self, 120);
UIDropDownMenu_SetSelectedID(self, 1);
end
function TradeSkillInvSlotDropDown_Initialize()
TradeSkillFilterFrame_LoadInvSlots(GetTradeSkillInvSlots());
end
function TradeSkillFilterFrame_LoadInvSlots(...)
UIDropDownMenu_SetSelectedID(TradeSkillInvSlotDropDown, nil);
local allChecked = GetTradeSkillInvSlotFilter(0);
local info = UIDropDownMenu_CreateInfo();
local filterCount = select("#", ...);
info.text = ALL_INVENTORY_SLOTS;
info.func = TradeSkillInvSlotDropDownButton_OnClick;
info.checked = allChecked;
UIDropDownMenu_AddButton(info);
local checked;
for i=1, filterCount, 1 do
if ( allChecked and filterCount > 1 ) then
checked = nil;
UIDropDownMenu_SetText(TradeSkillInvSlotDropDown, ALL_INVENTORY_SLOTS);
else
checked = GetTradeSkillInvSlotFilter(i);
if ( checked ) then
UIDropDownMenu_SetText(TradeSkillInvSlotDropDown, select(i, ...));
end
end
info.text = select(i, ...);
info.func = TradeSkillInvSlotDropDownButton_OnClick;
info.checked = checked;
UIDropDownMenu_AddButton(info);
end
end
function TradeSkillFilterFrame_InvSlotName(...)
for i=1, select("#", ...), 1 do
if ( GetTradeSkillInvSlotFilter(i) ) then
return select(i, ...);
end
end
end
function TradeSkillSubClassDropDownButton_OnClick(self)
UIDropDownMenu_SetSelectedID(TradeSkillSubClassDropDown, self:GetID());
SetTradeSkillSubClassFilter(self:GetID() - 1, 1, 1);
if ( self:GetID() ~= 1 ) then
if ( TradeSkillFilterFrame_InvSlotName(GetTradeSkillInvSlots()) ~= TradeSkillInvSlotDropDown.selected ) then
SetTradeSkillInvSlotFilter(0, 1, 1);
UIDropDownMenu_SetSelectedID(TradeSkillInvSlotDropDown, 1);
UIDropDownMenu_SetText(TradeSkillInvSlotDropDown, ALL_INVENTORY_SLOTS);
end
end
TradeSkillListScrollFrameScrollBar:SetValue(0);
FauxScrollFrame_SetOffset(TradeSkillListScrollFrame, 0);
TradeSkillFrame_Update();
end
function TradeSkillInvSlotDropDownButton_OnClick(self)
UIDropDownMenu_SetSelectedID(TradeSkillInvSlotDropDown, self:GetID());
SetTradeSkillInvSlotFilter(self:GetID() - 1, 1, 1);
TradeSkillInvSlotDropDown.selected = TradeSkillFilterFrame_InvSlotName(GetTradeSkillInvSlots());
TradeSkillListScrollFrameScrollBar:SetValue(0);
FauxScrollFrame_SetOffset(TradeSkillListScrollFrame, 0);
TradeSkillFrame_Update();
end
function TradeSkillFrameIncrement_OnClick()
if ( TradeSkillInputBox:GetNumber() < 100 ) then
TradeSkillInputBox:SetNumber(TradeSkillInputBox:GetNumber() + 1);
end
end
function TradeSkillFrameDecrement_OnClick()
if ( TradeSkillInputBox:GetNumber() > 0 ) then
TradeSkillInputBox:SetNumber(TradeSkillInputBox:GetNumber() - 1);
end
end
function TradeSkillItem_OnEnter(self)
if ( TradeSkillFrame.selectedSkill ~= 0 ) then
GameTooltip:SetOwner(self, "ANCHOR_RIGHT");
GameTooltip:SetTradeSkillItem(TradeSkillFrame.selectedSkill);
end
CursorUpdate(self);
end
function TradeSkillFrame_PlaytimeUpdate()
if ( PartialPlayTime() ) then
TradeSkillCreateButton:Disable();
if (not TradeSkillCreateButtonMask:IsShown()) then
TradeSkillCreateButtonMask:Show();
TradeSkillCreateButtonMask.tooltip = format(PLAYTIME_TIRED_ABILITY, REQUIRED_REST_HOURS - floor(GetBillingTimeRested()/60));
end
TradeSkillCreateAllButton:Disable();
if (not TradeSkillCreateAllButtonMask:IsShown()) then
TradeSkillCreateAllButtonMask:Show();
TradeSkillCreateAllButtonMask.tooltip = format(PLAYTIME_TIRED_ABILITY, REQUIRED_REST_HOURS - floor(GetBillingTimeRested()/60));
end
elseif ( NoPlayTime() ) then
TradeSkillCreateButton:Disable();
if (not TradeSkillCreateButtonMask:IsShown()) then
TradeSkillCreateButtonMask:Show();
TradeSkillCreateButtonMask.tooltip = format(PLAYTIME_UNHEALTHY_ABILITY, REQUIRED_REST_HOURS - floor(GetBillingTimeRested()/60));
end
TradeSkillCreateAllButton:Disable();
if (not TradeSkillCreateAllButtonMask:IsShown()) then
TradeSkillCreateAllButtonMask:Show();
TradeSkillCreateAllButtonMask.tooltip = format(PLAYTIME_UNHEALTHY_ABILITY, REQUIRED_REST_HOURS - floor(GetBillingTimeRested()/60));
end
else
if (TradeSkillCreateButtonMask:IsShown() or TradeSkillCreateAllButtonMask:IsShown()) then
TradeSkillCreateButtonMask:Hide();
TradeSkillCreateButtonMask.tooltip = nil;
TradeSkillCreateAllButtonMask:Hide();
TradeSkillCreateAllButtonMask.tooltip = nil;
TradeSkillFrame_SetSelection(TradeSkillFrame.selectedSkill);
TradeSkillFrame_Update()
end
end
end
@@ -0,0 +1,6 @@
## Interface: 30300
## Title: Blizzard Trade Skill UI
## Secure: 1
## LoadOnDemand: 1
Blizzard_TradeSkillUI.xml
Localization.lua
@@ -0,0 +1,989 @@
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
..\..\FrameXML\UI.xsd">
<Script file="Blizzard_TradeSkillUI.lua"/>
<Button name="TradeSkillSkillButtonTemplate" inherits="ClassTrainerSkillButtonTemplate" hidden="false" virtual="true">
<Layers>
<Layer level="OVERLAY">
<FontString name="$parentCount" inherits="GameFontNormal">
<Size x="0" y="13"/>
<Anchors>
<Anchor point="LEFT">
<Offset x="0" y="0"/>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnClick>
if ( IsModifiedClick() ) then
HandleModifiedItemClick(GetTradeSkillRecipeLink(self:GetID()));
else
TradeSkillSkillButton_OnClick(self, button);
end
</OnClick>
<OnLoad>
_G[self:GetName().."Count"]:SetPoint("LEFT", self:GetName().."Text", "RIGHT", 2, 0);
</OnLoad>
<OnEnter>
_G[self:GetName().."Count"]:SetVertexColor(HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b);
</OnEnter>
<OnLeave>
if ( not self.isHighlighted ) then
_G[self:GetName().."Count"]:SetVertexColor(self.r, self.g, self.b);
end
</OnLeave>
</Scripts>
</Button>
<Button name="TradeSkillItemTemplate" inherits="QuestItemTemplate" virtual="true">
<Scripts>
<OnEnter>
GameTooltip:SetOwner(self, "ANCHOR_TOPLEFT");
GameTooltip:SetTradeSkillItem(TradeSkillFrame.selectedSkill, self:GetID());
CursorUpdate(self);
</OnEnter>
<OnLeave>
GameTooltip:Hide();
ResetCursor();
</OnLeave>
<OnUpdate>
CursorOnUpdate(self, elapsed);
</OnUpdate>
<OnClick>
HandleModifiedItemClick(GetTradeSkillReagentItemLink(TradeSkillFrame.selectedSkill, self:GetID()));
</OnClick>
</Scripts>
</Button>
<Frame name="TradeSkillFrame" toplevel="true" movable="true" parent="UIParent" enableMouse="true" hidden="true">
<Size>
<AbsDimension x="384" y="512"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="0" y="-104"/>
</Offset>
</Anchor>
</Anchors>
<HitRectInsets>
<AbsInset left="0" right="34" top="0" bottom="75"/>
</HitRectInsets>
<Layers>
<Layer level="BACKGROUND">
<Texture name="TradeSkillFramePortrait">
<Size>
<AbsDimension x="60" y="60"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="7" y="-6"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
<FontString name="$parentDummyString" inherits="GameFontNormal" hidden="true">
<Anchors>
<Anchor point="TOPLEFT">
<Offset x="0" y="0"/>
</Anchor>
</Anchors>
<Size x="0" y="0"/>
</FontString>
</Layer>
<Layer level="BORDER">
<Texture file="Interface\ClassTrainerFrame\UI-ClassTrainer-TopLeft">
<Size>
<AbsDimension x="256" y="256"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT"/>
</Anchors>
</Texture>
<Texture file="Interface\ClassTrainerFrame\UI-ClassTrainer-TopRight">
<Size>
<AbsDimension x="128" y="256"/>
</Size>
<Anchors>
<Anchor point="TOPRIGHT"/>
</Anchors>
</Texture>
<Texture name="TradeSkillFrameBottomLeftTexture" file="Interface\TradeSkillFrame\UI-TradeSkill-BotLeft">
<Size>
<AbsDimension x="256" y="256"/>
</Size>
<Anchors>
<Anchor point="BOTTOMLEFT"/>
</Anchors>
</Texture>
<Texture name="TradeSkillFrameBottomRightTexture" file="Interface\ClassTrainerFrame\UI-ClassTrainer-BotRight">
<Size>
<AbsDimension x="128" y="256"/>
</Size>
<Anchors>
<Anchor point="BOTTOMRIGHT"/>
</Anchors>
</Texture>
<FontString name="TradeSkillFrameTitleText" inherits="GameFontNormal" text="Trade Skills">
<Anchors>
<Anchor point="TOP" relativeTo="TradeSkillFrame" relativePoint="TOP">
<Offset>
<AbsDimension x="0" y="-17"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
<Layer level="ARTWORK">
<Texture name="TradeSkillHorizontalBarLeft" file="Interface\ClassTrainerFrame\UI-ClassTrainer-HorizontalBar">
<Size>
<AbsDimension x="256" y="16"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="15" y="-221"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0" right="1.0" top="0" bottom="0.25"/>
</Texture>
<Texture file="Interface\ClassTrainerFrame\UI-ClassTrainer-HorizontalBar">
<Size>
<AbsDimension x="75" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="TradeSkillHorizontalBarLeft" relativePoint="RIGHT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0" right="0.29296875" top="0.25" bottom="0.5"/>
</Texture>
</Layer>
</Layers>
<Frames>
<Button name="TradeSkillLinkButton">
<Size>
<AbsDimension x="32" y="16"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="TradeSkillFrameTitleText" relativePoint="RIGHT">
<Offset>
<AbsDimension x="5" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
local link=GetTradeSkillListLink();
if (not ChatEdit_InsertLink(link) ) then
ChatEdit_GetLastActiveWindow():Show();
ChatEdit_InsertLink(link);
end
</OnClick>
<OnEnter>
GameTooltip:SetOwner(self,"ANCHOR_TOPLEFT");
GameTooltip:SetText(LINK_TRADESKILL_TOOLTIP, nil, nil, nil, nil, 1);
GameTooltip:Show();
</OnEnter>
<OnLeave function="GameTooltip_Hide"/>
</Scripts>
<NormalTexture file="Interface\TradeSkillFrame\UI-TradeSkill-LinkButton">
<TexCoords left="0" right="1.0" top="0" bottom="0.5"/>
</NormalTexture>
<HighlightTexture file="Interface\TradeSkillFrame\UI-TradeSkill-LinkButton" alphaMode="ADD">
<TexCoords left="0" right="1.0" top="0.5" bottom="1.0"/>
</HighlightTexture>
</Button>
<CheckButton name="TradeSkillFrameAvailableFilterCheckButton" inherits="UICheckButtonTemplate">
<Size>
<AbsDimension x="24" y="24"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="70" y="-46"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
TradeSkillFrameAvailableFilterCheckButtonText:SetText(CRAFT_IS_MAKEABLE);
</OnLoad>
<OnClick>
TradeSkillOnlyShowMakeable(self:GetChecked());
</OnClick>
<OnEnter>
GameTooltip:SetOwner(self, "ANCHOR_LEFT");
GameTooltip:SetText(CRAFT_IS_MAKEABLE_TOOLTIP, nil, nil, nil, nil, 1);
</OnEnter>
<OnLeave function="GameTooltip_Hide"/>
</Scripts>
<HitRectInsets>
<AbsInset left="0" right="-75" top="0" bottom="0"/>
</HitRectInsets>
</CheckButton>
<StatusBar name="TradeSkillRankFrame" drawLayer="BACKGROUND" minValue="0" maxValue="1" defaultValue="0" enableMouse="false">
<Size>
<AbsDimension x="265" y="14"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="75" y="-36"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="$parentSkillRank" inherits="GameFontHighlightSmall" justifyH="CENTER">
<Size>
<AbsDimension x="0" y="9"/>
</Size>
<Anchors>
<Anchor point="TOP" relativeTo="TradeSkillFrameTitleText">
<Offset>
<AbsDimension x="0" y="-20"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<Texture name="$parentBorder" file="Interface\PaperDollInfoFrame\UI-Character-Skills-BarBorder">
<Size>
<AbsDimension x="274" y="27"/>
</Size>
<Anchors>
<Anchor point="LEFT">
<Offset>
<AbsDimension x="-5" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
</Layer>
<Layer level="BACKGROUND">
<Texture name="$parentBackground">
<Color r="1.0" g="1.0" b="1.0" a="0.2"/>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
self:RegisterEvent("SKILL_LINES_CHANGED");
</OnLoad>
<OnEvent function="TradeSkillFrame_Update"/>
</Scripts>
<BarTexture name="$parentBar" file="Interface\PaperDollInfoFrame\UI-Character-Skills-Bar" />
<BarColor r="0.25" g="0.25" b="0.75" />
</StatusBar>
<EditBox name="$parentEditBox" autoFocus="false">
<Size>
<AbsDimension x="128" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPRIGHT" relativeTo="TradeSkillRankFrame" relativePoint="BOTTOMRIGHT">
<Offset x="2" y="2"/>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="$parentLeft" file="Interface\Common\Common-Input-Border">
<Size>
<AbsDimension x="8" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset x="-5" y="0"/>
</Anchor>
</Anchors>
<TexCoords left="0" right="0.0625" top="0" bottom="0.625"/>
</Texture>
<Texture name="$parentRight" file="Interface\Common\Common-Input-Border">
<Size>
<AbsDimension x="8" y="20"/>
</Size>
<Anchors>
<Anchor point="RIGHT">
<Offset x="0" y="0"/>
</Anchor>
</Anchors>
<TexCoords left="0.9375" right="1.0" top="0" bottom="0.625"/>
</Texture>
<Texture name="$parentMiddle" file="Interface\Common\Common-Input-Border">
<Size>
<AbsDimension x="0" y="20"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="$parentLeft" relativePoint="RIGHT"/>
<Anchor point="RIGHT" relativeTo="$parentRight" relativePoint="LEFT"/>
</Anchors>
<TexCoords left="0.0625" right="0.9375" top="0" bottom="0.625"/>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnShow>
self:SetText(SEARCH);
</OnShow>
<OnEnterPressed function="EditBox_ClearFocus"/>
<OnEscapePressed function="EditBox_ClearFocus"/>
<OnTextChanged function="TradeSkillFilter_OnTextChanged"/>
<OnEditFocusLost>
self:HighlightText(0, 0);
if ( self:GetText() == "" ) then
self:SetText(SEARCH);
end
</OnEditFocusLost>
<OnEditFocusGained>
self:HighlightText();
if ( self:GetText() == SEARCH ) then
self:SetText("");
end
</OnEditFocusGained>
</Scripts>
<FontString inherits="ChatFontSmall"/>
</EditBox>
<Frame name="TradeSkillExpandButtonFrame">
<Size>
<AbsDimension x="54" y="32"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="15" y="-71"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="TradeSkillExpandTabLeft" file="Interface\ClassTrainerFrame\UI-ClassTrainer-ExpandTab-Left">
<Size>
<AbsDimension x="8" y="32"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT"/>
</Anchors>
</Texture>
<Texture name="TradeSkillExpandTabMiddle" file="Interface\QuestFrame\UI-QuestLogSortTab-Middle">
<Size>
<AbsDimension x="38" y="32"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="TradeSkillExpandTabLeft" relativePoint="RIGHT">
<Offset>
<AbsDimension x="0" y="6"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
<Texture name="TradeSkillExpandTabRight" file="Interface\QuestFrame\UI-QuestLogSortTab-Right">
<Size>
<AbsDimension x="8" y="32"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="TradeSkillExpandTabMiddle" relativePoint="RIGHT"/>
</Anchors>
</Texture>
</Layer>
</Layers>
<Frames>
<Button name="TradeSkillCollapseAllButton" hidden="false" inherits="ClassTrainerSkillButtonTemplate">
<Size>
<AbsDimension x="40" y="22"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="TradeSkillExpandTabLeft" relativePoint="RIGHT">
<Offset>
<AbsDimension x="0" y="3"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
_G[self:GetName()]:SetText(ALL);
</OnLoad>
<OnClick function="TradeSkillCollapseAllButton_OnClick"/>
</Scripts>
</Button>
</Frames>
</Frame>
<Frame name="TradeSkillInvSlotDropDown" inherits="UIDropDownMenuTemplate" id="2">
<Anchors>
<Anchor point="TOPRIGHT">
<Offset>
<AbsDimension x="-25" y="-66"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad function="TradeSkillInvSlotDropDown_OnLoad"/>
</Scripts>
</Frame>
<Frame name="TradeSkillSubClassDropDown" inherits="UIDropDownMenuTemplate" id="1">
<Anchors>
<Anchor point="RIGHT" relativeTo="TradeSkillInvSlotDropDown" relativePoint="LEFT">
<Offset>
<AbsDimension x="35" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad function="TradeSkillSubClassDropDown_OnLoad"/>
</Scripts>
</Frame>
<Frame name="TradeSkillHighlightFrame" hidden="true">
<Size>
<AbsDimension x="293" y="16"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT"/>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<Texture name="TradeSkillHighlight" file="Interface\Buttons\UI-Listbox-Highlight2"/>
</Layer>
</Layers>
</Frame>
<Button name="TradeSkillSkill1" inherits="TradeSkillSkillButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillFrame">
<Offset>
<AbsDimension x="22" y="-96"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="TradeSkillSkill2" inherits="TradeSkillSkillButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillSkill1" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="TradeSkillSkill3" inherits="TradeSkillSkillButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillSkill2" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="TradeSkillSkill4" inherits="TradeSkillSkillButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillSkill3" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="TradeSkillSkill5" inherits="TradeSkillSkillButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillSkill4" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="TradeSkillSkill6" inherits="TradeSkillSkillButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillSkill5" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="TradeSkillSkill7" inherits="TradeSkillSkillButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillSkill6" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="TradeSkillSkill8" inherits="TradeSkillSkillButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillSkill7" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<ScrollFrame name="TradeSkillListScrollFrame" inherits="ClassTrainerListScrollFrameTemplate">
<Size>
<AbsDimension x="296" y="130"/>
</Size>
<Anchors>
<Anchor point="TOPRIGHT" relativeTo="TradeSkillFrame" relativePoint="TOPRIGHT">
<Offset>
<AbsDimension x="-67" y="-96"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnVerticalScroll>
FauxScrollFrame_OnVerticalScroll(self, offset, TRADE_SKILL_HEIGHT, TradeSkillFrame_Update);
</OnVerticalScroll>
</Scripts>
</ScrollFrame>
<ScrollFrame name="TradeSkillDetailScrollFrame" inherits="ClassTrainerDetailScrollFrameTemplate">
<Size>
<AbsDimension x="297" y="176"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="20" y="-234"/>
</Offset>
</Anchor>
</Anchors>
<ScrollChild>
<Frame name="TradeSkillDetailScrollChildFrame">
<Size>
<AbsDimension x="297" y="150"/>
</Size>
<Layers>
<Layer level="BACKGROUND">
<FontString name="TradeSkillSkillName" inherits="GameFontNormal" text="Skill Name" justifyH="LEFT">
<Size>
<AbsDimension x="244" y="0"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="50" y="-5"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="TradeSkillRequirementLabel" inherits="GameFontHighlightSmall" text="REQUIRES_LABEL">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillSkillName" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="TradeSkillRequirementText" inherits="GameFontHighlightSmall" justifyV="TOP" justifyH="LEFT">
<Size>
<AbsDimension x="180" y="0"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillRequirementLabel" relativePoint="TOPRIGHT" >
<Offset>
<AbsDimension x="4" y="0"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<!--
<FontString name="TradeSkillSkillLineName" inherits="GameFontHighlightSmall" text="Skill Line">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillSkillName" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
-->
<FontString name="TradeSkillSkillCooldown" inherits="GameFontRedSmall">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillRequirementLabel" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<Texture name="TradeSkillDetailHeaderLeft" file="Interface\ClassTrainerFrame\UI-ClassTrainer-DetailHeaderLeft">
<Size>
<AbsDimension x="256" y="64"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="0" y="3"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
<Texture file="Interface\ClassTrainerFrame\UI-ClassTrainer-DetailHeaderRight">
<Size>
<AbsDimension x="64" y="64"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillDetailHeaderLeft" relativePoint="TOPRIGHT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Texture>
<FontString name="TradeSkillDescription" inherits="GameFontHighlightSmall" justifyH="LEFT">
<Size>
<AbsDimension x="290" y="0"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="5" y="-50"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="TradeSkillReagentLabel" inherits="GameFontNormalSmall" text="SPELL_REAGENTS">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillDescription" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="-10"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Frames>
<Button name="TradeSkillSkillIcon">
<Size>
<AbsDimension x="37" y="37"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="8" y="-3"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="TradeSkillSkillIconCount" inherits="NumberFontNormal" justifyH="RIGHT" hidden="false">
<Anchors>
<Anchor point="BOTTOMRIGHT">
<Offset>
<AbsDimension x="-5" y="2"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnLoad>
self.hasItem = 1;
</OnLoad>
<OnClick>
HandleModifiedItemClick(GetTradeSkillItemLink(TradeSkillFrame.selectedSkill));
</OnClick>
<OnEnter function="TradeSkillItem_OnEnter"/>
<OnLeave function="GameTooltip_HideResetCursor"/>
<OnUpdate>
if ( GameTooltip:IsOwned(self) ) then
TradeSkillItem_OnEnter(self);
end
CursorOnUpdate(self);
</OnUpdate>
</Scripts>
</Button>
<Button name="TradeSkillReagent1" inherits="TradeSkillItemTemplate" id="1">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillReagentLabel" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="-2" y="-3"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="TradeSkillReagent2" inherits="TradeSkillItemTemplate" id="2">
<Anchors>
<Anchor point="LEFT" relativeTo="TradeSkillReagent1" relativePoint="RIGHT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="TradeSkillReagent3" inherits="TradeSkillItemTemplate" id="3">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillReagent1" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="-2"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="TradeSkillReagent4" inherits="TradeSkillItemTemplate" id="4">
<Anchors>
<Anchor point="LEFT" relativeTo="TradeSkillReagent3" relativePoint="RIGHT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="TradeSkillReagent5" inherits="TradeSkillItemTemplate" id="5">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillReagent3" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="-2"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="TradeSkillReagent6" inherits="TradeSkillItemTemplate" id="6">
<Anchors>
<Anchor point="LEFT" relativeTo="TradeSkillReagent5" relativePoint="RIGHT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="TradeSkillReagent7" inherits="TradeSkillItemTemplate" id="7">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="TradeSkillReagent6" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="-2"/>
</Offset>
</Anchor>
</Anchors>
</Button>
<Button name="TradeSkillReagent8" inherits="TradeSkillItemTemplate" id="8">
<Anchors>
<Anchor point="LEFT" relativeTo="TradeSkillReagent7" relativePoint="RIGHT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
</Button>
</Frames>
</Frame>
</ScrollChild>
</ScrollFrame>
<Button name="TradeSkillCreateButton" inherits="UIPanelButtonTemplate" text="CREATE">
<Size>
<AbsDimension x="80" y="22"/>
</Size>
<Anchors>
<Anchor point="CENTER" relativeTo="TradeSkillFrame" relativePoint="TOPLEFT">
<Offset>
<AbsDimension x="224" y="-422"/>
</Offset>
</Anchor>
</Anchors>
<Frames>
<Frame name="$parentMask" setAllPoints="true" enableMouse="true" hidden="true">
<Scripts>
<OnEnter>
if (self.tooltip) then
GameTooltip:SetOwner(self, "ANCHOR_LEFT");
GameTooltip:SetText(self.tooltip, nil, nil, nil, nil, 1);
end
</OnEnter>
<OnLeave function="GameTooltip_Hide"/>
</Scripts>
</Frame>
</Frames>
<Scripts>
<OnClick>
if ( (not PartialPlayTime()) and (not NoPlayTime()) ) then
DoTradeSkill(TradeSkillFrame.selectedSkill, TradeSkillInputBox:GetNumber());
TradeSkillInputBox:ClearFocus();
end
</OnClick>
</Scripts>
</Button>
<Button name="TradeSkillCancelButton" inherits="UIPanelButtonTemplate" text="EXIT">
<Size>
<AbsDimension x="80" y="22"/>
</Size>
<Anchors>
<Anchor point="CENTER" relativeTo="TradeSkillFrame" relativePoint="TOPLEFT">
<Offset>
<AbsDimension x="305" y="-422"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick function="HideParentPanel"/>
</Scripts>
</Button>
<Button name="TradeSkillCreateAllButton" inherits="UIPanelButtonTemplate" text="CREATE_ALL">
<Size>
<AbsDimension x="80" y="22"/>
</Size>
<Anchors>
<Anchor point="RIGHT" relativeTo="TradeSkillCreateButton" relativePoint="LEFT">
<Offset>
<AbsDimension x="-86" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Frames>
<Frame name="$parentMask" setAllPoints="true" enableMouse="true" hidden="true">
<Scripts>
<OnEnter>
if (self.tooltip) then
GameTooltip:SetOwner(self, "ANCHOR_LEFT");
GameTooltip:SetText(self.tooltip, nil, nil, nil, nil, 1);
end
</OnEnter>
<OnLeave function="GameTooltip_Hide"/>
</Scripts>
</Frame>
</Frames>
<Scripts>
<OnClick>
if ( (not PartialPlayTime()) and (not NoPlayTime()) ) then
TradeSkillInputBox:SetNumber(TradeSkillFrame.numAvailable);
DoTradeSkill(TradeSkillFrame.selectedSkill, TradeSkillFrame.numAvailable);
TradeSkillInputBox:ClearFocus();
end
</OnClick>
</Scripts>
</Button>
<Button name="TradeSkillDecrementButton">
<Size>
<AbsDimension x="23" y="22"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="TradeSkillCreateAllButton" relativePoint="RIGHT">
<Offset>
<AbsDimension x="3" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
TradeSkillFrameDecrement_OnClick();
TradeSkillInputBox:ClearFocus();
</OnClick>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-SpellbookIcon-PrevPage-Up"/>
<PushedTexture file="Interface\Buttons\UI-SpellbookIcon-PrevPage-Down"/>
<DisabledTexture file="Interface\Buttons\UI-SpellbookIcon-PrevPage-Disabled"/>
<HighlightTexture file="Interface\Buttons\UI-Common-MouseHilight" alphaMode="ADD"/>
</Button>
<EditBox name="TradeSkillInputBox" letters="3" numeric="true" autoFocus="false">
<Size>
<AbsDimension x="30" y="20"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="TradeSkillDecrementButton" relativePoint="RIGHT">
<Offset>
<AbsDimension x="4" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
<Texture name="$parentLeft" file="Interface\Common\Common-Input-Border">
<Size>
<AbsDimension x="8" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="-5" y="0"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0" right="0.0625" top="0" bottom="0.625"/>
</Texture>
<Texture name="$parentRight" file="Interface\Common\Common-Input-Border">
<Size>
<AbsDimension x="8" y="20"/>
</Size>
<Anchors>
<Anchor point="RIGHT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0.9375" right="1.0" top="0" bottom="0.625"/>
</Texture>
<Texture name="$parentMiddle" file="Interface\Common\Common-Input-Border">
<Size>
<AbsDimension x="10" y="20"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="$parentLeft" relativePoint="RIGHT"/>
<Anchor point="RIGHT" relativeTo="$parentRight" relativePoint="LEFT"/>
</Anchors>
<TexCoords left="0.0625" right="0.9375" top="0" bottom="0.625"/>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnEnterPressed function="EditBox_ClearFocus"/>
<OnEscapePressed function="EditBox_ClearFocus"/>
<OnTextChanged>
if ( self:GetText() == "0" ) then
self:SetText("1");
end
</OnTextChanged>
<OnEditFocusLost function="EditBox_ClearHighlight"/>
<OnEditFocusGained function="EditBox_HighlightText"/>
</Scripts>
<FontString inherits="ChatFontNormal"/>
</EditBox>
<Button name="TradeSkillIncrementButton">
<Size>
<AbsDimension x="23" y="22"/>
</Size>
<Anchors>
<Anchor point="RIGHT" relativeTo="TradeSkillCreateButton" relativePoint="LEFT">
<Offset>
<AbsDimension x="-3" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>
TradeSkillFrameIncrement_OnClick();
TradeSkillInputBox:ClearFocus();
</OnClick>
</Scripts>
<NormalTexture file="Interface\Buttons\UI-SpellbookIcon-NextPage-Up"/>
<PushedTexture file="Interface\Buttons\UI-SpellbookIcon-NextPage-Down"/>
<DisabledTexture file="Interface\Buttons\UI-SpellbookIcon-NextPage-Disabled"/>
<HighlightTexture file="Interface\Buttons\UI-Common-MouseHilight" alphaMode="ADD"/>
</Button>
<Button name="TradeSkillFrameCloseButton" inherits="UIPanelCloseButton">
<Anchors>
<Anchor point="TOPRIGHT" relativeTo="TradeSkillFrame" relativePoint="TOPRIGHT">
<Offset>
<AbsDimension x="-29" y="-8"/>
</Offset>
</Anchor>
</Anchors>
</Button>
</Frames>
<Scripts>
<OnLoad function="TradeSkillFrame_OnLoad"/>
<OnEvent function="TradeSkillFrame_OnEvent"/>
<OnShow>
TradeSkillInputBox:SetNumber(1);
PlaySound("igCharacterInfoOpen");
</OnShow>
<OnHide>
CloseTradeSkill();
PlaySound("igCharacterInfoClose");
</OnHide>
<OnUpdate function="TradeSkillFrame_PlaytimeUpdate"/>
</Scripts>
</Frame>
</Ui>
@@ -0,0 +1 @@
-- This file is executed at the end of addon load