diff --git a/Titan/TitanMovable.lua b/Titan/TitanMovable.lua
deleted file mode 100644
index 6cce7b1..0000000
--- a/Titan/TitanMovable.lua
+++ /dev/null
@@ -1,775 +0,0 @@
---[[ File
-NAME: TitanMovable.lua
-DESC: Contains the routines to adjust the Blizzard frames to make room for the Titan bars the user has selected.
-There are a select set of Blizzard frames at the top of screen and at the bottom of the screen that Titan will move.
-Each frame adjusted has an entry in TitanMovableData. TitanMovableData is local and not directly accessible via addons.
-However addons can tell Titan to not adjust some or all frames using TitanUtils_AddonAdjust(frame, bool). Addons that replace all or parts of the Blizzard UI use this.
-
-The user can turn turn on / off the adjusting of all top frames or all bottom frames.
-In addition the user can select to turn off / on adjusting of select top frames (minimap or ticket frame) or select bottom frames (chat / log or bags)
-:DESC
---]]
--- Globals
-
--- Locals
-local _G = getfenv(0);
-local InCombatLockdown = _G.InCombatLockdown;
-
---[[ Titan
-Declare the Ace routines
- local AceTimer = LibStub("AceTimer-3.0")
- i.e. TitanPanelAce.ScheduleTimer("LDBToTitanSetText", TitanLDBRefreshButton, 2);
- or
- i.e. TitanPanelAce:ScheduleTimer(TitanLDBRefreshButton, 2);
-
- Be careful that the 'self' is proper to cancel timers!!!
---]]
-local TitanPanelAce = LibStub("AceAddon-3.0"):NewAddon("TitanPanel", "AceHook-3.0", "AceTimer-3.0")
-
---Determines the optimal magic number based on resolution
---local menuBarTop = 55;
---local width, height = string.match((({GetScreenResolutions()})[GetCurrentResolution()] or ""), "(%d+).-(%d+)");
---if ( tonumber(width) / tonumber(height ) > 4/3 ) then
- --Widescreen resolution
--- menuBarTop = 75;
---end
-
---[[From Resike to prevent tainting stuff to override the SetPoint calls securely.
-hooksecurefunc(FrameRef, "SetPoint", function(self)
- if self.moving then
- return
- end
- self.moving = true
- self:SetMovable(true)
- self:SetUserPlaced(true)
- self:ClearAllPoints()
- self:SetPoint("CENTER", UIParent, "CENTER", 0, 0)
- self:SetMovable(false)
- self.moving = nil
-end)
---]]
-
---[[ Titan
-TitanMovable is a local table that is cleared then filled with the frames Titan needs to check and adjust, if necessary, with each 'adjust frame' check.
---]]
-local TitanMovable = {};
---[[ Titan
-NAME: TitanMovableData table
-DESC: TitanMovableData is a local table that holds each frame Titan may need to adjust. It also has the anchor points and offsets needed to make room for the Titan bar(s)
-
-The index is the frame name. Each record contains:
-frameName - frame name (string) to adjust
-frameArchor - the frame anchor point
-xArchor - anchor relative to the frameName
-y - any additional adjustment in the y axis
-position - top or bottom
-addonAdj - true if another addon is taking responsibility of adjusting this frame, if false Titan will use the user setttings to adjust or not
-:DESC
---]]
-local TitanMovableData = {
- PlayerFrame = {frameName = "PlayerFrame", frameArchor = "TOPLEFT", xArchor = "LEFT", y = -4,
- position = TITAN_PANEL_PLACE_TOP, addonAdj = false},
- TargetFrame = {frameName = "TargetFrame", frameArchor = "TOPLEFT", xArchor = "LEFT", y = -4,
- position = TITAN_PANEL_PLACE_TOP, addonAdj = false},
- PartyMemberFrame1 = {frameName = "PartyMemberFrame1", frameArchor = "TOPLEFT", xArchor = "LEFT", y = -128,
- position = TITAN_PANEL_PLACE_TOP, addonAdj = false},
- TicketStatusFrame = {frameName = "TicketStatusFrame", frameArchor = "TOPRIGHT", xArchor = "RIGHT", y = 0,
- position = TITAN_PANEL_PLACE_TOP, addonAdj = false},
- BuffFrame = {frameName = "BuffFrame", frameArchor = "TOPRIGHT", xArchor = "RIGHT", y = -13,
- position = TITAN_PANEL_PLACE_TOP, addonAdj = false},
- MinimapCluster = {frameName = "MinimapCluster", frameArchor = "TOPRIGHT", xArchor = "RIGHT", y = 0,
- position = TITAN_PANEL_PLACE_TOP, addonAdj = false},
--- WorldStateAlwaysUpFrame = {frameName = "WorldStateAlwaysUpFrame", frameArchor = "TOP", xArchor = "CENTER", y = -15,
--- position = TITAN_PANEL_PLACE_TOP, addonAdj = false},
- MainMenuBar = {frameName = "MainMenuBar", frameArchor = "BOTTOM", xArchor = "CENTER", y = 0,
- position = TITAN_PANEL_PLACE_BOTTOM, addonAdj = false},
- MultiBarRight = {frameName = "MultiBarRight", frameArchor = "BOTTOMRIGHT", xArchor = "RIGHT", y = 98,
- position = TITAN_PANEL_PLACE_BOTTOM, addonAdj = false},
- OverrideActionBar = {frameName = "OverrideActionBar", frameArchor = "BOTTOM", xArchor = "CENTER", y = 0,
- position = TITAN_PANEL_PLACE_BOTTOM, addonAdj = false},
- MicroButtonAndBagsBar = {frameName = "MicroButtonAndBagsBar", frameArchor = "BOTTOMRIGHT", xArchor = "RIGHT", y = 0,
- position = TITAN_PANEL_PLACE_BOTTOM, addonAdj = false},
-}
-
---[[ local
-NAME: TitanMovableFrame_CheckThisFrame
-DESC: Add the given frame to the list so it will be checked. Once 'full' the table will be looped through to see if the frame must be moved or not.
-VAR: frameName - frame to check
-OUT: None
-NOTE:
-- The frame is added to TitanMovable.
-:NOTE
---]]
-local function TitanMovableFrame_CheckThisFrame(frameName)
- -- For safety check if the frame is in the table to adjust
- if TitanMovableData[frameName] then
- table.insert(TitanMovable, frameName)
- end
-end
-
---[[ Titan
-NAME: TitanMovable_AdjustTimer
-DESC: Cancel then add the given timer. The timer must be in TitanTimers.
-VAR: ttype - The timer type (string) as defined in TitanTimers
-OUT: None
---]]
-function TitanMovable_AdjustTimer(ttype)
- local timer = TitanTimers[ttype]
- if timer then
- TitanPanelAce.CancelAllTimers(timer.obj)
- TitanPanelAce.ScheduleTimer(timer.obj, timer.callback, timer.delay)
- end
-end
-
---[[ Titan
-NAME: TitanMovable_AddonAdjust
-DESC: Set the given frame to be adjusted or not by another addon. This is called from TitanUtils for a developer API.
-VAR: frame - frame name (string)
-VAR: bool - true (addon will adjust) or false (Titan will use its settings)
-OUT: None
---]]
-function TitanMovable_AddonAdjust(frame, bool)
- for index, value in pairs(TitanMovableData) do
- frameData = value
- if frameData then
- frameName = frameData.frameName;
- end
-
- if (frame == frameName) then
- frameData.addonAdj = bool
- end
- end
-end
-
---[[ API
-NAME: TitanMovable_GetPanelYOffset
-DESC: Get the Y axis offset Titan needs (1 or 2 bars) at the given position - top or bottom.
-VAR: framePosition - TITAN_PANEL_PLACE_TOP or TITAN_PANEL_PLACE_BOTTOM
-OUT: Y axis offset, in pixels
-NOTE:
-- The prefered method to determine the Y offset needed by using TitanUtils_GetBarAnchors().
-:NOTE
---]]
-function TitanMovable_GetPanelYOffset(framePosition) -- used by other addons
- -- Both top & bottom are figured out but only the
- -- requested postion is returned
- local barnum_top = 0;
- local barnum_bot = 0
-
- -- If user has the top adjust set then determine the
- -- top offset
- if not TitanPanelGetVar("ScreenAdjust") then
- if TitanPanelGetVar("Bar_Show") then
- barnum_top = 1
- end
- if TitanPanelGetVar("Bar2_Show") then
- barnum_top = 2
- end
- end
- -- If user has the top adjust set then determine the
- -- bottom offset
- if not TitanPanelGetVar("AuxScreenAdjust") then
- if TitanPanelGetVar("AuxBar_Show") then
- barnum_bot = 1
- end
- if TitanPanelGetVar("AuxBar2_Show") then
- barnum_bot = 2
- end
- end
-
- local scale = TitanPanelGetVar("Scale")
- -- return the requested offset
- -- 0 will be returned if the user has not bars showing
- -- or the scale is not valid
- if scale and framePosition then
- if framePosition == TITAN_PANEL_PLACE_TOP then
- return (-TITAN_PANEL_BAR_HEIGHT * scale)*(barnum_top);
- elseif framePosition == TITAN_PANEL_PLACE_BOTTOM then
- return (TITAN_PANEL_BAR_HEIGHT * scale)*(barnum_bot)-1;
- -- no idea why -1 is needed... seems anchoring to bottom is off a pixel
- end
- end
- return 0
-end
-
---[[ local
-NAME: TitanMovableFrame_GetXOffset
-DESC: Get the x axis offset Titan needs to adjust the given frame.
-VAR: frame - frame object
-VAR: point - "LEFT" / "RIGHT" / "TOP" / "BOTTOM" / "CENTER"
-OUT: int - X axis offset, in pixels
---]]
-local function TitanMovableFrame_GetXOffset(frame, point)
- -- A valid frame and point is required
- -- Determine a proper X offset using the given point (position)
- local ret = 0 -- In case the inputs were invalid or the point was not relevant to the frame then return 0
- if frame and point then
- if point == "LEFT" and frame:GetLeft() and UIParent:GetLeft() then
- ret = frame:GetLeft() - UIParent:GetLeft();
- elseif point == "RIGHT" and frame:GetRight() and UIParent:GetRight() then
- ret = frame:GetRight() - UIParent:GetRight();
- elseif point == "TOP" and frame:GetTop() and UIParent:GetTop() then
- ret = frame:GetTop() - UIParent:GetTop();
- elseif point == "BOTTOM" and frame:GetBottom() and UIParent:GetBottom() then
- ret = frame:GetBottom() - UIParent:GetBottom();
- elseif point == "CENTER" and frame:GetLeft() and frame:GetRight()
- and UIParent:GetLeft() and UIParent:GetRight() then
- local framescale = frame.GetScale and frame:GetScale() or 1;
- ret = (frame:GetLeft()* framescale + frame:GetRight()
- * framescale - UIParent:GetLeft() - UIParent:GetRight()) / 2;
- end
- end
-
- return ret
-end
-
---[[ Titan
-NAME: TitanMovableFrame_CheckFrames
-DESC: Determine the frames that may need to be moved at the given position.
-VAR: position - TITAN_PANEL_PLACE_TOP / TITAN_PANEL_PLACE_BOTTOM / TITAN_PANEL_PLACE_BOTH
-OUT: None
---]]
-function TitanMovableFrame_CheckFrames(position)
- -- reset the frames to move
- TitanMovable = {};
-
- -- check top as requested
- if (position == TITAN_PANEL_PLACE_TOP)
- or position == TITAN_PANEL_PLACE_BOTH then
- -- Move PlayerFrame
- TitanMovableFrame_CheckThisFrame(PlayerFrame:GetName())
-
- -- Move TargetFrame
- TitanMovableFrame_CheckThisFrame(TargetFrame:GetName())
-
- -- Move PartyMemberFrame
- TitanMovableFrame_CheckThisFrame(PartyMemberFrame1:GetName())
-
- -- Move TicketStatusFrame
- if TitanPanelGetVar("TicketAdjust") then
- TitanMovableFrame_CheckThisFrame(TicketStatusFrame:GetName())
- end
-
- -- Move MinimapCluster
- if not CleanMinimap then
- if not TitanPanelGetVar("MinimapAdjust") then
- TitanMovableFrame_CheckThisFrame(MinimapCluster:GetName())
- end
- end
- -- Move BuffFrame
- TitanMovableFrame_CheckThisFrame(BuffFrame:GetName())
-
- -- Move UIWidgetTopCenterContainerFrame
- TitanMovableFrame_CheckThisFrame(UIWidgetTopCenterContainerFrame:GetName());
-
---[[ -- Move OrderHallCommandBar
- if OrderHallCommandBar then
- TitanMovableFrame_CheckThisFrame(OrderHallCommandBar:GetName());
- end]]--
- end
-
- -- check bottom as requested
- if (position == TITAN_PANEL_PLACE_BOTTOM)
- or position == TITAN_PANEL_PLACE_BOTH then
-
- -- Move MainMenuBar
- TitanMovableFrame_CheckThisFrame(MainMenuBar:GetName());
-
- -- Move OverrideActionBar
- TitanMovableFrame_CheckThisFrame(OverrideActionBar:GetName());
-
- -- Move MicroButtonAndBagsBar
- TitanMovableFrame_CheckThisFrame(MicroButtonAndBagsBar:GetName());
- end
-end
-
---[[ Titan
-NAME: TitanMovableFrame_MoveFrames
-DESC: Actually adjust the frames at the given position.
-VAR: position - TITAN_PANEL_PLACE_TOP / TITAN_PANEL_PLACE_BOTTOM / TITAN_PANEL_PLACE_BOTH
-OUT: None
---]]
-function TitanMovableFrame_MoveFrames(position)
- -- Once the frames to check have been collected,
- -- move them as needed.
- local frameData, frame, frameName, frameArchor, xArchor, y, xOffset, yOffset, panelYOffset;
-
- -- Collect the frames we need to move
- TitanMovableFrame_CheckFrames(position);
-
- -- move them...
- if not InCombatLockdown() then
- local adj_frame = true
- for index, value in pairs(TitanMovable) do
- adj_frame = true -- assume the frame is to be adjusted
- frameData = TitanMovableData[value];
- if frameData then
- frame = _G[frameData.frameName];
- frameName = frameData.frameName;
- frameArchor = frameData.frameArchor;
- end
-
- if (frame and (frame:IsUserPlaced()))
- then
- -- The user has positioned the frame
- adj_frame = false
- end
- if frameData.addonAdj then
- -- An addon has taken control of the frame
- adj_frame = false
- end
-
- if adj_frame then
- xArchor = frameData.xArchor;
- y = frameData.y;
-
- panelYOffset = TitanMovable_GetPanelYOffset(frameData.position);
- xOffset = TitanMovableFrame_GetXOffset(frame, xArchor);
-
- -- properly adjust buff frame(s) if GM Ticket is visible
-
- -- Use IsShown rather than IsVisible. In some cases (after closing
- -- full screen map) the ticket may not yet be visible.
- if (frameName == "BuffFrame")
- and TicketStatusFrame:IsShown()
- and TitanPanelGetVar("TicketAdjust") then
- yOffset = (-TicketStatusFrame:GetHeight())
- + panelYOffset
- else
- yOffset = y + panelYOffset;
- end
-
- -- properly adjust MinimapCluster if its border is hidden
- if frameName == "MinimapCluster"
- and MinimapBorderTop
- and not MinimapBorderTop:IsShown() then
- yOffset = yOffset + (MinimapBorderTop:GetHeight() * 3/5) - 5
- end
-
- -- adjust the MainMenuBar according to its scale
- if frameName == "MainMenuBar" and MainMenuBar:IsVisible() then
- local framescale = MainMenuBar:GetScale() or 1;
- yOffset = yOffset / framescale;
- if ( StatusTrackingBarManager:GetNumberVisibleBars() == 2 ) then
- yOffset = yOffset + 17;
- elseif ( StatusTrackingBarManager:GetNumberVisibleBars() == 1 ) then
- yOffset = yOffset + 14;
- end
- end
-
- -- account for Reputation Status Bar (doh)
- local playerlevel = UnitLevel("player");
- if frameName == "MultiBarRight"
- and ReputationWatchStatusBar:IsVisible()
- and playerlevel < _G["MAX_PLAYER_LEVEL"] then
- yOffset = yOffset + 8;
- end
-
- frame:ClearAllPoints();
- frame:SetPoint(frameArchor, "UIParent", frameArchor,
- xOffset, yOffset);
- else
- --Leave frame where it is as it has been moved by a user
- end
- -- Move bags as needed
- UpdateContainerFrameAnchors();
- end
- else
- -- nothing to do
- end
-end
-
---[[ Titan
-NAME: TitanAdjustBottomFrames
-DESC: Adjust the frames at TITAN_PANEL_PLACE_BOTTOM.
-VAR: None
-OUT: None
---]]
-function TitanAdjustBottomFrames()
- TitanPanel_AdjustFrames(TITAN_PANEL_PLACE_BOTTOM, true)
-end
-
---[[ Titan
-NAME: Titan_FCF_UpdateDockPosition
-DESC: Secure post hook to help adjust the chat / log frame.
-VAR: None
-OUT: None
-NOTE:
-- This is required because Blizz adjusts the chat frame relative to other frames so some of the Blizz code is copied.
-- If in combat or if the user has moved the chat frame then no action is taken.
-- The frame is adjusted in the Y axis only.
-:NOTE
---]]
-local function Titan_FCF_UpdateDockPosition()
- if not Titan__InitializedPEW
- or not TitanPanelGetVar("LogAdjust")
- or TitanPanelGetVar("AuxScreenAdjust") then
- return
- end
-
- if not InCombatLockdown() or (InCombatLockdown()
- and not _G["DEFAULT_CHAT_FRAME"]:IsProtected()) then
- local panelYOffset = TitanMovable_GetPanelYOffset(TITAN_PANEL_PLACE_BOTTOM);
- local scale = TitanPanelGetVar("Scale");
- if scale then
- panelYOffset = panelYOffset + (24 * scale) -- after 3.3.5 an additional adjust was needed. why? idk
- end
-
---[[ Blizz code
- if _G["DEFAULT_CHAT_FRAME"]:IsUserPlaced() then
- if _G["SIMPLE_CHAT"] ~= "1" then return end
- end
-
- local chatOffset = 85 + panelYOffset;
- if GetNumShapeshiftForms() > 0 or HasPetUI() or PetHasActionBar() then
- if MultiBarBottomLeft:IsVisible() then
- chatOffset = chatOffset + 55;
- else
- chatOffset = chatOffset + 15;
- end
- elseif MultiBarBottomLeft:IsVisible() then
- chatOffset = chatOffset + 15;
- end
- _G["DEFAULT_CHAT_FRAME"]:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 32, chatOffset);
- FCF_DockUpdate();
---]]
- if ( DEFAULT_CHAT_FRAME:IsUserPlaced() ) then
- return;
- end
-
- local chatOffset = 85 + panelYOffset; -- Titan change to adjust Y offset
- if ( GetNumShapeshiftForms() > 0 or HasPetUI() or PetHasActionBar() ) then
- if ( MultiBarBottomLeft:IsShown() ) then
- chatOffset = chatOffset + 55;
- else
- chatOffset = chatOffset + 15;
- end
- elseif ( MultiBarBottomLeft:IsShown() ) then
- chatOffset = chatOffset + 15;
- end
- DEFAULT_CHAT_FRAME:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT",
- 32, chatOffset);
- FCF_DockUpdate();
- end
-end
-
---[[ Titan
-NAME: Titan_ContainerFrames_Relocate
-DESC: Secure post hook to help adjust the bag frames.
-VAR: None
-OUT: None
-NOTE:
-- The frame is adjusted in the Y axis only.
-- The Blizz routine "ContainerFrames_Relocate" should be examined for any conditions it checks and any changes to the SetPoint.
-If Blizz changes the anchor points the SetPoint here must change as well!!
-The Blizz routine calculates X & Y offsets to UIParent (screen) so there is not need to store the prior offsets.
-Like the Blizz routine we search through the visible bags. Unlike the Blizz routine we only care about the first of each column to adjust for Titan.
-This way the Blizz code does not need to be copied here.
-:NOTE
---]]
-local function Titan_ContainerFrames_Relocate()
- if not TitanPanelGetVar("BagAdjust") then
- return
- end
-
- local panelYOffset = TitanMovable_GetPanelYOffset(TITAN_PANEL_PLACE_BOTTOM)
- local off_y = 10000 -- something ridiculously high
- local bottom_y = 0
- local right_x = 0
-
- for index, frameName in ipairs(ContainerFrame1.bags) do
- frame = _G[frameName];
- if frame:GetBottom() then bottom_y = frame:GetBottom() end
- if ( bottom_y < off_y ) then
- -- Start a new column
- right_x = frame:GetRight()
- frame:ClearAllPoints();
- frame:SetPoint("BOTTOMRIGHT", frame:GetParent(),
- "BOTTOMLEFT", -- changed because we are taking the current x value
- right_x, -- x is not adjusted
- bottom_y + panelYOffset -- y
- )
- end
- off_y = bottom_y
- end
-end
-
---[[ Titan
-NAME: TitanMovableFrame_AdjustBlizzardFrames
-DESC: Calls the helper routines to adjust the chat / log frame and bag frames.
-VAR: None
-OUT: None
-NOTE:
-- This is required because Blizz (or addons) could adjust the chat frame outside the events that Titan registers for.
-- If in combat or if the user has moved the chat frame then no action is taken.
-- The frame is adjusted in the Y axis only.
-:NOTE
---]]
-local function TitanMovableFrame_AdjustBlizzardFrames()
- if not InCombatLockdown() then
- Titan_FCF_UpdateDockPosition();
- Titan_ContainerFrames_Relocate();
- end
-end
-
---[[ Titan
-NAME: Titan_AdjustUIScale
-DESC: Adjust the scale of Titan bars and plugins to the user selected scaling. This is called by the secure post hooks to the 'Video Options Frame'.
-VAR: None
-OUT: None
---]]
-local function Titan_AdjustUIScale()
- Titan_AdjustScale()
-end
-
---[[ Titan
-NAME: Titan_Hook_Adjust_Both
-DESC: Adjust top and bottom frames. This is called by the secure post hooks.
-VAR: None
-OUT: None
-NOTE:
-- Starts a timer () which is a callback to Titan_ManageFramesNew.
-- These could arrive quickly. To prevent many adjusts from stacking, cancel any pending then queue this one.
-:NOTE
---]]
-local function Titan_Hook_Adjust_Both()
- TitanMovable_AdjustTimer("Adjust")
-end
-
---[[ Titan
-NAME: TitanPanel_AdjustFrames
-DESC: Adjust the frames at the given position.
-VAR: position - TITAN_PANEL_PLACE_TOP / TITAN_PANEL_PLACE_BOTTOM / TITAN_PANEL_PLACE_BOTH
-VAR: blizz - true or false
-OUT: None
-NOTE:
-- if blizz is true then the post hook code for chat / log frame and the bag frames is run
-:NOTE
---]]
-function TitanPanel_AdjustFrames(position, blizz)
- -- Adjust frame positions top only, bottom only, or both
- TitanMovableFrame_MoveFrames(position)
-
- -- move the Blizzard frames if requested
- if blizz and position == (TITAN_PANEL_PLACE_BOTTOM or TITAN_PANEL_PLACE_TOP) then
- TitanMovableFrame_AdjustBlizzardFrames()
- end
-end
-
---[[ Titan
-NAME: Titan_ManageFramesNew
-DESC: Adjust the frames at TITAN_PANEL_PLACE_BOTH.
-VAR: None
-OUT: None
---]]
-function Titan_ManageFramesNew()
- TitanPanel_AdjustFrames(TITAN_PANEL_PLACE_BOTH, false)
- return
-end
-
---[[ Titan
-NAME: Titan_AdjustScale
-DESC: Update the bars and plugins to the user selected scale.
-VAR: None
-OUT: None
-NOTE:
-- Ensure Titan has done its initialization before this is run.
-:NOTE
---]]
-function Titan_AdjustScale()
- -- Only adjust if Titan is fully initialized
- if Titan__InitializedPEW then
- TitanPanel_SetScale();
-
- TitanPanel_ClearAllBarTextures()
- TitanPanel_CreateBarTextures()
-
- for idx,v in pairs (TitanBarData) do
- TitanPanel_SetTexture(TITAN_PANEL_DISPLAY_PREFIX..TitanBarData[idx].name
- , TITAN_PANEL_PLACE_TOP);
- end
-
- TitanPanelBarButton_DisplayBarsWanted()
- TitanPanel_RefreshPanelButtons();
- end
-end
-
-function Titan_ManageFramesTest1()
- if Titan__InitializedPEW then
- -- We know the desired bars are now drawn so we can adjust
- if InCombatLockdown() then
- else
---TitanDebug ("Titan_ManageFramesTest1 ")
- left = floor(OverrideActionBar:GetLeft() + 0.5)
- left = GetScreenWidth() / 2
- bot = floor(OverrideActionBar:GetBottom() + 0.5)
-TitanDebug("... OverrideActionBar "
-..(bot or "?").." "
-..(left or "?").." "
-)
- point, relFrame, relPoint, xOff, yOff = OverrideActionBar:GetPoint(OverrideActionBar:GetNumPoints())
- OverrideActionBar:ClearAllPoints()
- OverrideActionBar:SetPoint("BOTTOM", TitanPanelBottomAnchor, "TOP", left, 0)
- OverrideActionBar:SetPoint(point, relFrame, relPoint, xOff, TitanPanelBottomAnchor:GetTop()+0)
- left = OverrideActionBar:GetCenter()
- bot = OverrideActionBar:GetBottom()
-TitanDebug("... OverrideActionBar "
-..(bot or "?").." "
-..(left or "?").." "
-)
-
- end
- end
--- There is a chance the person stays in combat so this could
--- keep looping...
-end
-
-function Titan_GetFrameOrigPositions()
- local orig = {}
- local frameData
- local point, relTo, relPoint, xOff, yOff = "", {}, "", 0, 0
- local relFrame = ""
- for index, value in pairs(TitanMovableData) do
- frameData = TitanMovableData[index];
- if frameData then
- point, relTo, relPoint, xOff, yOff = "", {}, "", 0, 0
- frame = _G[frameData.frameName];
- point, relTo, relPoint, xOff, yOff = frame:GetPoint(frame:GetNumPoints())
-TitanDebug("Orig: "
-..frameData.frameName.." "
-..relTo:GetName() or "?".." "
-)
- orig = {
- point = point,
- relTo = relTo,
- relPoint = relPoint,
- xOff = xOff,
- yOff = yOff,
- }
- TitanMovableOrig[frameData.frameName] = orig
- end
- end
-end
-
-function Titan_SetFrameOrigPositions()
- local left = 0
- local bot = 0
- -- TESTING!!!
-TitanDebug("TESTING!!: Setting frames to Titan anchor "
-..(TitanPanelBottomAnchor:GetTop() or "?").." "
-)
- left = MainMenuBar:GetLeft()
- left = GetScreenWidth() / 2
- bot = MainMenuBar:GetBottom()
-TitanDebug("... MainMenuBar "
-..(bot or "?").." "
-..(left or "?").." "
-)
--- local point, relFrame, relPoint, xOff, yOff = MainMenuBar:GetPoint(MainMenuBar:GetNumPoints())
- MainMenuBar:ClearAllPoints()
- MainMenuBar:SetPoint("BOTTOM", TitanPanelBottomAnchor, "TOP", left, 0)
--- MainMenuBar:SetPoint(point, relFrame, relPoint, xOff, TitanPanelBottomAnchor:GetTop()+0)
- left = MainMenuBar:GetLeft()
- bot = MainMenuBar:GetBottom()
-TitanDebug("... MainMenuBar "
-..(bot or "?").." "
-..(left or "?").." "
-)
-
- left = floor(OverrideActionBar:GetLeft() + 0.5)
- left = GetScreenWidth() / 2
- bot = floor(OverrideActionBar:GetBottom() + 0.5)
-TitanDebug("... OverrideActionBar "
-..(bot or "?").." "
-..(left or "?").." "
-)
--- point, relFrame, relPoint, xOff, yOff = OverrideActionBar:GetPoint(OverrideActionBar:GetNumPoints())
- OverrideActionBar:ClearAllPoints()
- OverrideActionBar:SetPoint("BOTTOM", TitanPanelBottomAnchor, "TOP", left, 0)
--- OverrideActionBar:SetPoint(point, relFrame, relPoint, xOff, TitanPanelBottomAnchor:GetTop()+0)
- left = OverrideActionBar:GetCenter()
- bot = OverrideActionBar:GetBottom()
-TitanDebug("... OverrideActionBar "
-..(bot or "?").." "
-..(left or "?").." "
-)
-
- if false then
- left = MultiBarRight:GetLeft()
- MultiBarRight:ClearAllPoints()
- MultiBarRight:SetPoint("BOTTOMLEFT", TitanPanelBottomAnchor, "TOP", left, 98)
-
- left = TargetFrame:GetLeft()
- TargetFrame:ClearAllPoints()
- TargetFrame:SetPoint("TOPLEFT", TitanPanelTopAnchor, "BOTTOM", left, -4)
-
- left = PlayerFrame:GetLeft()
- PlayerFrame:ClearAllPoints()
- PlayerFrame:SetPoint("TOPLEFT", TitanPanelTopAnchor, "BOTTOM", left, -4)
-
- left = PartyMemberFrame1:GetLeft()
- PartyMemberFrame1:ClearAllPoints()
- PartyMemberFrame1:SetPoint("TOPLEFT", TitanPanelTopAnchor, "BOTTOM", left, -128)
-
- left = TicketStatusFrame:GetLeft()
- TicketStatusFrame:ClearAllPoints()
- TicketStatusFrame:SetPoint("TOPLEFT", TitanPanelTopAnchor, "BOTTOM", left, 0)
-
- left = BuffFrame:GetLeft()
- BuffFrame:ClearAllPoints()
- BuffFrame:SetPoint("TOPLEFT", TitanPanelTopAnchor, "BOTTOM", left, -13)
-
- left = MinimapCluster:GetLeft()
- MinimapCluster:ClearAllPoints()
- MinimapCluster:SetPoint("TOPLEFT", TitanPanelTopAnchor, "BOTTOM", left, 0)
- end
-end
-
---[[ Titan
-NAME: TitanMovable_SecureFrames
-DESC: Once Titan is initialized create the post hooks we need to help adjust frames properly.
-VAR: None
-OUT: None
-NOTE:
-- The secure post hooks are required because Blizz adjusts frames Titan is interested in at times other than the events Titan registers for.
-- This used to be inline code but was moved to a routine to avoid errors as Titan loaded.
-:NOTE
---]]
-function TitanMovable_SecureFrames()
- if not TitanPanelAce:IsHooked("FCF_UpdateDockPosition", Titan_FCF_UpdateDockPosition) then
- TitanPanelAce:SecureHook("FCF_UpdateDockPosition", Titan_FCF_UpdateDockPosition) -- FloatingChatFrame
- end
- if not TitanPanelAce:IsHooked("UIParent_ManageFramePositions", Titan_Hook_Adjust_Both) then
- TitanPanelAce:SecureHook("UIParent_ManageFramePositions", Titan_Hook_Adjust_Both) -- UIParent.lua
- TitanPanel_AdjustFrames(TITAN_PANEL_PLACE_BOTTOM, false)
- end
-
- if not TitanPanelAce:IsHooked(TicketStatusFrame, "Show", Titan_Hook_Adjust_Both) then
- -- Titan Hooks to Blizzard Frame positioning functions
- --TitanPanelAce:SecureHook("TicketStatusFrame_OnShow", Titan_Hook_Adjust_Both) -- HelpFrame.xml
- --TitanPanelAce:SecureHook("TicketStatusFrame_OnHide", Titan_Hook_Adjust_Both) -- HelpFrame.xml
- TitanPanelAce:SecureHook(TicketStatusFrame, "Show", Titan_Hook_Adjust_Both) -- HelpFrame.xml
- TitanPanelAce:SecureHook(TicketStatusFrame, "Hide", Titan_Hook_Adjust_Both) -- HelpFrame.xml
- TitanPanelAce:SecureHook(MainMenuBar, "Show", Titan_Hook_Adjust_Both) -- HelpFrame.xml
- TitanPanelAce:SecureHook(MainMenuBar, "Hide", Titan_Hook_Adjust_Both) -- HelpFrame.xml
- TitanPanelAce:SecureHook(OverrideActionBar, "Show", Titan_Hook_Adjust_Both) -- HelpFrame.xml
- TitanPanelAce:SecureHook(OverrideActionBar, "Hide", Titan_Hook_Adjust_Both) -- HelpFrame.xml
--- TitanPanelAce:SecureHook(OverrideActionBar, "Show", Titan_ManageFramesTest1) -- HelpFrame.xml
--- TitanPanelAce:SecureHook(OverrideActionBar, "Hide", Titan_ManageFramesTest1) -- HelpFrame.xml
- TitanPanelAce:SecureHook("UpdateContainerFrameAnchors", Titan_ContainerFrames_Relocate) -- ContainerFrame.lua
- TitanPanelAce:SecureHook(WorldMapFrame, "Hide", Titan_Hook_Adjust_Both) -- WorldMapFrame.lua
- TitanPanelAce:SecureHook("BuffFrame_Update", Titan_Hook_Adjust_Both) -- BuffFrame.lua
- end
-
- if not TitanPanelAce:IsHooked("VideoOptionsFrameOkay_OnClick", Titan_AdjustUIScale) then
- -- Properly Adjust UI Scale if set
- -- Note: These are the least intrusive hooks we could think of, to properly adjust the Titan Bar(s)
- -- without having to resort to a SetCvar secure hook. Any addon using SetCvar should make sure to use the 3rd
- -- argument in the API call and trigger the CVAR_UPDATE event with an appropriate argument so that other addons
- -- can detect this behavior and fire their own functions (where applicable).
- TitanPanelAce:SecureHook("VideoOptionsFrameOkay_OnClick", Titan_AdjustUIScale) -- VideoOptionsFrame.lua
- TitanPanelAce:SecureHook(VideoOptionsFrame, "Hide", Titan_AdjustUIScale) -- VideoOptionsFrame.xml
- end
-
--- TitanPanelAce:SecureHook(OverrideActionBar, "SetPoint", Titan_ManageFramesTest1) --
-end
diff --git a/TitanLocation/TitanLocation.lua b/TitanLocation/TitanLocation.lua
deleted file mode 100644
index 4f0d584..0000000
--- a/TitanLocation/TitanLocation.lua
+++ /dev/null
@@ -1,565 +0,0 @@
--- **************************************************************************
--- * TitanLocation.lua
--- *
--- * By: TitanMod, Dark Imakuni, Adsertor and the Titan Development Team
--- **************************************************************************
-
--- ******************************** Constants *******************************
-local _G = getfenv(0);
-local TITAN_LOCATION_ID = "Location";
-local OFFSET_X = 0.0022 -- 0.0022;
-local OFFSET_Y = -0.0262 -- -0.0262;
-local cachedX = 0
-local cachedY = 0
-local updateTable = {TITAN_LOCATION_ID, TITAN_PANEL_UPDATE_BUTTON};
--- ******************************** Variables *******************************
-local L = LibStub("AceLocale-3.0"):GetLocale("Titan", true)
-local AceTimer = LibStub("AceTimer-3.0")
-local LocationTimer = nil;
--- ******************************** Functions *******************************
-
--- **************************************************************************
--- NAME : TitanPanelLocationButton_OnLoad()
--- DESC : Registers the plugin upon it loading
--- **************************************************************************
-function TitanPanelLocationButton_OnLoad(self)
- self.registry = {
- id = TITAN_LOCATION_ID,
- category = "Built-ins",
- version = TITAN_VERSION,
- menuText = L["TITAN_LOCATION_MENU_TEXT"],
- buttonTextFunction = "TitanPanelLocationButton_GetButtonText",
- tooltipTitle = L["TITAN_LOCATION_TOOLTIP"],
- tooltipTextFunction = "TitanPanelLocationButton_GetTooltipText",
- icon = "Interface\\AddOns\\TitanLocation\\TitanLocation",
- iconWidth = 16,
- controlVariables = {
- ShowIcon = true,
- ShowLabelText = true,
- ShowRegularText = false,
- ShowColoredText = true,
- DisplayOnRightSide = false
- },
- savedVariables = {
- ShowZoneText = 1,
- ShowCoordsOnMap = true,
- ShowCursorOnMap = true,
- ShowLocOnMiniMap = 1,
- ShowIcon = 1,
- ShowLabelText = 1,
- ShowColoredText = 1,
- CoordsFormat1 = 1,
- CoordsFormat2 = false,
- CoordsFormat3 = false,
- UpdateWorldmap = false,
- }
- };
-
- self:RegisterEvent("ZONE_CHANGED");
- self:RegisterEvent("ZONE_CHANGED_INDOORS");
- self:RegisterEvent("ZONE_CHANGED_NEW_AREA");
- self:RegisterEvent("PLAYER_ENTERING_WORLD");
-end
-
--- **************************************************************************
--- NAME : TitanPanelLocationButton_OnShow()
--- DESC : Display button when plugin is visible
--- **************************************************************************
-function TitanPanelLocationButton_OnShow()
- local mapID = C_Map.GetBestMapForUnit("player");
- WorldMapFrame:SetMapID(mapID);
- TitanPanelLocation_HandleUpdater();
-end
-
--- **************************************************************************
--- NAME : TitanPanelLocationButton_OnHide()
--- DESC : Destroy repeating timer when plugin is hidden
--- **************************************************************************
-function TitanPanelLocationButton_OnHide()
- AceTimer.CancelTimer("TitanPanelLocation", LocationTimer, true)
- LocationTimer = nil;
-end
-
--- **************************************************************************
--- NAME : TitanPanelLocationButton_GetButtonText(id)
--- DESC : Calculate coordinates and then display data on button
--- VARS : id = button ID
--- **************************************************************************
-function TitanPanelLocationButton_GetButtonText(id)
- local button, id = TitanUtils_GetButton(id, true);
-
- button.px, button.py = TitanPanelGetPlayerMapPosition();
- -- cache coordinates for update checking later on
- cachedX = button.px;
- cachedY = button.py;
- if button.px == nil then button.px = 0 end
- if button.py == nil then button.py = 0 end
- local locationText = "";
- if (TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat1")) then
- locationText = format(L["TITAN_LOCATION_FORMAT"], 100 * button.px, 100 * button.py);
- elseif (TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat2")) then
- locationText = format(L["TITAN_LOCATION_FORMAT2"], 100 * button.px, 100 * button.py);
- elseif (TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat3")) then
- locationText = format(L["TITAN_LOCATION_FORMAT3"], 100 * button.px, 100 * button.py);
- end
-
- if button.px == 0 and button.py == 0 then
- locationText = "";
- end
-
- if (TitanGetVar(TITAN_LOCATION_ID, "ShowZoneText")) then
- if (TitanUtils_ToString(button.subZoneText) == '') then
- if (button.zoneText == '') then
- _, _, button.zoneText = C_Map.GetMapInfo(C_Map.GetBestMapUnit("player"));
- end
- locationText = TitanUtils_ToString(button.zoneText)..' '..locationText;
- else
- locationText = TitanUtils_ToString(button.subZoneText)..' '..locationText;
- end
- else
- if button.px == 0 and button.py == 0 then
- locationText = L["TITAN_LOCATION_NO_COORDS"];
- end
- end
-
- local locationRichText;
- if (TitanGetVar(TITAN_LOCATION_ID, "ShowColoredText")) then
- if (TitanPanelLocationButton.isArena) then
- locationRichText = TitanUtils_GetRedText(locationText);
- elseif (TitanPanelLocationButton.pvpType == "friendly") then
- locationRichText = TitanUtils_GetGreenText(locationText);
- elseif (TitanPanelLocationButton.pvpType == "hostile") then
- locationRichText = TitanUtils_GetRedText(locationText);
- elseif (TitanPanelLocationButton.pvpType == "contested") then
- locationRichText = TitanUtils_GetNormalText(locationText);
- else
- locationRichText = TitanUtils_GetNormalText(locationText);
- end
- else
- locationRichText = TitanUtils_GetHighlightText(locationText);
- end
-
- return L["TITAN_LOCATION_BUTTON_LABEL"], locationRichText;
-end
-
--- **************************************************************************
--- NAME : TitanPanelLocationButton_GetTooltipText()
--- DESC : Display tooltip text
--- **************************************************************************
-function TitanPanelLocationButton_GetTooltipText()
- local pvpInfoRichText;
-
- pvpInfoRichText = "";
- if (TitanPanelLocationButton.pvpType == "sanctuary") then
- pvpInfoRichText = TitanUtils_GetGreenText(SANCTUARY_TERRITORY);
- elseif (TitanPanelLocationButton.pvpType == "arena") then
- TitanPanelLocationButton.subZoneText = TitanUtils_GetRedText(TitanPanelLocationButton.subZoneText);
- pvpInfoRichText = TitanUtils_GetRedText(CONTESTED_TERRITORY);
- elseif (TitanPanelLocationButton.pvpType == "friendly") then
- pvpInfoRichText = TitanUtils_GetGreenText(format(FACTION_CONTROLLED_TERRITORY, TitanPanelLocationButton.factionName));
- elseif (TitanPanelLocationButton.pvpType == "hostile") then
- pvpInfoRichText = TitanUtils_GetRedText(format(FACTION_CONTROLLED_TERRITORY, TitanPanelLocationButton.factionName));
- elseif (TitanPanelLocationButton.pvpType == "contested") then
- pvpInfoRichText = TitanUtils_GetRedText(CONTESTED_TERRITORY);
- else
- --pvpInfoRichText = TitanUtils_GetNormalText(CONTESTED_TERRITORY);
- end
-
- return ""..
- L["TITAN_LOCATION_TOOLTIP_ZONE"].."\t"..TitanUtils_GetHighlightText(TitanPanelLocationButton.zoneText).."\n"..
- TitanUtils_Ternary((TitanPanelLocationButton.subZoneText == ""), "", L["TITAN_LOCATION_TOOLTIP_SUBZONE"].."\t"..TitanUtils_GetHighlightText(TitanPanelLocationButton.subZoneText).."\n")..
- TitanUtils_Ternary((pvpInfoRichText == ""), "", L["TITAN_LOCATION_TOOLTIP_PVPINFO"].."\t"..pvpInfoRichText.."\n")..
- "\n"..
- TitanUtils_GetHighlightText(L["TITAN_LOCATION_TOOLTIP_HOMELOCATION"]).."\n"..
- L["TITAN_LOCATION_TOOLTIP_INN"].."\t"..TitanUtils_GetHighlightText(GetBindLocation()).."\n"..
- TitanUtils_GetGreenText(L["TITAN_LOCATION_TOOLTIP_HINTS_1"]).."\n"..
- TitanUtils_GetGreenText(L["TITAN_LOCATION_TOOLTIP_HINTS_2"]);
-end
-
--- **************************************************************************
--- NAME : TitanPanelLocationButton_OnEvent()
--- DESC : Parse events registered to plugin and act on them
--- **************************************************************************
-function TitanPanelLocationButton_OnEvent(self, event, ...)
- if event == "PLAYER_ENTERING_WORLD" then
- if not TitanGetVar(TITAN_LOCATION_ID, "ShowLocOnMiniMap") and MinimapBorderTop and MinimapBorderTop:IsShown() then
- TitanPanelLocationButton_LocOnMiniMap()
- end
- end
- if TitanGetVar(TITAN_LOCATION_ID, "UpdateWorldmap") then
- local mapID = C_Map.GetBestMapForUnit("player")
- WorldMapFrame:SetMapID(mapID)
- end
- TitanPanelLocationButton_UpdateZoneInfo(self);
- TitanPanelPluginHandle_OnUpdate(updateTable);
- TitanPanelLocation_HandleUpdater();
-end
-
--- function to throttle down unnecessary updates
-function TitanPanelLocationButton_CheckForUpdate()
- local mapID = C_Map.GetBestMapForUnit("player")
- local tempx, tempy = TitanPanelGetPlayerMapPosition();
- if tempx ~= cachedX or tempy ~= cachedY then
- TitanPanelPluginHandle_OnUpdate(updateTable);
- end
-end
-
--- **************************************************************************
--- NAME : TitanPanelLocation_HandleUpdater()
--- DESC : Check to see if you are inside an instance
--- **************************************************************************
-function TitanPanelLocation_HandleUpdater()
- if TitanPanelLocationButton:IsVisible() and not LocationTimer then
- LocationTimer = AceTimer.ScheduleRepeatingTimer("TitanPanelLocation", TitanPanelLocationButton_CheckForUpdate, 0.5)
- end
-end
-
--- **************************************************************************
--- NAME : TitanPanelLocationButton_OnClick(button)
--- DESC : Copies coordinates to chat line for shift-LeftClick
--- VARS : button = value of action
--- **************************************************************************
-function TitanPanelLocationButton_OnClick(self, button)
- if (button == "LeftButton") then
- if (IsShiftKeyDown()) then
- local activeWindow = ChatEdit_GetActiveWindow();
- if ( activeWindow ) then
- if (TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat1")) then
- message = TitanUtils_ToString(self.zoneText).." "..
- format(L["TITAN_LOCATION_FORMAT"], 100 * self.px, 100 * self.py);
- elseif (TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat2")) then
- message = TitanUtils_ToString(self.zoneText).." "..
- format(L["TITAN_LOCATION_FORMAT2"], 100 * self.px, 100 * self.py);
- elseif (TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat3")) then
- message = TitanUtils_ToString(self.zoneText).." "..
- format(L["TITAN_LOCATION_FORMAT3"], 100 * self.px, 100 * self.py);
- end
- activeWindow:Insert(message);
- end
- else
- --WorldMap_ToggleSizeUp();
- if (not GetCVarBool("miniWorldMap")) then
- --/; # Deprecated in WoW 8.0.1
- end
- ToggleFrame(WorldMapFrame);
- end
- end
---[[
--- Works great when map is small. When map is large, Titan stays on top.
--- Sometimes other buttons stay on top of map.
--- Think we'd have to adjust strata of anything touched by TitanMovable
- if (button == "LeftButton") then
- if ( WORLDMAP_SETTINGS.size == WORLDMAP_WINDOWED_SIZE ) then
- if ( WorldMapFrame:IsVisible() ) then
- WorldMapFrame:Hide()
- else
- WorldMapFrame:Show()
- end
- end
- end
---]]
-end
-
--- **************************************************************************
--- NAME : TitanPanelLocationButton_UpdateZoneInfo()
--- DESC : Update data on button
--- **************************************************************************
-function TitanPanelLocationButton_UpdateZoneInfo(self)
- local _ = nil
- self.zoneText = GetZoneText();
- self.subZoneText = GetSubZoneText();
- --self.minimapZoneText = GetMinimapZoneText();
- self.pvpType, _, self.factionName = GetZonePVPInfo();
-end
-
--- **************************************************************************
--- NAME : TitanPanelRightClickMenu_PrepareLocationMenu()
--- DESC : Display rightclick menu options
--- **************************************************************************
-function TitanPanelRightClickMenu_PrepareLocationMenu()
- local info
-
- -- level 2
- if _G["L_UIDROPDOWNMENU_MENU_LEVEL"] == 2 then
- if _G["L_UIDROPDOWNMENU_MENU_VALUE"] == "Options" then
- TitanPanelRightClickMenu_AddTitle(L["TITAN_PANEL_OPTIONS"], _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
- info = {};
- info.text = L["TITAN_LOCATION_MENU_SHOW_ZONE_ON_PANEL_TEXT"];
- info.func = TitanPanelLocationButton_ToggleDisplay;
- info.checked = TitanGetVar(TITAN_LOCATION_ID, "ShowZoneText");
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
-
- info = {};
- info.text = L["TITAN_LOCATION_MENU_SHOW_COORDS_ON_MAP_TEXT"];
- info.func = TitanPanelLocationButton_ToggleLocationOnMap;
- info.checked = TitanGetVar(TITAN_LOCATION_ID, "ShowCoordsOnMap");
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
-
- info = {};
- info.text = L["TITAN_LOCATION_MENU_SHOW_LOC_ON_MINIMAP_TEXT"];
- info.func = TitanPanelLocationButton_ToggleLocOnMiniMap;
- info.checked = TitanGetVar(TITAN_LOCATION_ID, "ShowLocOnMiniMap");
- info.disabled = InCombatLockdown()
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
-
- info = {};
- info.text = L["TITAN_LOCATION_MENU_UPDATE_WORLD_MAP"];
- info.func = function()
- TitanToggleVar(TITAN_LOCATION_ID, "UpdateWorldmap");
- end
- info.checked = TitanGetVar(TITAN_LOCATION_ID, "UpdateWorldmap");
- info.disabled = InCombatLockdown()
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
- end
- if _G["L_UIDROPDOWNMENU_MENU_VALUE"] == "CoordFormat" then
- TitanPanelRightClickMenu_AddTitle(L["TITAN_LOCATION_FORMAT_COORD_LABEL"], _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
- info = {};
- info.text = L["TITAN_LOCATION_FORMAT_LABEL"];
- info.func = function()
- TitanSetVar(TITAN_LOCATION_ID, "CoordsFormat1", 1);
- TitanSetVar(TITAN_LOCATION_ID, "CoordsFormat2", nil);
- TitanSetVar(TITAN_LOCATION_ID, "CoordsFormat3", nil);
- TitanPanelButton_UpdateButton(TITAN_LOCATION_ID);
- end
- info.checked = TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat1");
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
-
- info = {};
- info.text = L["TITAN_LOCATION_FORMAT2_LABEL"];
- info.func = function()
- TitanSetVar(TITAN_LOCATION_ID, "CoordsFormat1", nil);
- TitanSetVar(TITAN_LOCATION_ID, "CoordsFormat2", 1);
- TitanSetVar(TITAN_LOCATION_ID, "CoordsFormat3", nil);
- TitanPanelButton_UpdateButton(TITAN_LOCATION_ID);
- end
- info.checked = TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat2");
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
-
- info = {};
- info.text = L["TITAN_LOCATION_FORMAT3_LABEL"];
- info.func = function()
- TitanSetVar(TITAN_LOCATION_ID, "CoordsFormat1", nil);
- TitanSetVar(TITAN_LOCATION_ID, "CoordsFormat2", nil);
- TitanSetVar(TITAN_LOCATION_ID, "CoordsFormat3", 1);
- TitanPanelButton_UpdateButton(TITAN_LOCATION_ID);
- end
- info.checked = TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat3");
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
- end
- return
- end
-
- -- level 1
- TitanPanelRightClickMenu_AddTitle(TitanPlugins[TITAN_LOCATION_ID].menuText);
-
- info = {};
- info.notCheckable = true
- info.text = L["TITAN_PANEL_OPTIONS"];
- info.value = "Options"
- info.hasArrow = 1;
- L_UIDropDownMenu_AddButton(info);
-
- info = {};
- info.notCheckable = true
- info.text = L["TITAN_LOCATION_FORMAT_COORD_LABEL"];
- info.value = "CoordFormat"
- info.hasArrow = 1;
- L_UIDropDownMenu_AddButton(info);
-
- TitanPanelRightClickMenu_AddSpacer();
- TitanPanelRightClickMenu_AddToggleIcon(TITAN_LOCATION_ID);
- TitanPanelRightClickMenu_AddToggleLabelText(TITAN_LOCATION_ID);
- TitanPanelRightClickMenu_AddToggleColoredText(TITAN_LOCATION_ID);
- TitanPanelRightClickMenu_AddSpacer();
- TitanPanelRightClickMenu_AddCommand(L["TITAN_PANEL_MENU_HIDE"], TITAN_LOCATION_ID, TITAN_PANEL_MENU_FUNC_HIDE);
-end
-
--- **************************************************************************
--- NAME : TitanPanelLocationButton_ToggleDisplay()
--- DESC : Set option to show zone text
--- **************************************************************************
-function TitanPanelLocationButton_ToggleDisplay()
- TitanToggleVar(TITAN_LOCATION_ID, "ShowZoneText");
- TitanPanelButton_UpdateButton(TITAN_LOCATION_ID);
-end
-
--- **************************************************************************
--- NAME : TitanPanelLocationButton_ToggleLocationOnMap()
--- DESC : Set option to show player coordinates on map
--- **************************************************************************
-function TitanPanelLocationButton_ToggleLocationOnMap()
- TitanToggleVar(TITAN_LOCATION_ID, "ShowCoordsOnMap");
- if (TitanGetVar(TITAN_LOCATION_ID, "ShowCoordsOnMap")) then
- TitanMapPlayerLocation:Show();
- else
- TitanMapPlayerLocation:Hide();
- end
-end
-
--- **************************************************************************
--- NAME : TitanPanelLocationButton_ToggleCursorLocationOnMap()
--- DESC : Set option to show cursor coordinates on map
--- **************************************************************************
-function TitanPanelLocationButton_ToggleCursorLocationOnMap()
- TitanToggleVar(TITAN_LOCATION_ID, "ShowCursorOnMap");
- if (TitanGetVar(TITAN_LOCATION_ID, "ShowCursorOnMap")) then
- TitanMapCursorLocation:Show();
- else
- TitanMapCursorLocation:Hide();
- end
-end
-
-function TitanPanelLocationButton_ToggleLocOnMiniMap()
- TitanToggleVar(TITAN_LOCATION_ID, "ShowLocOnMiniMap");
- TitanPanelLocationButton_LocOnMiniMap()
-end
-
-function TitanPanelLocationButton_LocOnMiniMap()
- if TitanGetVar(TITAN_LOCATION_ID, "ShowLocOnMiniMap") then
- MinimapBorderTop:Show()
- MinimapZoneTextButton:Show()
- MiniMapWorldMapButton:Show()
- else
- MinimapBorderTop:Hide()
- MinimapZoneTextButton:Hide()
- MiniMapWorldMapButton:Hide()
- end
- -- adjust MiniMap frame if needed
- TitanMovableFrame_CheckFrames(1);
- TitanMovableFrame_MoveFrames(1, TitanPanelGetVar("ScreenAdjust"));
-end
-
--- **************************************************************************
--- NAME : TitanPanelLocationButton_ToggleColor()
--- DESC : Set option to show colored text
--- **************************************************************************
-function TitanPanelLocationButton_ToggleColor()
- TitanToggleVar(TITAN_LOCATION_ID, "ShowColoredText");
- TitanPanelButton_UpdateButton(TITAN_LOCATION_ID);
-end
-
--- **************************************************************************
--- NAME : TitanMapFrame_OnUpdate()
--- DESC : Update coordinates on map
--- **************************************************************************
-function TitanMapFrame_OnUpdate(self, elapsed)
- -- using :Hide / :Show prevents coords from running
- -- TitanMapFrame:Hide() -- hide parent
-
- -- Determine the text to show for player coords
-
---[[
- if WorldMapFrame:IsVisible() then
- TitanMapPlayerLocation:SetText("");
- else
- self.px, self.py = TitanPanelGetPlayerMapPosition();
- if self.px == nil then self.px = 0 end
- if self.py == nil then self.py = 0 end
- if self.px == 0 and self.py == 0 then
- playerLocationText = L["TITAN_LOCATION_NO_COORDS"]
- else
- if (TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat1")) then
- playerLocationText = format(L["TITAN_LOCATION_FORMAT"], 100 * self.px, 100 * self.py);
- elseif (TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat2")) then
- playerLocationText = format(L["TITAN_LOCATION_FORMAT2"], 100 * self.px, 100 * self.py);
- elseif (TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat3")) then
- playerLocationText = format(L["TITAN_LOCATION_FORMAT3"], 100 * self.px, 100 * self.py);
- end
- end
- TitanMapPlayerLocation:SetText(format(L["TITAN_LOCATION_MAP_PLAYER_COORDS_TEXT"], TitanUtils_GetHighlightText(playerLocationText)));
- end
-]]
- if WorldMapFrame:IsMaximized() then
- self.px, self.py = TitanPanelGetPlayerMapPosition();
- if self.px == nil then self.px = 0 end
- if self.py == nil then self.py = 0 end
- if self.px == 0 and self.py == 0 then
- playerLocationText = L["TITAN_LOCATION_NO_COORDS"]
- else
- if (TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat1")) then
- playerLocationText = format(L["TITAN_LOCATION_FORMAT"], 100 * self.px, 100 * self.py);
- elseif (TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat2")) then
- playerLocationText = format(L["TITAN_LOCATION_FORMAT2"], 100 * self.px, 100 * self.py);
- elseif (TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat3")) then
- playerLocationText = format(L["TITAN_LOCATION_FORMAT3"], 100 * self.px, 100 * self.py);
- end
- end
- TitanMapPlayerLocation:SetText(format(L["TITAN_LOCATION_MAP_PLAYER_COORDS_TEXT"], TitanUtils_GetHighlightText(playerLocationText)));
- else
- TitanMapPlayerLocation:SetText("");
- end
-
- -- Determine the text to show for cursor coords
-
- -- calc cursor position on the map
- local cursorLocationText, playerLocationText;
- local x, y = GetCursorPosition();
- x = x / WorldMapFrame:GetEffectiveScale();
- y = y / WorldMapFrame:GetEffectiveScale();
-
- local centerX, centerY = WorldMapFrame:GetCenter();
- local width = WorldMapFrame:GetWidth();
- local height = WorldMapFrame:GetHeight();
- local cx = ((x - (centerX - (width/2))) / width) -- OFFSET_X
- local cy = ((centerY + (height/2) - y ) / height) -- OFFSET_Y
- -- cut off if the cursor coords are beyond the map, show 0,0
- if cx < 0 or cx > 1 or cy < 0 or cy > 1 then
- cx = 0
- cy = 0
- end
- -- per the user requested format
- if (TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat1")) then
- cursorLocationText = format(L["TITAN_LOCATION_FORMAT"], 100 * cx, 100 * cy);
- elseif (TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat2")) then
- cursorLocationText = format(L["TITAN_LOCATION_FORMAT2"], 100 * cx, 100 * cy);
- elseif (TitanGetVar(TITAN_LOCATION_ID, "CoordsFormat3")) then
- cursorLocationText = format(L["TITAN_LOCATION_FORMAT3"], 100 * cx, 100 * cy);
- end
- if (TitanGetVar(TITAN_LOCATION_ID, "ShowCoordsOnMap")) then
- TitanMapCursorLocation:SetText(format(L["TITAN_LOCATION_MAP_CURSOR_COORDS_TEXT"],
- TitanUtils_GetHighlightText(cursorLocationText)));
- else
- TitanMapCursorLocation:SetText("");
- end
-
- -- Determine where to show the text
-
- -- *
- TitanMapPlayerLocation:ClearAllPoints()
---[[
- if ( WorldMapFrame:IsVisible() ) then
- -- **
- TitanMapPlayerLocation:SetPoint("TOPLEFT", WorldMapFrame, "TOPLEFT", 75, -12)
- else
- x_offset = (WorldMapFrame:GetWidth() / 1.6) -- left fifth of map
- - (TitanMapPlayerLocation:GetWidth() / 1.8) -- center of coords
- TitanMapPlayerLocation:SetPoint("BOTTOMLEFT", WorldMapFrame, "BOTTOMLEFT", x_offset, 10)
- end
-]]
- if WorldMapFrame:IsMaximized() then
- x_offset = (WorldMapFrame:GetWidth() / 1.6) -- left fifth of map
- - (TitanMapPlayerLocation:GetWidth() / 1.8) -- center of coords
- TitanMapPlayerLocation:SetPoint("BOTTOMLEFT", WorldMapFrame, "BOTTOMLEFT", x_offset, 10)
- else
- TitanMapPlayerLocation:SetPoint("TOPLEFT", WorldMapFrame, "TOPLEFT", 75, -12)
- end
-end
-
--- **************************************************************************
--- NAME : TitanPanelGetPlayerMapPosition()
--- DESC : Get the player coordinates
--- VARS : x = location on x axis, y = location on y axis
--- **************************************************************************
-function TitanPanelGetPlayerMapPosition()
- local mapID = C_Map.GetBestMapForUnit("player")
- if mapID == nil then
- return nil, nil
- end
-
- local position = C_Map.GetPlayerMapPosition(mapID, "player")
- if position == nil then
- return nil, nil
- else
- return position:GetXY()
- end
-end
diff --git a/TitanPerformance/TitanPerformance.lua b/TitanPerformance/TitanPerformance.lua
deleted file mode 100644
index 5e7ffc8..0000000
--- a/TitanPerformance/TitanPerformance.lua
+++ /dev/null
@@ -1,780 +0,0 @@
--- **************************************************************************
--- * TitanPerformance.lua
--- *
--- * By: TitanMod, Dark Imakuni, Adsertor and the Titan Development Team
--- **************************************************************************
-
--- ******************************** Constants *******************************
-local TITAN_PERFORMANCE_ID = "Performance";
-local TITAN_PERF_FRAME_SHOW_TIME = 0.5;
-local updateTable = {TITAN_PERFORMANCE_ID, TITAN_PANEL_UPDATE_ALL};
-
-local TITAN_FPS_THRESHOLD_TABLE = {
- Values = { 20, 30 },
- Colors = { RED_FONT_COLOR, NORMAL_FONT_COLOR, GREEN_FONT_COLOR },
-}
-local TITAN_LATENCY_THRESHOLD_TABLE = {
- Values = { PERFORMANCEBAR_LOW_LATENCY, PERFORMANCEBAR_MEDIUM_LATENCY },
- Colors = { GREEN_FONT_COLOR, NORMAL_FONT_COLOR, RED_FONT_COLOR },
-}
-local TITAN_MEMORY_RATE_THRESHOLD_TABLE = {
- Values = { 1, 2 },
- Colors = { GREEN_FONT_COLOR, NORMAL_FONT_COLOR, RED_FONT_COLOR },
-}
-
--- ******************************** Variables *******************************
-local _G = getfenv(0);
-local topAddOns;
-local memUsageSinceGC = {};
-local counter = 1; --counter for active addons
-local L = LibStub("AceLocale-3.0"):GetLocale("Titan", true)
-local AceTimer = LibStub("AceTimer-3.0")
-local PerfTimer = nil;
--- ******************************** Functions *******************************
-
--- **************************************************************************
--- NAME : TitanPanelPerformanceButton_OnLoad()
--- DESC : Registers the plugin upon it loading
--- **************************************************************************
-function TitanPanelPerformanceButton_OnLoad(self)
- self.registry = {
- id = TITAN_PERFORMANCE_ID,
- category = "Built-ins",
- version = TITAN_VERSION,
- menuText = L["TITAN_PERFORMANCE_MENU_TEXT"],
- buttonTextFunction = "TitanPanelPerformanceButton_GetButtonText";
- tooltipCustomFunction = TitanPanelPerformanceButton_SetTooltip;
- icon = "Interface\\AddOns\\TitanPerformance\\TitanPerformance",
- iconWidth = 16,
- controlVariables = {
- ShowIcon = true,
- ShowLabelText = true,
- ShowRegularText = false,
- ShowColoredText = true,
- DisplayOnRightSide = false,
- },
- savedVariables = {
- ShowFPS = 1,
- ShowLatency = 1,
- ShowWorldLatency = 1,
- ShowMemory = 1,
- ShowAddonMemory = false,
- ShowAddonIncRate = false,
- NumOfAddons = 5,
- AddonMemoryType = 1,
- ShowIcon = 1,
- ShowLabelText = false,
- ShowColoredText = 1,
- }
- };
-
- self.fpsSampleCount = 0;
- self:RegisterEvent("PLAYER_ENTERING_WORLD");
-end
-
-function TitanPanelPerformanceButton_OnShow()
- if not PerfTimer then
- PerfTimer = AceTimer.ScheduleRepeatingTimer("TitanPanelPerformance", TitanPanelPerformanceButtonHandle_OnUpdate, 1.5 )
- end
-end
-
-function TitanPanelPerformanceButton_OnHide()
- AceTimer.CancelTimer("TitanPanelPerformance", PerfTimer, true)
- PerfTimer = nil;
-end
-
--- **************************************************************************
--- NAME : TitanPanelPerformanceButton_OnUpdate(elapsed)
--- DESC : Update button data
--- VARS : elapsed = <research>
--- **************************************************************************
-function TitanPanelPerformanceButtonHandle_OnUpdate()
- TitanPanelPluginHandle_OnUpdate(updateTable);
- if not (TitanPanelRightClickMenu_IsVisible()) and _G["TitanPanelPerfControlFrame"]:IsVisible() and not (MouseIsOver(_G["TitanPanelPerfControlFrame"])) then
- _G["TitanPanelPerfControlFrame"]:Hide();
- end
-end
-
-function TitanPanelPerformanceButton_OnEvent(self, event, ...)
- if event == "PLAYER_ENTERING_WORLD" then
- local i;
- topAddOns = {}
- -- scan how many addons are active
- local count = GetNumAddOns();
- local ActiveAddons = 0;
- for i=1, count do
- if IsAddOnLoaded(i) then
- ActiveAddons = ActiveAddons + 1;
- end
- end
-
---TitanDebug("NumOfAddons: " .. TitanGetVar(TITAN_PERFORMANCE_ID, "NumOfAddons"));
---TitanDebug("ActiveAddons: " .. ActiveAddons);
-
- if ActiveAddons < TitanGetVar(TITAN_PERFORMANCE_ID, "NumOfAddons") then
- counter = ActiveAddons;
- else
- counter = TitanGetVar(TITAN_PERFORMANCE_ID, "NumOfAddons");
- end
- --set the counter to the proper number of active addons that are being monitored
- for i=1, counter do
- topAddOns[i] = {name = '', value = 0}
- end
- end
-end
-
--- **************************************************************************
--- NAME : TitanPanelPerformanceButton_GetButtonText(id)
--- DESC : Calculate performance based logic for button text
--- VARS : id = button ID
--- **************************************************************************
-function TitanPanelPerformanceButton_GetButtonText(id)
- local button = _G["TitanPanelPerformanceButton"];
- local color, fpsRichText, latencyRichText, memoryRichText;
- local showFPS = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowFPS");
- local showLatency = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowLatency");
- local showWorldLatency = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowWorldLatency")
- local showMemory = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowMemory");
-
- -- Update real time data
- TitanPanelPerformanceButton_UpdateData()
-
- -- FPS text
- if ( showFPS ) then
- local fpsText = format(L["TITAN_FPS_FORMAT"], button.fps);
- if ( TitanGetVar(TITAN_PERFORMANCE_ID, "ShowColoredText") ) then
- color = TitanUtils_GetThresholdColor(TITAN_FPS_THRESHOLD_TABLE, button.fps);
- fpsRichText = TitanUtils_GetColoredText(fpsText, color);
- else
- fpsRichText = TitanUtils_GetHighlightText(fpsText);
- end
- end
-
- -- Latency text
- latencyRichText = ""
- if ( showLatency ) then
- local latencyText = format(L["TITAN_LATENCY_FORMAT"], button.latencyHome);
- if ( TitanGetVar(TITAN_PERFORMANCE_ID, "ShowColoredText") ) then
- color = TitanUtils_GetThresholdColor(TITAN_LATENCY_THRESHOLD_TABLE, button.latencyHome);
- latencyRichText = TitanUtils_GetColoredText(latencyText, color);
- else
- latencyRichText = TitanUtils_GetHighlightText(latencyText)
- end
- end
-
- if ( showWorldLatency ) then
- local latencyWorldText = format(L["TITAN_LATENCY_FORMAT"], button.latencyWorld);
- if ( showLatency ) then
- latencyRichText = latencyRichText.."/"
- end
- if ( TitanGetVar(TITAN_PERFORMANCE_ID, "ShowColoredText") ) then
- color = TitanUtils_GetThresholdColor(TITAN_LATENCY_THRESHOLD_TABLE, button.latencyWorld);
- latencyRichText = latencyRichText..TitanUtils_GetColoredText(latencyWorldText, color);
- else
- latencyRichText = latencyRichText..TitanUtils_GetHighlightText(latencyWorldText);
- end
- end
-
- -- Memory text
- if ( showMemory ) then
- local memoryText = format(L["TITAN_MEMORY_FORMAT"], button.memory/1024);
- memoryRichText = TitanUtils_GetHighlightText(memoryText);
- end
-
- if ( showFPS ) then
- if ( showLatency or showWorldLatency ) then
- if ( showMemory ) then
- return L["TITAN_FPS_BUTTON_LABEL"], fpsRichText, L["TITAN_LATENCY_BUTTON_LABEL"], latencyRichText, L["TITAN_MEMORY_BUTTON_LABEL"], memoryRichText;
- else
- return L["TITAN_FPS_BUTTON_LABEL"], fpsRichText, L["TITAN_LATENCY_BUTTON_LABEL"], latencyRichText;
- end
- else
- if ( showMemory ) then
- return L["TITAN_FPS_BUTTON_LABEL"], fpsRichText, L["TITAN_MEMORY_BUTTON_LABEL"], memoryRichText;
- else
- return L["TITAN_FPS_BUTTON_LABEL"], fpsRichText;
- end
- end
- else
- if ( showLatency or showWorldLatency ) then
- if ( showMemory ) then
- return L["TITAN_LATENCY_BUTTON_LABEL"], latencyRichText, L["TITAN_MEMORY_BUTTON_LABEL"], memoryRichText;
- else
- return L["TITAN_LATENCY_BUTTON_LABEL"], latencyRichText;
- end
- else
- if ( showMemory ) then
- return L["TITAN_MEMORY_BUTTON_LABEL"], memoryRichText;
- else
- return;
- end
- end
- end
-end
-
--- **************************************************************************
--- NAME : Stats_UpdateAddonsList(self, watchingCPU)
--- DESC : Execute garbage collection for Leftclick on button
--- **************************************************************************
-local function Stats_UpdateAddonsList(self, watchingCPU)
- if(watchingCPU) then
- UpdateAddOnCPUUsage()
- else
- UpdateAddOnMemoryUsage()
- end
-
- local total = 0
- local i,j,k;
- local showAddonRate = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowAddonIncRate");
- for i=1, GetNumAddOns() do
- local value = (watchingCPU and GetAddOnCPUUsage(i)) or GetAddOnMemoryUsage(i)
- local name = GetAddOnInfo(i)
- total = total + value
-
- for j,addon in ipairs(topAddOns) do
- if(value > addon.value) then
- for k = counter, 1, -1 do
- if(k == j) then
- topAddOns[k].value = value
- topAddOns[k].name = GetAddOnInfo(i)
- break
- elseif(k ~= 1) then
- topAddOns[k].value = topAddOns[k-1].value
- topAddOns[k].name = topAddOns[k-1].name
- end
- end
- break
- end
- end
- end
-
- GameTooltip:AddLine(' ')
-
- if (total > 0) then
- if(watchingCPU) then
- GameTooltip:AddLine('|cffffffff'..L["TITAN_PERFORMANCE_ADDON_CPU_USAGE_LABEL"])
- else
- GameTooltip:AddLine('|cffffffff'..L["TITAN_PERFORMANCE_ADDON_MEM_USAGE_LABEL"])
- end
-
- if not watchingCPU then
- if (showAddonRate == 1) then
- GameTooltip:AddDoubleLine(LIGHTYELLOW_FONT_COLOR_CODE..L["TITAN_PERFORMANCE_ADDON_NAME_LABEL"],LIGHTYELLOW_FONT_COLOR_CODE..L["TITAN_PERFORMANCE_ADDON_USAGE_LABEL"].."/"..L["TITAN_PERFORMANCE_ADDON_RATE_LABEL"]..":")
- else
- GameTooltip:AddDoubleLine(LIGHTYELLOW_FONT_COLOR_CODE..L["TITAN_PERFORMANCE_ADDON_NAME_LABEL"],LIGHTYELLOW_FONT_COLOR_CODE..L["TITAN_PERFORMANCE_ADDON_USAGE_LABEL"]..":")
- end
- end
-
- if watchingCPU then
- GameTooltip:AddDoubleLine(LIGHTYELLOW_FONT_COLOR_CODE..L["TITAN_PERFORMANCE_ADDON_NAME_LABEL"],LIGHTYELLOW_FONT_COLOR_CODE..L["TITAN_PERFORMANCE_ADDON_USAGE_LABEL"]..":")
- end
-
- for _,addon in ipairs(topAddOns) do
- if(watchingCPU) then
- local diff = addon.value/total * 100;
- local incrate = "";
- incrate = format("(%.2f%%)", diff);
- if (showAddonRate == 1) then
- GameTooltip:AddDoubleLine(NORMAL_FONT_COLOR_CODE..addon.name," |cffffffff"..format("%.3f",addon.value)..L["TITAN_MILLISECOND"].." "..GREEN_FONT_COLOR_CODE..incrate);
- else
- GameTooltip:AddDoubleLine(NORMAL_FONT_COLOR_CODE..addon.name," |cffffffff"..format("%.3f",addon.value)..L["TITAN_MILLISECOND"]);
- end
- else
- local diff = addon.value - (memUsageSinceGC[addon.name])
- if diff < 0 or memUsageSinceGC[addon.name]== 0 then
- memUsageSinceGC[addon.name] = addon.value;
- end
- local incrate = "";
- if diff > 0 then
- incrate = format("(+%.2f) "..L["TITAN_KILOBYTES_PER_SECOND"], diff);
- end
- if (showAddonRate == 1) then
- if TitanGetVar(TITAN_PERFORMANCE_ID, "AddonMemoryType") == 1 then
- GameTooltip:AddDoubleLine(NORMAL_FONT_COLOR_CODE..addon.name," |cffffffff"..format(L["TITAN_MEMORY_FORMAT"], addon.value/1000).." "..GREEN_FONT_COLOR_CODE..incrate)
- else
- if addon.value > 1000 then
- GameTooltip:AddDoubleLine(NORMAL_FONT_COLOR_CODE..addon.name," |cffffffff"..format(L["TITAN_MEMORY_FORMAT"], addon.value/1000).." "..GREEN_FONT_COLOR_CODE..incrate)
- else
- GameTooltip:AddDoubleLine(NORMAL_FONT_COLOR_CODE..addon.name," |cffffffff"..format(L["TITAN_MEMORY_FORMAT_KB"], addon.value).." "..GREEN_FONT_COLOR_CODE..incrate)
- end
- end
- else
- if TitanGetVar(TITAN_PERFORMANCE_ID, "AddonMemoryType") == 1 then
- GameTooltip:AddDoubleLine(NORMAL_FONT_COLOR_CODE..addon.name," |cffffffff"..format(L["TITAN_MEMORY_FORMAT"], addon.value/1000))
- else
- if addon.value > 1000 then
- GameTooltip:AddDoubleLine(NORMAL_FONT_COLOR_CODE..addon.name," |cffffffff"..format(L["TITAN_MEMORY_FORMAT"], addon.value/1000))
- else
- GameTooltip:AddDoubleLine(NORMAL_FONT_COLOR_CODE..addon.name," |cffffffff"..format(L["TITAN_MEMORY_FORMAT_KB"], addon.value))
- end
- end
- end
- end
- end
-
- GameTooltip:AddLine(' ')
-
- if(watchingCPU) then
- GameTooltip:AddDoubleLine(LIGHTYELLOW_FONT_COLOR_CODE..L["TITAN_PERFORMANCE_ADDON_TOTAL_CPU_USAGE_LABEL"], format("%.3f",total)..L["TITAN_MILLISECOND"])
- else
- if TitanGetVar(TITAN_PERFORMANCE_ID, "AddonMemoryType") == 1 then
- GameTooltip:AddDoubleLine(LIGHTYELLOW_FONT_COLOR_CODE..L["TITAN_PERFORMANCE_ADDON_TOTAL_MEM_USAGE_LABEL"],format(L["TITAN_MEMORY_FORMAT"], total/1000))
- else
- if total > 1000 then
- GameTooltip:AddDoubleLine(LIGHTYELLOW_FONT_COLOR_CODE..L["TITAN_PERFORMANCE_ADDON_TOTAL_MEM_USAGE_LABEL"], format(L["TITAN_MEMORY_FORMAT"], total/1000))
- else
- GameTooltip:AddDoubleLine(LIGHTYELLOW_FONT_COLOR_CODE..L["TITAN_PERFORMANCE_ADDON_TOTAL_MEM_USAGE_LABEL"], format(L["TITAN_MEMORY_FORMAT_KB"], total))
- end
- end
- end
- end
-end
-
--- **************************************************************************
--- NAME : TitanPanelPerformanceButton_SetTooltip()
--- DESC : Display tooltip text
--- **************************************************************************
-function TitanPanelPerformanceButton_SetTooltip()
- local button = _G["TitanPanelPerformanceButton"];
- local showFPS = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowFPS");
- local showLatency = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowLatency");
- local showWorldLatency = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowWorldLatency")
- local showMemory = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowMemory");
- local showAddonMemory = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowAddonMemory");
-
- -- Tooltip title
- GameTooltip:SetText(L["TITAN_PERFORMANCE_TOOLTIP"], HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b);
-
- -- FPS tooltip
- if ( showFPS ) then
- local fpsText = format(L["TITAN_FPS_FORMAT"], button.fps);
- local avgFPSText = format(L["TITAN_FPS_FORMAT"], button.avgFPS);
- local minFPSText = format(L["TITAN_FPS_FORMAT"], button.minFPS);
- local maxFPSText = format(L["TITAN_FPS_FORMAT"], button.maxFPS);
-
- GameTooltip:AddLine("\n");
- GameTooltip:AddLine(TitanUtils_GetHighlightText(L["TITAN_FPS_TOOLTIP"]));
- GameTooltip:AddDoubleLine(L["TITAN_FPS_TOOLTIP_CURRENT_FPS"], TitanUtils_GetHighlightText(fpsText));
- GameTooltip:AddDoubleLine(L["TITAN_FPS_TOOLTIP_AVG_FPS"], TitanUtils_GetHighlightText(avgFPSText));
- GameTooltip:AddDoubleLine(L["TITAN_FPS_TOOLTIP_MIN_FPS"], TitanUtils_GetHighlightText(minFPSText));
- GameTooltip:AddDoubleLine(L["TITAN_FPS_TOOLTIP_MAX_FPS"], TitanUtils_GetHighlightText(maxFPSText));
- end
-
- -- Latency tooltip
- if ( showLatency or showWorldLatency ) then
- local latencyText = format(L["TITAN_LATENCY_FORMAT"], button.latencyHome);
- local latencyWorldText = format(L["TITAN_LATENCY_FORMAT"], button.latencyWorld);
- local bandwidthInText = format(L["TITAN_LATENCY_BANDWIDTH_FORMAT"], button.bandwidthIn);
- local bandwidthOutText = format(L["TITAN_LATENCY_BANDWIDTH_FORMAT"], button.bandwidthOut);
-
- GameTooltip:AddLine("\n");
- GameTooltip:AddLine(TitanUtils_GetHighlightText(L["TITAN_LATENCY_TOOLTIP"]));
- if showLatency then GameTooltip:AddDoubleLine(L["TITAN_LATENCY_TOOLTIP_LATENCY_HOME"], TitanUtils_GetHighlightText(latencyText)); end
- if showWorldLatency then GameTooltip:AddDoubleLine(L["TITAN_LATENCY_TOOLTIP_LATENCY_WORLD"], TitanUtils_GetHighlightText(latencyWorldText)); end
- GameTooltip:AddDoubleLine(L["TITAN_LATENCY_TOOLTIP_BANDWIDTH_IN"], TitanUtils_GetHighlightText(bandwidthInText));
- GameTooltip:AddDoubleLine(L["TITAN_LATENCY_TOOLTIP_BANDWIDTH_OUT"], TitanUtils_GetHighlightText(bandwidthOutText));
- end
-
- -- Memory tooltip
- if ( showMemory ) then
- local memoryText = format(L["TITAN_MEMORY_FORMAT"], button.memory/1024);
- local initialMemoryText = format(L["TITAN_MEMORY_FORMAT"], button.initialMemory/1024);
- local sessionTime = time() - button.startSessionTime;
- local rateRichText, timeToGCRichText, rate, timeToGC, color;
- if ( sessionTime == 0 ) then
- rateRichText = TitanUtils_GetHighlightText("N/A");
- else
- rate = (button.memory - button.initialMemory) / sessionTime;
- color = TitanUtils_GetThresholdColor(TITAN_MEMORY_RATE_THRESHOLD_TABLE, rate);
- rateRichText = TitanUtils_GetColoredText(format(L["TITAN_MEMORY_RATE_FORMAT"], rate), color);
- end
- if ( button.memory == button.initialMemory ) then
- timeToGCRichText = TitanUtils_GetHighlightText("N/A");
- end
-
- GameTooltip:AddLine("\n");
- GameTooltip:AddLine(TitanUtils_GetHighlightText(L["TITAN_MEMORY_TOOLTIP"]));
- GameTooltip:AddDoubleLine(L["TITAN_MEMORY_TOOLTIP_CURRENT_MEMORY"], TitanUtils_GetHighlightText(memoryText));
- GameTooltip:AddDoubleLine(L["TITAN_MEMORY_TOOLTIP_INITIAL_MEMORY"], TitanUtils_GetHighlightText(initialMemoryText));
- GameTooltip:AddDoubleLine(L["TITAN_MEMORY_TOOLTIP_INCREASING_RATE"], rateRichText);
- end
-
- if ( showAddonMemory == 1 ) then
- for _,i in pairs(topAddOns) do
- i.name = '';
- i.value = 0;
- end
- Stats_UpdateAddonsList(self, GetCVar('scriptProfile') == '1' and not IsModifierKeyDown())
- end
-
- GameTooltip:AddLine(TitanUtils_GetGreenText(L["TITAN_PERFORMANCE_TOOLTIP_HINT"]));
-end
-
--- **************************************************************************
--- NAME : TitanPanelRightClickMenu_PreparePerformanceMenu()
--- DESC : Display rightclick menu options
--- **************************************************************************
-function TitanPanelRightClickMenu_PreparePerformanceMenu()
- local info
-
- -- level 3
- if _G["L_UIDROPDOWNMENU_MENU_LEVEL"] == 3 and _G["L_UIDROPDOWNMENU_MENU_VALUE"]== "AddonControlFrame" then
- TitanPanelPerfControlFrame:Show()
- return
- end
-
- -- level 2
- if _G["L_UIDROPDOWNMENU_MENU_LEVEL"] == 2 then
- if _G["L_UIDROPDOWNMENU_MENU_VALUE"] == "Options" then
- TitanPanelRightClickMenu_AddTitle(L["TITAN_PANEL_OPTIONS"], _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
-
- local temptable = {TITAN_PERFORMANCE_ID, "ShowFPS"};
- info = {};
- info.text = L["TITAN_PERFORMANCE_MENU_SHOW_FPS"];
- info.value = temptable;
- info.func = function()
- TitanPanelRightClickMenu_ToggleVar(temptable)
- end
- info.checked = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowFPS");
- info.keepShownOnClick = 1;
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
-
- local temptable = {TITAN_PERFORMANCE_ID, "ShowLatency"};
- info = {};
- info.text = L["TITAN_PERFORMANCE_MENU_SHOW_LATENCY"];
- info.value = temptable;
- info.func = function()
- TitanPanelRightClickMenu_ToggleVar(temptable)
- end
- info.checked = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowLatency");
- info.keepShownOnClick = 1;
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
-
- local temptable = {TITAN_PERFORMANCE_ID, "ShowWorldLatency"};
- info = {};
- info.text = L["TITAN_PERFORMANCE_MENU_SHOW_LATENCY_WORLD"];
- info.value = temptable;
- info.func = function()
- TitanPanelRightClickMenu_ToggleVar(temptable)
- end
- info.checked = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowWorldLatency");
- info.keepShownOnClick = 1;
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
-
- local temptable = {TITAN_PERFORMANCE_ID, "ShowMemory"};
- info = {};
- info.text = L["TITAN_PERFORMANCE_MENU_SHOW_MEMORY"];
- info.value = temptable;
- info.func = function()
- TitanPanelRightClickMenu_ToggleVar(temptable)
- end
- info.checked = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowMemory");
- info.keepShownOnClick = 1;
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
- end
-
- if _G["L_UIDROPDOWNMENU_MENU_VALUE"] == "AddonUsage" then
- TitanPanelRightClickMenu_AddTitle(L["TITAN_PERFORMANCE_ADDONS"], _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
-
- local temptable = {TITAN_PERFORMANCE_ID, "ShowAddonMemory"};
- info = {};
- info.text = L["TITAN_PERFORMANCE_MENU_SHOW_ADDONS"];
- info.value = temptable;
- info.func = function()
- TitanPanelRightClickMenu_ToggleVar(temptable)
- end
- info.checked = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowAddonMemory");
- info.keepShownOnClick = 1;
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
-
- local temptable = {TITAN_PERFORMANCE_ID, "ShowAddonIncRate"};
- info = {};
- info.text = L["TITAN_PERFORMANCE_MENU_SHOW_ADDON_RATE"];
- info.value = temptable;
- info.func = function()
- TitanPanelRightClickMenu_ToggleVar(temptable)
- end
- info.checked = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowAddonIncRate");
- info.keepShownOnClick = 1;
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
-
- info = {};
- info.notCheckable = true
- info.text = L["TITAN_PERFORMANCE_CONTROL_TOOLTIP"]..LIGHTYELLOW_FONT_COLOR_CODE..tostring(TitanGetVar(TITAN_PERFORMANCE_ID, "NumOfAddons"));
- info.value = "AddonControlFrame"
- info.hasArrow = 1;
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
- end
-
- if _G["L_UIDROPDOWNMENU_MENU_VALUE"] == "AddonMemoryFormat" then
- TitanPanelRightClickMenu_AddTitle(L["TITAN_PERFORMANCE_ADDON_MEM_FORMAT_LABEL"], _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
- info = {};
- info.text = L["TITAN_MEGABYTE"];
- info.checked = function() if TitanGetVar(TITAN_PERFORMANCE_ID, "AddonMemoryType") == 1 then return true else return nil end
- end
- info.func = function() TitanSetVar(TITAN_PERFORMANCE_ID, "AddonMemoryType", 1) end
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
- info = {};
- info.text = L["TITAN_MEMORY_KBMB_LABEL"];
- info.checked = function() if TitanGetVar(TITAN_PERFORMANCE_ID, "AddonMemoryType") == 2 then return true else return nil end
- end
- info.func = function() TitanSetVar(TITAN_PERFORMANCE_ID, "AddonMemoryType", 2) end
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
- end
-
- if _G["L_UIDROPDOWNMENU_MENU_VALUE"] == "CPUProfiling" then
- if ( GetCVar("scriptProfile") == "1" ) then
- TitanPanelRightClickMenu_AddTitle(L["TITAN_PERFORMANCE_MENU_CPUPROF_LABEL"]..": "..GREEN_FONT_COLOR_CODE..L["TITAN_PANEL_MENU_ENABLED"], _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
- info = {};
- info.text = L["TITAN_PERFORMANCE_MENU_CPUPROF_LABEL_OFF"]..GREEN_FONT_COLOR_CODE..L["TITAN_PANEL_MENU_RELOADUI"];
- info.func = function() SetCVar("scriptProfile", "0", 1) ReloadUI() end
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
- else
- TitanPanelRightClickMenu_AddTitle(L["TITAN_PERFORMANCE_MENU_CPUPROF_LABEL"]..": "..RED_FONT_COLOR_CODE..L["TITAN_PANEL_MENU_DISABLED"], _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
- info = {};
- info.text = L["TITAN_PERFORMANCE_MENU_CPUPROF_LABEL_ON"]..GREEN_FONT_COLOR_CODE..L["TITAN_PANEL_MENU_RELOADUI"];
- info.func = function() SetCVar("scriptProfile", "1", 1) ReloadUI() end
- L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]);
- end
- end
- return
- end
-
- -- level 1
- TitanPanelRightClickMenu_AddTitle(TitanPlugins[TITAN_PERFORMANCE_ID].menuText);
-
- info = {};
- info.notCheckable = true
- info.text = L["TITAN_PANEL_OPTIONS"];
- info.value = "Options"
- info.hasArrow = 1;
- L_UIDropDownMenu_AddButton(info);
-
- info = {};
- info.notCheckable = true
- info.text = L["TITAN_PERFORMANCE_ADDONS"];
- info.value = "AddonUsage"
- info.hasArrow = 1;
- L_UIDropDownMenu_AddButton(info);
-
- info = {};
- info.notCheckable = true
- info.text = L["TITAN_PERFORMANCE_ADDON_MEM_FORMAT_LABEL"];
- info.value = "AddonMemoryFormat"
- info.hasArrow = 1;
- L_UIDropDownMenu_AddButton(info);
-
- info = {};
- info.notCheckable = true
- info.text = L["TITAN_PERFORMANCE_MENU_CPUPROF_LABEL"];
- info.value = "CPUProfiling"
- info.hasArrow = 1;
- L_UIDropDownMenu_AddButton(info);
-
- TitanPanelRightClickMenu_AddSpacer();
- TitanPanelRightClickMenu_AddToggleIcon(TITAN_PERFORMANCE_ID);
- TitanPanelRightClickMenu_AddToggleLabelText(TITAN_PERFORMANCE_ID);
- TitanPanelRightClickMenu_AddToggleColoredText(TITAN_PERFORMANCE_ID);
- TitanPanelRightClickMenu_AddSpacer();
- TitanPanelRightClickMenu_AddCommand(L["TITAN_PANEL_MENU_HIDE"], TITAN_PERFORMANCE_ID, TITAN_PANEL_MENU_FUNC_HIDE);
-end
-
--- **************************************************************************
--- NAME : TitanPanelPerformanceButton_UpdateData()
--- DESC : Update button data
--- **************************************************************************
-function TitanPanelPerformanceButton_UpdateData()
- local button = _G["TitanPanelPerformanceButton"];
- local showFPS = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowFPS");
- local showLatency = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowLatency");
- local showWorldLatency = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowWorldLatency")
- local showMemory = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowMemory");
- local showAddonMemory = TitanGetVar(TITAN_PERFORMANCE_ID, "ShowAddonMemory");
-
- -- FPS Data
- if ( showFPS ) then
- button.fps = GetFramerate();
- button.fpsSampleCount = button.fpsSampleCount + 1;
- if (button.fpsSampleCount == 1) then
- button.minFPS = button.fps;
- button.maxFPS = button.fps;
- button.avgFPS = button.fps;
- else
- if (button.fps < button.minFPS) then
- button.minFPS = button.fps;
- elseif (button.fps > button.maxFPS) then
- button.maxFPS = button.fps;
- end
- button.avgFPS = (button.avgFPS * (button.fpsSampleCount - 1) + button.fps) / button.fpsSampleCount;
- end
- end
-
- -- Latency Data
- if ( showLatency or showWorldLatency ) then
- -- bandwidthIn, bandwidthOut, latencyHome, latencyWorld = GetNetStats();
- button.bandwidthIn, button.bandwidthOut, button.latencyHome, button.latencyWorld = GetNetStats();
- end
-
- -- Memory data
- if ( showMemory ) or (showAddonMemory == 1) then
- local previousMemory = button.memory;
- button.memory, button.gcThreshold = gcinfo();
- if ( not button.startSessionTime ) then
- -- Initial data
- local i;
- button.startSessionTime = time();
- button.initialMemory = button.memory;
-
- for i = 1, GetNumAddOns() do
- memUsageSinceGC[GetAddOnInfo(i)] = GetAddOnMemoryUsage(i)
- end
- elseif (previousMemory and button.memory and previousMemory > button.memory) then
- -- Reset data after garbage collection
- local k,i;
- button.startSessionTime = time();
- button.initialMemory = button.memory;
-
- for k in pairs(memUsageSinceGC) do
- memUsageSinceGC[k] = nil
- end
-
- for i = 1, GetNumAddOns() do
- memUsageSinceGC[GetAddOnInfo(i)] = GetAddOnMemoryUsage(i)
- end
- end
- end
-end
-
--- **************************************************************************
--- NAME : TitanPanelPerformanceButton_ResetMemory()
--- DESC : Reset the memory monitoring values
--- **************************************************************************
---function TitanPanelPerformanceButton_ResetMemory()
- -- local button = _G["TitanPanelPerformanceButton"];
- --button.memory, button.gcThreshold = gcinfo();
- --button.initialMemory = button.memory;
- --button.startSessionTime = time();
---end
-
-
--- **************************************************************************
--- NAME : TitanPanelPerformanceButton_OnClick()
--- DESC : Execute garbage collection for Leftclick on button
--- **************************************************************************
-function TitanPanelPerformanceButton_OnClick(self, button)
- if button == "LeftButton" then
- collectgarbage('collect');
- end
-end
-
--- **************************************************************************
--- NAME : TitanPanelPerfControlSlider_OnEnter()
--- DESC : Display tooltip on entering slider
--- **************************************************************************
-function TitanPanelPerfControlSlider_OnEnter(self)
- self.tooltipText = TitanOptionSlider_TooltipText(L["TITAN_PERFORMANCE_CONTROL_TOOLTIP"], TitanGetVar(TITAN_PERFORMANCE_ID, "NumOfAddons"));
- GameTooltip:SetOwner(self, "ANCHOR_BOTTOMLEFT");
- GameTooltip:SetText(self.tooltipText, nil, nil, nil, nil, 1);
-end
-
--- **************************************************************************
--- NAME : TitanPanelPerfControlSlider_OnLeave()
--- DESC : Hide tooltip after leaving slider
--- **************************************************************************
-function TitanPanelPerfControlSlider_OnLeave(self)
- self.tooltipText = nil;
- GameTooltip:Hide();
-end
-
--- **************************************************************************
--- NAME : TitanPanelPerfControlSlider_OnShow()
--- DESC : Display slider tooltip
--- **************************************************************************
-function TitanPanelPerfControlSlider_OnShow(self)
- _G[self:GetName().."Text"]:SetText(TitanGetVar(TITAN_PERFORMANCE_ID, "NumOfAddons"));
- _G[self:GetName().."High"]:SetText(L["TITAN_PERFORMANCE_CONTROL_LOW"]);
- _G[self:GetName().."Low"]:SetText(L["TITAN_PERFORMANCE_CONTROL_HIGH"]);
- self:SetMinMaxValues(1, 40);
- self:SetValueStep(1);
- self:SetValue(41 - TitanGetVar(TITAN_PERFORMANCE_ID, "NumOfAddons"));
- TitanPanelPerfControlFrame:SetBackdropColor(0, 0, 0, 1)
-
- TitanPanelPerfControlFrame:ClearAllPoints();
- TitanPanelPerfControlFrame:SetPoint("LEFT", "DropDownList2Button4ExpandArrow","RIGHT", 9/DropDownList2Button4ExpandArrow:GetScale(),0);
- local offscreenX, offscreenY = TitanUtils_GetOffscreen(TitanPanelPerfControlFrame);
- if offscreenX == -1 or offscreenX == 0 then
- TitanPanelPerfControlFrame:ClearAllPoints();
- TitanPanelPerfControlFrame:SetPoint("LEFT", "DropDownList2Button4ExpandArrow","RIGHT", 9/DropDownList2Button4ExpandArrow:GetScale(),0);
- else
- TitanPanelPerfControlFrame:ClearAllPoints();
- TitanPanelPerfControlFrame:SetPoint("RIGHT", "DropDownList2","LEFT", 3/DropDownList2Button4ExpandArrow:GetScale(),0);
- end
-end
-
--- **************************************************************************
--- NAME : TitanPanelPerfControlSlider_OnValueChanged(arg1)
--- DESC : Display slider tooltip text
--- VARS : arg1 = positive or negative change to apply
--- **************************************************************************
-function TitanPanelPerfControlSlider_OnValueChanged(self, a1)
- _G[self:GetName().."Text"]:SetText(41 - self:GetValue());
-
- if a1 == -1 then
- self:SetValue(self:GetValue() + 1);
- end
-
- if a1 == 1 then
- self:SetValue(self:GetValue() - 1);
- end
-
- TitanSetVar(TITAN_PERFORMANCE_ID, "NumOfAddons", 41 - self:GetValue());
-
- local i;
- topAddOns = {};
- -- scan how many addons are active
- local count = GetNumAddOns();
- local ActiveAddons = 0;
- for i=1, count do
- if IsAddOnLoaded(i) then
- ActiveAddons = ActiveAddons + 1;
- end
- end
-
- if ActiveAddons < TitanGetVar(TITAN_PERFORMANCE_ID, "NumOfAddons") then
- counter = ActiveAddons;
- else
- counter = TitanGetVar(TITAN_PERFORMANCE_ID, "NumOfAddons");
- end
-
- --set the counter to the proper number of active addons that are being monitored
- for i=1, counter do
- topAddOns[i] = {name = '', value = 0}
- end
-
- -- Update GameTooltip
- if (self.tooltipText) then
- self.tooltipText = TitanOptionSlider_TooltipText(L["TITAN_PERFORMANCE_CONTROL_TOOLTIP"], 41 - self:GetValue());
- GameTooltip:SetText(self.tooltipText, nil, nil, nil, nil, 1);
- end
-end
-
--- **************************************************************************
--- NAME : TitanPanelPerfControlFrame_OnLoad()
--- DESC : Create performance option frame
--- **************************************************************************
-function TitanPanelPerfControlFrame_OnLoad(self)
- _G[self:GetName().."Title"]:SetText(L["TITAN_PERFORMANCE_CONTROL_TITLE"]);
- self:SetBackdropBorderColor(1, 1, 1);
- self:SetBackdropColor(0, 0, 0, 1);
-end
-
--- **************************************************************************
--- NAME : TitanPanelPerfControlFrame_OnUpdate(elapsed)
--- DESC : If dropdown is visible, see if its timer has expired. If so, hide frame
--- VARS : elapsed = <research>
--- **************************************************************************
-function TitanPanelPerfControlFrame_OnUpdate(self, elapsed)
- if not MouseIsOver(_G["TitanPanelPerfControlFrame"]) and not MouseIsOver (_G["DropDownList2Button4"]) and not MouseIsOver (_G["DropDownList2Button4ExpandArrow"]) then
- TitanUtils_CheckFrameCounting(self, elapsed);
- end
-end
\ No newline at end of file