You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
243 lines
6.5 KiB
243 lines
6.5 KiB
VUHDO_MENU_RETURN_TARGET = nil;
|
|
VUHDO_MENU_RETURN_TARGET_MAIN = nil;
|
|
|
|
|
|
local _;
|
|
local VUHDO_B_CONFIG = nil;
|
|
local VUHDO_B_INDICATOR_CONFIG = nil;
|
|
local VUHDO_B_PANEL_SETUP = nil;
|
|
local VUHDO_B_SPELL_ASSIGNMENTS = nil;
|
|
local VUHDO_B_BUFF_SETTINGS = nil;
|
|
local VUHDO_B_SPELL_CONFIG = nil;
|
|
local VUHDO_B_SPELLS_KEYBOARD = nil;
|
|
local VUHDO_B_BOUQUETS = nil;
|
|
VUHDO_OPTIONS_SETTINGS = nil;
|
|
|
|
VUHDO_IS_CONFIG = false;
|
|
|
|
-- Backdrops
|
|
BACKDROP_VUHDO_H_SLIDER_8_8_1111 = {
|
|
bgFile = "Interface\\AddOns\\VuhDoOptions\\Images\\blue_lt_square_16_16",
|
|
edgeFile = "Interface\\AddOns\\VuhDoOptions\\Images\\panel_edges_3",
|
|
tile = true,
|
|
tileSize = 8,
|
|
edgeSize = 8,
|
|
insets = { left = 1, right = 1, top = 1, bottom = 1 },
|
|
};
|
|
|
|
--
|
|
function VUHDO_tabbedFrameOnMouseDown(aPanel)
|
|
aPanel:StartMoving();
|
|
end
|
|
|
|
|
|
|
|
--
|
|
function VUHDO_tabbedFrameOnMouseUp(aPanel)
|
|
aPanel:StopMovingOrSizing();
|
|
end
|
|
|
|
|
|
|
|
--
|
|
local function VUHDO_countTableDiffs(aTable, anotherTable)
|
|
local tCount = 0;
|
|
|
|
if (aTable == nil or anotherTable == nil) then
|
|
return 0;
|
|
end
|
|
|
|
aTable = VUHDO_decompressIfCompressed(aTable);
|
|
anotherTable = VUHDO_decompressIfCompressed(anotherTable);
|
|
|
|
for tKey, tValue in pairs(aTable) do
|
|
local tType = type(tValue);
|
|
|
|
if ("table" == tType) then
|
|
tCount = tCount + VUHDO_countTableDiffs(tValue, anotherTable[tKey]);
|
|
elseif ("number" == tType) then
|
|
if (format("%0.4f", aTable[tKey]) ~= (anotherTable[tKey] and format("%0.4f", anotherTable[tKey]) or nil)) then
|
|
tCount = tCount + 1;
|
|
end
|
|
else
|
|
if (aTable[tKey] ~= anotherTable[tKey]) then
|
|
tCount = tCount + 1;
|
|
end
|
|
end
|
|
end
|
|
|
|
for tKey, tValue in pairs(anotherTable) do
|
|
if ("table" == type(tValue)) then
|
|
else
|
|
if (aTable[tKey] == nil and tValue ~= aTable[tKey]) then
|
|
tCount = tCount + 1;
|
|
end
|
|
end
|
|
end
|
|
|
|
return tCount;
|
|
end
|
|
|
|
|
|
|
|
--
|
|
function VUHDO_tabbedPanelOkayClicked(aButton)
|
|
if InCombatLockdown() then
|
|
VUHDO_Msg("Options cannot be saved in combat!", 1, 0.4, 0.4);
|
|
|
|
return;
|
|
end
|
|
|
|
VUHDO_B_CONFIG = nil;
|
|
VUHDO_B_INDICATOR_CONFIG = nil;
|
|
VUHDO_B_PANEL_SETUP = nil;
|
|
VUHDO_B_SPELL_ASSIGNMENTS = nil;
|
|
VUHDO_B_BUFF_SETTINGS = nil;
|
|
VUHDO_B_SPELL_CONFIG = nil;
|
|
VUHDO_B_SPELLS_KEYBOARD = nil;
|
|
VUHDO_B_BOUQUETS = nil;
|
|
|
|
VUHDO_initKeyboardMacros();
|
|
VUHDO_fixHotSettings();
|
|
VUHDO_initFromSpellbook();
|
|
VUHDO_registerAllBouquets(false);
|
|
|
|
local _, tProfile = VUHDO_getProfileNamedCompressed(VUHDO_CONFIG["CURRENT_PROFILE"]);
|
|
if (VUHDO_CURRENT_PROFILE == "") then
|
|
VUHDO_CONFIG["CURRENT_PROFILE"] = "";
|
|
elseif (tProfile ~= nil and tProfile["LOCKED"]) then
|
|
VUHDO_Msg("Profile locked: Settings have NOT been saved to " .. tProfile["NAME"]);
|
|
else
|
|
VUHDO_saveCurrentProfile();
|
|
VUHDO_CURRENT_PROFILE = VUHDO_CONFIG["CURRENT_PROFILE"];
|
|
end
|
|
|
|
VUHDO_initAllBurstCaches();
|
|
VUHDO_trimSpellAssignments(VUHDO_SPELL_ASSIGNMENTS);
|
|
VUHDO_trimSpellAssignments(VUHDO_HOSTILE_SPELL_ASSIGNMENTS);
|
|
VUHDO_reloadUI(true);
|
|
|
|
VUHDO_MAY_DEBUFF_ANIM = true;
|
|
VuhDoNewOptionsTabbedFrame:Hide();
|
|
|
|
VUHDO_timeReloadUI(3);
|
|
end
|
|
|
|
|
|
|
|
--
|
|
function VUHDO_tabbedPanelCancelClicked()
|
|
if InCombatLockdown() then
|
|
VuhDoNewOptionsTabbedFrame:Hide();
|
|
else
|
|
VUHDO_newOptionsRestoreVars();
|
|
VUHDO_initKeyboardMacros();
|
|
end
|
|
|
|
VUHDO_MAY_DEBUFF_ANIM = true;
|
|
end
|
|
|
|
|
|
|
|
local tAllPanels = {
|
|
{ "VuhDoNewOptionsGeneral", "General" },
|
|
{ "VuhDoNewOptionsSpell", "Spell" },
|
|
{ "VuhDoNewOptionsPanelPanel", "Panels" },
|
|
{ "VuhDoNewOptionsColors", "Colors" },
|
|
{ "VuhDoNewOptionsMove", "Move" },
|
|
{ "VuhDoNewOptionsBuffs", "Buffs" },
|
|
{ "VuhDoNewOptionsDebuffs", "Debuffs" },
|
|
{ "VuhDoNewOptionsTools", "Tools" },
|
|
}
|
|
|
|
|
|
--
|
|
function VUHDO_newOptionsTabbedClickedClicked(aTabRadio)
|
|
local tName = aTabRadio:GetName();
|
|
|
|
for _, tPanelInfo in pairs(tAllPanels) do
|
|
_G[tPanelInfo[1]]:SetShown(strfind(tName, tPanelInfo[2]));
|
|
end
|
|
end
|
|
|
|
|
|
|
|
--
|
|
function VUHDO_newOptionsBufferVars()
|
|
if (VUHDO_B_CONFIG == nil) then
|
|
VUHDO_B_CONFIG = VUHDO_compressTable(VUHDO_CONFIG);
|
|
VUHDO_B_INDICATOR_CONFIG = VUHDO_compressTable(VUHDO_INDICATOR_CONFIG);
|
|
VUHDO_B_PANEL_SETUP = VUHDO_compressTable(VUHDO_PANEL_SETUP);
|
|
VUHDO_B_SPELL_ASSIGNMENTS = VUHDO_compressTable(VUHDO_SPELL_ASSIGNMENTS);
|
|
VUHDO_B_BUFF_SETTINGS = VUHDO_compressTable(VUHDO_BUFF_SETTINGS);
|
|
VUHDO_B_SPELL_CONFIG = VUHDO_compressTable(VUHDO_SPELL_CONFIG);
|
|
VUHDO_B_SPELLS_KEYBOARD = VUHDO_compressTable(VUHDO_SPELLS_KEYBOARD);
|
|
VUHDO_B_BOUQUETS = VUHDO_compressTable(VUHDO_BOUQUETS);
|
|
end
|
|
end
|
|
|
|
|
|
|
|
--
|
|
function VUHDO_yesNoDiscardChangesCallback(aDecision)
|
|
if (VUHDO_YES == aDecision) then
|
|
|
|
VUHDO_CONFIG = VUHDO_decompressIfCompressed(VUHDO_B_CONFIG);
|
|
VUHDO_INDICATOR_CONFIG = VUHDO_decompressIfCompressed(VUHDO_B_INDICATOR_CONFIG);
|
|
VUHDO_PANEL_SETUP = VUHDO_decompressIfCompressed(VUHDO_B_PANEL_SETUP);
|
|
VUHDO_SPELL_ASSIGNMENTS = VUHDO_decompressIfCompressed(VUHDO_B_SPELL_ASSIGNMENTS);
|
|
VUHDO_BUFF_SETTINGS = VUHDO_decompressIfCompressed(VUHDO_B_BUFF_SETTINGS);
|
|
VUHDO_SPELL_CONFIG = VUHDO_decompressIfCompressed(VUHDO_B_SPELL_CONFIG);
|
|
VUHDO_SPELLS_KEYBOARD = VUHDO_decompressIfCompressed(VUHDO_B_SPELLS_KEYBOARD);
|
|
VUHDO_BOUQUETS = VUHDO_decompressIfCompressed(VUHDO_B_BOUQUETS);
|
|
|
|
VUHDO_initAllBurstCaches();
|
|
VUHDO_initBouquetComboModel();
|
|
VUHDO_reloadUI(true);
|
|
VUHDO_B_CONFIG = nil;
|
|
VUHDO_B_INDICATOR_CONFIG = nil;
|
|
VUHDO_B_PANEL_SETUP = nil;
|
|
VUHDO_B_SPELL_ASSIGNMENTS = nil;
|
|
VUHDO_B_BUFF_SETTINGS = nil;
|
|
VUHDO_B_SPELL_CONFIG = nil;
|
|
VUHDO_B_SPELLS_KEYBOARD = nil;
|
|
VUHDO_B_BOUQUETS = nil;
|
|
|
|
VuhDoNewOptionsTabbedFrame:Hide();
|
|
end
|
|
end
|
|
|
|
|
|
|
|
--
|
|
local tChanges;
|
|
function VUHDO_newOptionsRestoreVars()
|
|
tChanges =
|
|
VUHDO_countTableDiffs(VUHDO_CONFIG, VUHDO_B_CONFIG)
|
|
+ VUHDO_countTableDiffs(VUHDO_INDICATOR_CONFIG, VUHDO_B_INDICATOR_CONFIG)
|
|
+ VUHDO_countTableDiffs(VUHDO_PANEL_SETUP, VUHDO_B_PANEL_SETUP)
|
|
+ VUHDO_countTableDiffs(VUHDO_SPELL_ASSIGNMENTS, VUHDO_B_SPELL_ASSIGNMENTS)
|
|
+ VUHDO_countTableDiffs(VUHDO_BUFF_SETTINGS, VUHDO_B_BUFF_SETTINGS)
|
|
+ VUHDO_countTableDiffs(VUHDO_SPELL_CONFIG, VUHDO_B_SPELL_CONFIG)
|
|
+ VUHDO_countTableDiffs(VUHDO_SPELLS_KEYBOARD, VUHDO_B_SPELLS_KEYBOARD);
|
|
|
|
if (tChanges > 0) then
|
|
VuhDoYesNoFrameText:SetText(format(VUHDO_I18N_DISCARD_CHANGES_CONFIRM, tChanges));
|
|
VuhDoYesNoFrame:SetAttribute("callback", VUHDO_yesNoDiscardChangesCallback);
|
|
VuhDoYesNoFrame:Show();
|
|
else
|
|
VUHDO_yesNoDiscardChangesCallback(VUHDO_YES);
|
|
end
|
|
end
|
|
|
|
|
|
|
|
--
|
|
function VUHDO_initOptionsSettings()
|
|
if (VUHDO_OPTIONS_SETTINGS == nil) then
|
|
VUHDO_OPTIONS_SETTINGS = {
|
|
["scale"] = 1;
|
|
};
|
|
end
|
|
end
|
|
|
|
|