Details | Compare with Previous | View Log
Line No. | Rev | Author | Line |
---|---|---|---|
1 | 8 | Halya-96941 | local ButtonTexture = "Interface\\Addons\\LanguageCycle\\media\\LanguageCycleIcon" |
2 | Halya-96941 | local addonName = "LanguageCycle" |
|
3 | Halya-96941 | ||
4 | Halya-96941 | BINDING_HEADER_LANGUAGECYCLE="Language Cycle"; |
|
5 | Halya-96941 | ||
6 | Halya-96941 | local defaults = { |
|
7 | Halya-96941 | saved_language = {}; |
|
8 | Halya-96941 | translate_group = true; |
|
9 | Halya-96941 | panel_visible = true; |
|
10 | Halya-96941 | panel_locked = false; |
|
11 | Halya-96941 | minimapIcon = { |
|
12 | Halya-96941 | hide = false, |
|
13 | Halya-96941 | minimapPos = 220, |
|
14 | Halya-96941 | radius = 80, |
|
15 | Halya-96941 | } |
|
16 | Halya-96941 | } |
|
17 | Halya-96941 | if not LANGUAGE_CYCLE then |
|
18 | Halya-96941 | LANGUAGE_CYCLE = defaults |
|
19 | Halya-96941 | else |
|
20 | Halya-96941 | for k, v in pairs(defaults) do |
|
21 | Halya-96941 | if LANGUAGE_CYCLE[k] == nil or type(LANGUAGE_CYCLE[k]) ~= type(v) then |
|
22 | Halya-96941 | LANGUAGE_CYCLE[k] = v |
|
23 | Halya-96941 | end |
|
24 | Halya-96941 | end |
|
25 | Halya-96941 | end |
|
26 | Halya-96941 | ||
27 | Halya-96941 | LC_default_language = ""; |
|
28 | Halya-96941 | LC_verbose = true; |
|
29 | Halya-96941 | LC_unknown = "Unknown Entity"; |
|
30 | Halya-96941 | LC_realm_name = ""; |
|
31 | Halya-96941 | LC_player_name = ""; |
|
32 | Halya-96941 | LC_player_id = nil; |
|
33 | Halya-96941 | LC_panel_height = 0; |
|
34 | Halya-96941 | LC_panel_width = 0; |
|
35 | Halya-96941 | LC_version = "5.3.0c, by Halya, Argent Dawn, EU"; |
|
36 | Halya-96941 | LC_Help_Text={}; |
|
37 | Halya-96941 | LC_Help_Text[0]="Language Cycle will respond to the following commands:"; |
|
38 | Halya-96941 | LC_Help_Text[1]="- /lc : Toggles spoken language between racial/common"; |
|
39 | Halya-96941 | LC_Help_Text[2]="- /lc status : Displays current settings"; |
|
40 | Halya-96941 | LC_Help_Text[3]="- /lc toggle : Toggles Guild/Party translation on/off"; |
|
41 | Halya-96941 | LC_Help_Text[4]="- /lc help : Displays this message"; |
|
42 | Halya-96941 | LC_Help_Text[5]="- /lc show : Display the language cycle button"; |
|
43 | Halya-96941 | LC_Help_Text[6]="- /lc hide : Hide the language cycle button"; |
|
44 | Halya-96941 | LC_Help_Text[7]="- /lc MM : Toggle the language cycle mini-map button"; |
|
45 | Halya-96941 | LC_Help_Text[8]="--------------------------------------------------------------"; |
|
46 | Halya-96941 | ||
47 | Halya-96941 | --Save Blizzard's original SendText function |
|
48 | Halya-96941 | local LC_Blizzard_SendChatMessage; |
|
49 | Halya-96941 | ||
50 | Halya-96941 | local LCButtonFrameObject = LibStub:GetLibrary("LibDataBroker-1.1"):NewDataObject(addonName, { |
|
51 | Halya-96941 | type = "data source", |
|
52 | Halya-96941 | text = LANGUAGE_CYCLE.minimapIcon.text, |
|
53 | Halya-96941 | icon = ButtonTexture, |
|
54 | Halya-96941 | OnClick = function(frame, button) |
|
55 | Halya-96941 | GameTooltip:Hide() |
|
56 | Halya-96941 | if button =="LeftButton" then |
|
57 | Halya-96941 | Language_Cycle_Cycle(); |
|
58 | Halya-96941 | elseif button =="MiddleButton" then |
|
59 | Halya-96941 | local t = 0; |
|
60 | Halya-96941 | while LC_Help_Text[t] ~= nil do |
|
61 | Halya-96941 | DEFAULT_CHAT_FRAME:AddMessage(LC_Help_Text[t],0.0, 1.0, 0.0); |
|
62 | Halya-96941 | t = t + 1; |
|
63 | Halya-96941 | end |
|
64 | Halya-96941 | elseif button == "RightButton" then |
|
65 | Halya-96941 | Language_Cycle_Panel_Visible(); |
|
66 | Halya-96941 | end |
|
67 | Halya-96941 | end, |
|
68 | Halya-96941 | OnTooltipShow = function(tooltip) |
|
69 | Halya-96941 | if tooltip and tooltip.AddLine then |
|
70 | Halya-96941 | tooltip:SetText("LanguageCycle") |
|
71 | Halya-96941 | tooltip:AddLine("Left-Click: Cycle Language|nRight-Click: Show/Hide Built-in Panel|nMiddle-Click: Show Help",.8,.8,.8,1) |
|
72 | Halya-96941 | tooltip:Show() |
|
73 | Halya-96941 | end |
|
74 | Halya-96941 | end, |
|
75 | Halya-96941 | }) |
|
76 | Halya-96941 | ||
77 | Halya-96941 | function Language_Cycle_OnLoad( self ) |
|
78 | Halya-96941 | -- Hook SendChatMessage |
|
79 | Halya-96941 | LC_Blizzard_SendChatMessage = SendChatMessage; |
|
80 | Halya-96941 | SendChatMessage = LC_SendChatMessage; |
|
81 | Halya-96941 | ||
82 | Halya-96941 | SlashCmdList["LANGUAGECYCLE"] = Language_Cycle_Slash; |
|
83 | Halya-96941 | SLASH_LANGUAGECYCLE1 = "/lc"; |
|
84 | Halya-96941 | ShowUIPanel(Language_Cycle_Panel); |
|
85 | Halya-96941 | if ( not Language_Cycle_Panel:IsVisible() ) then |
|
86 | Halya-96941 | Language_Cycle_Panel:SetOwner(UIParent, "ANCHOR_PRESERVE"); |
|
87 | Halya-96941 | end |
|
88 | Halya-96941 | ||
89 | Halya-96941 | Language_Cycle_Panel_Backdrop:SetBackdropBorderColor(1,1,1); |
|
90 | Halya-96941 | Language_Cycle_Panel_Backdrop:SetBackdropColor(0.3, 0.3, 0.3); |
|
91 | Halya-96941 | Language_Cycle_Backdrop_Hide(); |
|
92 | Halya-96941 | LC_panel_height = Language_Cycle_Panel:GetHeight(); |
|
93 | Halya-96941 | LC_panel_width = Language_Cycle_Panel:GetWidth(); |
|
94 | Halya-96941 | Language_Cycle_Party_Toggle_Text:SetJustifyH("Right"); |
|
95 | Halya-96941 | Language_Cycle_Add_Message("LanguageCycle loaded; Type '/lc help' for a list of options; Version " .. LC_version); |
|
96 | Halya-96941 | ||
97 | Halya-96941 | -- self:SetPadding(16); |
|
98 | Halya-96941 | self:RegisterForDrag("LeftButton"); |
|
99 | Halya-96941 | self:RegisterEvent("VARIABLES_LOADED"); |
|
100 | Halya-96941 | self:RegisterEvent("PLAYER_ENTERING_WORLD"); |
|
101 | Halya-96941 | ||
102 | Halya-96941 | end |
|
103 | Halya-96941 | ||
104 | Halya-96941 | function Language_Cycle_Get_Version() |
|
105 | Halya-96941 | return LC_version |
|
106 | Halya-96941 | end |
|
107 | Halya-96941 | ||
108 | Halya-96941 | -- replace Blizzard's SendChatMessage function instead. -Nhani |
|
109 | Halya-96941 | function LC_SendChatMessage(msg, chatType, language, channel) |
|
110 | Halya-96941 | ||
111 | Halya-96941 | if (LC_player_id ~= nil) then |
|
112 | Halya-96941 | language = LANGUAGE_CYCLE.saved_language[LC_player_id]; |
|
113 | Halya-96941 | end |
|
114 | Halya-96941 | ||
115 | Halya-96941 | -- Small change here. Instead of defining what channels we WANT |
|
116 | Halya-96941 | -- in a common language, we define what channels we DON'T want. |
|
117 | Halya-96941 | -- Since those are far fewer in number. -Nhani |
|
118 | Halya-96941 | if (LANGUAGE_CYCLE.translate_group) then |
|
119 | Halya-96941 | if (chatType ~= "SAY" and chatType ~= "YELL") then |
|
120 | Halya-96941 | if (language ~= LC_default_language) then |
|
121 | Halya-96941 | language = LC_default_language; |
|
122 | Halya-96941 | end |
|
123 | Halya-96941 | end |
|
124 | Halya-96941 | end |
|
125 | Halya-96941 | local numLanguages = GetNumLanguages(); |
|
126 | Halya-96941 | local i; |
|
127 | Halya-96941 | for i = 1, numLanguages, 1 do |
|
128 | Halya-96941 | local getlanguage, getlanguageID = GetLanguageByIndex(i); |
|
129 | Halya-96941 | if (language == getlanguage) then |
|
130 | Halya-96941 | languageID = getlanguageID; |
|
131 | Halya-96941 | end |
|
132 | Halya-96941 | end |
|
133 | Halya-96941 | ||
134 | Halya-96941 | LC_Blizzard_SendChatMessage(msg, chatType, languageID, channel); |
|
135 | Halya-96941 | ||
136 | Halya-96941 | end |
|
137 | Halya-96941 | ||
138 | Halya-96941 | ||
139 | Halya-96941 | function Language_Cycle_Panel_Visible() |
|
140 | Halya-96941 | if (Language_Cycle_Panel:IsVisible() ) then |
|
141 | Halya-96941 | HideUIPanel(Language_Cycle_Panel); |
|
142 | Halya-96941 | LANGUAGE_CYCLE.panel_visible = false; |
|
143 | Halya-96941 | else |
|
144 | Halya-96941 | ShowUIPanel(Language_Cycle_Panel); |
|
145 | Halya-96941 | LANGUAGE_CYCLE.panel_visible = true; |
|
146 | Halya-96941 | end |
|
147 | Halya-96941 | end |
|
148 | Halya-96941 | ||
149 | Halya-96941 | ||
150 | Halya-96941 | function Language_Cycle_Backdrop_Show(override) |
|
151 | Halya-96941 | if (LANGUAGE_CYCLE.panel_locked and not override) then |
|
152 | Halya-96941 | else |
|
153 | Halya-96941 | Language_Cycle_Panel_Backdrop:Show(); |
|
154 | Halya-96941 | end |
|
155 | Halya-96941 | end |
|
156 | Halya-96941 | ||
157 | Halya-96941 | ||
158 | Halya-96941 | function Language_Cycle_Backdrop_Hide(override) |
|
159 | Halya-96941 | if (LANGUAGE_CYCLE.panel_locked and not override) then |
|
160 | Halya-96941 | else |
|
161 | Halya-96941 | Language_Cycle_Panel_Backdrop:Hide(); |
|
162 | Halya-96941 | end |
|
163 | Halya-96941 | end |
|
164 | Halya-96941 | ||
165 | Halya-96941 | ||
166 | Halya-96941 | function Language_Cycle_Cycle() |
|
167 | Halya-96941 | local numLangs = GetNumLanguages(); |
|
168 | Halya-96941 | local currentlang = 0; |
|
169 | Halya-96941 | local lang; |
|
170 | Halya-96941 | lang = Language_Cycle_Get_Lang(); |
|
171 | Halya-96941 | ||
172 | Halya-96941 | for i=1,numLangs,1 do |
|
173 | Halya-96941 | if (lang == GetLanguageByIndex(i)) then |
|
174 | Halya-96941 | currentlang = i; |
|
175 | Halya-96941 | end |
|
176 | Halya-96941 | end |
|
177 | Halya-96941 | if (currentlang == numLangs) then |
|
178 | Halya-96941 | currentlang = 1; |
|
179 | Halya-96941 | else |
|
180 | Halya-96941 | currentlang = currentlang + 1; |
|
181 | Halya-96941 | end |
|
182 | Halya-96941 | Language_Cycle_Set_Lang(GetLanguageByIndex(currentlang)); |
|
183 | Halya-96941 | -- if (IsAddOnLoaded("Titan")) then |
|
184 | Halya-96941 | -- TitanPanelButton_UpdateButton(TITAN_LANGUAGECYCLE_ID); |
|
185 | Halya-96941 | -- end |
|
186 | Halya-96941 | -- if (IsAddOnLoaded("FuBar")) then |
|
187 | Halya-96941 | -- LanguageCycleFuBar:UpdateText() |
|
188 | Halya-96941 | -- end |
|
189 | Halya-96941 | -- For debugging |
|
190 | Halya-96941 | -- Langauge_Cycle_Debug_Message(); |
|
191 | Halya-96941 | end |
|
192 | Halya-96941 | ||
193 | Halya-96941 | function Language_Cycle_Language_Clicked(button) |
|
194 | Halya-96941 | ||
195 | Halya-96941 | if (button == "LeftButton") then |
|
196 | Halya-96941 | LC_verbose = false; |
|
197 | Halya-96941 | Language_Cycle_Cycle(); |
|
198 | Halya-96941 | LC_verbose = true; |
|
199 | Halya-96941 | end |
|
200 | Halya-96941 | if (button == "RightButton") then |
|
201 | Halya-96941 | LANGUAGE_CYCLE.panel_locked = not LANGUAGE_CYCLE.panel_locked; |
|
202 | Halya-96941 | Langauge_Cycle_Lock_Backdrop(); |
|
203 | Halya-96941 | end |
|
204 | Halya-96941 | end |
|
205 | Halya-96941 | ||
206 | Halya-96941 | ||
207 | Halya-96941 | function Langauge_Cycle_Lock_Backdrop() |
|
208 | Halya-96941 | if (LANGUAGE_CYCLE.panel_locked) then |
|
209 | Halya-96941 | Language_Cycle_Backdrop_Hide(true); |
|
210 | Halya-96941 | Language_Cycle_Panel:SetHeight(Language_Cycle_Button:GetHeight()); |
|
211 | Halya-96941 | Language_Cycle_Panel:SetWidth(Language_Cycle_Button:GetWidth()); |
|
212 | Halya-96941 | else |
|
213 | Halya-96941 | Language_Cycle_Backdrop_Show(true); |
|
214 | Halya-96941 | Language_Cycle_Panel:SetHeight(LC_panel_height); |
|
215 | Halya-96941 | Language_Cycle_Panel:SetWidth(LC_panel_width); |
|
216 | Halya-96941 | end |
|
217 | Halya-96941 | end |
|
218 | Halya-96941 | ||
219 | Halya-96941 | ||
220 | Halya-96941 | function Language_Cycle_Variables_Loaded() |
|
221 | Halya-96941 | --Called when variables_loaded event fires, usually on UI reload |
|
222 | Halya-96941 | if (LANGUAGE_CYCLE.panel_visible) then |
|
223 | Halya-96941 | ShowUIPanel(Language_Cycle_Panel); |
|
224 | Halya-96941 | else |
|
225 | Halya-96941 | HideUIPanel(Language_Cycle_Panel); |
|
226 | Halya-96941 | end |
|
227 | Halya-96941 | Langauge_Cycle_Lock_Backdrop(); |
|
228 | Halya-96941 | -- For debugging |
|
229 | Halya-96941 | -- Language_Cycle_Debug_Message(); |
|
230 | Halya-96941 | -- Language_Cycle_Add_Message("Onload done"); |
|
231 | Halya-96941 | end |
|
232 | Halya-96941 | ||
233 | Halya-96941 | function Language_Cycle_OnEvent( self, event, ... ) |
|
234 | Halya-96941 | ||
235 | Halya-96941 | if (event == "VARIABLES_LOADED") then |
|
236 | Halya-96941 | Language_Cycle_Variables_Loaded(); |
|
237 | Halya-96941 | -- Add LanguageCycle to myAddOns addons list |
|
238 | Halya-96941 | if(myAddOnsFrame) then |
|
239 | Halya-96941 | myAddOnsList.LanguageCycle = { |
|
240 | Halya-96941 | name = "LanguageCycle", |
|
241 | Halya-96941 | description = "A button to change your spoken language", |
|
242 | Halya-96941 | version = Language_Cycle_Get_Version(), |
|
243 | Halya-96941 | category = MYADDONS_CATEGORY_CHAT, |
|
244 | Halya-96941 | frame = "Language_Cycle_Panel"}; |
|
245 | Halya-96941 | end |
|
246 | Halya-96941 | ---------------------------------------------------------------------------------------- |
|
247 | Halya-96941 | -- LDB Button Creation |
|
248 | Halya-96941 | ---------------------------------------------------------------------------------------- |
|
249 | Halya-96941 | ||
250 | Halya-96941 | ||
251 | Halya-96941 | ||
252 | Halya-96941 | local defaults = { |
|
253 | Halya-96941 | minimapIcon = { |
|
254 | Halya-96941 | hide = false, |
|
255 | Halya-96941 | minimapPos = 220, |
|
256 | Halya-96941 | radius = 80, |
|
257 | Halya-96941 | text = lang, |
|
258 | Halya-96941 | } |
|
259 | Halya-96941 | } |
|
260 | Halya-96941 | if not LANGUAGE_CYCLE then |
|
261 | Halya-96941 | LANGUAGE_CYCLE = defaults |
|
262 | Halya-96941 | else |
|
263 | Halya-96941 | for k, v in pairs(defaults) do |
|
264 | Halya-96941 | if LANGUAGE_CYCLE[k] == nil or type(LANGUAGE_CYCLE[k]) ~= type(v) then |
|
265 | Halya-96941 | LANGUAGE_CYCLE[k] = v |
|
266 | Halya-96941 | end |
|
267 | Halya-96941 | end |
|
268 | Halya-96941 | end |
|
269 | Halya-96941 | ||
270 | Halya-96941 | ||
271 | Halya-96941 | LibStub("LibDBIcon-1.0"):Register(addonName, LCButtonFrameObject, LANGUAGE_CYCLE.minimapIcon) |
|
272 | Halya-96941 | ||
273 | Halya-96941 | end |
|
274 | Halya-96941 | if (event == "PLAYER_ENTERING_WORLD") then |
|
275 | Halya-96941 | Language_Cycle_Init(); |
|
276 | Halya-96941 | end |
|
277 | Halya-96941 | end |
|
278 | Halya-96941 | ||
279 | Halya-96941 | ||
280 | Halya-96941 | ||
281 | Halya-96941 | function Language_Cycle_Init() |
|
282 | Halya-96941 | --Called when the Player_Entering_World event fires, usually on character login. |
|
283 | Halya-96941 | -- May be called later, if initialization fails |
|
284 | Halya-96941 | LC_realm_name = string.gsub(GetRealmName(),"'",""); |
|
285 | Halya-96941 | LC_player_name = UnitName("player"); |
|
286 | Halya-96941 | LC_default_language = GetDefaultLanguage(); |
|
287 | Halya-96941 | LC_verbose = false; |
|
288 | Halya-96941 | Language_Cycle_Backdrop_Hide(true); |
|
289 | Halya-96941 | Language_Cycle_Set_Text_Color(); |
|
290 | Halya-96941 | local lang; |
|
291 | Halya-96941 | ||
292 | Halya-96941 | if (LC_player_name == nil or LC_player_name == LC_unknown or LC_realm_name == nil) then |
|
293 | Halya-96941 | else |
|
294 | Halya-96941 | LC_player_id = LC_realm_name .. " " .. LC_player_name; |
|
295 | Halya-96941 | end |
|
296 | Halya-96941 | ||
297 | Halya-96941 | lang = Language_Cycle_Get_Lang(); |
|
298 | Halya-96941 | ||
299 | Halya-96941 | if (lang == nil) then |
|
300 | Halya-96941 | else |
|
301 | Halya-96941 | Language_Cycle_Set_Lang(lang) |
|
302 | Halya-96941 | end |
|
303 | Halya-96941 | ||
304 | Halya-96941 | if (LC_default_language == nil) then |
|
305 | Halya-96941 | else |
|
306 | Halya-96941 | Language_Cycle_Party_Toggle_Text:SetText("Speak " .. LC_default_language .. " in Party/Guild chat:"); |
|
307 | Halya-96941 | end |
|
308 | Halya-96941 | ||
309 | Halya-96941 | Language_Cycle_Set_Party_Checkbutton(); |
|
310 | Halya-96941 | ||
311 | Halya-96941 | LC_verbose = true; |
|
312 | Halya-96941 | -- For debugging |
|
313 | Halya-96941 | -- Language_Cycle_Debug_Message(); |
|
314 | Halya-96941 | -- Language_Cycle_Add_Message("Entering World Done"); |
|
315 | Halya-96941 | end |
|
316 | Halya-96941 | ||
317 | Halya-96941 | ||
318 | Halya-96941 | function Language_Cycle_OnUpdate( self, elapsed ) |
|
319 | Halya-96941 | if (not LC_player_id) then |
|
320 | Halya-96941 | Language_Cycle_Init(); |
|
321 | Halya-96941 | end |
|
322 | Halya-96941 | end |
|
323 | Halya-96941 | ||
324 | Halya-96941 | ||
325 | Halya-96941 | function Language_Cycle_Set_Lang(lang) |
|
326 | Halya-96941 | -- Updates the button text, chat window and returns a chat window message |
|
327 | Halya-96941 | Language_Cycle_Button:SetText(lang); |
|
328 | Halya-96941 | DEFAULT_CHAT_FRAME.editBox.language = lang; |
|
329 | Halya-96941 | LANGUAGE_CYCLE.minimapIcon.text = lang; |
|
330 | Halya-96941 | LCButtonFrameObject.text = lang |
|
331 | Halya-96941 | ||
332 | Halya-96941 | if (LC_verbose) then |
|
333 | Halya-96941 | Language_Cycle_Add_Message(string.format("Now speaking %s", lang)); |
|
334 | Halya-96941 | end |
|
335 | Halya-96941 | ||
336 | Halya-96941 | Language_Cycle_Save_Lang(lang); |
|
337 | Halya-96941 | end |
|
338 | Halya-96941 | ||
339 | Halya-96941 | ||
340 | Halya-96941 | function Language_Cycle_Save_Lang(lang) |
|
341 | Halya-96941 | if (LC_player_id == nil) then |
|
342 | Halya-96941 | else |
|
343 | Halya-96941 | LANGUAGE_CYCLE.saved_language[LC_player_id] = lang; |
|
344 | Halya-96941 | end |
|
345 | Halya-96941 | end |
|
346 | Halya-96941 | ||
347 | Halya-96941 | ||
348 | Halya-96941 | function Language_Cycle_Get_Lang() |
|
349 | Halya-96941 | local lang, langID; |
|
350 | Halya-96941 | if (LC_player_id == nil) then |
|
351 | Halya-96941 | else |
|
352 | Halya-96941 | lang = DEFAULT_CHAT_FRAME.editBox.language; |
|
353 | Halya-96941 | if (LANGUAGE_CYCLE.saved_language[LC_player_id] == nil) then |
|
354 | Halya-96941 | if (lang == nil) then |
|
355 | Halya-96941 | lang = LC_default_language; |
|
356 | Halya-96941 | end |
|
357 | Halya-96941 | else |
|
358 | Halya-96941 | lang = LANGUAGE_CYCLE.saved_language[LC_player_id]; |
|
359 | Halya-96941 | end |
|
360 | Halya-96941 | end |
|
361 | Halya-96941 | return lang |
|
362 | Halya-96941 | end |
|
363 | Halya-96941 | ||
364 | Halya-96941 | ||
365 | Halya-96941 | function Language_Cycle_Debug_Message() |
|
366 | Halya-96941 | local lang; |
|
367 | Halya-96941 | lang = LANGUAGE_CYCLE.saved_language[LC_player_id]; |
|
368 | Halya-96941 | if (lang == nil) then |
|
369 | Halya-96941 | lang = "unknown"; |
|
370 | Halya-96941 | end |
|
371 | Halya-96941 | if not(LC_player_name == nil) then |
|
372 | Halya-96941 | message(LC_player_name .. " speaks " .. lang); |
|
373 | Halya-96941 | else |
|
374 | Halya-96941 | message("LC_player_name is nil"); |
|
375 | Halya-96941 | end |
|
376 | Halya-96941 | end |
|
377 | Halya-96941 | ||
378 | Halya-96941 | ||
379 | Halya-96941 | function Language_Cycle_Toggle_Group(verbose) |
|
380 | Halya-96941 | if (LANGUAGE_CYCLE.translate_group) then |
|
381 | Halya-96941 | LANGUAGE_CYCLE.translate_group = false; |
|
382 | Halya-96941 | if (verbose) then |
|
383 | Halya-96941 | Language_Cycle_Add_Message("Guild/Party translation is now off."); |
|
384 | Halya-96941 | end |
|
385 | Halya-96941 | else |
|
386 | Halya-96941 | LANGUAGE_CYCLE.translate_group = true; |
|
387 | Halya-96941 | if (verbose) then |
|
388 | Halya-96941 | Language_Cycle_Add_Message("Guild/Party translation is now on."); |
|
389 | Halya-96941 | end |
|
390 | Halya-96941 | end |
|
391 | Halya-96941 | Language_Cycle_Set_Text_Color(); |
|
392 | Halya-96941 | Language_Cycle_Set_Party_Checkbutton(); |
|
393 | Halya-96941 | -- if (IsAddOnLoaded("Titan")) then |
|
394 | Halya-96941 | -- TitanPanelButton_UpdateButton(TITAN_LANGUAGECYCLE_ID); |
|
395 | Halya-96941 | -- end |
|
396 | Halya-96941 | -- if (IsAddOnLoaded("FuBar")) then |
|
397 | Halya-96941 | -- LanguageCycleFuBar:UpdateText() |
|
398 | Halya-96941 | -- end |
|
399 | Halya-96941 | end |
|
400 | Halya-96941 | ||
401 | Halya-96941 | ||
402 | Halya-96941 | function Language_Cycle_Set_Party_Checkbutton() |
|
403 | Halya-96941 | if (LANGUAGE_CYCLE.translate_group) then |
|
404 | Halya-96941 | Language_Cycle_Party_Toggle:SetChecked(1); |
|
405 | Halya-96941 | else |
|
406 | Halya-96941 | Language_Cycle_Party_Toggle:SetChecked(0); |
|
407 | Halya-96941 | end |
|
408 | Halya-96941 | end |
|
409 | Halya-96941 | ||
410 | Halya-96941 | ||
411 | Halya-96941 | function Language_Cycle_Set_Text_Color() |
|
412 | Halya-96941 | if (LANGUAGE_CYCLE.translate_group) then |
|
413 | Halya-96941 | Language_Cycle_Button:GetNormalFontObject():SetTextColor(1, 1, 1); |
|
414 | Halya-96941 | else |
|
415 | Halya-96941 | Language_Cycle_Button:GetNormalFontObject():SetTextColor(.5, 1, .5); |
|
416 | Halya-96941 | end |
|
417 | Halya-96941 | end |
|
418 | Halya-96941 | ||
419 | Halya-96941 | function Language_Cycle_Slash(arg) |
|
420 | Halya-96941 | if (arg == "" or arg == nil) then |
|
421 | Halya-96941 | Language_Cycle_Cycle(); |
|
422 | Halya-96941 | elseif (arg == "ver" or arg == "version") then |
|
423 | Halya-96941 | Language_Cycle_Add_Message("LanguageCycle version: " .. LC_version); |
|
424 | Halya-96941 | elseif (arg == "clear") then |
|
425 | Halya-96941 | Language_Cycle_Clear(); |
|
426 | Halya-96941 | elseif (arg == "stat" or arg == "status") then |
|
427 | Halya-96941 | local msg = "Speaking: " .. LANGUAGE_CYCLE.saved_language[LC_player_id] .. "; Guild/Party translation is "; |
|
428 | Halya-96941 | if (LANGUAGE_CYCLE.translate_group) then |
|
429 | Halya-96941 | msg = msg .. "on."; |
|
430 | Halya-96941 | else |
|
431 | Halya-96941 | msg = msg .. "off."; |
|
432 | Halya-96941 | end |
|
433 | Halya-96941 | Language_Cycle_Add_Message(msg); |
|
434 | Halya-96941 | elseif (arg == "party" or arg == "guild" or arg == "group" or arg =="toggle") then |
|
435 | Halya-96941 | Language_Cycle_Toggle_Group(true); |
|
436 | Halya-96941 | elseif (arg == "show" or arg == "hide") then |
|
437 | Halya-96941 | Language_Cycle_Panel_Visible(); |
|
438 | Halya-96941 | elseif (arg == "mm" or arg == "MM") then |
|
439 | Halya-96941 | if (LANGUAGE_CYCLE.minimapIcon.hide == false) then |
|
440 | Halya-96941 | LibStub("LibDBIcon-1.0"):Hide("LanguageCycle") |
|
441 | Halya-96941 | LANGUAGE_CYCLE.minimapIcon.hide = true |
|
442 | Halya-96941 | else |
|
443 | Halya-96941 | LibStub("LibDBIcon-1.0"):Show("LanguageCycle") |
|
444 | Halya-96941 | LANGUAGE_CYCLE.minimapIcon.hide = false |
|
445 | Halya-96941 | end |
|
446 | Halya-96941 | elseif (arg == "help") then |
|
447 | Halya-96941 | local t = 0; |
|
448 | Halya-96941 | while LC_Help_Text[t] ~= nil do |
|
449 | Halya-96941 | DEFAULT_CHAT_FRAME:AddMessage(LC_Help_Text[t],0.0, 1.0, 0.0); |
|
450 | Halya-96941 | t = t + 1; |
|
451 | Halya-96941 | end |
|
452 | Halya-96941 | end |
|
453 | Halya-96941 | end |
|
454 | Halya-96941 | ||
455 | Halya-96941 | function Language_Cycle_Clear() |
|
456 | Halya-96941 | LANGUAGE_CYCLE.saved_language[LC_player_id] = nil; |
|
457 | Halya-96941 | LANGUAGE_CYCLE.translate_group = true; |
|
458 | Halya-96941 | Language_Cycle_Add_Message(string.format("Cleared language for %s", LC_player_name)); |
|
459 | Halya-96941 | Language_Cycle_Button:SetText("Pref Cleared..."); |
|
460 | Halya-96941 | Language_Cycle_Set_Text_Color(); |
|
461 | Halya-96941 | end |
|
462 | Halya-96941 | ||
463 | Halya-96941 | function Language_Cycle_Add_Message(msg) |
|
464 | Halya-96941 | DEFAULT_CHAT_FRAME:AddMessage(msg,0.0,1.0,0.0); |
|
465 | Halya-96941 | end |