vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 UIPanelWindows["QuestItemConfigFrame"] = { area = "Center", pushable = 5 };
2 NUM_ITEMS_DISPLAY = 10;
3 ITEM_HEIGHT = 31;
4 QuestItemsIdx = {};
5 qiIndex = 1;
6 ListAllItems = true;
7  
8  
9 QuestItem_Config_Frames =
10 {
11 { frame = "ConfigFrame", tab = 1},
12 { frame = "ItemFrame", tab = 2},
13 };
14  
15 QuestItem_Config_CheckButtons = {
16 { frame = "QuestItem_Config_Checkbox1", text = QUESTITEM_CFG_CHK_ENABLED, tooltipText = QUESTITEM_CFG_CHK_ENABLED_TT, setting="Enabled" },
17 { frame = "QuestItem_Config_Checkbox2", text = QUESTITEM_CFG_CHK_ALERT, tooltipText = QUESTITEM_CFG_CHK_ALERT_TT, setting="Alert"},
18 { frame = "QuestItem_Config_Checkbox3", text = QUESTITEM_CFG_CHK_DISPLAYTT, tooltipText = QUESTITEM_CFG_CHK_DISPLAYTT_TT, setting="Display tooltip" },
19 { frame = "QuestItem_Config_Checkbox4", text = QUESTITEM_CFG_CHK_ALTOPN, tooltipText = QUESTITEM_CFG_CHK_ALTOPN_TT, setting="AltOpen" },
20 { frame = "QuestItem_Config_Checkbox5", text = QUESTITEM_CFG_CHK_SHIFTOPN, tooltipText = QUESTITEM_CFG_CHK_SHIFTOPN_TT, setting="ShiftOpen" },
21 { frame = "QuestItem_Config_Checkbox6", text = QUESTITEM_CFG_CHK_DISREQU, tooltipText = QUESTITEM_CFG_CHK_DISREQU_TT, setting="DisplayRequest", tooltipRequirement="Requires: AxuMenuItem"},
22 { frame = "ItemFrameButton15", text = QUESTITEM_ITM_SHOWALL, tooltipText = QUESTITEM_ITM_SHOWALL, setting=nil },
23 };
24  
25 function QuestItem_Config_OnCommand(command)
26 if(command == "test") then
27 QuestItem_Sky_SendTestData();
28 else
29 QuestItemConfigFrame:Show();
30 end
31 end
32  
33 function QuestItem_Config_Close()
34 QuestItemConfigFrame:Hide();
35 end
36  
37 function QuestItem_Config_UpdateCheckboxes()
38 for index, value in QuestItem_Config_CheckButtons do
39 local button = getglobal( value.frame );
40 local string = getglobal( value.frame.."Text");
41  
42 if (not button) then
43 break;
44 end
45  
46 string:SetText( TEXT(value.text) );
47 button.tooltipRequirement = value.tooltipRequirement;
48 button:SetChecked(QuestItem_Settings[value.setting]);
49  
50 button.tooltipText = value.tooltipText;
51  
52 if ( button.disabled ) then
53 button:Disable();
54 string:SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b);
55 else
56 button:Enable();
57 string:SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b);
58 end
59 end
60 end
61  
62 ----------------
63 -- Save settings
64 ----------------
65 ----------------
66 function QuestItem_Config_Save()
67 for index, value in QuestItem_Config_CheckButtons do
68 local button = getglobal( value.frame );
69 if(value.setting) then
70 if(button and button:GetChecked()) then
71 QuestItem_Settings[value.setting] = true;
72 else
73 QuestItem_Settings[value.setting] = false;
74 end
75 end
76 end
77 if(QuestItem_Settings["Enabled"]) then
78 this:RegisterEvent("UI_INFO_MESSAGE");
79 else
80 this:UnregisterEvent("UI_INFO_MESSAGE");
81 end
82 QuestItem_Config_Close();
83 end
84  
85  
86 function QuestItem_Config_OnLoad()
87 tinsert(UISpecialFrames, "QuestItemConfigFrame");
88 PanelTemplates_SetNumTabs(QuestItemConfigFrame, 2);
89 QuestItem_Config_Tab_OnClick(QuestItemConfigFrameTab1:GetID());
90 QuestItemConfigFrameHeaderTitle:SetText(QUESTITEM_TITLE);
91 FooterVersion:SetText(QUESTITEM_VERSION);
92 ItemFrameButton15:SetChecked(ListAllItems);
93 QuestItemConfigFrameTab1:SetText(QUESTITEM_SETTINGS);
94 QuestItemConfigFrameTab2:SetText(QUESTITEM_ITEMS);
95 end
96  
97 function QuestItem_Config_Tab_OnClick(id)
98 PanelTemplates_SetTab(QuestItemConfigFrame, id);
99 for index, value in QuestItem_Config_Frames do
100 if(value.tab == id) then
101 getglobal(value.frame):Show();
102 else
103 getglobal(value.frame):Hide();
104 end
105 end
106 end
107  
108 ------------------------------------------------------
109 -- Create a list of items to display in the scrollpane
110 ------------------------------------------------------
111 ------------------------------------------------------
112 function QuestItem_Config_CreateItemList(listAll)
113 QuestItemsIdx = nil;
114 QuestItemsIdx = {};
115 qiIndex = 1;
116 ListAllItems = listAll;
117  
118 table.foreach(QuestItems, QuestItem_Config_CreateIndexed);
119 qiIndex = qiIndex - 1;
120 table.sort(QuestItemsIdx, QuestItem_Sort);
121 end
122  
123 function QuestItem_Sort(lhs, rhs)
124 if(lhs.Item < rhs.Item) then
125 return true;
126 else
127 return false;
128 end
129 end
130  
131 -----------------------------------------------------------
132 -- Filters out which items should be displayed in the list.
133 -----------------------------------------------------------
134 -----------------------------------------------------------
135 function QuestItem_Config_CreateIndexed(value)
136 if(ListAllItems or QuestItems[value].QuestName == QUESTITEM_UNIDENTIFIED) then
137 QuestItemsIdx[qiIndex] = {};
138 QuestItemsIdx[qiIndex].Item = value;
139 qiIndex = qiIndex + 1;
140 end
141 end
142  
143 function QuestItem_Config_ItemFrame_ToggleFilter()
144 ListAllItems = not ItemFrameButton15:GetChecked();
145 FauxScrollFrame_SetOffset(ItemFrameScrollFrame, 0);
146 QuestItem_Config_ItemFrame_OnShow();
147 end
148  
149 function QuestItem_Config_ItemFrame_OnShow()
150 QuestItem_Config_CreateItemList(ListAllItems);
151 QuestItem_Config_Items_Update();
152 end
153  
154 function QuestItem_Config_Items_Update()
155 local itemButton, itemName, itemQuest, itemIcon;
156 local offset;
157 if(QuestItemInputFrame:IsVisible()) then
158 return;
159 end
160 FauxScrollFrame_Update(ItemFrameScrollFrame, qiIndex, NUM_ITEMS_DISPLAY, ITEM_HEIGHT);
161 for index=1, NUM_ITEMS_DISPLAY do
162 offset = index + FauxScrollFrame_GetOffset(ItemFrameScrollFrame);
163 itemButton = getglobal("ItemButton" .. index);
164 itemName = getglobal(itemButton:GetName() .. "ButtonTextName");
165 itemQuest = getglobal(itemButton:GetName() .. "ButtonTextQuest");
166 itemIcon = getglobal(itemButton:GetName() .. "ItemIconNormalTexture");
167 -- Exit if there are less items in the list than we want to display, or we are displaying all items
168 if(offset <= qiIndex and index <= offset) then
169 itemName:SetText(QuestItemsIdx[offset].Item);
170 if(QuestItems[QuestItemsIdx[offset].Item].QuestName == QUESTITEM_UNIDENTIFIED) then
171 itemQuest:SetTextColor(1, 0, 0);
172 if(QuestItem_Settings["Display tooltip"] == true) then
173 itemButton.tooltipText = QUESTITEM_ITEMS_EDIT_M_TT;
174 end
175 else
176 itemQuest:SetTextColor(0.4, 0.5, 0.8);
177 if(QuestItem_Settings["Display tooltip"] == true) then
178 itemButton.tooltipText = QUESTITEM_ITEMS_EDIT_SHIFT_M_TT;
179 end
180 end
181 itemQuest:SetText(QuestItems[QuestItemsIdx[offset].Item].QuestName);
182 itemButton:Show();
183 else
184 itemButton:Hide();
185 end
186 end
187 end
188  
189  
190 function QuestItem_InputFrame_Open(itemName)
191 local itemLabel = getglobal(itemName):GetText();
192 -- Display input frame for unidentified items, and if the shift key is down
193 if(not QuestItemInputFrame:IsVisible() and (QuestItems[itemLabel].QuestName == QUESTITEM_UNIDENTIFIED or IsShiftKeyDown()) ) then
194 QuestItemInputEditBox:SetText(QuestItems[itemLabel].QuestName);
195 QuestItemInputEditBox:HighlightText();
196  
197 QuestItemInputFrame:Show();
198 QuestItemInputFrameHeaderTitle:SetText(itemLabel);
199 end
200 end
201  
202 function QuestItem_InputFrame_Save()
203 local itemName = QuestItemInputFrameHeaderTitle:GetText();
204 if(QuestItemInputEditBox:GetText() == "") then
205 QuestItems[itemName].QuestName = QUESTITEM_UNIDENTIFIED;
206 else
207 QuestItems[itemName].QuestName = QuestItemInputEditBox:GetText();
208 end
209 QuestItemInputFrame:Hide();
210 QuestItem_Config_Items_Update();
211 end