mirror of
https://github.com/Blaststar/Questie-Octo-Vanilla.git
synced 2026-10-26 23:20:50 +00:00
1483 lines
51 KiB
Lua
1483 lines
51 KiB
Lua
TITAN_PANEL_FRAME_SPACEING = 20;
|
|
TITAN_PANEL_ICON_SPACEING = 4;
|
|
TITAN_PANEL_BUTTON_WIDTH_CHANGE_TOLERANCE = 10;
|
|
TITAN_AUTOHIDE_WAIT_TIME = 0.5;
|
|
TITAN_PANEL_INITIAL_PLUGINS = {"Coords", "XP", "LootType", "Clock", "Volume", "UIScale", "Trans", "AutoHide", "HonorPlus", "Bag", "Money", "AuxAutoHide", "Repair", "ItemBonuses"};
|
|
TITAN_PANEL_INITIAL_PLUGIN_LOCATION = {"Bar", "Bar", "Bar", "Bar", "Bar", "Bar", "Bar", "Bar", "AuxBar", "AuxBar", "AuxBar", "AuxBar", "AuxBar", "AuxBar"};
|
|
|
|
TITAN_PANEL_BUTTONS_PLUGIN_CATEGORY = {"General","Combat","Information","Interface","Profession"}
|
|
TITAN_PANEL_BUTTONS_ALIGN_LEFT = 1;
|
|
TITAN_PANEL_BUTTONS_ALIGN_CENTER = 2;
|
|
TITAN_PANEL_BUTTONS_ALIGN_RIGHT = 3;
|
|
|
|
TITAN_PANEL_BARS_SINGLE = 1;
|
|
TITAN_PANEL_BARS_DOUBLE = 2;
|
|
|
|
TITAN_PANEL_BUTTONS_INIT_FLAG = nil;
|
|
TITAN_PANEL_SELECTED = "Bar";
|
|
|
|
TITAN_PANEL_FROM_TOP = -25;
|
|
TITAN_PANEL_FROM_BOTTOM = 25;
|
|
TITAN_PANEL_FROM_BOTTOM_MAIN = 1;
|
|
TITAN_PANEL_FROM_TOP_MAIN = 1;
|
|
|
|
TITAN_PANEL_MOVE_ADDON = nil;
|
|
TITAN_PANEL_DROPOFF_ADDON = nil;
|
|
TITAN_PANEL_NEXT_ADDON = nil;
|
|
TITAN_PANEL_MOVING = 0;
|
|
|
|
TITAN_PANEL_SAVED_VARIABLES = {
|
|
Buttons = TITAN_PANEL_INITIAL_PLUGINS,
|
|
Location = TITAN_PANEL_INITIAL_PLUGIN_LOCATION,
|
|
Transparency = 0.7,
|
|
Scale = 1,
|
|
FontScale = 1,
|
|
ScreenAdjust = TITAN_NIL,
|
|
AutoHide = TITAN_NIL,
|
|
Position = TITAN_PANEL_PLACE_TOP,
|
|
DoubleBar = TITAN_PANEL_BARS_SINGLE,
|
|
ButtonAlign = TITAN_PANEL_BUTTONS_ALIGN_LEFT,
|
|
BothBars = 1,
|
|
AuxScreenAdjust = TITAN_NIL,
|
|
AuxAutoHide = TITAN_NIL,
|
|
AuxDoubleBar = TITAN_PANEL_BARS_SINGLE,
|
|
AuxButtonAlign = TITAN_PANEL_BUTTONS_ALIGN_LEFT,
|
|
VersionShown = 1,
|
|
ToolTipsShown = 1,
|
|
DisableFont = TITAN_NIL,
|
|
CastingBar = 1
|
|
};
|
|
|
|
function TitanPanelBarButton_OnLoad()
|
|
this:RegisterEvent("ADDON_LOADED");
|
|
this:RegisterEvent("VARIABLES_LOADED");
|
|
this:RegisterEvent("PLAYER_ENTERING_WORLD");
|
|
this:RegisterEvent("UNIT_NAME_UPDATE");
|
|
this:RegisterEvent("TIME_PLAYED_MSG");
|
|
this:RegisterEvent("PLAYER_LEVEL_UP");
|
|
this:RegisterEvent("CVAR_UPDATE");
|
|
this:RegisterEvent("ZONE_CHANGED_NEW_AREA");
|
|
this:RegisterForClicks("LeftButtonUp", "RightButtonUp");
|
|
end
|
|
|
|
function TitanPanelBarButton_OnEvent(frame)
|
|
if frame == "TitanPanelBarButton" then
|
|
if (event == "VARIABLES_LOADED") then
|
|
TitanVariables_InitTitanSettings();
|
|
|
|
elseif (event == "ADDON_LOADED") then
|
|
TitanPanel_AddonLoaded(arg1);
|
|
|
|
elseif (event == "UNIT_NAME_UPDATE") then
|
|
TitanVariables_InitDetailedSettings();
|
|
|
|
elseif (event == "PLAYER_ENTERING_WORLD") then
|
|
TitanVariables_InitDetailedSettings();
|
|
|
|
-- Initial session time
|
|
if (not this.sessionTime) then
|
|
this.sessionTime = 0;
|
|
RequestTimePlayed();
|
|
end
|
|
|
|
if ( not ServerTimeOffsets ) then
|
|
ServerTimeOffsets = {};
|
|
end
|
|
|
|
local realmName = GetCVar("realmName");
|
|
|
|
if ( ServerTimeOffsets[realmName] ) then
|
|
TitanSetVar(TITAN_CLOCK_ID, "OffsetHour", ServerTimeOffsets[realmName]);
|
|
end
|
|
|
|
elseif ( event == "PLAYER_LEAVING_WORLD" ) then
|
|
local realmName = GetCVar("realmName");
|
|
ServerTimeOffsets[realmName] = TitanGetVar(TITAN_CLOCK_ID, "OffsetHour");
|
|
|
|
elseif (event == "TIME_PLAYED_MSG") then
|
|
-- Remember play time
|
|
this.totalTime = arg1;
|
|
this.levelTime = arg2;
|
|
|
|
-- Move frames
|
|
TitanPanelFrame_ScreenAdjust();
|
|
|
|
-- Init panel buttons
|
|
TitanPanel_InitPanelBarButton();
|
|
TitanPanel_InitPanelButtons();
|
|
|
|
-- Set initial Panel AutoHide
|
|
if (TitanPanelGetVar("AutoHide")) then
|
|
TitanPanelBarButton_Hide("TitanPanelBarButton", TitanPanelGetVar("Position"));
|
|
end
|
|
if (TitanPanelGetVar("AuxAutoHide")) then
|
|
TitanPanelBarButton_Hide("TitanPanelAuxBarButton", TITAN_PANEL_PLACE_BOTTOM);
|
|
end
|
|
|
|
TitanPanel_SetTransparent("TitanPanelBarButtonHider", TitanPanelGetVar("Position"));
|
|
|
|
elseif (event == "PLAYER_LEVEL_UP") then
|
|
-- Reset level time
|
|
this.levelTime = 0;
|
|
|
|
elseif (event == "CVAR_UPDATE") then
|
|
if (arg1 == "USE_UISCALE" or arg1 == "WINDOWED_MODE") then
|
|
if (TitanPlayerSettings and TitanPanelGetVar("Scale")) then
|
|
TitanPanel_SetScale();
|
|
TitanPanel_RefreshPanelButtons();
|
|
-- Adjust frame positions
|
|
TitanPanelFrame_ScreenAdjust();
|
|
end
|
|
end
|
|
elseif (event == "ZONE_CHANGED_NEW_AREA") then
|
|
-- Move frames
|
|
TitanPanel_InitPanelButtons();
|
|
end
|
|
end
|
|
end
|
|
|
|
function TitanPanelFrame_ScreenAdjust()
|
|
TitanMovableFrame_CheckFrames(TitanPanelGetVar("Position"));
|
|
TitanMovableFrame_MoveFrames(TitanPanelGetVar("Position"), TitanPanelGetVar("ScreenAdjust"));
|
|
TitanMovableFrame_AdjustBlizzardFrames();
|
|
|
|
TitanMovableFrame_CheckFrames(TITAN_PANEL_PLACE_BOTTOM);
|
|
TitanMovableFrame_MoveFrames(TITAN_PANEL_PLACE_BOTTOM, TitanPanelGetVar("AuxScreenAdjust"));
|
|
TitanMovableFrame_AdjustBlizzardFrames();
|
|
end
|
|
|
|
function TitanPanelBarButtonHider_OnUpdate(elapsed)
|
|
local x, y = GetCursorPosition(UIParent);
|
|
local scale = UIParent:GetEffectiveScale();
|
|
|
|
if scale ~= 1.0 then
|
|
y = y / (scale);
|
|
end
|
|
if (TitanPanelGetVar("AutoHide") or TitanPanelGetVar("AuxAutoHide")) then
|
|
|
|
if not (TitanPanelRightClickMenu_IsVisible()) then
|
|
TITAN_PANEL_SELECTED = TitanUtils_GetButtonID(this:GetName())
|
|
TitanUtils_CheckAutoHideCounting(elapsed);
|
|
if TITAN_PANEL_SELECTED == "Bar" and TitanPanelGetVar("Position") == TITAN_PANEL_PLACE_TOP then
|
|
if y < TitanPanelBarButtonHider:GetBottom() and TitanPanelBarButtonHider.isCounting == nil then
|
|
TitanUtils_StartAutoHideCounting("TitanPanelBarButtonHider");
|
|
end
|
|
elseif TITAN_PANEL_SELECTED == "Bar" and TitanPanelGetVar("Position") == TITAN_PANEL_PLACE_BOTTOM then
|
|
if y > TitanPanelBarButtonHider:GetTop() and TitanPanelBarButtonHider.isCounting == nil then
|
|
TitanUtils_StartAutoHideCounting("TitanPanelBarButtonHider");
|
|
end
|
|
elseif TITAN_PANEL_SELECTED == "AuxBar" then
|
|
if y > TitanPanelAuxBarButtonHider:GetTop() and TitanPanelAuxBarButtonHider.isCounting == nil then
|
|
TitanUtils_StartAutoHideCounting("TitanPanelAuxBarButtonHider");
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
function TitanPanelBarButton_OnUpdate(elapsed)
|
|
if TITAN_PANEL_MOVING == 2 and TITAN_PANEL_DROPOFF_ADDON ~= nil then
|
|
TITAN_PANEL_MOVING = 3;
|
|
end
|
|
-- Update play time
|
|
if (this.totalTime) then
|
|
this.totalTime = this.totalTime + elapsed;
|
|
this.sessionTime = this.sessionTime + elapsed;
|
|
this.levelTime = this.levelTime + elapsed;
|
|
end
|
|
TitanPanelFrame_ScreenAdjust();
|
|
end
|
|
|
|
function TitanPanelBarButton_OnClick(button)
|
|
if (button == "LeftButton") then
|
|
|
|
TitanUtils_CloseAllControlFrames();
|
|
TitanUtils_CloseRightClickMenu();
|
|
elseif (button == "RightButton") then
|
|
TitanUtils_CloseAllControlFrames();
|
|
-- Show RightClickMenu anyway
|
|
if (TitanPanelRightClickMenu_IsVisible()) then
|
|
TitanPanelRightClickMenu_Close();
|
|
end
|
|
TitanPanelRightClickMenu_Toggle();
|
|
end
|
|
end
|
|
|
|
function TitanPanelBarButtonHider_OnEnter(frame)
|
|
if (TitanPanelGetVar("AutoHide") or TitanPanelGetVar("AuxAutoHide")) then
|
|
local frname = getglobal(frame)
|
|
|
|
if frname.isCounting ~= nil then
|
|
TitanUtils_StopAutoHideCounting(frame);
|
|
end
|
|
|
|
if (frame == "TitanPanelBarButtonHider" and TitanPanelBarButton.hide == 1) then
|
|
if (TitanPanelBarButton.hide) then
|
|
TitanPanelBarButton_Show("TitanPanelBarButton", TitanPanelGetVar("Position"));
|
|
end
|
|
else
|
|
if (TitanPanelAuxBarButton.hide and TitanPanelAuxBarButton.hide == 1) then
|
|
if TitanPanelGetVar("BothBars") then
|
|
TitanPanelBarButton_Show("TitanPanelAuxBarButton", TITAN_PANEL_PLACE_BOTTOM);
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function TitanPanelBarButtonHider_OnLeave(frame)
|
|
--Removed
|
|
end
|
|
|
|
function TitanPanelRightClickMenu_BarOnClick()
|
|
if (UIDropDownMenuButton_GetChecked()) then
|
|
TitanPanel_RemoveButton(this.value);
|
|
else
|
|
TitanPanel_AddButton(this.value);
|
|
end
|
|
end
|
|
|
|
function TitanPanelBarButton_ToggleAlign()
|
|
if ( TitanPanelGetVar("ButtonAlign") == TITAN_PANEL_BUTTONS_ALIGN_CENTER ) then
|
|
TitanPanelSetVar("ButtonAlign", TITAN_PANEL_BUTTONS_ALIGN_LEFT);
|
|
else
|
|
TitanPanelSetVar("ButtonAlign", TITAN_PANEL_BUTTONS_ALIGN_CENTER);
|
|
end
|
|
|
|
-- Justify button position
|
|
TitanPanelButton_Justify();
|
|
end
|
|
|
|
function TitanPanelBarButton_ToggleAuxAlign()
|
|
if ( TitanPanelGetVar("AuxButtonAlign") == TITAN_PANEL_BUTTONS_ALIGN_CENTER ) then
|
|
TitanPanelSetVar("AuxButtonAlign", TITAN_PANEL_BUTTONS_ALIGN_LEFT);
|
|
else
|
|
TitanPanelSetVar("AuxButtonAlign", TITAN_PANEL_BUTTONS_ALIGN_CENTER);
|
|
end
|
|
|
|
-- Justify button position
|
|
TitanPanelButton_Justify();
|
|
end
|
|
|
|
function TitanPanelBarButton_ToggleDoubleBar()
|
|
if ( TitanPanelGetVar("DoubleBar") == TITAN_PANEL_BARS_SINGLE ) then
|
|
TitanPanelSetVar("DoubleBar", TITAN_PANEL_BARS_DOUBLE);
|
|
TitanPanelBarButtonHider:SetHeight(48);
|
|
else
|
|
TitanPanelSetVar("DoubleBar", TITAN_PANEL_BARS_SINGLE);
|
|
TitanPanelBarButtonHider:SetHeight(24);
|
|
end
|
|
|
|
TitanMovableFrame_CheckFrames(TitanPanelGetVar("Position"));
|
|
TitanMovableFrame_MoveFrames(TitanPanelGetVar("Position"), TitanPanelGetVar("DoubleBar"));
|
|
TitanMovableFrame_AdjustBlizzardFrames();
|
|
TitanPanel_InitPanelBarButton();
|
|
TitanPanel_InitPanelButtons();
|
|
TitanPanel_SetTransparent("TitanPanelBarButtonHider", TitanPanelGetVar("Position"));
|
|
|
|
if (TitanPanelGetVar("AutoHide")) then
|
|
TitanPanelBarButton_Hide("TitanPanelBarButton", TitanPanelGetVar("Position"));
|
|
end
|
|
if (TitanPanelGetVar("AuxAutoHide")) then
|
|
TitanPanelBarButton_Hide("TitanPanelAuxBarButton", TITAN_PANEL_PLACE_BOTTOM);
|
|
end
|
|
|
|
end
|
|
|
|
function TitanPanelBarButton_ToggleAuxDoubleBar()
|
|
if ( TitanPanelGetVar("AuxDoubleBar") == TITAN_PANEL_BARS_SINGLE ) then
|
|
TitanPanelSetVar("AuxDoubleBar", TITAN_PANEL_BARS_DOUBLE);
|
|
TitanPanelAuxBarButtonHider:SetHeight(48);
|
|
else
|
|
TitanPanelSetVar("AuxDoubleBar", TITAN_PANEL_BARS_SINGLE);
|
|
TitanPanelAuxBarButtonHider:SetHeight(24);
|
|
end
|
|
TitanMovableFrame_CheckFrames(TITAN_PANEL_PLACE_BOTTOM);
|
|
TitanMovableFrame_MoveFrames(TITAN_PANEL_PLACE_BOTTOM, 1);
|
|
TitanMovableFrame_AdjustBlizzardFrames();
|
|
TitanPanel_InitPanelBarButton();
|
|
TitanPanel_InitPanelButtons();
|
|
TitanPanel_SetTransparent("TitanPanelAuxBarButtonHider", TITAN_PANEL_PLACE_BOTTOM);
|
|
|
|
if (TitanPanelGetVar("AutoHide")) then
|
|
TitanPanelBarButton_Hide("TitanPanelBarButton", TitanPanelGetVar("Position"));
|
|
end
|
|
if (TitanPanelGetVar("AuxAutoHide")) then
|
|
TitanPanelBarButton_Hide("TitanPanelAuxBarButton", TitanPanelGetVar("Position"));
|
|
end
|
|
|
|
end
|
|
|
|
function TitanPanelBarButton_ToggleAutoHide()
|
|
TitanPanelToggleVar("AutoHide");
|
|
if (TitanPanelGetVar("AutoHide")) then
|
|
TitanPanelBarButton_Hide("TitanPanelBarButton", TitanPanelGetVar("Position"));
|
|
else
|
|
TitanPanelBarButton_Show("TitanPanelBarButton", TitanPanelGetVar("Position"));
|
|
end
|
|
TitanPanelAutoHideButton_SetIcon();
|
|
end
|
|
|
|
function TitanPanelBarButton_ToggleAuxAutoHide()
|
|
TitanPanelToggleVar("AuxAutoHide");
|
|
if (TitanPanelGetVar("AuxAutoHide")) then
|
|
if TitanPanelGetVar("BothBars") then
|
|
TitanPanelBarButton_Hide("TitanPanelAuxBarButton", TITAN_PANEL_PLACE_BOTTOM);
|
|
end
|
|
else
|
|
if TitanPanelGetVar("BothBars") then
|
|
TitanPanelBarButton_Show("TitanPanelAuxBarButton", TITAN_PANEL_PLACE_BOTTOM);
|
|
end
|
|
end
|
|
--Needs changing!
|
|
TitanPanelAuxAutoHideButton_SetIcon();
|
|
end
|
|
|
|
function TitanPanelBarButton_ToggleScreenAdjust()
|
|
TitanPanelToggleVar("ScreenAdjust");
|
|
TitanMovableFrame_CheckFrames(TitanPanelGetVar("Position"));
|
|
TitanMovableFrame_MoveFrames(TitanPanelGetVar("Position"), TitanPanelGetVar("ScreenAdjust"));
|
|
TitanMovableFrame_AdjustBlizzardFrames();
|
|
end
|
|
|
|
function TitanPanelBarButton_ToggleAuxScreenAdjust()
|
|
TitanPanelToggleVar("AuxScreenAdjust");
|
|
TitanMovableFrame_CheckFrames(TITAN_PANEL_PLACE_BOTTOM);
|
|
TitanMovableFrame_MoveFrames(TITAN_PANEL_PLACE_BOTTOM, TitanPanelGetVar("AuxScreenAdjust"));
|
|
TitanMovableFrame_AdjustBlizzardFrames();
|
|
end
|
|
|
|
function TitanPanelBarButton_TogglePosition()
|
|
if (TitanPanelGetVar("Position") == TITAN_PANEL_PLACE_TOP) then
|
|
TitanMovableFrame_CheckFrames(TitanPanelGetVar("Position"));
|
|
TitanPanelSetVar("Position", TITAN_PANEL_PLACE_BOTTOM);
|
|
TitanMovableFrame_MoveFrames(TitanPanelGetVar("Position"), TitanPanelGetVar("ScreenAdjust"));
|
|
else
|
|
TitanMovableFrame_CheckFrames(TitanPanelGetVar("Position"));
|
|
TitanPanelSetVar("Position", TITAN_PANEL_PLACE_TOP);
|
|
TitanMovableFrame_MoveFrames(TitanPanelGetVar("Position"), TitanPanelGetVar("ScreenAdjust"));
|
|
end
|
|
|
|
-- Set panel position and texture
|
|
TitanPanel_SetPosition("TitanPanelBarButton", TitanPanelGetVar("Position"));
|
|
TitanPanel_SetTexture("TitanPanelBarButton", TitanPanelGetVar("Position"));
|
|
TitanPanel_SetTransparent("TitanPanelBarButtonHider", TitanPanelGetVar("Position"));
|
|
|
|
-- Adjust frame positions
|
|
TitanMovableFrame_CheckFrames(TitanPanelGetVar("Position"));
|
|
TitanMovableFrame_MoveFrames(TitanPanelGetVar("Position"), TitanPanelGetVar("ScreenAdjust"));
|
|
TitanMovableFrame_AdjustBlizzardFrames();
|
|
TitanPanelButton_Justify();
|
|
|
|
end
|
|
|
|
function TitanPanelBarButton_ToggleBarsShown()
|
|
TitanPanelToggleVar("BothBars");
|
|
TitanPanelBarButton_DisplayBarsWanted();
|
|
TitanPanelRightClickMenu_Close();
|
|
end
|
|
|
|
function TitanPanelBarButton_ToggleVersionShown()
|
|
TitanPanelToggleVar("VersionShown");
|
|
end
|
|
|
|
function TitanPanelBarButton_ToggleToolTipsShown()
|
|
TitanPanelToggleVar("ToolTipsShown");
|
|
end
|
|
|
|
function TitanPanelBarButton_ToggleCastingBar()
|
|
TitanPanelToggleVar("CastingBar");
|
|
end
|
|
|
|
function TitanPanelBarButton_ToggleDisableFont()
|
|
TitanPanelToggleVar("DisableFont");
|
|
if TitanPanelGetVar("DisableFont") then
|
|
TitanPanelSetVar("FontScale", 1.0);
|
|
GameTooltip:SetScale(1);
|
|
end
|
|
end
|
|
|
|
function TitanPanelBarButton_DisplayBarsWanted()
|
|
--Need to handle top & bottom
|
|
if (TitanPanelGetVar("BothBars")) then
|
|
if (TitanPanelGetVar("Position") == TITAN_PANEL_PLACE_BOTTOM) then
|
|
TitanPanelBarButton_TogglePosition();
|
|
end
|
|
|
|
TitanMovableFrame_CheckFrames(TITAN_PANEL_PLACE_TOP);
|
|
TitanMovableFrame_MoveFrames(TITAN_PANEL_PLACE_TOP, TitanPanelGetVar("ScreenAdjust"));
|
|
|
|
-- Set panel position and texture
|
|
TitanPanel_SetPosition("TitanPanelAuxBarButton", TITAN_PANEL_PLACE_BOTTOM);
|
|
TitanPanel_SetTexture("TitanPanelAuxBarButton", TITAN_PANEL_PLACE_BOTTOM);
|
|
|
|
-- Adjust frame positions
|
|
TitanMovableFrame_CheckFrames(TITAN_PANEL_PLACE_BOTTOM);
|
|
TitanMovableFrame_MoveFrames(TITAN_PANEL_PLACE_BOTTOM, TitanPanelGetVar("AuxScreenAdjust"));
|
|
TitanMovableFrame_AdjustBlizzardFrames();
|
|
|
|
else
|
|
TitanPanelBarButton_TogglePosition();
|
|
TitanPanelBarButton_Hide("TitanPanelAuxBarButton", TITAN_PANEL_PLACE_BOTTOM)
|
|
TitanPanelBarButton_TogglePosition();
|
|
end
|
|
end
|
|
|
|
function TitanPanelBarButton_Show(frame, position)
|
|
local frName = getglobal(frame);
|
|
local barnumber = TitanUtils_GetDoubleBar(TitanPanelGetVar("BothBars"), position);
|
|
|
|
if (position == TITAN_PANEL_PLACE_TOP) then
|
|
frName:ClearAllPoints();
|
|
frName:SetPoint("TOPLEFT", "UIParent", "TOPLEFT", 0, 0);
|
|
frName:SetPoint("BOTTOMRIGHT", "UIParent", "TOPRIGHT", 0, -24);
|
|
else
|
|
frName:ClearAllPoints();
|
|
frName:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 0, 0);
|
|
frName:SetPoint("TOPRIGHT", "UIParent", "BOTTOMRIGHT", 0, 24);
|
|
end
|
|
|
|
frName.hide = nil;
|
|
end
|
|
|
|
function TitanPanelBarButton_Hide(frame, position)
|
|
local frName = getglobal(frame);
|
|
local barnumber = TitanUtils_GetDoubleBar(TitanPanelGetVar("BothBars"), position);
|
|
|
|
if frName ~= nil then
|
|
|
|
if (position == TITAN_PANEL_PLACE_TOP) then
|
|
frName:ClearAllPoints();
|
|
frName:SetPoint("TOPLEFT", "UIParent", "TOPLEFT", 0, (35*barnumber));
|
|
frName:SetPoint("BOTTOMRIGHT", "UIParent", "TOPRIGHT", 0, -3);
|
|
|
|
elseif (position == TITAN_PANEL_PLACE_BOTTOM) and frame == "TitanPanelBarButton" then
|
|
frName:ClearAllPoints();
|
|
frName:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 0, -35);
|
|
frName:SetPoint("TOPRIGHT", "UIParent", "BOTTOMRIGHT", 0, 3);
|
|
|
|
else
|
|
if TitanPanelGetVar("BothBars") == nil and frame == "TitanPanelAuxBarButton" then
|
|
frName:ClearAllPoints();
|
|
frName:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 0, (-35*barnumber));
|
|
frName:SetPoint("TOPRIGHT", "UIParent", "BOTTOMRIGHT", 0, -35);
|
|
else
|
|
frName:ClearAllPoints();
|
|
frName:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 0, (-35*barnumber));
|
|
frName:SetPoint("TOPRIGHT", "UIParent", "BOTTOMRIGHT", 0, -35);
|
|
end
|
|
end
|
|
|
|
frName.hide = 1;
|
|
end
|
|
end
|
|
|
|
function TitanPanel_InitPanelBarButton()
|
|
-- Set Titan Panel position/textures
|
|
TitanPanel_SetPosition("TitanPanelBarButton", TitanPanelGetVar("Position"));
|
|
TitanPanel_SetTexture("TitanPanelBarButton", TitanPanelGetVar("Position"));
|
|
|
|
-- Set initial Panel Scale
|
|
TitanPanel_SetScale();
|
|
|
|
-- Set initial Panel Transparency
|
|
TitanPanelBarButton:SetAlpha(TitanPanelGetVar("Transparency"));
|
|
TitanPanelAuxBarButton:SetAlpha(TitanPanelGetVar("Transparency"));
|
|
end
|
|
|
|
function TitanPanel_SetPosition(frame, position)
|
|
local frName = getglobal(frame);
|
|
if (position == TITAN_PANEL_PLACE_TOP) then
|
|
if frame == "TitanPanelBarButton" then
|
|
TitanPanelBackground12:ClearAllPoints();
|
|
TitanPanelBackground12:SetPoint("BOTTOMLEFT", "TitanPanelBackground0", "BOTTOMLEFT", 0, -25);
|
|
end
|
|
frName:ClearAllPoints();
|
|
frName:SetPoint("TOPLEFT", "UIParent", "TOPLEFT", 0, 0);
|
|
frName:SetPoint("BOTTOMRIGHT", "UIParent", "TOPRIGHT", 0, -24);
|
|
else
|
|
if frame == "TitanPanelBarButton" then
|
|
TitanPanelBackground12:ClearAllPoints();
|
|
TitanPanelBackground12:SetPoint("BOTTOMLEFT", "TitanPanelBackground0", "BOTTOMLEFT", 0, 25);
|
|
end
|
|
frName:ClearAllPoints();
|
|
frName:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 0, 0);
|
|
frName:SetPoint("TOPRIGHT", "UIParent", "BOTTOMRIGHT", 0, 24);
|
|
end
|
|
end
|
|
|
|
function TitanPanel_SetTransparent(frame, position)
|
|
local frName = getglobal(frame);
|
|
local topBars = TitanUtils_GetDoubleBar(TitanPanelGetVar("BothBars"), TITAN_PANEL_PLACE_TOP);
|
|
local bottomBars = TitanUtils_GetDoubleBar(TitanPanelGetVar("BothBars"), TITAN_PANEL_PLACE_BOTTOM);
|
|
|
|
if (position == TITAN_PANEL_PLACE_TOP) then
|
|
frName:ClearAllPoints();
|
|
frName:SetPoint("TOPLEFT", "UIParent", "TOPLEFT", 0, 0);
|
|
frName:SetPoint("BOTTOMRIGHT", "UIParent", "TOPRIGHT", 0, -24 * topBars);
|
|
TitanPanelAuxBarButtonHider:ClearAllPoints();
|
|
TitanPanelAuxBarButtonHider:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 0, 0);
|
|
TitanPanelAuxBarButtonHider:SetPoint("TOPRIGHT", "UIParent", "BOTTOMRIGHT", 0, 24 * bottomBars);
|
|
elseif position == TITAN_PANEL_PLACE_BOTTOM and frame == "TitanPanelBarButtonHider" then
|
|
frName:ClearAllPoints();
|
|
frName:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 0, 0);
|
|
frName:SetPoint("TOPRIGHT", "UIParent", "BOTTOMRIGHT", 0, 24 * bottomBars);
|
|
TitanPanelAuxBarButtonHider:ClearAllPoints();
|
|
TitanPanelAuxBarButtonHider:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 0, 0);
|
|
TitanPanelAuxBarButtonHider:SetPoint("TOPRIGHT", "UIParent", "BOTTOMRIGHT", 0, 0);
|
|
else
|
|
frName:ClearAllPoints();
|
|
frName:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 0, 0);
|
|
frName:SetPoint("TOPRIGHT", "UIParent", "BOTTOMRIGHT", 0, 24 * bottomBars);
|
|
end
|
|
end
|
|
|
|
function TitanPanel_SetTexture(frame, position)
|
|
local frName = getglobal(frame);
|
|
local barnumber = TitanUtils_GetDoubleBar(TitanPanelGetVar("BothBars"), position);
|
|
|
|
if frame == "TitanPanelBarButton" then
|
|
local pos = TitanUtils_Ternary(position == TITAN_PANEL_PLACE_TOP, "Top", "Bottom");
|
|
for i = 0, 11 do
|
|
getglobal("TitanPanelBackground"..i):SetTexture(TITAN_ARTWORK_PATH.."TitanPanelBackground"..pos..math.mod(i, 2));
|
|
end
|
|
for i = 12, 22 do
|
|
if barnumber == 2 then
|
|
TitanPanelBarButtonHider:SetHeight(48);
|
|
getglobal("TitanPanelBackground"..i):SetTexture(TITAN_ARTWORK_PATH.."TitanPanelBackground"..pos..math.mod(i, 2));
|
|
else
|
|
TitanPanelBarButtonHider:SetHeight(24);
|
|
getglobal("TitanPanelBackground"..i):SetTexture();
|
|
end
|
|
end
|
|
else
|
|
local pos = TitanUtils_Ternary(position == TITAN_PANEL_PLACE_BOTTOM, "Top", "Bottom");
|
|
for i = 0, 11 do
|
|
getglobal("TitanPanelBackgroundAux"..i):SetTexture(TITAN_ARTWORK_PATH.."TitanPanelBackground".."Bottom"..math.mod(i, 2));
|
|
end
|
|
for i = 12, 22 do
|
|
if barnumber == 2 then
|
|
TitanPanelAuxBarButtonHider:SetHeight(48);
|
|
getglobal("TitanPanelBackgroundAux"..i):SetTexture(TITAN_ARTWORK_PATH.."TitanPanelBackground".."Bottom"..math.mod(i, 2));
|
|
else
|
|
TitanPanelAuxBarButtonHider:SetHeight(24);
|
|
getglobal("TitanPanelBackgroundAux"..i):SetTexture();
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function TitanPanel_InitPanelButtons()
|
|
local button, leftButton, rightButton, leftAuxButton, rightAuxButton, leftDoubleButton, rightDoubleButton, leftAuxDoubleButton, rightAuxDoubleButton;
|
|
local nextLeft, nextAuxLeft
|
|
local newButtons = {};
|
|
local scale = TitanPanelGetVar("Scale");
|
|
local isClockOnRightSide;
|
|
|
|
TitanPanelBarButton_DisplayBarsWanted();
|
|
-- Position Clock first if it's displayed on the far right side
|
|
if ( TitanUtils_TableContainsValue(TitanPanelSettings.Buttons, TITAN_CLOCK_ID) and TitanGetVar(TITAN_CLOCK_ID, "DisplayOnRightSide") ) then
|
|
isClockOnRightSide = 1;
|
|
button = TitanUtils_GetButton(TITAN_CLOCK_ID);
|
|
local i = TitanPanel_GetButtonNumber(TITAN_CLOCK_ID)
|
|
|
|
if TitanPanelSettings.Location[i] == nil then
|
|
TitanPanelSettings.Location[i] = "Bar";
|
|
end
|
|
if TitanPanelSettings.Location[i] == "AuxBar" then
|
|
button:ClearAllPoints();
|
|
button:SetPoint("RIGHT", "TitanPanel" .. TitanPanelSettings.Location[i] .."Button", "RIGHT", -TITAN_PANEL_FRAME_SPACEING / 2 * scale, TITAN_PANEL_FROM_BOTTOM_MAIN);
|
|
rightAuxButton = button;
|
|
else
|
|
button:ClearAllPoints();
|
|
button:SetPoint("RIGHT", "TitanPanel" .. TitanPanelSettings.Location[i] .."Button", "RIGHT", -TITAN_PANEL_FRAME_SPACEING / 2 * scale, TITAN_PANEL_FROM_TOP_MAIN);
|
|
rightButton = button;
|
|
end
|
|
end
|
|
|
|
-- Position all the buttons
|
|
for index, id in TitanPanelSettings.Buttons do
|
|
if ( TitanUtils_IsPluginRegistered(id) ) then
|
|
local i = TitanPanel_GetButtonNumber(id);
|
|
if(TitanPanelSettings.Location[i] == nil) then
|
|
if id ~= "AuxAutoHide" then
|
|
TitanPanelSettings.Location[i] = "Bar";
|
|
else
|
|
TitanPanelSettings.Location[i] = "AuxBar";
|
|
end
|
|
end
|
|
|
|
button = TitanUtils_GetButton(id);
|
|
|
|
if ( id == TITAN_CLOCK_ID and isClockOnRightSide ) then
|
|
-- Do nothing, since it's already positioned
|
|
elseif ( TitanPanelButton_IsIcon(id) ) then
|
|
|
|
if ( rightAuxButton and TitanPanelSettings.Location[i] == "AuxBar" ) then
|
|
button:ClearAllPoints();
|
|
button:SetPoint("RIGHT", rightAuxButton:GetName(), "LEFT", -TITAN_PANEL_ICON_SPACEING * scale, 0);
|
|
elseif ( not rightButton ) then
|
|
button:ClearAllPoints();
|
|
button:SetPoint("RIGHT", "TitanPanel" .. TitanPanelSettings.Location[i] .."Button", "RIGHT", -TITAN_PANEL_FRAME_SPACEING / 2 * scale, TITAN_PANEL_FROM_TOP_MAIN);
|
|
else
|
|
if ( not rightAuxButton and TitanPanelSettings.Location[i] == "AuxBar") then
|
|
button:ClearAllPoints();
|
|
button:SetPoint("RIGHT", "TitanPanel" .. TitanPanelSettings.Location[i] .."Button", "RIGHT", -TITAN_PANEL_FRAME_SPACEING / 2 * scale, TITAN_PANEL_FROM_BOTTOM_MAIN);
|
|
elseif TitanPanelSettings.Location[i] == "AuxBar" then
|
|
button:ClearAllPoints();
|
|
button:SetPoint("RIGHT", rightAuxButton:GetName(), "LEFT", -TITAN_PANEL_ICON_SPACEING * scale, 0);
|
|
else
|
|
button:ClearAllPoints();
|
|
button:SetPoint("RIGHT", rightButton:GetName(), "LEFT", -TITAN_PANEL_ICON_SPACEING * scale, 0);
|
|
end
|
|
end
|
|
|
|
if TitanPanelSettings.Location[i] == "AuxBar" then
|
|
rightAuxButton = button;
|
|
else
|
|
rightButton = button;
|
|
end
|
|
else
|
|
if ( TitanPanelSettings.Location[i] == "AuxBar" ) then
|
|
if (nextAuxLeft == "Double") then
|
|
button:ClearAllPoints();
|
|
button:SetPoint("LEFT", leftAuxDoubleButton:GetName(), "RIGHT", TITAN_PANEL_FRAME_SPACEING * scale, 0);
|
|
nextAuxLeft = "Main"
|
|
leftAuxDoubleButton = button;
|
|
elseif (nextAuxLeft == "DoubleFirst") then
|
|
button:ClearAllPoints();
|
|
button:SetPoint("LEFT", "TitanPanel" .. TitanPanelSettings.Location[i] .."Button", "LEFT", TITAN_PANEL_FRAME_SPACEING / 2 * scale, TITAN_PANEL_FROM_BOTTOM);
|
|
nextAuxLeft = "Main"
|
|
leftAuxDoubleButton = button;
|
|
elseif (nextAuxLeft == "Main") then
|
|
button:ClearAllPoints();
|
|
button:SetPoint("LEFT", leftAuxButton:GetName(), "RIGHT", TITAN_PANEL_FRAME_SPACEING * scale, 0);
|
|
nextAuxLeft = TitanPanel_Nextbar("AuxDoubleBar");
|
|
leftAuxButton = button;
|
|
else
|
|
button:ClearAllPoints();
|
|
button:SetPoint("LEFT", "TitanPanel" .. TitanPanelSettings.Location[i] .."Button", "LEFT", TITAN_PANEL_FRAME_SPACEING / 2 * scale, TITAN_PANEL_FROM_BOTTOM_MAIN);
|
|
nextAuxLeft = TitanPanel_Nextbar("AuxDoubleBar");
|
|
if nextAuxLeft == "Double" then
|
|
nextAuxLeft = "DoubleFirst";
|
|
end
|
|
leftAuxButton = button;
|
|
end
|
|
else
|
|
if (nextLeft == "Double") then
|
|
button:ClearAllPoints();
|
|
button:SetPoint("LEFT", leftDoubleButton:GetName(), "RIGHT", TITAN_PANEL_FRAME_SPACEING * scale, 0);
|
|
nextLeft = "Main"
|
|
leftDoubleButton = button;
|
|
elseif (nextLeft == "DoubleFirst") then
|
|
button:ClearAllPoints();
|
|
if TitanPanelGetVar("Position") == TITAN_PANEL_PLACE_TOP then
|
|
button:SetPoint("LEFT", "TitanPanel" .. TitanPanelSettings.Location[i] .."Button", "LEFT", TITAN_PANEL_FRAME_SPACEING / 2 * scale, TITAN_PANEL_FROM_TOP);
|
|
else
|
|
button:SetPoint("LEFT", "TitanPanel" .. TitanPanelSettings.Location[i] .."Button", "LEFT", TITAN_PANEL_FRAME_SPACEING / 2 * scale, TITAN_PANEL_FROM_BOTTOM);
|
|
end
|
|
nextLeft = "Main"
|
|
leftDoubleButton = button;
|
|
elseif (nextLeft == "Main") then
|
|
button:ClearAllPoints();
|
|
button:SetPoint("LEFT", leftButton:GetName(), "RIGHT", TITAN_PANEL_FRAME_SPACEING * scale, 0);
|
|
nextLeft = TitanPanel_Nextbar("DoubleBar");
|
|
leftButton = button;
|
|
else
|
|
button:ClearAllPoints();
|
|
button:SetPoint("LEFT", "TitanPanel" .. TitanPanelSettings.Location[i] .."Button", "LEFT", TITAN_PANEL_FRAME_SPACEING / 2 * scale, TITAN_PANEL_FROM_TOP_MAIN);
|
|
nextLeft = TitanPanel_Nextbar("DoubleBar");
|
|
if nextLeft == "Double" then
|
|
nextLeft = "DoubleFirst";
|
|
end
|
|
leftButton = button;
|
|
end
|
|
end
|
|
end
|
|
|
|
table.insert(newButtons, id);
|
|
button:Show();
|
|
|
|
end
|
|
end
|
|
|
|
-- Set TitanPanelSettings.Buttons
|
|
TitanPanelSettings.Buttons = newButtons;
|
|
|
|
-- Set panel button init flag
|
|
TITAN_PANEL_BUTTONS_INIT_FLAG = 1;
|
|
TitanPanelButton_Justify();
|
|
end
|
|
|
|
function TitanPanel_Nextbar(var)
|
|
if TitanPanelGetVar(var) == TITAN_PANEL_BARS_DOUBLE then
|
|
return "Double";
|
|
else
|
|
return "Main";
|
|
end
|
|
end
|
|
|
|
function TitanPanel_RemoveButton(id)
|
|
if ( not TitanPanelSettings ) then
|
|
return;
|
|
end
|
|
|
|
local i = TitanPanel_GetButtonNumber(id)
|
|
local currentButton = TitanUtils_GetButton(id);
|
|
currentButton:Hide();
|
|
|
|
TitanPanel_ReOrder(i);
|
|
table.remove(TitanPanelSettings.Buttons, TitanUtils_GetCurrentIndex(TitanPanelSettings.Buttons, id));
|
|
TitanPanel_InitPanelButtons();
|
|
end
|
|
|
|
function TitanPanel_AddButton(id)
|
|
if (not TitanPanelSettings) then
|
|
return;
|
|
end
|
|
|
|
local i = TitanPanel_GetButtonNumber(id)
|
|
TitanPanelSettings.Location[i] = TITAN_PANEL_SELECTED;
|
|
|
|
table.insert(TitanPanelSettings.Buttons, id);
|
|
|
|
TitanPanel_InitPanelButtons();
|
|
end
|
|
|
|
function TitanPanel_ReOrder(index)
|
|
for i = index, table.getn(TitanPanelSettings.Buttons) do
|
|
TitanPanelSettings.Location[i] = TitanPanelSettings.Location[i+1]
|
|
end
|
|
end
|
|
|
|
function TitanPanel_GetButtonNumber(id)
|
|
if (TitanPanelSettings) then
|
|
for i = 1, table.getn(TitanPanelSettings.Buttons) do
|
|
if(TitanPanelSettings.Buttons[i] == id) then
|
|
return i;
|
|
end
|
|
end
|
|
return table.getn(TitanPanelSettings.Buttons)+1;
|
|
else
|
|
return 0;
|
|
end
|
|
end
|
|
|
|
function TitanPanel_RefreshPanelButtons()
|
|
if (TitanPanelSettings) then
|
|
for i = 1, table.getn(TitanPanelSettings.Buttons) do
|
|
TitanPanelButton_UpdateButton(TitanPanelSettings.Buttons[i], 1);
|
|
end
|
|
end
|
|
end
|
|
|
|
function TitanPanelButton_Justify()
|
|
if ( not TITAN_PANEL_BUTTONS_INIT_FLAG or not TitanPanelSettings ) then
|
|
return;
|
|
end
|
|
|
|
-- Check if clock displayed on the far right side
|
|
local isClockOnRightSide;
|
|
if ( TitanUtils_TableContainsValue(TitanPanelSettings.Buttons, TITAN_CLOCK_ID) and TitanGetVar(TITAN_CLOCK_ID, "DisplayOnRightSide") ) then
|
|
isClockOnRightSide = 1;
|
|
end
|
|
|
|
local firstLeftButton = TitanUtils_GetFirstButton(TitanPanelSettings.Buttons, 1, nil, isClockOnRightSide);
|
|
local secondLeftButton;
|
|
local scale = TitanPanelGetVar("Scale");
|
|
local leftWidth = 0;
|
|
local rightWidth = 0;
|
|
local leftDoubleWidth = 0;
|
|
local rightDoubleWidth = 0;
|
|
local counter = 0;
|
|
local triggered = 0;
|
|
if ( firstLeftButton ) then
|
|
if ( TitanPanelGetVar("ButtonAlign") == TITAN_PANEL_BUTTONS_ALIGN_LEFT ) then
|
|
counter = 0;
|
|
triggered = 0;
|
|
for index, id in TitanPanelSettings.Buttons do
|
|
local button = TitanUtils_GetButton(id);
|
|
|
|
if ( not button:GetWidth() ) then
|
|
return;
|
|
end
|
|
if TitanUtils_GetWhichBar(id) == "Bar" then
|
|
if TitanPanelGetVar("DoubleBar") == 2 and mod(counter,2) == 1 and not TitanPanelButton_IsIcon(id) then
|
|
if triggered == 0 then
|
|
secondLeftButton = button;
|
|
triggered = 1;
|
|
end
|
|
end
|
|
if ( TitanPanelButton_IsIcon(id) or (id == TITAN_CLOCK_ID and isClockOnRightSide) ) then
|
|
-- Do nothing
|
|
else
|
|
counter = counter + 1;
|
|
end
|
|
end
|
|
end
|
|
|
|
firstLeftButton:ClearAllPoints();
|
|
firstLeftButton:SetPoint("LEFT", "TitanPanelBarButton", "LEFT", TITAN_PANEL_FRAME_SPACEING / 2 * scale, TITAN_PANEL_FROM_TOP_MAIN);
|
|
if triggered == 1 then
|
|
secondLeftButton:ClearAllPoints();
|
|
if TitanPanelGetVar("Position") == TITAN_PANEL_PLACE_TOP then
|
|
secondLeftButton:SetPoint("LEFT", "TitanPanelBarButton", "LEFT", TITAN_PANEL_FRAME_SPACEING / 2 * scale, TITAN_PANEL_FROM_TOP);
|
|
else
|
|
secondLeftButton:SetPoint("LEFT", "TitanPanelBarButton", "LEFT", TITAN_PANEL_FRAME_SPACEING / 2 * scale, TITAN_PANEL_FROM_BOTTOM);
|
|
end
|
|
end
|
|
|
|
elseif ( TitanPanelGetVar("ButtonAlign") == TITAN_PANEL_BUTTONS_ALIGN_CENTER ) then
|
|
leftWidth = 0;
|
|
rightWidth = 0;
|
|
leftDoubleWidth = 0;
|
|
rightDoubleWidth = 0;
|
|
counter = 0;
|
|
triggered = 0;
|
|
for index, id in TitanPanelSettings.Buttons do
|
|
local button = TitanUtils_GetButton(id);
|
|
|
|
if ( not button:GetWidth() ) then
|
|
return;
|
|
end
|
|
if TitanUtils_GetWhichBar(id) == "Bar" then
|
|
if TitanPanelGetVar("DoubleBar") == 2 and mod(counter,2) == 1 and not TitanPanelButton_IsIcon(id) then
|
|
if triggered == 0 then
|
|
secondLeftButton = button;
|
|
triggered = 1;
|
|
end
|
|
if ( TitanPanelButton_IsIcon(id) or (id == TITAN_CLOCK_ID and isClockOnRightSide) ) then
|
|
rightDoubleWidth = rightDoubleWidth + TITAN_PANEL_ICON_SPACEING + button:GetWidth();
|
|
else
|
|
counter = counter + 1;
|
|
leftDoubleWidth = leftDoubleWidth + TITAN_PANEL_FRAME_SPACEING + button:GetWidth();
|
|
end
|
|
else
|
|
if ( TitanPanelButton_IsIcon(id) or (id == TITAN_CLOCK_ID and isClockOnRightSide) ) then
|
|
rightWidth = rightWidth + TITAN_PANEL_ICON_SPACEING + button:GetWidth();
|
|
else
|
|
counter = counter + 1;
|
|
leftWidth = leftWidth + TITAN_PANEL_FRAME_SPACEING + button:GetWidth();
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
firstLeftButton:ClearAllPoints();
|
|
firstLeftButton:SetPoint("LEFT", "TitanPanelBarButton", "CENTER", 0 - leftWidth / 2, TITAN_PANEL_FROM_TOP_MAIN);
|
|
if triggered == 1 then
|
|
secondLeftButton:ClearAllPoints();
|
|
if TitanPanelGetVar("Position") == TITAN_PANEL_PLACE_TOP then
|
|
secondLeftButton:SetPoint("LEFT", "TitanPanelBarButton", "CENTER", 0 - leftDoubleWidth / 2, TITAN_PANEL_FROM_TOP);
|
|
else
|
|
secondLeftButton:SetPoint("LEFT", "TitanPanelBarButton", "CENTER", 0 - leftDoubleWidth / 2, TITAN_PANEL_FROM_BOTTOM);
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
local firstLeftButton = TitanUtils_GetFirstAuxButton(TitanPanelSettings.Buttons, 1, nil, isClockOnRightSide);
|
|
secondLeftButton = nil;
|
|
if ( firstLeftButton ) then
|
|
if ( TitanPanelGetVar("AuxButtonAlign") == TITAN_PANEL_BUTTONS_ALIGN_LEFT ) then
|
|
triggered = 0;
|
|
counter = 0;
|
|
for index, id in TitanPanelSettings.Buttons do
|
|
local button = TitanUtils_GetButton(id);
|
|
|
|
if ( not button:GetWidth() ) then
|
|
return;
|
|
end
|
|
if TitanUtils_GetWhichBar(id) == "AuxBar" then
|
|
if TitanPanelGetVar("AuxDoubleBar") == 2 and mod(counter,2) == 1 and not TitanPanelButton_IsIcon(id) then
|
|
if triggered == 0 then
|
|
secondLeftButton = button;
|
|
triggered = 1;
|
|
end
|
|
end
|
|
if ( TitanPanelButton_IsIcon(id) or (id == TITAN_CLOCK_ID and isClockOnRightSide) ) then
|
|
-- Do nothing
|
|
else
|
|
counter = counter + 1;
|
|
end
|
|
end
|
|
end
|
|
|
|
firstLeftButton:ClearAllPoints();
|
|
firstLeftButton:SetPoint("LEFT", "TitanPanelAuxBarButton", "LEFT", TITAN_PANEL_FRAME_SPACEING / 2 * scale, TITAN_PANEL_FROM_BOTTOM_MAIN);
|
|
if triggered == 1 then
|
|
secondLeftButton:ClearAllPoints();
|
|
secondLeftButton:SetPoint("LEFT", "TitanPanelAuxBarButton", "LEFT", TITAN_PANEL_FRAME_SPACEING / 2 * scale, TITAN_PANEL_FROM_BOTTOM);
|
|
end
|
|
elseif ( TitanPanelGetVar("AuxButtonAlign") == TITAN_PANEL_BUTTONS_ALIGN_CENTER ) then
|
|
leftWidth = 0;
|
|
rightWidth = 0;
|
|
leftDoubleWidth = 0;
|
|
rightDoubleWidth = 0;
|
|
counter = 0;
|
|
triggered = 0;
|
|
for index, id in TitanPanelSettings.Buttons do
|
|
local button = TitanUtils_GetButton(id);
|
|
|
|
if ( not button:GetWidth() ) then
|
|
return;
|
|
end
|
|
if TitanUtils_GetWhichBar(id) == "AuxBar" then
|
|
if TitanPanelGetVar("AuxDoubleBar") == 2 and mod(counter,2) == 1 and not TitanPanelButton_IsIcon(id) then
|
|
if triggered == 0 then
|
|
secondLeftButton = button;
|
|
triggered = 1;
|
|
end
|
|
if ( TitanPanelButton_IsIcon(id) or (id == TITAN_CLOCK_ID and isClockOnRightSide) ) then
|
|
rightDoubleWidth = rightDoubleWidth + TITAN_PANEL_ICON_SPACEING + button:GetWidth();
|
|
else
|
|
counter = counter + 1;
|
|
leftDoubleWidth = leftDoubleWidth + TITAN_PANEL_FRAME_SPACEING + button:GetWidth();
|
|
end
|
|
else
|
|
if ( TitanPanelButton_IsIcon(id) or (id == TITAN_CLOCK_ID and isClockOnRightSide) ) then
|
|
rightWidth = rightWidth + TITAN_PANEL_ICON_SPACEING + button:GetWidth();
|
|
else
|
|
counter = counter + 1;
|
|
leftWidth = leftWidth + TITAN_PANEL_FRAME_SPACEING + button:GetWidth();
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
firstLeftButton:ClearAllPoints();
|
|
firstLeftButton:SetPoint("LEFT", "TitanPanelAuxBarButton", "CENTER", 0 - leftWidth / 2, TITAN_PANEL_FROM_BOTTOM_MAIN);
|
|
if triggered == 1 then
|
|
secondLeftButton:ClearAllPoints();
|
|
secondLeftButton:SetPoint("LEFT", "TitanPanelAuxBarButton", "CENTER", 0 - leftDoubleWidth / 2, TITAN_PANEL_FROM_BOTTOM);
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
function TitanPanel_SetScale()
|
|
local scale = TitanPanelGetVar("Scale");
|
|
local fontscale = TitanPanelGetVar("FontScale");
|
|
TitanPanelBarButton:SetScale(scale);
|
|
if not TitanPanelGetVar("DisableFont") then
|
|
GameTooltip:SetScale(fontscale);
|
|
end
|
|
|
|
for index, value in TitanPlugins do
|
|
if index ~= nil then
|
|
TitanUtils_GetButton(index):SetScale(scale);
|
|
end
|
|
end
|
|
end
|
|
|
|
function TitanPanelRightClickMenu_Customize()
|
|
StaticPopupDialogs["CUSTOMIZATION_FEATURE_COMING_SOON"] = {
|
|
text = TEXT(CUSTOMIZATION_FEATURE_COMING_SOON),
|
|
button1 = TEXT(OKAY),
|
|
showAlert = 1,
|
|
timeout = 0,
|
|
};
|
|
StaticPopup_Show("CUSTOMIZATION_FEATURE_COMING_SOON");
|
|
end
|
|
|
|
function TitanPanel_LoadError(ErrorMsg)
|
|
StaticPopupDialogs["LOADING_ERROR"] = {
|
|
text = ErrorMsg,
|
|
button1 = TEXT(OKAY),
|
|
showAlert = 1,
|
|
timeout = 0,
|
|
};
|
|
StaticPopup_Show("LOADING_ERROR");
|
|
end
|
|
|
|
function TitanPanelRightClickMenu_PrepareBarMenu()
|
|
-- Level 2
|
|
if ( UIDROPDOWNMENU_MENU_LEVEL == 2 ) then
|
|
TitanPanel_BuildPluginsMenu();
|
|
TitanPanel_BuildOtherPluginsMenu();
|
|
TitanPanel_OptionsMenu();
|
|
TitanPanel_LoadServerSettingsMenu();
|
|
return;
|
|
end
|
|
|
|
-- Level 3
|
|
if ( UIDROPDOWNMENU_MENU_LEVEL == 3 ) then
|
|
TitanPanel_LoadPlayerSettingsMenu();
|
|
return;
|
|
end
|
|
|
|
-- Level 1
|
|
TitanPanel_MainMenu()
|
|
end
|
|
|
|
function TitanPanel_MainMenu()
|
|
local info = {};
|
|
local checked;
|
|
local plugin;
|
|
local frame = this:GetName();
|
|
local frname = getglobal(frame);
|
|
|
|
TitanPanelRightClickMenu_AddTitle(TITAN_PANEL_MENU_TITLE);
|
|
|
|
if frame == "TitanPanelBarButton" then
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_BUILTINS;
|
|
info.value = "Builtins";
|
|
info.hasArrow = 1;
|
|
UIDropDownMenu_AddButton(info);
|
|
else
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_BUILTINS;
|
|
info.value = "BuiltinsAux";
|
|
info.hasArrow = 1;
|
|
UIDropDownMenu_AddButton(info);
|
|
end
|
|
|
|
TitanPanelRightClickMenu_AddSpacer(UIDROPDOWNMENU_MENU_LEVEL);
|
|
TitanPanelRightClickMenu_AddTitle(TITAN_PANEL_MENU_PLUGINS);
|
|
|
|
|
|
for index, id in TITAN_PANEL_MENU_CATEGORIES do
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_CATEGORIES[index];
|
|
info.value = "Addons_" .. TITAN_PANEL_BUTTONS_PLUGIN_CATEGORY[index];
|
|
info.hasArrow = 1;
|
|
UIDropDownMenu_AddButton(info);
|
|
end
|
|
|
|
TitanPanelRightClickMenu_AddSpacer();
|
|
|
|
if frame == "TitanPanelBarButton" then
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_OPTIONS;
|
|
info.value = "Options";
|
|
info.hasArrow = 1;
|
|
UIDropDownMenu_AddButton(info);
|
|
else
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_OPTIONS;
|
|
info.value = "OptionsAux";
|
|
info.hasArrow = 1;
|
|
UIDropDownMenu_AddButton(info);
|
|
end
|
|
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_LOAD_SETTINGS;
|
|
info.value = "Settings";
|
|
info.hasArrow = 1;
|
|
UIDropDownMenu_AddButton(info);
|
|
end
|
|
|
|
function TitanPanel_OptionsMenu()
|
|
local info = {};
|
|
|
|
if ( UIDROPDOWNMENU_MENU_VALUE == "OptionsAux" ) then
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_AUTOHIDE;
|
|
info.func = TitanPanelBarButton_ToggleAuxAutoHide;
|
|
info.checked = TitanPanelGetVar("AuxAutoHide");
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_CENTER_TEXT;
|
|
info.func = TitanPanelBarButton_ToggleAuxAlign;
|
|
info.checked = (TitanPanelGetVar("AuxButtonAlign") == TITAN_PANEL_BUTTONS_ALIGN_CENTER);
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_DISABLE_PUSH;
|
|
info.func = TitanPanelBarButton_ToggleAuxScreenAdjust;
|
|
info.checked = TitanPanelGetVar("AuxScreenAdjust");
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_DOUBLE_BAR;
|
|
info.func = TitanPanelBarButton_ToggleAuxDoubleBar;
|
|
info.checked = TitanPanelGetVar("AuxDoubleBar") == TITAN_PANEL_BARS_DOUBLE;
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
end
|
|
|
|
if ( UIDROPDOWNMENU_MENU_VALUE == "Options" ) then
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_AUTOHIDE;
|
|
info.func = TitanPanelBarButton_ToggleAutoHide;
|
|
info.checked = TitanPanelGetVar("AutoHide");
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_CENTER_TEXT;
|
|
info.func = TitanPanelBarButton_ToggleAlign;
|
|
info.checked = (TitanPanelGetVar("ButtonAlign") == TITAN_PANEL_BUTTONS_ALIGN_CENTER);
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_DISABLE_PUSH;
|
|
info.func = TitanPanelBarButton_ToggleScreenAdjust;
|
|
info.checked = TitanPanelGetVar("ScreenAdjust");
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_DOUBLE_BAR;
|
|
info.func = TitanPanelBarButton_ToggleDoubleBar;
|
|
info.checked = TitanPanelGetVar("DoubleBar") == TITAN_PANEL_BARS_DOUBLE;
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
end
|
|
|
|
if ( UIDROPDOWNMENU_MENU_VALUE == "Options" or UIDROPDOWNMENU_MENU_VALUE == "OptionsAux" ) then
|
|
TitanPanelRightClickMenu_AddSpacer(UIDROPDOWNMENU_MENU_LEVEL);
|
|
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_DISPLAY_ONTOP;
|
|
info.func = TitanPanelBarButton_TogglePosition;
|
|
info.checked = (TitanPanelGetVar("Position") == TITAN_PANEL_PLACE_TOP);
|
|
info.disabled = TitanPanelGetVar("BothBars")
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_DISPLAY_BOTH;
|
|
info.func = TitanPanelBarButton_ToggleBarsShown;
|
|
info.checked = TitanPanelGetVar("BothBars");
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
|
|
TitanPanelRightClickMenu_AddSpacer(UIDROPDOWNMENU_MENU_LEVEL);
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_TOOLTIPS_SHOWN;
|
|
info.func = TitanPanelBarButton_ToggleToolTipsShown;
|
|
info.checked = TitanPanelGetVar("ToolTipsShown");
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_VERSION_SHOWN;
|
|
info.func = TitanPanelBarButton_ToggleVersionShown;
|
|
info.checked = TitanPanelGetVar("VersionShown");
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_DISBALE_FONT;
|
|
info.func = TitanPanelBarButton_ToggleDisableFont;
|
|
info.checked = TitanPanelGetVar("DisableFont");
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_CASTINGBAR;
|
|
info.func = TitanPanelBarButton_ToggleCastingBar;
|
|
info.checked = TitanPanelGetVar("CastingBar");
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
|
|
info = {};
|
|
info.text = TITAN_PANEL_MENU_RESET;
|
|
info.func = TitanPanel_ResetBar;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
end
|
|
end
|
|
|
|
function TitanPanel_LoadServerSettingsMenu()
|
|
local info = {};
|
|
local servers = {};
|
|
local server = nil;
|
|
local s, e, ident;
|
|
|
|
|
|
if ( UIDROPDOWNMENU_MENU_VALUE == "Settings" ) then
|
|
for index, id in TitanSettings.Players do
|
|
s, e, ident = string.find(index, "@");
|
|
if s ~= nil then
|
|
server = string.sub(index, s+1);
|
|
else
|
|
server = "Unknown";
|
|
end
|
|
|
|
if TitanUtils_GetCurrentIndex(servers, server) == nil then
|
|
table.insert(servers, server);
|
|
info = {};
|
|
info.text = server;
|
|
info.value = server;
|
|
info.hasArrow = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function TitanPanel_LoadPlayerSettingsMenu()
|
|
local info = {};
|
|
local player = nil;
|
|
local server = nil;
|
|
local s, e, ident;
|
|
|
|
|
|
for index, id in TitanSettings.Players do
|
|
s, e, ident = string.find(index, "@");
|
|
if s ~= nil then
|
|
server = string.sub(index, s+1);
|
|
player = string.sub(index, 1, s-1);
|
|
else
|
|
server = "Unknown";
|
|
player = "Unknown";
|
|
end
|
|
|
|
if server == UIDROPDOWNMENU_MENU_VALUE then
|
|
info = {};
|
|
info.text = player;
|
|
info.value = index;
|
|
info.func = TitanVariables_UseSettings;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
end
|
|
end
|
|
end
|
|
|
|
function TitanPanel_BuildOtherPluginsMenu()
|
|
local info = {};
|
|
local checked;
|
|
local plugin;
|
|
local frame = this:GetName();
|
|
local frname = getglobal(frame);
|
|
|
|
for index, id in TitanPluginsIndex do
|
|
plugin = TitanUtils_GetPlugin(id);
|
|
if not plugin.category then
|
|
plugin.category = "General";
|
|
end
|
|
|
|
if ( UIDROPDOWNMENU_MENU_VALUE == "Addons_" .. plugin.category ) then
|
|
if (not plugin.builtIn) then
|
|
checked = nil;
|
|
if ( TitanPanel_IsPluginShown(id) ) then
|
|
checked = 1;
|
|
end
|
|
|
|
info = {};
|
|
if plugin.version ~= nil and TitanPanelGetVar("VersionShown") then
|
|
info.text = plugin.menuText .. TitanUtils_GetGreenText(" (v" .. plugin.version .. ")");
|
|
else
|
|
info.text = plugin.menuText;
|
|
end
|
|
info.value = id;
|
|
info.func = TitanPanelRightClickMenu_BarOnClick;
|
|
info.checked = checked;
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function TitanPanel_BuildPluginsMenu()
|
|
local info = {};
|
|
local checked;
|
|
local plugin;
|
|
|
|
if ( UIDROPDOWNMENU_MENU_VALUE == "Builtins" ) then
|
|
TitanPanelRightClickMenu_AddTitle(TITAN_PANEL_MENU_LEFT_SIDE, UIDROPDOWNMENU_MENU_LEVEL);
|
|
|
|
for index, id in TitanPluginsIndex do
|
|
plugin = TitanUtils_GetPlugin(id);
|
|
if ( plugin.builtIn and ( TitanPanel_GetPluginSide(id) == "Left") ) then
|
|
checked = nil;
|
|
if ( TitanPanel_IsPluginShown(id) ) then
|
|
checked = 1;
|
|
end
|
|
|
|
info = {};
|
|
if plugin.version ~= nil and TitanPanelGetVar("VersionShown") then
|
|
info.text = plugin.menuText .. TitanUtils_GetGreenText(" (v" .. plugin.version .. ")");
|
|
else
|
|
info.text = plugin.menuText;
|
|
end
|
|
info.value = id;
|
|
info.func = TitanPanelRightClickMenu_BarOnClick;
|
|
info.checked = checked;
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
end
|
|
end
|
|
|
|
TitanPanelRightClickMenu_AddSpacer(UIDROPDOWNMENU_MENU_LEVEL);
|
|
TitanPanelRightClickMenu_AddTitle(TITAN_PANEL_MENU_RIGHT_SIDE, UIDROPDOWNMENU_MENU_LEVEL);
|
|
|
|
for index, id in TitanPluginsIndex do
|
|
plugin = TitanUtils_GetPlugin(id);
|
|
if ( plugin.builtIn and ( TitanPanel_GetPluginSide(id) == "Right") ) then
|
|
checked = nil;
|
|
if ( TitanPanel_IsPluginShown(id) ) then
|
|
checked = 1;
|
|
end
|
|
|
|
if id ~= "AuxAutoHide" then
|
|
info = {};
|
|
if plugin.version ~= nil and TitanPanelGetVar("VersionShown") then
|
|
info.text = plugin.menuText .. TitanUtils_GetGreenText(" (v" .. plugin.version .. ")");
|
|
else
|
|
info.text = plugin.menuText;
|
|
end
|
|
info.value = id;
|
|
info.func = TitanPanelRightClickMenu_BarOnClick;
|
|
info.checked = checked;
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
end
|
|
end
|
|
end
|
|
end
|
|
if ( UIDROPDOWNMENU_MENU_VALUE == "BuiltinsAux" ) then
|
|
TitanPanelRightClickMenu_AddTitle(TITAN_PANEL_MENU_LEFT_SIDE, UIDROPDOWNMENU_MENU_LEVEL);
|
|
|
|
for index, id in TitanPluginsIndex do
|
|
plugin = TitanUtils_GetPlugin(id);
|
|
if ( plugin.builtIn and ( TitanPanel_GetPluginSide(id) == "Left") ) then
|
|
checked = nil;
|
|
if ( TitanPanel_IsPluginShown(id) ) then
|
|
checked = 1;
|
|
end
|
|
|
|
info = {};
|
|
if plugin.version ~= nil and TitanPanelGetVar("VersionShown") then
|
|
info.text = plugin.menuText .. TitanUtils_GetGreenText(" (v" .. plugin.version .. ")");
|
|
else
|
|
info.text = plugin.menuText;
|
|
end
|
|
info.value = id;
|
|
info.func = TitanPanelRightClickMenu_BarOnClick;
|
|
info.checked = checked;
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
end
|
|
end
|
|
|
|
TitanPanelRightClickMenu_AddSpacer(UIDROPDOWNMENU_MENU_LEVEL);
|
|
TitanPanelRightClickMenu_AddTitle(TITAN_PANEL_MENU_RIGHT_SIDE, UIDROPDOWNMENU_MENU_LEVEL);
|
|
|
|
for index, id in TitanPluginsIndex do
|
|
plugin = TitanUtils_GetPlugin(id);
|
|
if ( plugin.builtIn and ( TitanPanel_GetPluginSide(id) == "Right") ) then
|
|
checked = nil;
|
|
if ( TitanPanel_IsPluginShown(id) ) then
|
|
checked = 1;
|
|
end
|
|
|
|
if id ~= "AutoHide" then
|
|
info = {};
|
|
if plugin.version ~= nil and TitanPanelGetVar("VersionShown") then
|
|
info.text = plugin.menuText .. TitanUtils_GetGreenText(" (v" .. plugin.version .. ")");
|
|
else
|
|
info.text = plugin.menuText;
|
|
end
|
|
info.value = id;
|
|
info.func = TitanPanelRightClickMenu_BarOnClick;
|
|
info.checked = checked;
|
|
info.keepShownOnClick = 1;
|
|
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function TitanPanel_IsPluginShown(id)
|
|
if ( id and TitanPanelSettings ) then
|
|
return TitanUtils_TableContainsValue(TitanPanelSettings.Buttons, id);
|
|
end
|
|
end
|
|
|
|
function TitanPanel_GetPluginSide(id)
|
|
if ( id == TITAN_CLOCK_ID and TitanGetVar(TITAN_CLOCK_ID, "DisplayOnRightSide") ) then
|
|
return "Right";
|
|
elseif ( TitanPanelButton_IsIcon(id) ) then
|
|
return "Right";
|
|
else
|
|
return "Left";
|
|
end
|
|
end
|
|
|
|
function TitanPanel_ResetBar()
|
|
local playerName = UnitName("player");
|
|
local serverName = GetCVar("realmName");
|
|
|
|
TitanCopyPlayerSettings = TitanSettings.Players[playerName.."@"..serverName];
|
|
TitanCopyPluginSettings = TitanCopyPlayerSettings["Plugins"];
|
|
|
|
for index, id in TitanPanelSettings["Buttons"] do
|
|
local currentButton = TitanUtils_GetButton(TitanPanelSettings["Buttons"][index]);
|
|
currentButton:Hide();
|
|
end
|
|
|
|
TitanSettings.Players[playerName.."@"..serverName] = {};
|
|
TitanSettings.Players[playerName.."@"..serverName].Plugins = {};
|
|
TitanSettings.Players[playerName.."@"..serverName].Panel = {}
|
|
TitanSettings.Players[playerName.."@"..serverName].Panel.Buttons = TITAN_PANEL_INITIAL_PLUGINS;
|
|
TitanSettings.Players[playerName.."@"..serverName].Panel.Locations = TITAN_PANEL_INITIAL_PLUGIN_LOCATION;
|
|
|
|
TITAN_FIRST_LOAD = 1;
|
|
|
|
-- Set global variables
|
|
TitanPlayerSettings = TitanSettings.Players[playerName.."@"..serverName];
|
|
TitanPluginSettings = TitanPlayerSettings["Plugins"];
|
|
TitanPanelSettings = TitanPlayerSettings["Panel"];
|
|
|
|
ReloadUI()
|
|
end
|
|
|
|
TitanPanelDetails = {
|
|
name = "Titan Panel (Multibar)",
|
|
description = "Adds a control panel/info box at the top and bottom of the screen.",
|
|
version = TITAN_VERSION,
|
|
releaseDate = TITAN_LAST_UPDATED,
|
|
author = "TitanMod/Adsertor",
|
|
email = "",
|
|
website = "http://ui.worldofwar.net/ui.php?id=1442",
|
|
category = MYADDONS_CATEGORY_BARS,
|
|
frame = "TitanPanel",
|
|
optionsframe = "",
|
|
};
|
|
|
|
TitanPanelHelp = {};
|
|
TitanPanelHelp[1] = "Titan Panel adds a control panel/info box at the top and bottom of the screen.\n\nFeatures include:\n1. Ammo/Thrown counter\n2. Bag\n3. Experience (XP)\n4. FPS\n5. Latency\n6. Location\n7. Loot Type\n8. Memory\n9. Money\n10. PvP Honor\n11. Clock\n\nAlso build-in controls allow you to:\n1. Adjust master sound volume\n2. Adjust UI Scale\n3. Adjust panel transparency\n4. Toggle auto-hide on/off\n\nFully support plug-ins system. All modules on the panel are plug-n-play. Allows other developers to create plugins to import the new features.\n\n\nThanks go to\n- Sotakone, for providing a bug fix for German clients\n- Kilan, for submitting code which makes Titan Panel save per-realm-per-character";
|
|
|
|
function TitanPanelFrame_OnLoad()
|
|
-- Register the events that need to be watched
|
|
this:RegisterEvent("VARIABLES_LOADED");
|
|
end
|
|
|
|
function TitanPanelFrame_OnEvent()
|
|
if(event == "VARIABLES_LOADED") then
|
|
-- Check if myAddOns is loaded
|
|
if(myAddOnsFrame_Register) then
|
|
-- Register the addon in myAddOns
|
|
myAddOnsFrame_Register(TitanPanelDetails, TitanPanelHelp);
|
|
end
|
|
end
|
|
end
|
|
|
|
function TitanPanel_AddonLoaded(addonname)
|
|
if addonname == "Blizzard_BattlefieldMinimap" then
|
|
if ( not BattlefieldMinimapOptions ) then
|
|
BattlefieldMinimapOptions = BattlefieldMinimapDefaults;
|
|
end
|
|
|
|
if not ( BattlefieldMinimapOptions.position ) then
|
|
BattlefieldMinimapTab:SetPoint("CENTER", "UIParent", "BOTTOMLEFT", 845, 443);
|
|
BattlefieldMinimapTab:SetUserPlaced(true);
|
|
BattlefieldMinimapTab:Show();
|
|
BattlefieldMinimapOptions["locked"] = false
|
|
BattlefieldMinimapOptions.position = {};
|
|
BattlefieldMinimapOptions.position.x, BattlefieldMinimapOptions.position.y = BattlefieldMinimapTab:GetCenter();
|
|
local loaded, reason = LoadAddOn("Blizzard_BattlefieldMinimap");
|
|
end
|
|
end
|
|
end |