vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 ----------------------------------------------------------------------
2 -- TitanGuildMenu.lua
3 -- code for generating the cascading right-click menus
4 ----------------------------------------------------------------------
5  
6 ----------------------------------------------------------------------
7 -- TitanPanelRightClickMenu_PrepareGuildMenu()
8 ----------------------------------------------------------------------
9 function TitanPanelRightClickMenu_PrepareGuildMenu()
10 local id = TITAN_GUILD_ID;
11 local NumGuild = 0;
12 local guild_name = "";
13 local guild_rank = "";
14 local guild_rankIndex = "";
15 local guild_level = "";
16 local guild_class = "";
17 local guild_zone = "";
18 local guild_note = "";
19 local guild_officernote = "";
20 local guild_online = "";
21 local guild_status = "";
22 local guildIndex;
23  
24 if (IsInGuild()) then
25 -- get guild members
26 NumGuild = GetNumGuildMembers();
27 -- Level 2 -----------------------------------------
28 if ( UIDROPDOWNMENU_MENU_LEVEL == 2 ) then
29 if (UIDROPDOWNMENU_MENU_VALUE) then
30 -- chat
31 if (UIDROPDOWNMENU_MENU_VALUE == TITAN_GUILD_MENU_CHAT_TEXT) then
32 TitanPanelRightClickMenu_AddTitle(UIDROPDOWNMENU_MENU_VALUE, UIDROPDOWNMENU_MENU_LEVEL);
33 -- open guild chat
34 info = {};
35 info.text = TITAN_GUILD_GUILD_CHAT;
36 info.func = TitanPanelGuildButton_OpenGuildChat;
37 UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
38 -- open officer chat only for officers
39 local guildName, guildRankName, guildRankIndex = GetGuildInfo("player");
40 -- assuming if the player can view the officer note, then they can do /o chat
41 if (CanViewOfficerNote()) then
42 info = {};
43 info.text = TITAN_GUILD_GUILD_OFFICER_CHAT;
44 info.func = TitanPanelGuildButton_OpenGuildOfficerChat;
45 UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
46 end
47 -- sort
48 elseif (UIDROPDOWNMENU_MENU_VALUE == TITAN_GUILD_MENU_SORT_TEXT) then
49 -- sort options
50 TitanPanelRightClickMenu_AddTitle(UIDROPDOWNMENU_MENU_VALUE, UIDROPDOWNMENU_MENU_LEVEL);
51 local choiceIndex;
52 for choiceIndex = 1, table.getn(sortChoicesValues) do
53 info = {};
54 info.text = sortChoicesLabels[choiceIndex];
55 info.value = string.lower(sortChoicesValues[choiceIndex]);
56 info.func = TitanPanelGuildButton_SetSortByValue;
57 --info.checked = TitanGetVar(TITAN_GUILD_ID, "SortByValue");
58 UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
59 end
60 TitanPanelRightClickMenu_AddCommand(TITAN_GUILD_MENU_HIDE, TITAN_GUILD_ID, TITAN_GUILD_BUTTON_CLOSEMENU, UIDROPDOWNMENU_MENU_LEVEL);
61 elseif (UIDROPDOWNMENU_MENU_VALUE == TITAN_GUILD_MENU_TOOLTIP_TEXT) then
62 -- tooltip options
63 TitanPanelRightClickMenu_AddTitle(UIDROPDOWNMENU_MENU_VALUE, UIDROPDOWNMENU_MENU_LEVEL);
64 local choiceIndex;
65 for choiceIndex = 1, table.getn(sortChoicesValues) do
66 info = {};
67 info.text = sortChoicesLabels[choiceIndex];
68 info.value = sortChoicesValues[choiceIndex];
69 info.func = TitanPanelGuildButton_SetTooltipChoice;
70 info.checked = TitanGetVar(TITAN_GUILD_ID, "ShowTooltip"..sortChoicesValues[choiceIndex]);
71 info.keepShownOnClick = 1;
72 UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
73 end
74 TitanPanelRightClickMenu_AddCommand(TITAN_GUILD_MENU_HIDE, TITAN_GUILD_ID, TITAN_GUILD_BUTTON_CLOSEMENU, UIDROPDOWNMENU_MENU_LEVEL);
75 elseif (UIDROPDOWNMENU_MENU_VALUE == TITAN_GUILD_MENU_FILTER_TEXT) then
76 -- filter options
77 TitanPanelRightClickMenu_AddTitle(UIDROPDOWNMENU_MENU_VALUE, UIDROPDOWNMENU_MENU_LEVEL);
78 -- lvl
79 info = {};
80 info.text = TITAN_GUILD_MENU_FILTER_MYLEVEL;
81 info.func = TitanPanelGuildButton_ToggleFilterMyLevel;
82 info.checked = TitanGetVar(TITAN_GUILD_ID, "FilterMyLevel");
83 UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
84 -- zone
85 info = {};
86 info.text = TITAN_GUILD_MENU_FILTER_MYZONE;
87 info.func = TitanPanelGuildButton_ToggleFilterMyZone;
88 info.checked = TitanGetVar(TITAN_GUILD_ID, "FilterMyZone");
89 UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
90 -- class
91 info = {};
92 info.text = TITAN_GUILD_MENU_FILTER_CLASS;
93 info.hasArrow = 1;
94 UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
95 TitanPanelRightClickMenu_AddCommand(TITAN_GUILD_MENU_HIDE, TITAN_GUILD_ID, TITAN_GUILD_BUTTON_CLOSEMENU, UIDROPDOWNMENU_MENU_LEVEL);
96 elseif (UIDROPDOWNMENU_MENU_VALUE == TITAN_GUILD_MENU_CONFIGURE_UPDATE_TIME) then
97 -- update options
98 TitanPanelRightClickMenu_AddTitle(UIDROPDOWNMENU_MENU_VALUE, UIDROPDOWNMENU_MENU_LEVEL);
99 local choiceIndex;
100 for choiceIndex = 1, table.getn(updateTimeOptions) do
101 info = {};
102 info.text = updateTimeLabels[choiceIndex];
103 info.value = updateTimeOptions[choiceIndex];
104 info.func = TitanPanelGuildButton_SetRosterUpdateTime;
105 if (updateTimeOptions[choiceIndex] == TitanGetVar(TITAN_GUILD_ID, "RosterUpdateTime")) then
106 info.checked = 1;
107 end
108 UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
109 end
110 -- toggle roster updates
111 info = {};
112 info.text = TITAN_GUILD_MENU_DISABLE_UPDATE_TEXT;
113 info.func = TitanPanelGuildButton_ToggleRosterUpdates
114 info.checked = TitanGetVar(TITAN_GUILD_ID, "DisableRosterUpdates");
115 UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
116 -- toggle mouse-over updates
117 info = {};
118 info.text = TITAN_GUILD_MENU_DISABLE_MOUSEOVER_UPDATE;
119 info.func = TitanPanelGuildButton_ToggleMouseOverUpdates
120 info.checked = TitanGetVar(TITAN_GUILD_ID, "DisableMouseOverUpdates");
121 UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
122 -- hide
123 TitanPanelRightClickMenu_AddCommand(TITAN_GUILD_MENU_HIDE, TITAN_GUILD_ID, TITAN_GUILD_BUTTON_CLOSEMENU, UIDROPDOWNMENU_MENU_LEVEL);
124 -- player submenus
125 else
126 if (TitanGetVar(TITAN_GUILD_ID, "ShowAdvancedMenus")) then
127 -- if hovering over a different rank, then refresh paging
128 if (priorAdvMenuValue ~= UIDROPDOWNMENU_MENU_VALUE) then
129 TitanPanelGuildButton_InitPaging();
130 priorAdvMenuValue = UIDROPDOWNMENU_MENU_VALUE;
131 end
132 -- generate lvl 2 player lists based on rank
133 TitanPanelRightClickMenu_AddTitle(GuildControlGetRankName(UIDROPDOWNMENU_MENU_VALUE), UIDROPDOWNMENU_MENU_LEVEL);
134 TitanPanelGuildButton_ComputeAdvancedPages(table.getn(masterTable[UIDROPDOWNMENU_MENU_VALUE].members));
135 TitanPanelGuildButton_BuildBackwardPageControl();
136 for numMember = currIndex, maxIndex do
137 if (masterTable[UIDROPDOWNMENU_MENU_VALUE].members[numMember]) then
138 info = {};
139 info.text = masterTable[UIDROPDOWNMENU_MENU_VALUE].members[numMember];
140 info.hasArrow = 1;
141 UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
142 end
143 end
144 TitanPanelGuildButton_BuildForwardPageControl();
145 else
146 -- build interaction menus for simple player list
147 TitanPanelGuildButton_BuildInteractionMenu();
148 end
149 end
150 end
151 -- End Level 2 -------------------------------------
152 elseif (UIDROPDOWNMENU_MENU_LEVEL == 1) then
153 -- Level 1 -----------------------------------------
154 TitanPanelRightClickMenu_AddTitle(TitanPlugins[id].menuText);
155 -- build the lvl 1 menus based on rank
156 -- ADVANCED ---------------------------------------------
157 if (TitanGetVar(TITAN_GUILD_ID, "ShowAdvancedMenus")) then
158 if (table.getn(masterTable) <= 0) then
159 TitanPanelRightClickMenu_AddSpacer();
160 TitanPanelRightClickMenu_AddTitle(TITAN_GUILD_MENU_PLEASE_WAIT_TEXT);
161 else
162 for rankMenuIndex = 1, table.getn(masterTable) do
163 if (table.getn(masterTable[rankMenuIndex].members) > 0) then
164 info = {};
165 info.text = TitanPanelGuildButton_ColorRankNameText(rankMenuIndex-1, masterTable[rankMenuIndex].rank);
166 info.hasArrow = 1;
167 info.value = rankMenuIndex;
168 UIDropDownMenu_AddButton(info);
169 end
170 end
171 end
172 else
173 -- build the lvl 1 simple menus
174 -- SIMPLE ---------------------------------------------
175 TitanPanelGuildButton_BuildBackwardPageControl();
176 for guildIndex = currIndex, maxIndex do
177 if (masterTableSimple[guildIndex]) then
178 info = {};
179 info.text = TitanPanelGuildButton_ColorRankNameText(masterTableSimple[guildIndex].rankIndex, masterTableSimple[guildIndex].name);
180 info.hasArrow = 1;
181 info.value = masterTableSimple[guildIndex].name;
182 info.func = TitanPanelGuildButton_GuildWhisper;
183 UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
184 end
185 end
186 TitanPanelGuildButton_BuildForwardPageControl();
187 end
188  
189 if (TitanGetVar(TITAN_GUILD_ID, "ShowMenuOptions")) then
190 TitanPanelRightClickMenu_AddSpacer();
191  
192 -- toggle the menu options for more room
193 TitanPanelRightClickMenu_AddCommand(TITAN_GUILD_MENU_HIDE_OPTIONS_TEXT, TITAN_GUILD_ID, TITAN_GUILD_BUTTON_SHOWOPTIONS);
194  
195 -- toggle the advanced menus
196 info = {};
197 info.text = TITAN_GUILD_MENU_SHOWADVANCED_TEXT;
198 info.func = TitanPanelGuildButton_ToggleAdvancedMenus
199 info.checked = TitanGetVar(TITAN_GUILD_ID, "ShowAdvancedMenus");
200 UIDropDownMenu_AddButton(info);
201  
202 -- open guild chat
203 info = {};
204 info.text = TITAN_GUILD_MENU_CHAT_TEXT;
205 info.hasArrow = 1;
206 UIDropDownMenu_AddButton(info);
207  
208 -- open sort submenu
209 info = {};
210 info.text = TITAN_GUILD_MENU_SORT_TEXT;
211 info.hasArrow = 1;
212 UIDropDownMenu_AddButton(info);
213  
214 -- open tooltip submenu
215 info = {};
216 info.text = TITAN_GUILD_MENU_TOOLTIP_TEXT;
217 info.hasArrow = 1;
218 UIDropDownMenu_AddButton(info);
219  
220 -- open filter submenu
221 info = {};
222 info.text = TITAN_GUILD_MENU_FILTER_TEXT;
223 info.hasArrow = 1;
224 UIDropDownMenu_AddButton(info);
225  
226 -- configure roster updates
227 info = {};
228 info.text = TITAN_GUILD_MENU_CONFIGURE_UPDATE_TIME;
229 info.hasArrow = 1;
230 UIDropDownMenu_AddButton(info);
231  
232 -- add default menu options
233 TitanPanelRightClickMenu_AddSpacer();
234 TitanPanelRightClickMenu_AddToggleIcon(TITAN_GUILD_ID);
235 TitanPanelRightClickMenu_AddToggleLabelText(TITAN_GUILD_ID);
236 TitanPanelRightClickMenu_AddCommand(TITAN_PANEL_MENU_HIDE, TITAN_GUILD_ID, TITAN_PANEL_MENU_FUNC_HIDE);
237 else
238 -- toggle the menu options for more room
239 TitanPanelRightClickMenu_AddCommand(TITAN_GUILD_MENU_SHOW_OPTIONS_TEXT, TITAN_GUILD_ID, TITAN_GUILD_BUTTON_SHOWOPTIONS);
240 end
241 -- End Level 1 --------------------------------------
242 elseif (UIDROPDOWNMENU_MENU_LEVEL == 3) then
243 -- Level 3 ------------------------------------------
244 if (UIDROPDOWNMENU_MENU_VALUE == TITAN_GUILD_MENU_FILTER_CLASS) then
245 TitanPanelGuildButton_BuildClassFilterMenu();
246 else
247 TitanPanelGuildButton_BuildInteractionMenu();
248 end
249  
250 -- End Level 3 --------------------------------------
251 end
252 else
253 -- add a nice title for those that are not in a guild
254 TitanPanelRightClickMenu_AddTitle(TitanPlugins[id].menuText);
255 -- add default menu options
256 TitanPanelRightClickMenu_AddSpacer();
257 TitanPanelRightClickMenu_AddToggleIcon(TITAN_GUILD_ID);
258 TitanPanelRightClickMenu_AddToggleLabelText(TITAN_GUILD_ID);
259 TitanPanelRightClickMenu_AddCommand(TITAN_PANEL_MENU_HIDE, TITAN_GUILD_ID, TITAN_PANEL_MENU_FUNC_HIDE);
260 end
261 end
262  
263 ----------------------------------------------------------------------
264 -- TitanPanelGuildButton_BuildInteractionMenu()
265 ----------------------------------------------------------------------
266 function TitanPanelGuildButton_BuildInteractionMenu()
267 TitanPanelRightClickMenu_AddTitle(UIDROPDOWNMENU_MENU_VALUE, UIDROPDOWNMENU_MENU_LEVEL);
268 -- whisper
269 info = {};
270 info.text = TITAN_GUILD_MENU_ADVANCED_WHISPER_TEXT;
271 info.value = UIDROPDOWNMENU_MENU_VALUE;
272 info.func = TitanPanelGuildButton_GuildWhisper;
273 UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
274 -- invite
275 info = {};
276 info.text = TITAN_GUILD_MENU_ADVANCED_INVITE_TEXT;
277 info.value = UIDROPDOWNMENU_MENU_VALUE;
278 info.func = TitanPanelGuildButton_InviteToGroup;
279 UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
280 -- who
281 info = {};
282 info.text = TITAN_GUILD_MENU_ADVANCED_WHO_TEXT;
283 info.value = UIDROPDOWNMENU_MENU_VALUE;
284 info.func = TitanPanelGuildButton_SendWhoRequest;
285 UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
286 -- friend
287 info = {};
288 info.text = TITAN_GUILD_MENU_ADVANCED_FRIEND_TEXT;
289 info.value = UIDROPDOWNMENU_MENU_VALUE;
290 info.func = TitanPanelGuildButton_AddFriend;
291 UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
292 end
293  
294  
295