comparison gd.lua @ 9:be450e79048a

add snapshots
author Farmbuyer of US-Kilrogg <farmbuyer@gmail.com>
date Thu, 09 Jun 2011 05:48:00 +0000
parents baf66f6dd093
children 3961b0cc4642
comparison
equal deleted inserted replaced
8:215f95b5edc3 9:be450e79048a
1 local nametag = ... 1 local nametag = ...
2 local addon = CreateFrame("Frame") 2 local addon = CreateFrame("Frame")
3 local L = LibStub("AceLocale-3.0"):GetLocale(nametag) 3 local L = LibStub("AceLocale-3.0"):GetLocale(nametag)
4 local SV 4 local SV, SVc
5 5
6 local DEFAULT_CHAT = 2 -- combat log (no constant predefined for that) 6 local DEFAULT_CHAT = 2 -- combat log (no constant predefined for that)
7 7
8 local guild_selection, log_ever_shown 8 local guild_selection, log_ever_shown
9 addon.options = { 9 addon.options = {
141 return type(SV.chatframe) == 'string' and SV.chatframe or nil 141 return type(SV.chatframe) == 'string' and SV.chatframe or nil
142 end, 142 end,
143 set = "SetChat", 143 set = "SetChat",
144 order = 26, 144 order = 26,
145 }, 145 },
146 header = {
147 name = '',
148 type = 'header',
149 order = 30,
150 },
151 snapshot = {
152 name = L["Snapshot"],
153 desc = L["Show a text window with the current guild roster."],
154 type = 'execute',
155 order = 31,
156 func = "Snapshot",
157 },
146 }, 158 },
147 }, 159 },
148 persist = { 160 persist = {
149 name = L["Logging"], 161 name = L["Logging"],
150 desc = L["Storing changes for later review"], 162 desc = L["Storing changes for later review"],
314 self:SetScript("OnEvent", self.GuildUpdate) 326 self:SetScript("OnEvent", self.GuildUpdate)
315 327
316 self.options.args.version.name = 328 self.options.args.version.name =
317 "|cff30adffVersion " .. (GetAddOnMetadata(nametag, "Version") or "?") .. "|r" 329 "|cff30adffVersion " .. (GetAddOnMetadata(nametag, "Version") or "?") .. "|r"
318 LibStub("AceConfig-3.0"):RegisterOptionsTable(nametag, self.options) 330 LibStub("AceConfig-3.0"):RegisterOptionsTable(nametag, self.options)
319 --[[self.optionsFrame =]] LibStub("AceConfigDialog-3.0"):AddToBlizOptions(nametag, "Guild Delta") 331 self.optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions(nametag, "Guild Delta")
320 self:RegisterChatCommand("guilddelta", "OnChatCommand") 332 self:RegisterChatCommand("guilddelta", "OnChatCommand")
321 self:SetChat(self) 333 self:SetChat(self)
322 log_ever_shown = SV.logging 334 log_ever_shown = SV.logging
323 self.OnEnable = nil 335 self.OnEnable = nil
324 end 336 end
371 end 383 end
372 chatframe = nframe 384 chatframe = nframe
373 else 385 else
374 self:Printf(L["'%s' was not a valid chat frame number/name, no change has been made."], n) 386 self:Printf(L["'%s' was not a valid chat frame number/name, no change has been made."], n)
375 end 387 end
388 end
389
390
391 function addon:Snapshot()
392 if self.optionsFrame:IsVisible() then
393 InterfaceOptionsFrameCancel:Click()
394 HideUIPanel(GameMenuFrame)
395 else
396 LibStub("AceConfigDialog-3.0"):Close(nametag)
397 end
398 GameTooltip:Hide()
399
400 local tinsert = table.insert
401 local fmt = "%-20s%-16s%-20s%-20s"
402 local results = {
403 fmt:format(CALENDAR_PLAYER_NAME, L["FIELD_rank"], LABEL_NOTE, OFFICER_NOTE_COLON),
404 ('-'):rep(80),
405 }
406
407 for _,x in ipairs(SVc) do
408 tinsert (results, fmt:format(x.name, x.rank or '--', x.pnote or '--', x.onote or ''))
409 end
410
411 results = table.concat (results, '\n')
412
413 local GUI = LibStub("AceGUI-3.0")
414 local f = GUI:Create("Frame")
415 f:SetTitle(nametag)
416 f:SetStatusText("Use Ctrl-A and Ctrl-C to copy this text to your system clipboard.")
417 f:SetLayout("Fill")
418 f:SetStatusTable{width=700}
419
420 local eb = GUI:Create("MultiLineEditBox")
421 eb:SetFullWidth(true)
422 eb:SetFullHeight(true)
423 eb:SetLabel("Pressing the Escape key while typing will return keystroke control to the usual chat window.")
424 eb:DisableButton(true)
425 eb:SetText(results)
426
427 f:SetCallback("OnClose", function(_f)
428 eb:SetText'' -- hmmmm
429 GUI:Release(_f)
430 end)
431 f:AddChild(eb)
432 eb:SetFocus()
433 f:ApplyStatus()
434 f:Show()
376 end 435 end
377 436
378 437
379 -- Not a "normal" PLAYER_LOGOUT handler; this only fires if the player is in 438 -- Not a "normal" PLAYER_LOGOUT handler; this only fires if the player is in
380 -- a guild and the update has already run. 439 -- a guild and the update has already run.
518 end 577 end
519 578
520 if SV.logging then self:FinishLog(guild,realm) end 579 if SV.logging then self:FinishLog(guild,realm) end
521 if SV.notify_nochange and (not changes) then cprt(L["NOCHANGE"]) end 580 if SV.notify_nochange and (not changes) then cprt(L["NOCHANGE"]) end
522 members[realm][guild] = current 581 members[realm][guild] = current
582 SVc = current
523 self:cleanup() 583 self:cleanup()
524 end 584 end
525 585
526 586
527 function addon:MakeFieldList() 587 function addon:MakeFieldList()