--[Functions: GUI Interface for WIM_History.xml WIM_HistoryView_Name_Selected = ""; WIM_HistoryView_Filter_Selected = ""; WIM_History_ExportFormatVal = 1; WIM_String_ShowAll = " |cffffffff( Show All )|r"; WIM_History_Filters = {}; function WIM_HistoryView_NameClick() if(WIM_HistoryView_Name_Selected ~= this.Name) then WIM_HistoryView_Filter_Selected = ""; end WIM_HistoryView_Name_Selected = this.theName; if(WIM_HistoryView_Name_Selected == WIM_String_ShowAll) then WIM_HistoryView_Name_Selected = "*all*"; end WIM_HistoryViewFiltersScrollBar_Update(); end function WIM_HistoryView_FilterClick() WIM_HistoryView_Filter_Selected = this.theName; end function WIM_HistoryViewNameScrollBar_Update() local line; local lineplusoffset; local HistoryNames = {}; table.insert(HistoryNames, WIM_String_ShowAll); for key,_ in pairs(WIM_History) do table.insert(HistoryNames, key); end table.sort(HistoryNames); FauxScrollFrame_Update(WIM_HistoryFrameNameListScrollBar,table.getn(HistoryNames),15,16); for line=1,15 do lineplusoffset = line + FauxScrollFrame_GetOffset(WIM_HistoryFrameNameListScrollBar); if lineplusoffset <= table.getn(HistoryNames) then getglobal("WIM_HistoryFrameNameListButton"..line.."Name"):SetText(HistoryNames[lineplusoffset]); getglobal("WIM_HistoryFrameNameListButton"..line).theName = HistoryNames[lineplusoffset]; if ( WIM_HistoryView_Name_Selected == HistoryNames[lineplusoffset] ) then getglobal("WIM_HistoryFrameNameListButton"..line):LockHighlight(); else getglobal("WIM_HistoryFrameNameListButton"..line):UnlockHighlight(); end getglobal("WIM_HistoryFrameNameListButton"..line):Show(); else getglobal("WIM_HistoryFrameNameListButton"..line):Hide(); end end end function WIM_History_LoadFiltersByUser(theUser) local tDate = ""; local lDate = ""; for i=1,table.getn(WIM_History[theUser]) do tDate = WIM_History[theUser][i].date; if(tDate ~= lDate) then if(WIM_History_AlreadyInTable(WIM_History_Filters, tDate) == false) then table.insert(WIM_History_Filters, tDate); end lDate = tDate; end end end function WIM_HistoryViewFiltersScrollBar_Update() local line; local lineplusoffset; WIM_History_Filters = {}; if(WIM_History[WIM_HistoryView_Name_Selected] or WIM_HistoryView_Name_Selected == "*all*") then if(WIM_HistoryView_Name_Selected == "*all*") then for key, _ in pairs(WIM_History) do WIM_History_LoadFiltersByUser(key); end else WIM_History_LoadFiltersByUser(WIM_HistoryView_Name_Selected); end end table.sort(WIM_History_Filters); table.insert(WIM_History_Filters, 1, WIM_LOCALIZED_HISTORY_NO_FILTER); if(WIM_HistoryView_Filter_Selected == "") then --[WIM_HistoryView_Filter_Selected = Filters[1]; end FauxScrollFrame_Update(WIM_HistoryFrameFilterListScrollBar,table.getn(WIM_History_Filters),7,16); for line=1,7 do lineplusoffset = line + FauxScrollFrame_GetOffset(WIM_HistoryFrameFilterListScrollBar); if lineplusoffset <= table.getn(WIM_History_Filters) then getglobal("WIM_HistoryFrameFilterListButton"..line.."Name"):SetText(WIM_History_Filters[lineplusoffset]); if(lineplusoffset == 1) then getglobal("WIM_HistoryFrameFilterListButton"..line).theName = ""; else getglobal("WIM_HistoryFrameFilterListButton"..line).theName = WIM_History_Filters[lineplusoffset]; end if ( WIM_HistoryView_Filter_Selected == WIM_History_Filters[lineplusoffset] ) then getglobal("WIM_HistoryFrameFilterListButton"..line):LockHighlight(); else getglobal("WIM_HistoryFrameFilterListButton"..line):UnlockHighlight(); end getglobal("WIM_HistoryFrameFilterListButton"..line):Show(); else getglobal("WIM_HistoryFrameFilterListButton"..line):Hide(); end end WIM_HistoryView_ShowMessages(); end function WIM_HistoryView_ProcMsgFormat(theUser, theFormat) --[[ 1: Normal 2: Text 3: HTML ]] local outDump = ""; local prevDate = ""; for i = 1, table.getn(WIM_History[theUser]) do if(WIM_HistoryView_Filter_Selected == "" or WIM_HistoryView_Filter_Selected == WIM_History[theUser][i].date) then if(WIM_HistoryView_Filter_Selected == "") then if(prevDate ~= WIM_History[theUser][i].date) then prevDate = WIM_History[theUser][i].date if(theFormat == 1) then WIM_HistoryFrameMessageListScrollingMessageFrame:AddMessage(" "); WIM_HistoryFrameMessageListScrollingMessageFrame:AddMessage("|cffffffff["..prevDate.."]|r"); elseif(theFormat == 2) then outDump = outDump.."\r\n["..prevDate.."]\r\n"; elseif(theFormat == 3) then outDump = outDump.."
["..prevDate.."]

\n"; end end end tStamp = "|cff"..WIM_RGBtoHex(WIM_Data.displayColors.sysMsg.r, WIM_Data.displayColors.sysMsg.g, WIM_Data.displayColors.sysMsg.b)..date(WIM_TimeStamp_Formats[WIM_Data.timeStampFormat], WIM_History[theUser][i].stamp).."|r "; tFrom = "[|Hplayer:"..WIM_History[theUser][i].from.."|h"..WIM_GetAlias(WIM_History[theUser][i].from, true).."|h]: "; tMsg = tStamp..tFrom..WIM_History[theUser][i].msg; if(WIM_History[theUser][i].type == 1) then if(theFormat == 1) then WIM_HistoryFrameMessageListScrollingMessageFrame:AddMessage(tMsg, WIM_Data.displayColors.wispIn.r, WIM_Data.displayColors.wispIn.g, WIM_Data.displayColors.wispIn.b); elseif(theFormat == 2) then outDump = outDump..date(WIM_TimeStamp_Formats[WIM_Data.timeStampFormat], WIM_History[theUser][i].stamp).."["..WIM_History[theUser][i].from.."]: "..WIM_History[theUser][i].msg.."\r\n"; elseif(theFormat == 3) then outDump = outDump..""..date(WIM_TimeStamp_Formats[WIM_Data.timeStampFormat], WIM_History[theUser][i].stamp).." ["..WIM_History[theUser][i].from.."]: "..WIM_History_ExportLinkHTML(WIM_History[theUser][i].msg).."
\n"; end elseif(WIM_History[theUser][i].type == 2) then if(theFormat == 1) then WIM_HistoryFrameMessageListScrollingMessageFrame:AddMessage(tMsg, WIM_Data.displayColors.wispOut.r, WIM_Data.displayColors.wispOut.g, WIM_Data.displayColors.wispOut.b); elseif(theFormat == 2) then outDump = outDump..date(WIM_TimeStamp_Formats[WIM_Data.timeStampFormat], WIM_History[theUser][i].stamp).."["..WIM_History[theUser][i].from.."]: "..WIM_History[theUser][i].msg.."\r\n"; elseif(theFormat == 3) then outDump = outDump..""..date(WIM_TimeStamp_Formats[WIM_Data.timeStampFormat], WIM_History[theUser][i].stamp).." ["..WIM_History[theUser][i].from.."]: "..WIM_History_ExportLinkHTML(WIM_History[theUser][i].msg).."
\n"; end end end end if(theFormat ~= 1) then WIM_HistoryViewerExportFormatText:SetText(WIM_HistoryViewerExportFormatText:GetText()..outDump); end end function WIM_HistoryView_ShowMessages() local tStamp = ""; local tFrom = ""; local tMsg = ""; local prevDate = ""; local outDump = ""; if( WIM_History_ExportFormatVal == 3 ) then outDump = outDump.."\n\n"; end WIM_HistoryViewerExportFormatText:SetText(outDump); WIM_HistoryFrameMessageListScrollingMessageFrame:Clear(); if(WIM_History[WIM_HistoryView_Name_Selected] or WIM_HistoryView_Name_Selected == "*all*") then if(WIM_HistoryView_Name_Selected == "*all*") then for key, _ in pairs(WIM_History) do WIM_HistoryView_ProcMsgFormat(key, WIM_History_ExportFormatVal); end else WIM_HistoryView_ProcMsgFormat(WIM_HistoryView_Name_Selected, WIM_History_ExportFormatVal); end end WIM_UpdateScrollBars(WIM_HistoryFrameMessageListScrollingMessageFrame); -- Autoselect text if(WIM_History_ExportFormatVal ~= 1) then WIM_HistoryViewerExportFormatText:HighlightText(0); end end function WIM_History_AlreadyInTable(theTable, theItem) for i = 1, table.getn(theTable) do if(theTable[i] == theItem) then return true; end end return false; end function WIM_History_ExportFormat_OnShow() UIDropDownMenu_Initialize(this, WIM_History_ExportFormat_Initialize); UIDropDownMenu_SetSelectedValue(this, WIM_History_ExportFormatVal); UIDropDownMenu_SetWidth(100, WIM_HistoryExportFormatMenu); end function WIM_History_ExportFormat_Initialize() local info = {}; info = { }; info.text = "Normal View"; info.value = 1; info.justifyH = "LEFT"; info.func = WIM_History_ExportFormatClick; UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL); info = { }; info.text = "Raw Text"; info.value = 2; info.justifyH = "LEFT"; info.func = WIM_History_ExportFormatClick; UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL); info = { }; info.text = "HTML"; info.value = 3; info.justifyH = "LEFT"; info.func = WIM_History_ExportFormatClick; UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL); end function WIM_History_ExportFormatClick() WIM_History_ExportFormatVal = this.value; UIDropDownMenu_SetSelectedValue(WIM_HistoryExportFormatMenu, WIM_History_ExportFormatVal); WIM_HistoryView_ShowMessages(); if(this.value == 1) then WIM_HistoryViewerExportFormat:Hide(); WIM_HistoryFrameMessageListScrollingMessageFrame:Show(); WIM_HistoryFrameMessageListScrollUp:Show(); WIM_HistoryFrameMessageListScrollDown:Show(); else WIM_HistoryViewerExportFormat:Show(); WIM_HistoryFrameMessageListScrollingMessageFrame:Hide(); WIM_HistoryFrameMessageListScrollUp:Hide(); WIM_HistoryFrameMessageListScrollDown:Hide(); end end function WIM_History_ExportLinkHTML(theLine) theLine = string.gsub(theLine, "|cff(%w+)|Hitem:(%d+):[%d:%-]+|h%[([%w %-':]+)%]|h|r", "[%3]"); return theLine; end