vanilla-wow-addons – Rev 1
?pathlinks?
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
Generated by GNU Enscript 1.6.5.90.