режим предателя + UI референсы и DragonUI
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user