📄 titanpanel.lua
字号:
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_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_BOTTOM);
-- 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);
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();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -