From fc4c70eb3005302b064859a47d80a34b80dbeba9 Mon Sep 17 00:00:00 2001 From: urnati Date: Thu, 18 Jan 2024 15:26:00 -0500 Subject: [PATCH] - Bag : On hide stop events to reduce cycles; on show register to start plugin --- TitanBag/TitanBag.lua | 49 +++++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/TitanBag/TitanBag.lua b/TitanBag/TitanBag.lua index 406b87a..a3e9d64 100644 --- a/TitanBag/TitanBag.lua +++ b/TitanBag/TitanBag.lua @@ -15,8 +15,8 @@ local TITAN_BAG_THRESHOLD_TABLE = { } local updateTable = {TITAN_BAG_ID, TITAN_PANEL_UPDATE_BUTTON}; -- ******************************** Variables ******************************* -local L = {} -- For AceLocale -local AceTimer = {} +local AceTimer = LibStub("AceTimer-3.0") +local L = LibStub("AceLocale-3.0"):GetLocale(TITAN_ID, true) local BagTimer local bag_info = { @@ -276,7 +276,6 @@ function TitanPanelBagButton_OnLoad(self) end self:RegisterEvent("PLAYER_ENTERING_WORLD"); - end --[[ plugin @@ -287,11 +286,6 @@ end --]] function TitanPanelBagButton_OnEvent(self, event, a1, a2, ...) if event == "PLAYER_ENTERING_WORLD" then - - -- Register for bag updates and update the plugin text - self:RegisterEvent("BAG_UPDATE") - TitanPanelButton_UpdateButton(TITAN_BAG_ID); - if a1 == true and TITAN_ID == "Titan" then -- 10.* / Retail -- initial login @@ -315,16 +309,14 @@ function TitanPanelBagButton_OnEvent(self, event, a1, a2, ...) end if event == "BAG_UPDATE" then - -- Create only when the event is active - self:SetScript("OnUpdate", TitanPanelBagButton_OnUpdate) + -- update the plugin text + TitanPanelButton_UpdateButton(TITAN_BAG_ID); end -end - -function TitanPanelBagButton_OnUpdate(self) - -- update the button - TitanPanelPluginHandle_OnUpdate(updateTable) - -- remove until the next bag event - self:SetScript("OnUpdate", nil) +--[[ +print("_OnEvent" +.." "..tostring(event).."" +) +--]] end --[[ plugin @@ -538,6 +530,16 @@ function TitanPanelBagButton_ShowDetailedInfo() TitanToggleVar(TITAN_BAG_ID, "ShowDetailedInfo"); end +function TitanPanelBagButton_OnShow(self) + -- Register for bag updates and update the plugin text + self:RegisterEvent("BAG_UPDATE") + TitanPanelButton_UpdateButton(TITAN_BAG_ID); +end + +function TitanPanelBagButton_OnHide(self) + self:UnregisterEvent("BAG_UPDATE") +end + -- ====== Create needed frames local function Create_Frames() if _G[TITAN_BUTTON] then @@ -555,6 +557,13 @@ local function Create_Frames() TitanPanelBagButton_OnLoad(window); -- TitanPanelButton_OnLoad(window); -- Titan XML template calls this... + window:SetScript("OnShow", function(self) + TitanPanelBagButton_OnShow(self); + TitanPanelButton_OnShow(self); + end) + window:SetScript("OnHide", function(self) + TitanPanelBagButton_OnHide(self) + end) window:SetScript("OnEvent", function(self, event, ...) TitanPanelBagButton_OnEvent(self, event, ...) end) @@ -565,8 +574,4 @@ local function Create_Frames() end -if TITAN_ID then -- it exists - AceTimer = LibStub("AceTimer-3.0") - L = LibStub("AceLocale-3.0"):GetLocale(TITAN_ID, true) - Create_Frames() -- do the work -end +Create_Frames() -- do the work -- 1.7.9.5