Quantcast

updates

Munglunch [05-20-15 - 21:00]
updates
Filename
SVUI_!Core/setup/installer.lua
SVUI_!Core/system/_reports/gold.lua
SVUI_!Core/system/dock.lua
SVUI_Chat/SVUI_Chat.lua
diff --git a/SVUI_!Core/setup/installer.lua b/SVUI_!Core/setup/installer.lua
index 8ee3885..c2a58d8 100644
--- a/SVUI_!Core/setup/installer.lua
+++ b/SVUI_!Core/setup/installer.lua
@@ -270,26 +270,18 @@ end
 function SV.Setup:ChatConfigs(mungs)
 	forceCVars()

-	local ChatFrame1 = _G.ChatFrame1;
-	ChatFrame1.isUninteractable = false;
-	ChatFrame1:SetMovable(true);
-	local ChatFrame2 = _G.ChatFrame2;
-	if(ChatFrame2) then
-		ChatFrame2.isUninteractable = false;
-		ChatFrame2:SetMovable(true);
-	end
-	local ChatFrame3 = _G.ChatFrame3;
-	if(ChatFrame3) then
-		ChatFrame3.isUninteractable = false;
-		ChatFrame3:SetMovable(true);
+	for i=1, NUM_CHAT_WINDOWS do
+		local chatFrame = _G["ChatFrame"..i];
+		if(chatFrame) then
+			chatFrame.isUninteractable = false;
+			chatFrame:SetMovable(true);
+		end
 	end
+
 	FCF_ResetChatWindows()
 	FCF_SetLocked(ChatFrame1, true)
-
-	--FCF_DockFrame(ChatFrame2)
 	FCF_SetLocked(ChatFrame2, true)
 	FCF_OpenNewWindow(LOOT)
-	--FCF_DockFrame(ChatFrame3)
 	FCF_SetLocked(ChatFrame3, true)

 	for i = 1, NUM_CHAT_WINDOWS do
@@ -310,6 +302,7 @@ function SV.Setup:ChatConfigs(mungs)
 			FCF_SetWindowName(chat, LOOT)
 		end
 	end
+
 	ChatFrame_RemoveAllMessageGroups(ChatFrame1)
 	ChatFrame_AddMessageGroup(ChatFrame1, "SAY")
 	ChatFrame_AddMessageGroup(ChatFrame1, "EMOTE")
diff --git a/SVUI_!Core/system/_reports/gold.lua b/SVUI_!Core/system/_reports/gold.lua
index ec1bd61..d29f850 100644
--- a/SVUI_!Core/system/_reports/gold.lua
+++ b/SVUI_!Core/system/_reports/gold.lua
@@ -54,16 +54,8 @@ local gains = 0;
 local loss = 0;
 local recorded = 0;

-local Report = Reports:NewReport(REPORT_NAME, {
-	type = "data source",
-	text = REPORT_NAME .. " Info",
-	icon = [[Interface\Addons\SVUI_!Core\assets\icons\SVUI]]
-});
-
-Report.events = {"PLAYER_ENTERING_WORLD", "PLAYER_MONEY", "SEND_MAIL_MONEY_CHANGED", "SEND_MAIL_COD_CHANGED", "PLAYER_TRADE_MONEY", "TRADE_MONEY_CHANGED"};
-
-Report.OnEvent = function(self, event, ...)
-	if not IsLoggedIn() then return end
+local Gold_OnEvent = function(self, event, ...)
+    if not IsLoggedIn() then return end
 	local current = GetMoney()
 	recorded = Reports.Accountant["gold"][playerName] or current;
 	local adjusted = current - recorded;
@@ -76,6 +68,16 @@ Report.OnEvent = function(self, event, ...)
 	Reports.Accountant["gold"][playerName] = current
 end

+local Report = Reports:NewReport(REPORT_NAME, {
+	type = "data source",
+	text = REPORT_NAME .. " Info",
+	icon = [[Interface\Addons\SVUI_!Core\assets\icons\SVUI]]
+});
+
+Report.events = {"PLAYER_ENTERING_WORLD", "PLAYER_MONEY", "SEND_MAIL_MONEY_CHANGED", "SEND_MAIL_COD_CHANGED", "PLAYER_TRADE_MONEY", "TRADE_MONEY_CHANGED"};
+
+Report.OnEvent = Gold_OnEvent
+
 Report.OnClick = function(self, button)
 	if IsLeftControlKeyDown() and IsShiftKeyDown() then
 		Reports.Accountant["gold"] = {};
diff --git a/SVUI_!Core/system/dock.lua b/SVUI_!Core/system/dock.lua
index 8666f0e..9c0f44c 100644
--- a/SVUI_!Core/system/dock.lua
+++ b/SVUI_!Core/system/dock.lua
@@ -765,6 +765,7 @@ local function ToggleBarHighlights(button)
 						dockbar.Dividers[i]:SetBackdropBorderColor(0, 1, 1, 1)
 					end
 				end
+				dockbar:Update();
 			end
 		end
 	end
diff --git a/SVUI_Chat/SVUI_Chat.lua b/SVUI_Chat/SVUI_Chat.lua
index 0c8f14f..c6554a6 100644
--- a/SVUI_Chat/SVUI_Chat.lua
+++ b/SVUI_Chat/SVUI_Chat.lua
@@ -714,7 +714,7 @@ do
 				local currentFontSize = SV.media.font.chatdialog.size;
 				tinsert(t, { title = CHAT, divider = true });
 				tinsert(t, { text = RENAME_CHAT_WINDOW, func = function() CURRENT_CHAT_FRAME_ID = 1; FCF_RenameChatWindow_Popup(); end });
