From 5db35b0e2cbd45ea0a578782ada5dbb58d357689 Mon Sep 17 00:00:00 2001 From: Xruptor Date: Mon, 1 Oct 2018 11:25:21 -0400 Subject: [PATCH] mmm getting there --- XanChat.lua | 87 +++++++------------------------ config.lua | 152 +++++++++++++++++++++++++++++++++++++++++++++++++------ locale/enUS.lua | 2 +- 3 files changed, 154 insertions(+), 87 deletions(-) diff --git a/XanChat.lua b/XanChat.lua index 2c9b649..d3696c5 100644 --- a/XanChat.lua +++ b/XanChat.lua @@ -561,6 +561,9 @@ function eFrame:PLAYER_LOGIN() if f then + XANCHAT_Frame = XANCHAT_Frame or {} + XANCHAT_Frame[i] = f + --restore saved layout RestoreLayout(f) @@ -650,16 +653,13 @@ function eFrame:PLAYER_LOGIN() end --hide the scroll bars if XCHT_DB.hideScroll then - _G[n.."ButtonFrameUpButton"]:Hide() - _G[n.."ButtonFrameUpButton"]:SetScript("OnShow", dummy) - _G[n.."ButtonFrameDownButton"]:Hide() - _G[n.."ButtonFrameDownButton"]:SetScript("OnShow", dummy) - _G[n.."ButtonFrame"]:Hide() - _G[n.."ButtonFrame"]:SetScript("OnShow", dummy) - if _G[n.."ButtonFrameMinimizeButton"] then - --this button doesn't always appear for all chat frames - _G[n.."ButtonFrameMinimizeButton"]:Hide() - _G[n.."ButtonFrameMinimizeButton"]:SetScript("OnShow", dummy) + if f.buttonFrame then + f.buttonFrame:Hide() + f.buttonFrame:SetScript("OnShow", dummy) + end + if f.ScrollToBottomButton then + f.ScrollToBottomButton:Hide() + f.ScrollToBottomButton:SetScript("OnShow", dummy) end end @@ -735,78 +735,25 @@ function eFrame:PLAYER_LOGIN() if a and XCHT_DB then if c and c:lower() == L.SlashSocial then - if XCHT_DB.hideSocial then - XCHT_DB.hideSocial = false - DEFAULT_CHAT_FRAME:AddMessage(L.SlashSocialOn) - else - XCHT_DB.hideSocial = true - DEFAULT_CHAT_FRAME:AddMessage(L.SlashSocialOff) - end - StaticPopup_Show("XANCHAT_APPLYCHANGES") + addon.aboutPanel.btnSocial.func() return true elseif c and c:lower() == L.SlashScroll then - if XCHT_DB.hideScroll then - XCHT_DB.hideScroll = false - DEFAULT_CHAT_FRAME:AddMessage(L.SlashScrollOn) - else - XCHT_DB.hideScroll = true - DEFAULT_CHAT_FRAME:AddMessage(L.SlashScrollOff) - end - StaticPopup_Show("XANCHAT_APPLYCHANGES") + addon.aboutPanel.btnScroll.func() return true elseif c and c:lower() == L.SlashShortNames then - if XCHT_DB.shortNames then - XCHT_DB.shortNames = false - DEFAULT_CHAT_FRAME:AddMessage(L.SlashShortNamesOff) - else - XCHT_DB.shortNames = true - DEFAULT_CHAT_FRAME:AddMessage(L.SlashShortNamesOn) - end - StaticPopup_Show("XANCHAT_APPLYCHANGES") + addon.aboutPanel.btnShortNames.func() return true elseif c and c:lower() == L.SlashEditBox then - if XCHT_DB.editBoxTop then - XCHT_DB.editBoxTop = false - setEditBox() - DEFAULT_CHAT_FRAME:AddMessage(L.SlashEditBoxBottom) - else - XCHT_DB.editBoxTop = true - setEditBox(true) - DEFAULT_CHAT_FRAME:AddMessage(L.SlashEditBoxTop) - end + addon.aboutPanel.btnEditBox.func() return true elseif c and c:lower() == L.SlashTabs then - if XCHT_DB.hideTabs then - XCHT_DB.hideTabs = false - DEFAULT_CHAT_FRAME:AddMessage(L.SlashTabsOn) - else - XCHT_DB.hideTabs = true - DEFAULT_CHAT_FRAME:AddMessage(L.SlashTabsOff) - end - StaticPopup_Show("XANCHAT_APPLYCHANGES") + addon.aboutPanel.btnTabs.func() return true elseif c and c:lower() == L.SlashShadow then - if XCHT_DB.addFontShadow then - XCHT_DB.addFontShadow = false - DEFAULT_CHAT_FRAME:AddMessage(L.SlashShadowOff) - else - XCHT_DB.addFontShadow = true - DEFAULT_CHAT_FRAME:AddMessage(L.SlashShadowOn) - end - StaticPopup_Show("XANCHAT_APPLYCHANGES") + addon.aboutPanel.btnShadow.func() return true elseif c and c:lower() == L.SlashVoice then - if XCHT_DB.hideVoice then - XCHT_DB.hideVoice = false - DEFAULT_CHAT_FRAME:AddMessage(L.SlashVoiceOn) - else - XCHT_DB.hideVoice = true - DEFAULT_CHAT_FRAME:AddMessage(L.SlashVoiceOff) - ChatFrameToggleVoiceDeafenButton:Hide() - ChatFrameToggleVoiceMuteButton:Hide() - ChatFrameChannelButton:Hide() - end - StaticPopup_Show("XANCHAT_APPLYCHANGES") + addon.aboutPanel.btnVoice.func() return true end end diff --git a/config.lua b/config.lua index ec16104..34485f0 100644 --- a/config.lua +++ b/config.lua @@ -1,14 +1,23 @@ local ADDON_NAME, addon = ... if not _G[ADDON_NAME] then _G[ADDON_NAME] = addon end +addon.configEvent = CreateFrame("frame", ADDON_NAME.."_config_eventFrame",UIParent) +local configEvent = addon.configEvent +configEvent:SetScript("OnEvent", function(self, event, ...) if self[event] then return self[event](self, event, ...) end end) + +local L = LibStub("AceLocale-3.0"):GetLocale("xanChat") local chkBoxIndex = 1 -function createCheckbutton(parentFrame, displayText) +function createCheckbutton(parentFrame, displayText, dbObjectValue) chkBoxIndex = chkBoxIndex + 1 local checkbutton = CreateFrame("CheckButton", ADDON_NAME.."_config_chkbtn_" .. chkBoxIndex, parentFrame, "ChatConfigCheckButtonTemplate") getglobal(checkbutton:GetName() .. 'Text'):SetText(" "..displayText) - + + checkbutton:SetScript("OnShow", function() + checkbutton:SetChecked(dbObjectValue) + end) + return checkbutton end @@ -77,19 +86,130 @@ local function LoadAboutFrame() return about end -addon.aboutPanel = LoadAboutFrame() - -myCheckButton = createCheckbutton(addon.aboutPanel, "A Checkbox") -myCheckButton:SetScript("OnClick", function() - print('click') -end) -addConfigEntry(myCheckButton) - -myCheckButton2 = createCheckbutton(addon.aboutPanel, "A Checkbox") -myCheckButton2:SetScript("OnClick", function() - print('click') -end) -addConfigEntry(myCheckButton2) - +function configEvent:PLAYER_LOGIN() + + addon.aboutPanel = LoadAboutFrame() + + addon.aboutPanel.btnSocial = createCheckbutton(addon.aboutPanel, L.SlashSocialInfo, XCHT_DB.hideSocial) + addon.aboutPanel.btnSocial.func = function() + local value = addon.aboutPanel.btnSocial:GetChecked() + + if not value then + XCHT_DB.hideSocial = false + DEFAULT_CHAT_FRAME:AddMessage(L.SlashSocialOn) + else + XCHT_DB.hideSocial = true + DEFAULT_CHAT_FRAME:AddMessage(L.SlashSocialOff) + end + + StaticPopup_Show("XANCHAT_APPLYCHANGES") + end + addon.aboutPanel.btnSocial:SetScript("OnClick", addon.aboutPanel.btnSocial.func) + addConfigEntry(addon.aboutPanel.btnSocial) + + addon.aboutPanel.btnScroll = createCheckbutton(addon.aboutPanel, L.SlashScrollInfo, XCHT_DB.hideScroll) + addon.aboutPanel.btnScroll.func = function() + local value = addon.aboutPanel.btnScroll:GetChecked() + + if not value then + XCHT_DB.hideScroll = false + DEFAULT_CHAT_FRAME:AddMessage(L.SlashScrollOn) + else + XCHT_DB.hideScroll = true + DEFAULT_CHAT_FRAME:AddMessage(L.SlashScrollOff) + end + + StaticPopup_Show("XANCHAT_APPLYCHANGES") + end + addon.aboutPanel.btnScroll:SetScript("OnClick", addon.aboutPanel.btnScroll.func) + addConfigEntry(addon.aboutPanel.btnScroll) + + addon.aboutPanel.btnShortNames = createCheckbutton(addon.aboutPanel, L.SlashShortNamesInfo, XCHT_DB.shortNames) + addon.aboutPanel.btnShortNames.func = function() + local value = addon.aboutPanel.btnShortNames:GetChecked() + + if not value then + XCHT_DB.shortNames = false + DEFAULT_CHAT_FRAME:AddMessage(L.SlashShortNamesOn) + else + XCHT_DB.shortNames = true + DEFAULT_CHAT_FRAME:AddMessage(L.SlashShortNamesOff) + end + + StaticPopup_Show("XANCHAT_APPLYCHANGES") + end + addon.aboutPanel.btnShortNames:SetScript("OnClick", addon.aboutPanel.btnShortNames.func) + addConfigEntry(addon.aboutPanel.btnShortNames) + + addon.aboutPanel.btnEditBox = createCheckbutton(addon.aboutPanel, L.SlashEditBoxInfo, XCHT_DB.editBoxTop) + addon.aboutPanel.btnEditBox.func = function() + local value = addon.aboutPanel.btnEditBox:GetChecked() + + if not value then + XCHT_DB.editBoxTop = false + DEFAULT_CHAT_FRAME:AddMessage(L.SlashEditBoxBottom) + else + XCHT_DB.editBoxTop = true + DEFAULT_CHAT_FRAME:AddMessage(L.SlashEditBoxTop) + end + + StaticPopup_Show("XANCHAT_APPLYCHANGES") + end + addon.aboutPanel.btnEditBox:SetScript("OnClick", addon.aboutPanel.btnEditBox.func) + addConfigEntry(addon.aboutPanel.btnEditBox) + + addon.aboutPanel.btnTabs = createCheckbutton(addon.aboutPanel, L.SlashTabsInfo, XCHT_DB.hideTabs) + addon.aboutPanel.btnTabs.func = function() + local value = addon.aboutPanel.btnTabs:GetChecked() + + if not value then + XCHT_DB.hideTabs = false + DEFAULT_CHAT_FRAME:AddMessage(L.SlashTabsOn) + else + XCHT_DB.hideTabs = true + DEFAULT_CHAT_FRAME:AddMessage(L.SlashTabsOff) + end + + StaticPopup_Show("XANCHAT_APPLYCHANGES") + end + addon.aboutPanel.btnTabs:SetScript("OnClick", addon.aboutPanel.btnTabs.func) + addConfigEntry(addon.aboutPanel.btnTabs) + + addon.aboutPanel.btnShadow = createCheckbutton(addon.aboutPanel, L.SlashShadowInfo, XCHT_DB.addFontShadow) + addon.aboutPanel.btnShadow.func = function() + local value = addon.aboutPanel.btnShadow:GetChecked() + + if not value then + XCHT_DB.addFontShadow = false + DEFAULT_CHAT_FRAME:AddMessage(L.SlashShadowOff) + else + XCHT_DB.addFontShadow = true + DEFAULT_CHAT_FRAME:AddMessage(L.SlashShadowOn) + end + + StaticPopup_Show("XANCHAT_APPLYCHANGES") + end + addon.aboutPanel.btnShadow:SetScript("OnClick", addon.aboutPanel.btnShadow.func) + addConfigEntry(addon.aboutPanel.btnShadow) + + addon.aboutPanel.btnVoice = createCheckbutton(addon.aboutPanel, L.SlashVoiceInfo, XCHT_DB.hideVoice) + addon.aboutPanel.btnVoice.func = function() + local value = addon.aboutPanel.btnVoice:GetChecked() + + if not value then + XCHT_DB.hideVoice = false + DEFAULT_CHAT_FRAME:AddMessage(L.SlashVoiceOn) + else + XCHT_DB.hideVoice = true + DEFAULT_CHAT_FRAME:AddMessage(L.SlashVoiceOff) + end + + StaticPopup_Show("XANCHAT_APPLYCHANGES") + end + addon.aboutPanel.btnVoice:SetScript("OnClick", addon.aboutPanel.btnVoice.func) + addConfigEntry(addon.aboutPanel.btnVoice) + configEvent:UnregisterEvent("PLAYER_LOGIN") +end +if IsLoggedIn() then configEvent:PLAYER_LOGIN() else configEvent:RegisterEvent("PLAYER_LOGIN") end \ No newline at end of file diff --git a/locale/enUS.lua b/locale/enUS.lua index 13cc0df..09cc28d 100644 --- a/locale/enUS.lua +++ b/locale/enUS.lua @@ -13,7 +13,7 @@ L.WhoPlayer = "Who Player?" L.GuildInvite = "Guild Invite" L.CopyName = "Copy Name" L.URLCopy = "URL COPY" -L.ApplyChanges = "xanChat: Would you like to apply the changes now?" +L.ApplyChanges = "xanChat: UI must be reloaded to apply changes!" L.Yes = "Yes" L.No = "No" -- 1.7.9.5