vanilla-wow-addons – Rev 1
?pathlinks?
UIPanelWindows["QuestItemConfigFrame"] = { area = "Center", pushable = 5 };
NUM_ITEMS_DISPLAY = 10;
ITEM_HEIGHT = 31;
QuestItemsIdx = {};
qiIndex = 1;
ListAllItems = true;
QuestItem_Config_Frames =
{
{ frame = "ConfigFrame", tab = 1},
{ frame = "ItemFrame", tab = 2},
};
QuestItem_Config_CheckButtons = {
{ frame = "QuestItem_Config_Checkbox1", text = QUESTITEM_CFG_CHK_ENABLED, tooltipText = QUESTITEM_CFG_CHK_ENABLED_TT, setting="Enabled" },
{ frame = "QuestItem_Config_Checkbox2", text = QUESTITEM_CFG_CHK_ALERT, tooltipText = QUESTITEM_CFG_CHK_ALERT_TT, setting="Alert"},
{ frame = "QuestItem_Config_Checkbox3", text = QUESTITEM_CFG_CHK_DISPLAYTT, tooltipText = QUESTITEM_CFG_CHK_DISPLAYTT_TT, setting="Display tooltip" },
{ frame = "QuestItem_Config_Checkbox4", text = QUESTITEM_CFG_CHK_ALTOPN, tooltipText = QUESTITEM_CFG_CHK_ALTOPN_TT, setting="AltOpen" },
{ frame = "QuestItem_Config_Checkbox5", text = QUESTITEM_CFG_CHK_SHIFTOPN, tooltipText = QUESTITEM_CFG_CHK_SHIFTOPN_TT, setting="ShiftOpen" },
{ frame = "QuestItem_Config_Checkbox6", text = QUESTITEM_CFG_CHK_DISREQU, tooltipText = QUESTITEM_CFG_CHK_DISREQU_TT, setting="DisplayRequest", tooltipRequirement="Requires: AxuMenuItem"},
{ frame = "ItemFrameButton15", text = QUESTITEM_ITM_SHOWALL, tooltipText = QUESTITEM_ITM_SHOWALL, setting=nil },
};
function QuestItem_Config_OnCommand(command)
if(command == "test") then
QuestItem_Sky_SendTestData();
else
QuestItemConfigFrame:Show();
end
end
function QuestItem_Config_Close()
QuestItemConfigFrame:Hide();
end
function QuestItem_Config_UpdateCheckboxes()
for index, value in QuestItem_Config_CheckButtons do
local button = getglobal( value.frame );
local string = getglobal( value.frame.."Text");
if (not button) then
break;
end
string:SetText( TEXT(value.text) );
button.tooltipRequirement = value.tooltipRequirement;
button:SetChecked(QuestItem_Settings[value.setting]);
button.tooltipText = value.tooltipText;
if ( button.disabled ) then
button:Disable();
string:SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b);
else
button:Enable();
string:SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b);
end
end
end
----------------
-- Save settings
----------------
----------------
function QuestItem_Config_Save()
for index, value in QuestItem_Config_CheckButtons do
local button = getglobal( value.frame );
if(value.setting) then
if(button and button:GetChecked()) then
QuestItem_Settings[value.setting] = true;
else
QuestItem_Settings[value.setting] = false;
end
end
end
if(QuestItem_Settings["Enabled"]) then
this:RegisterEvent("UI_INFO_MESSAGE");
else
this:UnregisterEvent("UI_INFO_MESSAGE");
end
QuestItem_Config_Close();
end
function QuestItem_Config_OnLoad()
tinsert(UISpecialFrames, "QuestItemConfigFrame");
PanelTemplates_SetNumTabs(QuestItemConfigFrame, 2);
QuestItem_Config_Tab_OnClick(QuestItemConfigFrameTab1:GetID());
QuestItemConfigFrameHeaderTitle:SetText(QUESTITEM_TITLE);
FooterVersion:SetText(QUESTITEM_VERSION);
ItemFrameButton15:SetChecked(ListAllItems);
QuestItemConfigFrameTab1:SetText(QUESTITEM_SETTINGS);
QuestItemConfigFrameTab2:SetText(QUESTITEM_ITEMS);
end
function QuestItem_Config_Tab_OnClick(id)
PanelTemplates_SetTab(QuestItemConfigFrame, id);
for index, value in QuestItem_Config_Frames do
if(value.tab == id) then
getglobal(value.frame):Show();
else
getglobal(value.frame):Hide();
end
end
end
------------------------------------------------------
-- Create a list of items to display in the scrollpane
------------------------------------------------------
------------------------------------------------------
function QuestItem_Config_CreateItemList(listAll)
QuestItemsIdx = nil;
QuestItemsIdx = {};
qiIndex = 1;
ListAllItems = listAll;
table.foreach(QuestItems, QuestItem_Config_CreateIndexed);
qiIndex = qiIndex - 1;
table.sort(QuestItemsIdx, QuestItem_Sort);
end
function QuestItem_Sort(lhs, rhs)
if(lhs.Item < rhs.Item) then
return true;
else
return false;
end
end
-----------------------------------------------------------
-- Filters out which items should be displayed in the list.
-----------------------------------------------------------
-----------------------------------------------------------
function QuestItem_Config_CreateIndexed(value)
if(ListAllItems or QuestItems[value].QuestName == QUESTITEM_UNIDENTIFIED) then
QuestItemsIdx[qiIndex] = {};
QuestItemsIdx[qiIndex].Item = value;
qiIndex = qiIndex + 1;
end
end
function QuestItem_Config_ItemFrame_ToggleFilter()
ListAllItems = not ItemFrameButton15:GetChecked();
FauxScrollFrame_SetOffset(ItemFrameScrollFrame, 0);
QuestItem_Config_ItemFrame_OnShow();
end
function QuestItem_Config_ItemFrame_OnShow()
QuestItem_Config_CreateItemList(ListAllItems);
QuestItem_Config_Items_Update();
end
function QuestItem_Config_Items_Update()
local itemButton, itemName, itemQuest, itemIcon;
local offset;
if(QuestItemInputFrame:IsVisible()) then
return;
end
FauxScrollFrame_Update(ItemFrameScrollFrame, qiIndex, NUM_ITEMS_DISPLAY, ITEM_HEIGHT);
for index=1, NUM_ITEMS_DISPLAY do
offset = index + FauxScrollFrame_GetOffset(ItemFrameScrollFrame);
itemButton = getglobal("ItemButton" .. index);
itemName = getglobal(itemButton:GetName() .. "ButtonTextName");
itemQuest = getglobal(itemButton:GetName() .. "ButtonTextQuest");
itemIcon = getglobal(itemButton:GetName() .. "ItemIconNormalTexture");
-- Exit if there are less items in the list than we want to display, or we are displaying all items
if(offset <= qiIndex and index <= offset) then
itemName:SetText(QuestItemsIdx[offset].Item);
if(QuestItems[QuestItemsIdx[offset].Item].QuestName == QUESTITEM_UNIDENTIFIED) then
itemQuest:SetTextColor(1, 0, 0);
if(QuestItem_Settings["Display tooltip"] == true) then
itemButton.tooltipText = QUESTITEM_ITEMS_EDIT_M_TT;
end
else
itemQuest:SetTextColor(0.4, 0.5, 0.8);
if(QuestItem_Settings["Display tooltip"] == true) then
itemButton.tooltipText = QUESTITEM_ITEMS_EDIT_SHIFT_M_TT;
end
end
itemQuest:SetText(QuestItems[QuestItemsIdx[offset].Item].QuestName);
itemButton:Show();
else
itemButton:Hide();
end
end
end
function QuestItem_InputFrame_Open(itemName)
local itemLabel = getglobal(itemName):GetText();
-- Display input frame for unidentified items, and if the shift key is down
if(not QuestItemInputFrame:IsVisible() and (QuestItems[itemLabel].QuestName == QUESTITEM_UNIDENTIFIED or IsShiftKeyDown()) ) then
QuestItemInputEditBox:SetText(QuestItems[itemLabel].QuestName);
QuestItemInputEditBox:HighlightText();
QuestItemInputFrame:Show();
QuestItemInputFrameHeaderTitle:SetText(itemLabel);
end
end
function QuestItem_InputFrame_Save()
local itemName = QuestItemInputFrameHeaderTitle:GetText();
if(QuestItemInputEditBox:GetText() == "") then
QuestItems[itemName].QuestName = QUESTITEM_UNIDENTIFIED;
else
QuestItems[itemName].QuestName = QuestItemInputEditBox:GetText();
end
QuestItemInputFrame:Hide();
QuestItem_Config_Items_Update();
end
Generated by GNU Enscript 1.6.5.90.