-				tinsert(t, { text = NEW_CHAT_WINDOW, func = function() CURRENT_CHAT_FRAME_ID = 1; FCF_NewChatWindow(); end });
+				tinsert(t, { text = NEW_CHAT_WINDOW, func = function() CURRENT_CHAT_FRAME_ID = 1; SV:StaticPopup_Show("NEW_CHAT_DOCK"); end });
 				tinsert(t, { text = RESET_ALL_WINDOWS, func = function() CURRENT_CHAT_FRAME_ID = 1; FCF_ResetAllWindows(); end });
 				tinsert(t, { text = CHAT_CONFIGURATION, func = function() CURRENT_CHAT_FRAME_ID = 1; ShowUIPanel(ChatConfigFrame); end });
 				tinsert(t, { title = FONT_SIZE, divider = true });
@@ -862,7 +862,7 @@ do
 		['talent'] = true,
 		['glyph'] = true,
 	}
-
+
 	local _hook_OnHyperlinkEnter = function(self, refString)
 		if(not CHAT_HOVER_URL or InCombatLockdown()) then return; end
 		local token = refString:match("^([^:]+)")
@@ -946,7 +946,7 @@ do

 			chat.isDocked = nil;
 			chat.isUninteractable = true;
-			FCF_SetLocked(chat, false);
+			SetChatWindowLocked(id, false);

 			chat:ClearAllPoints();
 			chat:SetPoint("CENTER", chat.Dock, "CENTER", 0, 0);
@@ -985,6 +985,58 @@ do
 		refreshLocked = true
 	end
 end
+
+local function OpenNewSVUIChatFrame(name)
+	local count = 1;
+	local chatFrame, chatTab;
+
+	for i=1, NUM_CHAT_WINDOWS do
+		local _, _, _, _, _, _, shown = FCF_GetChatWindowInfo(i);
+		chatFrame = _G["ChatFrame"..i];
+		chatTab = _G["ChatFrame"..i.."Tab"];
+		if((not chatFrame.isDockable) or (count == NUM_CHAT_WINDOWS)) then
+			if((not name) or (name == "")) then
+				name = format(CHAT_NAME_TEMPLATE, i);
+			end
+
+			-- initialize the frame
+			FCF_SetWindowName(chatFrame, name);
+			SetChatWindowLocked(i, false);
+
+			-- clear stale messages
+			chatFrame:Clear();
+
+			-- Listen to the standard messages
+			ChatFrame_RemoveAllMessageGroups(chatFrame);
+			ChatFrame_RemoveAllChannels(chatFrame);
+			ChatFrame_ReceiveAllPrivateMessages(chatFrame);
+			ChatFrame_ReceiveAllBNConversations(chatFrame);
+
+			ChatFrame_AddMessageGroup(chatFrame, "SAY");
+			ChatFrame_AddMessageGroup(chatFrame, "YELL");
+			ChatFrame_AddMessageGroup(chatFrame, "GUILD");
+			ChatFrame_AddMessageGroup(chatFrame, "WHISPER");
+			ChatFrame_AddMessageGroup(chatFrame, "BN_WHISPER");
+			ChatFrame_AddMessageGroup(chatFrame, "PARTY");
+			ChatFrame_AddMessageGroup(chatFrame, "PARTY_LEADER");
+			ChatFrame_AddMessageGroup(chatFrame, "CHANNEL");
+
+			--Clear the edit box history.
+			chatFrame.editBox:ClearHistory();
+
+			-- Show the frame and tab
+			chatFrame:Show();
+			chatTab:Show();
+			SetChatWindowShown(i, true);
+
+			-- Dock the frame by default
+			FCF_DockFrame(chatFrame, (#FCFDock_GetChatFrames(GENERAL_CHAT_DOCK)+1), true);
+			FCF_FadeInChatFrame(FCFDock_GetSelectedWindow(GENERAL_CHAT_DOCK));
+			return chatFrame;
+		end
+		count = count + 1;
+	end
+end
 --[[
 ##########################################################
 CHAT HISTORY FUNCTIONS
@@ -1449,4 +1501,36 @@ function MOD:Load()
 	SV.Events:On("DOCK_FADE_IN", DockFadeInChat, true);
 	SV.Events:On("DOCK_FADE_OUT", DockFadeOutChat, true);
 	SV.Events:On("DOCK_EXPANDED", ExpandChatDock, true);
+
+	SV.SystemAlert["NEW_CHAT_DOCK"] = {
+		text = NAME_CHAT_WINDOW,
+		button1 = YES,
+		button2 = NO,
+		hasEditBox = 1,
+		OnAccept = function(self, renameID)
+			local name = self.editBox:GetText();
+			local frame = OpenNewSVUIChatFrame(name);
+			FCF_CopyChatSettings(frame, DEFAULT_CHAT_FRAME);
+			self.editBox:SetText("");
+			FCF_DockUpdate();
+		end,
+		EditBoxOnEnterPressed = function(self)
+			local parent = self:GetParent();
+			local editBox = parent.editBox
+			local name = editBox:GetText();
+			local frame = OpenNewSVUIChatFrame(name);
+			FCF_CopyChatSettings(frame, DEFAULT_CHAT_FRAME);
+			editBox:SetText("");
+			FCF_DockUpdate();
+			parent:Hide();
+		end,
+		EditBoxOnEscapePressed = function (self)
+			self:GetParent():Hide();
+		end,
+		hideOnEscape = 1,
+		OnCancel = SV.fubar,
+		timeout = 0,
+		whileDead = 1,
+		state1 = 1
+	};
 end