vanilla-wow-addons – Rev 1
?pathlinks?
tinsert(UISpecialFrames, "CT_BarModOptionsFrame");
CT_BarModOptions_Options = { };
function CT_BarModOptions_Slider_OnShow(slider)
if ( not slider ) then
slider = this;
end
if ( not CT_BarModOptions_Options[UnitName("player")] or not CT_BarModOptions_Options[UnitName("player")][slider:GetID()] ) then
return;
end
local names = {
"Left Hotbar Scaling",
"Right Hotbar Scaling",
"Left Sidebar Scaling",
"Right Sidebar Scaling",
"Top Hotbar Scaling",
"Main Bar Scaling"
};
getglobal(slider:GetName().."High"):SetText("150%");
getglobal(slider:GetName().."Low"):SetText("50%")
getglobal(slider:GetName() .. "Text"):SetText(names[slider:GetID()] .. " - " .. floor(CT_BarModOptions_Options[UnitName("player")][slider:GetID()]*100+0.5) .. "%");
slider:SetMinMaxValues(0.5, 1.5);
slider:SetValueStep(0.01);
slider:SetValue(CT_BarModOptions_Options[UnitName("player")][slider:GetID()]);
if ( slider:GetID() == 6 ) then
slider.tooltipText = "Requires Main Bar's texture to be hidden using CT_BottomBar in order to take effect.";
end
local prefix = "CT"..slider:GetID() .. "_";
if ( slider:GetID() == 1 ) then
prefix = "CT_"; -- First bar is prefixed CT and not CT1
elseif ( slider:GetID() == 6 ) then
if ( not CT_BottomBar_HiddenFrames or not CT_BottomBar_HiddenFrames[UnitName("player")]["BarHotbarBackgroundLeft"] or not CT_BottomBar_Enabled[UnitName("player")] ) then
return;
end
prefix = ""; -- Main bar has no prefix
end
for i = 1, 12, 1 do
getglobal(prefix .. "ActionButton" .. i):SetScale(CT_BarModOptions_Options[UnitName("player")][slider:GetID()]);
if ( prefix == "" ) then
getglobal("BonusActionButton" .. i):SetScale(CT_BarModOptions_Options[UnitName("player")][slider:GetID()]);
end
end
end
function CT_BarModOptions_Slider_OnValueChanged()
local names = {
"Left Hotbar Scaling",
"Right Hotbar Scaling",
"Left Sidebar Scaling",
"Right Sidebar Scaling",
"Top Hotbar Scaling",
"Main Bar Scaling"
};
CT_BarModOptions_Options[UnitName("player")][this:GetID()] = floor(this:GetValue()*100+0.5)/100;
getglobal(this:GetName() .. "Text"):SetText(names[this:GetID()] .. " - " .. floor(this:GetValue()*100+0.5) .. "%");
local prefix = "CT"..this:GetID() .. "_";
if ( this:GetID() == 1 ) then
prefix = "CT_"; -- First bar is prefixed CT and not CT1
elseif ( this:GetID() == 6 ) then
if ( not CT_BottomBar_HiddenFrames or not CT_BottomBar_HiddenFrames[UnitName("player")]["BarHotbarBackgroundLeft"] or not CT_BottomBar_Enabled[UnitName("player")] ) then
return;
end
prefix = ""; -- Main bar has no prefix
end
for i = 1, 12, 1 do
getglobal(prefix .. "ActionButton" .. i):SetScale(CT_BarModOptions_Options[UnitName("player")][this:GetID()]);
if ( prefix == "" ) then
getglobal("BonusActionButton" .. i):SetScale(CT_BarModOptions_Options[UnitName("player")][this:GetID()]);
end
end
end
function CT_BarModOptions_LoadOptions()
if ( not CT_BarModOptions_Options[UnitName("player")] ) then
CT_BarModOptions_Options[UnitName("player")] = { 1, 1, 1, 1, 1, 1 };
if ( CT_BottomBar_RotatedFrames and not CT_BottomBar_RotatedFrames[UnitName("player")] ) then
CT_BottomBar_RotatedFrames[UnitName("player")] = {};
end
if ( CT_BottomBar_HiddenFrames and not CT_BottomBar_HiddenFrames[UnitName("player")] ) then
CT_BottomBar_HiddenFrames[UnitName("player")] = {};
end
elseif ( getn(CT_BarModOptions_Options[UnitName("player")]) < 6 ) then
for i = getn(CT_BarModOptions_Options[UnitName("player")])+1, 6, 1 do
tinsert(CT_BarModOptions_Options[UnitName("player")], 1);
end
end
CT_BarModOptions_Slider_OnShow(CT_BarModOptionsFrameScalingSliderHotbarLeft);
CT_BarModOptions_Slider_OnShow(CT_BarModOptionsFrameScalingSliderHotbarRight);
CT_BarModOptions_Slider_OnShow(CT_BarModOptionsFrameScalingSliderSidebarLeft);
CT_BarModOptions_Slider_OnShow(CT_BarModOptionsFrameScalingSliderSidebarRight);
CT_BarModOptions_Slider_OnShow(CT_BarModOptionsFrameScalingSliderHotbarTop);
CT_BarModOptions_Slider_OnShow(CT_BarModOptionsFrameScalingSliderMainBar);
CT_BarModOptions_RemoveSpaceBars(CT_BarModOptions_Options[UnitName("player")]["removeBars"]);
CT_BarModOptions_RemoveSpaceBags(CT_BarModOptions_Options[UnitName("player")]["removeBags"]);
CT_BarModOptions_RemoveSpaceSpecial(CT_BarModOptions_Options[UnitName("player")]["removeSpecial"]);
CT_BarModOptionsFrameScalingCheckButtonBars:SetChecked(CT_BarModOptions_Options[UnitName("player")]["removeBars"]);
CT_BarModOptionsFrameScalingCheckButtonBags:SetChecked(CT_BarModOptions_Options[UnitName("player")]["removeBags"]);
CT_BarModOptionsFrameScalingCheckButtonSpecial:SetChecked(CT_BarModOptions_Options[UnitName("player")]["removeSpecial"]);
for i = 1, 5, 1 do
CT_BarModOptions_EnableBar(i, CT_BarModOptions_Options[UnitName("player")]["bar" .. i], 1);
end
CT_BarModOptions_SetOption(1, CT_BarModOptions_Options[UnitName("player")]["hidegrid"]);
CT_BarModOptions_SetOption(2, CT_BarModOptions_Options[UnitName("player")]["buttonlock"]);
CT_BarModOptions_SetOption(3, CT_BarModOptions_Options[UnitName("player")]["pagelock"]);
CT_BarModOptions_SetButtons(CT_BarModOptions_Options[UnitName("player")]["leftbarbuttons"] or 3);
CT_BarModOptions_SetButtons(CT_BarModOptions_Options[UnitName("player")]["rightbarbuttons"] or 6);
end
function CT_BarModOptions_RemoveSpaceBars(checked)
if ( not CT_BarModOptions_Options[UnitName("player")] ) then
CT_BarModOptions_Options[UnitName("player")] = { 1, 1, 1, 1, 1, 1 };
end
if ( CT_BottomBar_RotatedFrames and not CT_BottomBar_RotatedFrames[UnitName("player")] ) then
CT_BottomBar_RotatedFrames[UnitName("player")] = { };
end
if ( CT_BottomBar_HiddenFrames and not CT_BottomBar_HiddenFrames[UnitName("player")] ) then
CT_BottomBar_HiddenFrames[UnitName("player")] = { };
end
CT_BarModOptions_Options[UnitName("player")]["removeBars"] = checked;
if ( not CT_BottomBar_Enabled ) then
return;
end
local offset, mainOffset = 6, 6;
if ( checked ) then
offset = 3;
end
if ( checked and CT_BottomBar_HiddenFrames and ( CT_BottomBar_HiddenFrames[UnitName("player")]["BarHotbarBackgroundLeft"] or CT_BottomBar_RotatedFrames[UnitName("player")]["Bars"] ) and CT_BottomBar_Enabled[UnitName("player")] ) then
mainOffset = 3;
end
for i = 2, 12, 1 do
for y = 1, 5, 1 do
local prefix = "CT" .. y;
if ( y == 1 ) then
prefix = "CT";
end
if ( ( not CT_SidebarAxis and ( y ~= 3 and y ~= 4 ) ) or CT_SidebarAxis[y] == 2 ) then
getglobal(prefix .. "_ActionButton" .. i):ClearAllPoints();
getglobal(prefix .. "_ActionButton" .. i):SetPoint("LEFT", prefix .. "_ActionButton" .. i-1, "RIGHT", offset, 0);
else
getglobal(prefix .. "_ActionButton" .. i):ClearAllPoints();
getglobal(prefix .. "_ActionButton" .. i):SetPoint("TOP", prefix .. "_ActionButton" .. i-1, "BOTTOM", 0, -offset);
end
end
getglobal("ActionButton" .. i):ClearAllPoints();
getglobal("BonusActionButton" .. i):ClearAllPoints();
if ( CT_BottomBar_RotatedFrames and CT_BottomBar_RotatedFrames[UnitName("player")]["Bars"] and CT_BottomBar_Enabled[UnitName("player")] ) then
getglobal("ActionButton" .. i):SetPoint("TOP", "ActionButton" .. i-1, "BOTTOM", 0, -mainOffset);
getglobal("BonusActionButton" .. i):SetPoint("TOP", "BonusActionButton" .. i-1, "BOTTOM", 0, -mainOffset);
elseif ( CT_BottomBar_HiddenFrames and CT_BottomBar_HiddenFrames[UnitName("player")]["BarHotbarBackgroundLeft"] and CT_BottomBar_Enabled[UnitName("player")] ) then
getglobal("ActionButton" .. i):SetPoint("LEFT", "ActionButton" .. i-1, "RIGHT", mainOffset, 0);
getglobal("BonusActionButton" .. i):SetPoint("LEFT", "BonusActionButton" .. i-1, "RIGHT", mainOffset, 0);
else
getglobal("ActionButton" .. i):SetPoint("LEFT", "ActionButton" .. i-1, "RIGHT", 6, 0);
getglobal("BonusActionButton" .. i):SetPoint("LEFT", "BonusActionButton" .. i-1, "RIGHT", 6, 0);
end
end
end
function CT_BarModOptions_RemoveSpaceBags(checked)
CT_BarModOptions_Options[UnitName("player")]["removeBags"] = checked;
if ( not CT_BottomBar_Enabled or CT_BottomBar_HiddenFrames[UnitName("player")]["Bags"] ) then
return;
end
local enabled;
if ( ( CT_BottomBar_HiddenFrames[UnitName("player")]["BagsBackground"] or CT_BottomBar_RotatedFrames[UnitName("player")]["Bags"] ) and CT_BottomBar_Enabled[UnitName("player")] ) then
enabled = 1;
local offset = 5;
if ( checked ) then
offset = 2;
end
local tbl = {
[0] = "MainMenuBarBackpackButton",
"CharacterBag0Slot",
"CharacterBag1Slot",
"CharacterBag2Slot",
"CharacterBag3Slot"
};
for i = 1, 4, 1 do
getglobal(tbl[i]):ClearAllPoints();
if ( CT_BottomBar_RotatedFrames[UnitName("player")]["Bags"] ) then
getglobal(tbl[i]):SetPoint("TOP", tbl[i-1], "BOTTOM", 0, -offset);
else
getglobal(tbl[i]):SetPoint("RIGHT", tbl[i-1], "LEFT", -offset, 0);
end
end
end
if ( CT_BottomBar_Enabled[UnitName("player")] ) then
if ( CT_BottomBar_RotatedFrames[UnitName("player")]["Bags"]) then
MainMenuBarBackpackButton:ClearAllPoints();
MainMenuBarBackpackButton:SetPoint("TOPLEFT", "CT_BottomBarFrameBags", "TOPLEFT", 7, -4);
elseif ( checked and enabled ) then
MainMenuBarBackpackButton:ClearAllPoints();
MainMenuBarBackpackButton:SetPoint("TOPRIGHT", "CT_BottomBarFrameBags", "TOPRIGHT", -24, -4);
else
MainMenuBarBackpackButton:ClearAllPoints();
MainMenuBarBackpackButton:SetPoint("TOPRIGHT", "CT_BottomBarFrameBags", "TOPRIGHT", -8, -4);
end
else
MainMenuBarBackpackButton:ClearAllPoints();
MainMenuBarBackpackButton:SetPoint("BOTTOMRIGHT", "MainMenuBarArtFrame", "BOTTOMRIGHT", -6, 2);
local tbl = {
[0] = "MainMenuBarBackpackButton",
"CharacterBag0Slot",
"CharacterBag1Slot",
"CharacterBag2Slot",
"CharacterBag3Slot"
};
for i = 1, 4, 1 do
getglobal(tbl[i]):ClearAllPoints();
getglobal(tbl[i]):SetPoint("RIGHT", tbl[i-1], "LEFT", -5, 0);
end
end
end
function CT_BarModOptions_RemoveSpaceSpecial(checked)
CT_BarModOptions_Options[UnitName("player")]["removeSpecial"] = checked;
if ( not CT_BottomBar_Enabled ) then
return;
end
local offset, offsetss = 8, 6;
if ( checked and CT_BottomBar_Enabled and CT_BottomBar_Enabled[UnitName("player")] ) then
if ( CT_BABar_DragFrame_Orientation == "V" or CT_BottomBar_HiddenFrames[UnitName("player")]["ClassBackground"] ) then
offsetss = 3;
end
if ( CT_PetBar_DragFrame_Orientation == "V" or CT_BottomBar_HiddenFrames[UnitName("player")]["ClassBackground"] ) then
offset = 3;
end
end
for i = 2, 10, 1 do
getglobal("ShapeshiftButton" .. i):ClearAllPoints();
if ( CT_BABar_DragFrame_Orientation and CT_BABar_DragFrame_Orientation == "V" ) then
getglobal("ShapeshiftButton" .. i):SetPoint("TOP", "ShapeshiftButton" .. i-1, "BOTTOM", 0, -offsetss);
else
getglobal("ShapeshiftButton" .. i):SetPoint("LEFT", "ShapeshiftButton" .. i-1, "RIGHT", offsetss, 0);
end
getglobal("PetActionButton" .. i):ClearAllPoints();
if ( CT_PetBar_DragFrame_Orientation and CT_PetBar_DragFrame_Orientation == "V" ) then
getglobal("PetActionButton" .. i):SetPoint("TOP", "PetActionButton" .. i-1, "BOTTOM", 0, -offset);
else
getglobal("PetActionButton" .. i):SetPoint("LEFT", "PetActionButton" .. i-1, "RIGHT", offset, 0);
end
end
end
function CT_BarModOptions_OpenFrame()
if ( CT_BarModOptionsFrame:IsVisible() ) then
CT_BarModOptionsFrame:Hide();
else
CT_BarModOptionsFrame:Show();
end
end
CT_RegisterMod("Bar Options", "Display Dialog", 2, "Interface\\Icons\\Ability_Rogue_Ambush", "Opens the Bar Options dialogs, where you\ncan modify various hotbar properties.", "switch", nil, CT_BarModOptions_OpenFrame);
function CT_BarModOptions_LoadButton()
if ( this:GetID() <= 3 ) then
getglobal(this:GetName() .. "Name"):SetText(3+(this:GetID()*3));
else
getglobal(this:GetName() .. "Name"):SetText(3+((this:GetID()-3)*3));
end
end
function CT_BarModOptions_EnableBar(id, checked, isLoading)
CT_BarModOptions_Options[UnitName("player")]["bar" .. id] = checked;
local objs = { "LHBCB", "RHBCB", "LSBCB", "RSBCB", "THBCB" };
local names = { "CT_HotbarLeft", "CT_HotbarRight", "CT_SidebarFrame", "CT_SidebarFrame2", "CT_HotbarTop" };
local dragnames = { "CT_HotbarLeft_Drag", "CT_HotbarRight_Drag", "CT_SidebarLeft_Drag", "CT_SidebarRight_Drag", "CT_HotbarTop_Drag" };
getglobal("CT_BarModOptionsFrameOptionsDisplay" .. objs[id]):SetChecked(checked);
if ( checked ) then
getglobal(names[id]):Show();
if ( CT_MF_ShowFrames ) then
getglobal(dragnames[id]):Show();
end
if ( id == 1 and isLoading ) then
if ( not CT_BABar_Drag:IsUserPlaced() ) then
CT_BABar_Drag:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOM", -461, 128);
end
if ( not CT_PetBar_Drag:IsUserPlaced() ) then
CT_PetBar_Drag:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOM", -453, 122);
end
end
else
if ( id == 1 and not isLoading ) then
CT_LeftHotbar_OnHide();
end
getglobal(names[id]):Hide();
end
if ( id == 1 and not isLoading and checked ) then
local x = CT_PetBar_Drag:GetLeft()-(UIParent:GetRight()/2);
local y = CT_PetBar_Drag:GetBottom()+40;
CT_PetBar_Drag:ClearAllPoints();
CT_PetBar_Drag:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOM", x, y);
x = CT_BABar_Drag:GetLeft()-(UIParent:GetRight()/2);
y = CT_BABar_Drag:GetBottom()+40;
CT_BABar_Drag:ClearAllPoints();
CT_BABar_Drag:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOM", x, y);
elseif ( id == 1 and isLoading and not checked ) then
elseif ( id == 4 ) then
CT_Bag_Update();
end
end
function CT_BarModOptions_SetButtons(id)
if ( id <= 3 ) then
for i = 1, 3, 1 do
if ( i ~= id ) then
getglobal("CT_BarModOptionsFrameOptionsLSB" .. i):SetChecked(false);
else
getglobal("CT_BarModOptionsFrameOptionsLSB" .. i):SetChecked(true);
end
end
CT_LSidebar_Buttons = 3+(id*3);
for i=1, 12, 1 do
if ( i > CT_LSidebar_Buttons ) then
getglobal("CT3_ActionButton" .. i):Hide();
else
getglobal("CT3_ActionButton" .. i):Show();
end
end
-- Left Sidebar
CT_BarModOptions_Options[UnitName("player")]["leftbarbuttons"] = id;
else
for i = 1, 3, 1 do
if ( i ~= (id-3) ) then
getglobal("CT_BarModOptionsFrameOptionsRSB" .. i):SetChecked(false);
else
getglobal("CT_BarModOptionsFrameOptionsRSB" .. i):SetChecked(true);
end
end
CT_RSidebar_Buttons = 3+((id-3)*3);
for i=1, 12, 1 do
if ( i > CT_RSidebar_Buttons ) then
getglobal("CT4_ActionButton" .. i):Hide();
else
getglobal("CT4_ActionButton" .. i):Show();
end
end
-- Right Sidebar
CT_BarModOptions_Options[UnitName("player")]["rightbarbuttons"] = id;
end
end
function CT_BarModOptions_SetOption(id, checked)
local objs = { "HideGridCB", "ButtonLockCB", "PageLockCB" };
getglobal("CT_BarModOptionsFrameOptions" .. objs[id]):SetChecked(checked);
if ( id == 1 ) then
-- Hide Button Grid
CT_BarModOptions_Options[UnitName("player")]["hidegrid"] = checked;
CT_ShowGrid = not checked;
if ( not checked ) then
local bar1, bar2, bar3, bar4, bar5, bar6, bar7, bar8, bar9, bar10, bar11;
for i=1, 12, 1 do
bar1, bar2, bar3, bar4 = getglobal("MultiBarBottomLeftButton" .. i), getglobal("MultiBarBottomRightButton" .. i), getglobal("MultiBarLeftButton" .. i), getglobal("MultiBarRightButton" .. i);
bar5, bar6, bar7, bar8 = getglobal("CT_ActionButton" .. i), getglobal("CT2_ActionButton" .. i), getglobal("CT5_ActionButton" .. i), getglobal("CT3_ActionButton" .. i);
bar9, bar10, bar11 = getglobal("CT3_ActionButton" .. i), getglobal("ActionButton" .. i), getglobal("BonusActionButton" .. i);
-- Set the showgrid variable
bar1.showgrid = 3;
bar2.showgrid = 3;
bar3.showgrid = 3;
bar4.showgrid = 3;
bar5.showgrid = 3;
bar6.showgrid = 3;
bar7.showgrid = 3;
bar8.showgrid = 3;
bar9.showgrid = 3;
bar10.showgrid = 3;
bar11.showgrid = 3;
-- Show the bars
bar1:Show();
bar2:Show();
bar3:Show();
bar4:Show();
bar5:Show();
bar6:Show();
bar7:Show();
-- Show these only if they're in use
if ( CT_Sidebar_ButtonInUse(getglobal("CT3_ActionButton" .. i)) ) then
bar8:Show();
end
if ( CT_Sidebar_ButtonInUse(getglobal("CT4_ActionButton" .. i)) ) then
bar9:Show();
end
-- Show the appropriate main/bonus bar
if ( not CT_BottomBar_Enabled or not CT_BottomBar_HiddenFrames[UnitName("player")]["BarHotbar"] or not CT_BottomBar_Enabled[UnitName("player")] ) then
if ( GetBonusBarOffset() > 0 ) then
bar10:Hide();
bar11:Show();
else
bar10:Show();
bar11:Hide();
end
end
end
else
for i=1, 12, 1 do
CT_ActionButton_HideGrid(getglobal("ActionButton" .. i));
CT_ActionButton_HideGrid(getglobal("BonusActionButton" .. i));
CT_ActionButton_HideGrid(getglobal("MultiBarLeftButton" .. i));
CT_ActionButton_HideGrid(getglobal("MultiBarRightButton" .. i));
CT_ActionButton_HideGrid(getglobal("MultiBarBottomLeftButton" .. i));
CT_ActionButton_HideGrid(getglobal("MultiBarBottomRightButton" .. i));
CT_ActionButton_HideGrid(getglobal("CT_ActionButton" .. i));
CT_ActionButton_HideGrid(getglobal("CT2_ActionButton" .. i));
CT_ActionButton_HideGrid(getglobal("CT3_ActionButton" .. i));
CT_ActionButton_HideGrid(getglobal("CT4_ActionButton" .. i));
CT_ActionButton_HideGrid(getglobal("CT5_ActionButton" .. i));
end
end
elseif ( id == 2 ) then
-- Button Lock
CT_HotbarButtons_Locked = checked;
CT_BarModOptions_Options[UnitName("player")]["buttonlock"] = checked;
elseif ( id == 3 ) then
-- Page Lock
CT_Hotbars_Locked = checked;
CT_BarModOptions_Options[UnitName("player")]["pagelock"] = checked;
end
end
Generated by GNU Enscript 1.6.5.90.