vanilla-wow-addons – Rev 1
?pathlinks?
--[[
Cooldown Count
By sarf
This mod allows you to see the amount of time left until the cooldown expires on an action button.
Thanks goes to Drex of the #cosmostesters channel for suggesting this!
$Id$
$Rev$
$LastChangedBy$
$Date$
]]
-- Constants
COOLDOWNCOUNT_CUTOFF_TIME = 2; -- how many seconds the cooldown has to be for CooldownCount to be displayed
COOLDOWNCOUNT_HOUR_MINUTES_FORMAT_LIMIT = 3600;
COOLDOWNCOUNT_MINUTES_SECONDS_FORMAT_LIMIT = 60;
COOLDOWNCOUNT_WIDTH = 64;
COOLDOWNCOUNT_HEIGHT = 32;
-- how many seconds between updates
COOLDOWNCOUNT_UPDATE_TIME = 0.25;
-- how many seconds the flashing will occur (maximum)
COOLDOWNCOUNT_MAXIMUM_FLASH_TIME = 10;
-- Variables
CooldownCount_NoSpaces = 0;
CooldownCount_Enabled = 0;
CooldownCount_UseLongTimerDescriptions = 0;
CooldownCount_UseLongTimerDescriptionsForSeconds = 0;
CooldownCount_TimeBetweenFlashes = 0.5;
CooldownCount_HideUntilTimeLeft = 0;
CooldownCount_RogueStealth = 0;
CooldownCount_Saved_CooldownFrame_SetTimer = nil;
CooldownCount_Cosmos_Registered = 0;
CooldownCount_LastUpdate = 0;
CooldownCount_UserScale = 2;
CooldownCount_FramesAndTheirButtonNames = {
};
CooldownCountColorDefaultNormal = { 1.0, 0.82, 0.0 };
CooldownCountColorDefaultFlash = { 1.0, 0.12, 0.12 };
CooldownCountAlpha = 1.0;
CooldownCountOptions = {
color = {
normal = { 1.0, 0.82, 0.0 };
flash = { 1.0, 0.12, 0.12 };
};
alpha = 1.0;
};
CooldownCount_ButtonNames = {
"ActionButton", "BonusActionButton",
"MultiBarBottomLeftButton", "MultiBarBottomRightButton", "MultiBarRightButton", "MultiBarLeftButton",
};
CooldownCount_DisplayValues_WithSpace = nil;
CooldownCount_DisplayValues_WithoutSpace = nil;
function CooldownCount_PrecalcDisplayValues()
CooldownCount_DisplayValues_WithSpace = {};
CooldownCount_DisplayValues_WithoutSpace = {};
for i = 1, 60 do
CooldownCount_DisplayValues_WithSpace[i] = i.."";
CooldownCount_DisplayValues_WithoutSpace[i] = i.."";
CooldownCount_DisplayValues_WithSpace[i*60] = i.." m";
CooldownCount_DisplayValues_WithoutSpace[i*60] = i.."m";
end
for i = 1, 96 do
CooldownCount_DisplayValues_WithSpace[i*60*60] = i.." h";
CooldownCount_DisplayValues_WithoutSpace[i*60*60] = i.."h";
end
end
-- executed on load, calls general set-up functions
function CooldownCount_OnLoad()
CooldownCount_PrecalcDisplayValues();
CooldownCount_Register();
local f = CooldownCountFrame;
f:RegisterEvent("VARIABLES_LOADED");
end
function CooldownCount_SetFlashSpeed(speed, quiet)
if ( speed ) then
if ( speed ~= CooldownCount_TimeBetweenFlashes ) then
if ( not quiet ) then
CooldownCount_Print(format(COOLDOWNCOUNT_CHAT_FLASHSPEED, speed));
end
CooldownCount_TimeBetweenFlashes = speed;
end
end
end
function CooldownCount_SetHideUntilTimeLeft(value, quiet)
if ( value ) then
if ( CooldownCount_HideUntilTimeLeft ~= value ) then
if ( not quiet ) then
CooldownCount_Print(format(COOLDOWNCOUNT_CHAT_HIDEUNTILTIMELEFT, value));
end
CooldownCount_HideUntilTimeLeft = value;
CooldownCount_DoUpdate(true);
end
end
end
function CooldownCount_SetUserScale(scale, quiet)
if ( scale ) then
if ( scale ~= CooldownCount_UserScale ) then
if ( not quiet ) then
CooldownCount_Print(format(COOLDOWNCOUNT_CHAT_USERSCALE, scale));
end
CooldownCount_UserScale = scale;
CooldownCount_DoUpdate(true);
end
end
end
function CooldownCount_CooldownFrame_SetTimer(this, start, duration, enable)
CooldownCount_Saved_CooldownFrame_SetTimer(this, start, duration, enable);
CooldownCount_UpdateCooldownCount(this, start, duration, enable);
end
function CooldownCount_GenerateButtonUpdateList()
local updateList = {};
local name = nil;
for k, v in CooldownCount_ButtonNames do
for i = 1, 12 do
name = v..i;
if ( getglobal(name) ) then
table.insert(updateList, name);
end
end
end
return updateList;
end
CooldownCount_ButtonUpdateList = nil;
function CooldownCount_RegenerateList()
CooldownCount_ButtonUpdateList = CooldownCount_GenerateButtonUpdateList();
end
function CooldownCount_DoUpdate(force)
local curTime = GetTime();
if ( not CooldownCount_ButtonUpdateList ) then
CooldownCount_RegenerateList();
end
for k, v in CooldownCount_ButtonUpdateList do
CooldownCount_DoUpdateCooldownCount(v, force);
end
CooldownCount_LastUpdate = curTime;
end
function CooldownCount_OnUpdate(elapsed)
local curTime = GetTime();
if ( ( CooldownCount_LastUpdate ) and ( CooldownCount_LastUpdate > 0 ) ) then
if ( ( CooldownCount_LastUpdate + COOLDOWNCOUNT_UPDATE_TIME) < curTime ) then
CooldownCount_DoUpdate();
end
else
CooldownCount_LastUpdate = curTime;
end
end
function CooldownCount_GetFormattedNumber(number)
if (strlen(number) < 2 ) then
return "0"..number;
else
return number;
end
end
function CooldownCount_GetFormattedTime(time)
local newTime = math.floor(time);
local formattedTime = "";
local arr = CooldownCount_DisplayValues_WithSpace;
if ( CooldownCount_NoSpaces == 1 ) then arr = CooldownCount_DisplayValues_WithoutSpace; end
if ( newTime > COOLDOWNCOUNT_HOUR_MINUTES_FORMAT_LIMIT ) then
local hours = 0;
if ( CooldownCount_UseLongTimerDescriptions == 1 ) then
hours = math.floor((newTime / 3600));
local minutes = math.floor( (( newTime - ( 3600 * hours ) ) / 60) + 0.5 );
formattedTime = format(COOLDOWNCOUNT_HOUR_MINUTES_FORMAT, hours, CooldownCount_GetFormattedNumber(minutes));
else
hours = math.floor((newTime / 3600)+0.5);
--formattedTime = format(COOLDOWNCOUNT_HOURS_FORMAT, hours);
formattedTime = arr[hours*3600];
end
elseif ( newTime > COOLDOWNCOUNT_MINUTES_SECONDS_FORMAT_LIMIT ) then
local minutes = 0;
if ( CooldownCount_UseLongTimerDescriptions == 1 ) then
minutes = math.floor( ( newTime / 60 ));
local seconds = math.ceil( newTime - ( 60 * minutes ));
formattedTime = format(COOLDOWNCOUNT_MINUTES_SECONDS_FORMAT, minutes, CooldownCount_GetFormattedNumber(seconds));
else
minutes = math.ceil( ( newTime / 60 ));
--formattedTime = format(COOLDOWNCOUNT_MINUTES_FORMAT, minutes);
formattedTime = arr[minutes*60];
end
else
--[[
if ( CooldownCount_UseLongTimerDescriptionsForSeconds == 1 ) then
formattedTime = format(COOLDOWNCOUNT_SECONDS_LONG_FORMAT, newTime);
else
--formattedTime = format(COOLDOWNCOUNT_SECONDS_FORMAT, newTime);
formattedTime = arr[newTime];
end
]]--
formattedTime = format(COOLDOWNCOUNT_SECONDS_FORMAT, newTime);
end
return formattedTime;
end
--/script CooldownCount_CooldownFrame_SetTimer(getglobal("SecondActionButton3Cooldown"), 544630, 300, 1);
--/script getglobal("SecondActionButton3CooldownCount"):SetText("15"); getglobal("SecondActionButton3CooldownCount"):Show();
--/script Print(getglobal("SecondActionButton3CooldownCount"):GetText());
CooldownCount_OneLetterScale = 1.5;
CooldownCount_TwoLetterScale = 1;
CooldownCount_ThreeLetterScale = 0.66;
CooldownCount_FourLetterScale = 0.5;
CooldownCount_PrecalculatedSizes = {
[1] = 1,
[2] = 0.8,
[3] = 0.7,
[4] = 0.5,
[5] = 0.4
};
function CooldownCount_GetAppropriateScale(newTime, noAutoScale)
if ( not newTime ) then
newTime = "";
end
local lenWithoutSpaces = strlen(string.gsub(newTime, " ", ""));
local len = strlen(newTime);
local lenSpaces = len-lenWithoutSpaces;
local scale = (2 / (lenWithoutSpaces + floor(lenSpaces/2)));
if ( noAutoScale ) then
scale = 1;
else
if ( lenWithoutSpaces < len ) then
scale = (2 / len);
end
if ( CooldownCount_PrecalculatedSizes[len] ) then
scale = CooldownCount_PrecalculatedSizes[len];
else
for k, v in CooldownCount_PrecalculatedSizes do
if ( k >= len ) then
scale = v;
break;
end
end
end
end
if ( scale > 1 ) then scale = 1; end
if ( CooldownCount_UserScale ) and ( CooldownCount_UserScale > 0 ) then
scale = scale * CooldownCount_UserScale;
end
if ( not noAutoScale ) then if ( scale > 2 ) then scale = 2; end end
if ( noAutoScale ) then if ( scale > 2 ) then scale = 2; end end
return scale;
end
CooldownCount_BasePosition = "CENTER";
CooldownCount_RelativeToPosition = "CENTER";
function CooldownCount_DoUpdateCooldownCount(name, force)
local cooldownName = name.."Cooldown";
local parent = getglobal(name);
local icon = getglobal(name.."Icon");
local buttonCooldown = getglobal(cooldownName);
local cooldownCount = getglobal(cooldownName.."Count");
local cooldownCountFrame = getglobal(cooldownName.."CountFrame");
local debug = false;
if ( ( ( not parent ) or ( not parent:IsVisible() ) ) or ( ( icon ) and ( not icon:IsVisible() ) ) ) then
if ( cooldownCount ) then
cooldownCount:Hide();
end
if ( cooldownCountFrame ) then
cooldownCountFrame:Hide();
end
return;
else
local frameLevel = parent:GetFrameLevel();
if ( cooldownCountFrame ) then
cooldownCountFrame:SetFrameLevel(frameLevel+4);
end
if ( cooldownCount ) then
cooldownCount:SetWidth(COOLDOWNCOUNT_WIDTH);
cooldownCount:SetHeight(COOLDOWNCOUNT_HEIGHT);
end
end
local cooldownCountValuesName = (cooldownName.."CountValues");
local cooldownCountValues = getglobal(cooldownCountValuesName);
if ( not cooldownCountValues ) then
if ( cooldownCount ) then
cooldownCount:Hide();
end
if ( cooldownCountFrame ) then
cooldownCountFrame:Hide();
end
return;
end
local start = cooldownCountValues[1];
local duration = cooldownCountValues[2];
local enable = cooldownCountValues[3];
if ( (CooldownCount_Enabled == 1) and ( start > 0 and duration > 0) ) then
local remainingTimeCutOff = COOLDOWNCOUNT_CUTOFF_TIME;
local remainingTime = -1;
local flashTimeMax = COOLDOWNCOUNT_MAXIMUM_FLASH_TIME;
local flashTime = duration / 4;
if ( flashTime > flashTimeMax ) then
flashTime = flashTimeMax;
end
if ( start <= 0 ) then
remainingTime = -1;
else
remainingTime = ceil(( start + duration ) - GetTime());
end
if ( ( cooldownCount ) and ( cooldownCountFrame ) ) then
--Print(format("Remaining time : %d", remainingTime));
if ( ( not cooldownCount:IsVisible() ) and ( duration <= remainingTimeCutOff ) ) then
--if ( debug ) then Print("cut off engaged lixom"); end
return;
end
if ( ( remainingTime <= 0 ) ) then
if ( cooldownCount:IsVisible() ) then
cooldownCount:Hide();
end
if ( cooldownCountFrame:IsVisible() ) then
cooldownCountFrame:Hide();
end
else
if ( CooldownCount_HideUntilTimeLeft > 0 ) then
if ( CooldownCount_HideUntilTimeLeft < remainingTime ) then
cooldownCount:Hide();
return;
else
cooldownCount:Show();
end
end
local newTime = CooldownCount_GetFormattedTime(remainingTime)
if ( ( cooldownCount.flashing ) ) then
if ( ( not cooldownCount.flashTime ) or ( (cooldownCount.flashTime + CooldownCount_TimeBetweenFlashes) < GetTime() ) ) then
if ( cooldownCount.flashingon ) then
local r, g, b = unpack(CooldownCountOptions.color.normal);
cooldownCount:SetVertexColor(r, g, b);
cooldownCount.flashingon = false;
else
local r, g, b = unpack(CooldownCountOptions.color.flash);
cooldownCount:SetVertexColor(r, g, b);
cooldownCount.flashingon = true;
end
cooldownCount.flashTime = GetTime();
end
else
local r, g, b = unpack(CooldownCountOptions.color.normal);
cooldownCount:SetVertexColor(r, g, b);
newTimeString = newTime;
end
--Print(format("NewTime : %s", newTime));
cooldownCount:SetAlpha(CooldownCountOptions.alpha);
local oldTime = cooldownCount:GetText();
if ( newTime ~= oldTime ) or ( force ) then
cooldownCount:SetText(newTime);
local oldScale = getglobal(cooldownName.."CountFrameScale");
if ( not oldScale ) then
oldScale = cooldownCountFrame:GetScale();
setglobal(cooldownName.."CountFrameScale", oldScale);
end
local noAutoScale = false;
local newScale = oldScale * CooldownCount_GetAppropriateScale(newTime, noAutoScale);
cooldownCountFrame:SetScale(newScale);
local oldWidth = getglobal(cooldownName.."CountFrameWidth");
if ( not oldWidth ) then
oldWidth = cooldownCountFrame:GetWidth();
setglobal(cooldownName.."CountFrameWidth", oldWidth);
end
local newWidth = newScale * oldWidth;
if ( newWidth < 32 ) then newWidth = 32; end
cooldownCountFrame:SetWidth(newWidth);
cooldownCount:SetWidth(newWidth);
local oldHeight = getglobal(cooldownName.."CountFrameHeight");
if ( not oldHeight ) then
oldHeight = cooldownCountFrame:GetHeight();
setglobal(cooldownName.."CountFrameHeight", oldHeight);
end
local newHeight = newScale * oldHeight;
if ( newHeight < 10 ) then newHeight = 10; end
cooldownCountFrame:SetHeight(newHeight);
cooldownCount:SetHeight(newHeight);
end
if ( remainingTime <= flashTime ) then
cooldownCount.flashing = true;
else
cooldownCount.flashing = false;
end
if ( ( cooldownCount.flashingQWEQWE ) ) then
if ( not cooldownCount:IsVisible() ) then
cooldownCount:Show();
else
cooldownCount:Hide();
end
if ( not cooldownCountFrame:IsVisible() ) then
cooldownCountFrame:Show();
else
cooldownCountFrame:Hide();
end
else
if ( not cooldownCount:IsVisible() ) then
cooldownCount:Show();
end
if ( not cooldownCountFrame:IsVisible() ) then
cooldownCountFrame:Show();
end
end
end
end
else
if ( cooldownCount ) then
cooldownCount:Hide();
end
if ( cooldownCountFrame ) then
cooldownCountFrame:Hide();
end
end
end
function CooldownCount_OldUpdateCooldownCount(this, start, duration, enable)
local cooldownCount = getglobal(this:GetName().."Count");
local cooldownCountFrame = getglobal(this:GetName().."CountFrame");
local cooldownCountValuesName = (this:GetName().."CountValues");
local cooldownCountValues = { start, duration, enable };
if ( cooldownCount ) then
setglobal(cooldownCountValuesName, cooldownCountValues);
end
--CooldownCount_DoUpdateCooldownCount(this:GetName());
end
function CooldownCount_UpdateCooldownCount(this, start, duration, enable)
local cooldownCount = getglobal(this:GetName().."Count");
local cooldownCountFrame = getglobal(this:GetName().."CountFrame");
local cooldownCountValuesName = (this:GetName().."CountValues");
if (not getglobal(cooldownCountValuesName)) then
setglobal(cooldownCountValuesName, {});
end
if ( cooldownCount ) then
getglobal(cooldownCountValuesName)[1] = start;
getglobal(cooldownCountValuesName)[2] = duration;
getglobal(cooldownCountValuesName)[3] = enable;
end
end
-- Hooks/unhooks functions. If toggle is 1, hooks functions, otherwise it unhooks functions.
-- Hooking functions mean that you replace them with your own functions and then call the
-- original function at your leisure.
function CooldownCount_Setup_Hooks(toggle)
if ( toggle == 1 ) then
if ( ( CooldownFrame_SetTimer ~= CooldownCount_CooldownFrame_SetTimer ) and (CooldownCount_Saved_CooldownFrame_SetTimer == nil) ) then
CooldownCount_Saved_CooldownFrame_SetTimer = CooldownFrame_SetTimer;
CooldownFrame_SetTimer = CooldownCount_CooldownFrame_SetTimer;
end
else
if ( CooldownFrame_SetTimer == CooldownCount_CooldownFrame_SetTimer) then
CooldownFrame_SetTimer = CooldownCount_Saved_CooldownFrame_SetTimer;
CooldownCount_Saved_CooldownFrame_SetTimer = nil;
end
end
end
-- Handles events
function CooldownCount_OnEvent(event)
if ( event == "ACTIONBAR_PAGE_CHANGED" ) then
CooldownCount_DoUpdate();
return;
end
if ( event == "VARIABLES_LOADED" ) then
if ( CooldownCount_Cosmos_Registered == 0 ) then
CooldownCount_LoadOptions();
end
if ( CooldownCount_RogueStealth == 1 ) or ( UnitClass("player") ~= COOLDOWNCOUNT_CLASS_ROGUE ) then
table.insert(CooldownCount_ButtonNames, "ShapeshiftButton");
CooldownCount_RegenerateList();
end
return;
end
end
function CooldownCount_Toggle_UseLongTimers(toggle)
local oldvalue = CooldownCount_UseLongTimerDescriptions;
local newvalue = toggle;
if ( ( toggle ~= 1 ) and ( toggle ~= 0 ) ) then
if (oldvalue == 1) then
newvalue = 0;
elseif ( oldvalue == 0 ) then
newvalue = 1;
else
newvalue = 0;
end
end
CooldownCount_UseLongTimerDescriptions = newvalue;
if ( newvalue ~= oldvalue ) then
if ( newvalue == 1 ) then
CooldownCount_Print(COOLDOWNCOUNT_CHAT_USELONGTIMERS_ENABLED);
else
CooldownCount_Print(COOLDOWNCOUNT_CHAT_USELONGTIMERS_DISABLED);
end
end
CooldownCount_Register_Cosmos();
end
-- Toggles the enabled/disabled state of the CooldownCount
-- if toggle is 1, it's enabled
-- if toggle is 0, it's disabled
-- otherwise, it's toggled
function CooldownCount_Toggle_Enabled(toggle)
local oldvalue = CooldownCount_Enabled;
local newvalue = toggle;
if ( ( toggle ~= 1 ) and ( toggle ~= 0 ) ) then
if (oldvalue == 1) then
newvalue = 0;
elseif ( oldvalue == 0 ) then
newvalue = 1;
else
newvalue = 0;
end
end
CooldownCount_Enabled = newvalue;
CooldownCount_Setup_Hooks(newvalue);
if ( newvalue ~= oldvalue ) then
if ( newvalue == 1 ) then
CooldownCount_Print(COOLDOWNCOUNT_CHAT_ENABLED);
else
CooldownCount_Print(COOLDOWNCOUNT_CHAT_DISABLED);
end
end
CooldownCount_Register_Cosmos();
end
function CooldownCount_Toggle_RogueStealth(toggle)
local oldvalue = CooldownCount_RogueStealth;
local newvalue = toggle;
if ( ( toggle ~= 1 ) and ( toggle ~= 0 ) ) then
if (oldvalue == 1) then
newvalue = 0;
elseif ( oldvalue == 0 ) then
newvalue = 1;
else
newvalue = 0;
end
end
CooldownCount_RogueStealth = newvalue;
if ( newvalue ~= oldvalue ) then
if ( newvalue == 1 ) then
CooldownCount_Print(COOLDOWNCOUNT_CHAT_ROGUE_STEALTH_ENABLED);
else
CooldownCount_Print(COOLDOWNCOUNT_CHAT_ROGUE_STEALTH_DISABLED);
end
end
local index = nil;
local value = "ShapeshiftButton";
for k, v in CooldownCount_ButtonNames do
if ( v == value ) then
index = k;
break;
end
end
if ( CooldownCount_RogueStealth == 1 ) then
if ( not index ) then
table.insert(CooldownCount_ButtonNames, value);
CooldownCount_RegenerateList();
end
else
if ( index ) then
table.remove(CooldownCount_ButtonNames, index);
CooldownCount_RegenerateList();
end
end
CooldownCount_Register_Cosmos();
end
function CooldownCount_Toggle_NoSpaces(toggle)
local oldvalue = CooldownCount_NoSpaces;
local newvalue = toggle;
if ( ( toggle ~= 1 ) and ( toggle ~= 0 ) ) then
if (oldvalue == 1) then
newvalue = 0;
elseif ( oldvalue == 0 ) then
newvalue = 1;
else
newvalue = 0;
end
end
CooldownCount_NoSpaces = newvalue;
if ( newvalue ~= oldvalue ) then
if ( newvalue == 1 ) then
CooldownCount_Print(COOLDOWNCOUNT_CHAT_NOSPACES_ENABLED);
else
CooldownCount_Print(COOLDOWNCOUNT_CHAT_NOSPACES_DISABLED);
end
CooldownCount_DoUpdate();
end
CooldownCount_Register_Cosmos();
end
function CooldownCount_Set_Alpha(value, quiet)
local oldvalue = CooldownCountOptions.alpha;
local newvalue = value;
CooldownCountOptions.alpha = newvalue;
if ( newvalue ~= oldvalue ) then
if ( not quiet ) then
CooldownCount_Print(string.format(COOLDOWNCOUNT_CHAT_ALPHA_FORMAT), newvalue);
end
CooldownCount_DoUpdate(true);
end
CooldownCount_Register_Cosmos();
end
function CooldownCount_Set_NormalColor(r, g, b, quiet)
local arr = nil;
if ( type(r) == "table" ) then
arr = r;
quiet = g;
else
arr = { r, g, b };
end
local changed = false;
for k, v in CooldownCountOptions.color.normal do
if ( arr[k] ~= v ) then
changed = true;
break;
end
end
if ( changed ) then
CooldownCountOptions.color.normal = arr;
if ( not quiet ) then
CooldownCount_Print(COOLDOWNCOUNT_CHAT_NORMAL_COLOR_SET);
end
CooldownCount_DoUpdate(true);
end
CooldownCount_Register_Cosmos();
end
function CooldownCount_Set_FlashColor(r, g, b, quiet)
local arr = nil;
if ( type(r) == "table" ) then
arr = r;
quiet = g;
else
arr = { r, g, b };
end
local changed = false;
for k, v in CooldownCountOptions.color.flash do
if ( arr[k] ~= v ) then
changed = true;
break;
end
end
if ( changed ) then
CooldownCountOptions.color.flash = arr;
if ( not quiet ) then
CooldownCount_Print(COOLDOWNCOUNT_CHAT_FLASH_COLOR_SET);
end
CooldownCount_DoUpdate(true);
end
CooldownCount_Register_Cosmos();
end
-- Prints out text to a chat box.
function CooldownCount_Print(msg,r,g,b,frame,id,unknown4th)
if(unknown4th) then
local temp = id;
id = unknown4th;
unknown4th = id;
end
if (not r) then r = 1.0; end
if (not g) then g = 1.0; end
if (not b) then b = 1.0; end
if ( frame ) then
frame:AddMessage(msg,r,g,b,id,unknown4th);
else
if ( DEFAULT_CHAT_FRAME ) then
DEFAULT_CHAT_FRAME:AddMessage(msg, r, g, b,id,unknown4th);
end
end
end
function CooldownCount_CosmosColorNilFunc(u,b,c)
if ( CosmosMasterFrame ) then
CosmosMasterFrame:Show();
end
end
function CooldownCount_CosmosOpacity()
local alpha = OpacitySliderFrame:GetValue();
CooldownCount_Set_Alpha(alpha);
end
function CooldownCount_NormalColorSetButton(notCosmos)
ColorPickerFrame.func = CooldownCount_CosmosNormalColorSet;
ColorPickerFrame.cancelFunc = CooldownCount_CosmosColorNilFunc;
ColorPickerFrame.hasOpacity = false;
--ColorPickerFrame.opacityFunc = CooldownCount_CosmosOpacity;
local red, green, blue = unpack(CooldownCountOptions.color.normal);
ColorPickerFrame:SetColorRGB(red, green, blue);
ColorPickerFrame.previousValues = {r = red, g = green, b = blue, opacity = 1};
if ( CosmosMasterFrame ) then
CosmosMasterFrame:Hide();
end
ColorPickerFrame:Show();
end
function CooldownCount_NormalColorResetButton()
local r, g, b = unpack(CooldownCountColorDefaultNormal);
CooldownCountOptions.color.normal = { r, g, b};
end
function CooldownCount_NormalColorSet()
local r,g,b = ColorPickerFrame:GetColorRGB();
CooldownCountOptions.color.normal = { r, g, b};
end
function CooldownCount_CosmosNormalColorSet()
CooldownCount_NormalColorSet();
if(not ColorPickerFrame:IsVisible()) then
if ( CosmosMasterFrame ) then
CosmosMasterFrame:Show();
end
end
end
function CooldownCount_FlashColorSetButton()
ColorPickerFrame.func = CooldownCount_CosmosFlashColorSet;
ColorPickerFrame.cancelFunc = CooldownCount_CosmosColorNilFunc;
ColorPickerFrame.hasOpacity = false;
local red, green, blue = unpack(CooldownCountOptions.color.flash);
ColorPickerFrame:SetColorRGB(red, green, blue);
ColorPickerFrame.previousValues = {r = red, g = green, b = blue, opacity = 1};
if ( CosmosMasterFrame ) then
CosmosMasterFrame:Hide();
end
ColorPickerFrame:Show();
end
function CooldownCount_FlashColorResetButton()
local r, g, b = unpack(CooldownCountColorDefaultFlash);
CooldownCountOptions.color.flash = { r, g, b};
end
function CooldownCount_FlashColorSet()
local r,g,b = ColorPickerFrame:GetColorRGB();
CooldownCountOptions.color.flash = { r, g, b};
end
function CooldownCount_CosmosFlashColorSet()
CooldownCount_FlashColorSet();
if(not ColorPickerFrame:IsVisible()) then
if ( CosmosMasterFrame ) then
CosmosMasterFrame:Show();
end
end
end