vanilla-wow-addons – Rev 1
?pathlinks?
UIPanelWindows["UltimateUIFeatureFrame"] = { area = "left", pushable = 10 };
ULTIMATEUIFEATUREFRAME_PAGESIZE = 14;
UltimateUIFeatureFrame_Offset = 0;
function ToggleUltimateUIFeatureFrame()
if (UltimateUIFeatureFrame:IsVisible()) then
HideUIPanel(UltimateUIFeatureFrame);
else
ShowUIPanel(UltimateUIFeatureFrame);
end
end
function UltimateUIButton_OnHide()
UpdateMicroButtons();
PlaySound("igSpellBookClose");
end
function UltimateUIButtons_UpdateColor()
local value = nil;
for id = 1, 14 do
value = UltimateUIMaster_Buttons[id+UltimateUIFeatureFrame_Offset];
if ( value ) then
local test_function = value[CSM_TESTFUNCTION];
if (test_function ~= nil) then
local icon = getglobal("UltimateUIFeaturesButton"..id);
local iconTexture = getglobal("UltimateUIFeaturesButton"..id.."IconTexture");
if (test_function() == false) then
icon:Disable();
iconTexture:SetVertexColor(1.00, 0.00, 0.00);
else
icon:Enable();
iconTexture:SetVertexColor(1.00, 1.00, 1.00);
end
end
end
end
end
function UltimateUIButton_OnShow()
UpdateMicroButtons();
UltimateUIFeaturesTitleText:SetText(TEXT(ULTIMATEUI_FEATURES_TITLE));
PlaySound("igSpellBookOpen");
UltimateUIButtons_UpdateColor();
end
function UltimateUIButton_OnEnter()
local value = UltimateUIMaster_Buttons[this:GetID()+UltimateUIFeatureFrame_Offset];
if (value) then
UltimateUITooltip:SetOwner(this, "ANCHOR_RIGHT");
UltimateUITooltip:SetText(value[CSM_LONGDESCRIPTION], 1.0, 1.0, 1.0);
return;
end
end
function UltimateUIButton_OnClick()
local value = UltimateUIMaster_Buttons[this:GetID()+UltimateUIFeatureFrame_Offset];
if (value) then
local f = value[CSM_CALLBACK];
this:SetChecked(0);
f();
return;
end
end
function UltimateUIButton_UpdateButton()
for i = 1, 14, 1 do
local icon = getglobal("UltimateUIFeaturesButton"..i);
local iconTexture = getglobal("UltimateUIFeaturesButton"..i.."IconTexture");
local iconName = getglobal("UltimateUIFeaturesButton"..i.."Name");
local iconDescription = getglobal("UltimateUIFeaturesButton"..i.."OtherName");
icon:Hide();
iconTexture:Hide();
iconName:Hide();
iconDescription:Hide();
end
local id = 0;
local value = 0;
for i = 1, 14 do
id = i + UltimateUIFeatureFrame_Offset;
value = UltimateUIMaster_Buttons[id];
if ( not value ) then
break;
end
local icon = getglobal("UltimateUIFeaturesButton"..i);
local iconTexture = getglobal("UltimateUIFeaturesButton"..i.."IconTexture");
local iconName = getglobal("UltimateUIFeaturesButton"..i.."Name");
local iconDescription = getglobal("UltimateUIFeaturesButton"..i.."OtherName");
icon:Show();
icon:Enable();
iconTexture:Show();
iconTexture:SetTexture(value[CSM_ICON]);
iconName:Show();
iconName:SetText(value[CSM_NAME]);
iconDescription:Show();
iconDescription:SetText(value[CSM_DESCRIPTION]);
end
UltimateUIFeatureFrame_UpdatePageArrows();
end
function UltimateUIFeatureFrame_UpdatePageArrows()
local numValues = 0;
if ( UltimateUIMaster_Buttons ) then
numValues = table.getn(UltimateUIMaster_Buttons);
end
if ( UltimateUIFeatureFrame_Offset <= 0 ) then
UltimateUIFeatureFramePrevPageButton:Disable();
else
UltimateUIFeatureFramePrevPageButton:Enable();
end
if ( ( UltimateUIFeatureFrame_Offset + ULTIMATEUIFEATUREFRAME_PAGESIZE ) >= numValues ) then
UltimateUIFeatureFrameNextPageButton:Disable();
else
UltimateUIFeatureFrameNextPageButton:Enable();
end
end
function UltimateUIFeatureFrame_PrevPageButton_OnClick()
if ( ( UltimateUIFeatureFrame_Offset - ULTIMATEUIFEATUREFRAME_PAGESIZE ) >= 0 ) then
UltimateUIFeatureFrame_Offset = UltimateUIFeatureFrame_Offset - ULTIMATEUIFEATUREFRAME_PAGESIZE;
end
UltimateUIButton_UpdateButton();
end
function UltimateUIFeatureFrame_NextPageButton_OnClick()
local numValues = table.getn(UltimateUIMaster_Buttons);
if ( ( UltimateUIFeatureFrame_Offset + ULTIMATEUIFEATUREFRAME_PAGESIZE ) < numValues ) then
UltimateUIFeatureFrame_Offset = UltimateUIFeatureFrame_Offset + ULTIMATEUIFEATUREFRAME_PAGESIZE;
end
UltimateUIButton_UpdateButton();
end