mirror of
https://github.com/Blaststar/Questie-Octo-Vanilla.git
synced 2026-10-26 23:20:50 +00:00
287 lines
10 KiB
Lua
287 lines
10 KiB
Lua
TITAN_UISCALE_ID = "UIScale";
|
|
TITAN_UISCALE_FRAME_SHOW_TIME = 0.5;
|
|
|
|
TITAN_UISCALE_MIN = 0.64;
|
|
TITAN_UISCALE_MAX = 1;
|
|
TITAN_UISCALE_STEP = 0.01;
|
|
|
|
TITAN_PANELSCALE_MIN = 0.75;
|
|
TITAN_PANELSCALE_MAX = 1.25;
|
|
TITAN_PANELSCALE_STEP = 0.01;
|
|
|
|
TITAN_FONTSCALE_MIN = 0.50;
|
|
TITAN_FONTSCALE_MAX = 2.00;
|
|
TITAN_FONTSCALE_STEP = 0.01;
|
|
|
|
function TitanPanelUIScaleButton_OnLoad()
|
|
this.registry = {
|
|
id = TITAN_UISCALE_ID,
|
|
builtIn = 1,
|
|
version = TITAN_VERSION,
|
|
menuText = TITAN_UISCALE_MENU_TEXT,
|
|
tooltipTitle = TITAN_UISCALE_TOOLTIP,
|
|
tooltipTextFunction = "TitanPanelUIScaleButton_GetTooltipText",
|
|
icon = TITAN_ARTWORK_PATH.."TitanUIScale",
|
|
};
|
|
end
|
|
|
|
function TitanPanelUIScaleButton_GetTooltipText()
|
|
local panelScaleText = TitanPanelUIScale_GetSCaleText(TitanPanelGetVar("Scale"));
|
|
local uiScaleText = TitanPanelUIScale_GetSCaleText(UIParent:GetScale());
|
|
local FontScaleText = TitanPanelUIScale_GetSCaleText(TitanPanelGetVar("FontScale"));
|
|
|
|
return ""..
|
|
TITAN_UISCALE_TOOLTIP_VALUE_UI.."\t"..TitanUtils_GetHighlightText(uiScaleText).."\n"..
|
|
TITAN_UISCALE_TOOLTIP_VALUE_PANEL.."\t"..TitanUtils_GetHighlightText(panelScaleText).."\n"..
|
|
TITAN_UISCALE_TOOLTIP_VALUE_FONT.."\t"..TitanUtils_GetHighlightText(FontScaleText).."\n"..
|
|
TitanUtils_GetGreenText(TITAN_UISCALE_TOOLTIP_HINT1).."\n"..
|
|
TitanUtils_GetGreenText(TITAN_UISCALE_TOOLTIP_HINT2);
|
|
end
|
|
|
|
function TitanPanelUIScaleControlSlider_OnEnter()
|
|
local uiScale = UIParent:GetScale();
|
|
|
|
this.tooltipText = TitanOptionSlider_TooltipText(TITAN_UISCALE_CONTROL_TOOLTIP_UI, TitanPanelUIScale_GetSCaleText(uiScale));
|
|
GameTooltip:SetOwner(this, "ANCHOR_BOTTOMLEFT");
|
|
GameTooltip:SetText(this.tooltipText, nil, nil, nil, nil, 1);
|
|
TitanUtils_StopFrameCounting(this:GetParent());
|
|
end
|
|
|
|
function TitanPanelUIScaleControlSlider_OnLeave()
|
|
this.tooltipText = nil;
|
|
GameTooltip:Hide();
|
|
TitanUtils_StartFrameCounting(this:GetParent(), TITAN_UISCALE_FRAME_SHOW_TIME);
|
|
end
|
|
|
|
function TitanPanelUIScaleControlSlider_OnShow()
|
|
local uiScale = UIParent:GetScale();
|
|
local min = TITAN_UISCALE_MIN;
|
|
local max = TITAN_UISCALE_MAX;
|
|
local step = TITAN_UISCALE_STEP;
|
|
|
|
getglobal(this:GetName().."Text"):SetText(TitanPanelUIScale_GetSCaleText(uiScale));
|
|
getglobal(this:GetName().."High"):SetText(TITAN_UISCALE_CONTROL_LOW_UI);
|
|
getglobal(this:GetName().."Low"):SetText(TITAN_UISCALE_CONTROL_HIGH_UI);
|
|
this:SetMinMaxValues(min, max);
|
|
this:SetValueStep(step);
|
|
this:SetValue(min + max - uiScale);
|
|
this.previousValue = this:GetValue();
|
|
|
|
position = TitanUtils_GetRealPosition(TITAN_UISCALE_ID);
|
|
|
|
TitanPanelUIScaleControlFrame:SetPoint("BOTTOMRIGHT", "TitanPanel" .. TitanUtils_GetWhichBar(TITAN_UISCALE_ID) .."Button", "TOPRIGHT", 0, 0);
|
|
if (position == TITAN_PANEL_PLACE_TOP) then
|
|
TitanPanelUIScaleControlFrame:ClearAllPoints();
|
|
TitanPanelUIScaleControlFrame:SetPoint("TOPLEFT", "TitanPanel" .. TitanUtils_GetWhichBar(TITAN_UISCALE_ID) .."Button", "BOTTOMLEFT", UIParent:GetRight() - TitanPanelUIScaleControlFrame:GetWidth(), -4);
|
|
else
|
|
TitanPanelUIScaleControlFrame:ClearAllPoints();
|
|
TitanPanelUIScaleControlFrame:SetPoint("BOTTOMLEFT", "TitanPanel" .. TitanUtils_GetWhichBar(TITAN_UISCALE_ID) .."Button", "TOPLEFT", UIParent:GetRight() - TitanPanelUIScaleControlFrame:GetWidth(), 0);
|
|
end
|
|
|
|
end
|
|
|
|
function TitanPanelUIScaleControlSlider_OnValueChanged()
|
|
if (this:GetValue() ~= this.previousValue) then
|
|
this.previousValue = this:GetValue();
|
|
|
|
-- Set UI scale
|
|
local min = TITAN_UISCALE_MIN;
|
|
local max = TITAN_UISCALE_MAX;
|
|
local uiScale = min + max - this:GetValue();
|
|
SetCVar("useUiScale", 1, USE_UISCALE);
|
|
SetCVar("uiScale", uiScale);
|
|
|
|
-- Adjust panel scale
|
|
TitanPanel_SetScale();
|
|
TitanPanel_RefreshPanelButtons();
|
|
|
|
-- Update slider value text
|
|
getglobal(this:GetName().."Text"):SetText(TitanPanelUIScale_GetSCaleText(uiScale));
|
|
|
|
-- Update GameTooltip
|
|
if (this.tooltipText) then
|
|
this.tooltipText = TitanOptionSlider_TooltipText(TITAN_UISCALE_CONTROL_TOOLTIP_UI, TitanPanelUIScale_GetSCaleText(uiScale));
|
|
GameTooltip:SetText(this.tooltipText, nil, nil, nil, nil, 1);
|
|
end
|
|
end
|
|
end
|
|
|
|
function TitanPanelPanelScaleControlSlider_OnEnter()
|
|
local scale = TitanPanelGetVar("Scale");
|
|
|
|
this.tooltipText = TitanOptionSlider_TooltipText(TITAN_UISCALE_CONTROL_TOOLTIP_PANEL, TitanPanelUIScale_GetSCaleText(scale));
|
|
GameTooltip:SetOwner(this, "ANCHOR_BOTTOMLEFT");
|
|
GameTooltip:SetText(this.tooltipText, nil, nil, nil, nil, 1);
|
|
TitanUtils_StopFrameCounting(this:GetParent());
|
|
end
|
|
|
|
function TitanPanelPanelScaleControlSlider_OnLeave()
|
|
this.tooltipText = nil;
|
|
GameTooltip:Hide();
|
|
TitanUtils_StartFrameCounting(this:GetParent(), TITAN_UISCALE_FRAME_SHOW_TIME);
|
|
end
|
|
|
|
function TitanPanelPanelScaleControlSlider_OnShow()
|
|
local scale = TitanPanelGetVar("Scale");
|
|
local min = TITAN_PANELSCALE_MIN;
|
|
local max = TITAN_PANELSCALE_MAX;
|
|
local step = TITAN_PANELSCALE_STEP;
|
|
|
|
getglobal(this:GetName().."Text"):SetText(TitanPanelUIScale_GetSCaleText(scale));
|
|
getglobal(this:GetName().."High"):SetText(TITAN_UISCALE_CONTROL_LOW_PANEL);
|
|
getglobal(this:GetName().."Low"):SetText(TITAN_UISCALE_CONTROL_HIGH_PANEL);
|
|
this:SetMinMaxValues(min, max);
|
|
this:SetValueStep(step);
|
|
this:SetValue(min + max - scale);
|
|
this.previousValue = this:GetValue();
|
|
end
|
|
|
|
function TitanPanelPanelScaleControlSlider_OnValueChanged()
|
|
if (this:GetValue() ~= this.previousValue) then
|
|
this.previousValue = this:GetValue();
|
|
|
|
local position = 1;
|
|
|
|
local i = TitanPanel_GetButtonNumber(TITAN_UISCALE_ID);
|
|
if TitanPanelSettings.Location[i] == "Bar" and TitanPanelGetVar("BothBars") then
|
|
position = 1;
|
|
elseif TitanPanelSettings.Location[i] == "Bar" then
|
|
position = TitanPanelGetVar("Position");
|
|
else
|
|
position = 2;
|
|
end
|
|
|
|
-- Set panel scale
|
|
local min = TITAN_PANELSCALE_MIN;
|
|
local max = TITAN_PANELSCALE_MAX;
|
|
local scale = min + max - this:GetValue();
|
|
TitanPanelSetVar("Scale", scale);
|
|
|
|
-- Adjust panel scale
|
|
TitanPanel_SetScale();
|
|
TitanPanel_RefreshPanelButtons();
|
|
|
|
-- Adjust frame positions
|
|
TitanMovableFrame_MoveFrames(position);
|
|
TitanMovableFrame_AdjustBlizzardFrames();
|
|
|
|
-- Update slider value text
|
|
getglobal(this:GetName().."Text"):SetText(TitanPanelUIScale_GetSCaleText(scale));
|
|
|
|
-- Update GameTooltip
|
|
if (this.tooltipText) then --??
|
|
this.tooltipText = TitanOptionSlider_TooltipText(TITAN_UISCALE_CONTROL_TOOLTIP_PANEL, TitanPanelUIScale_GetSCaleText(scale));
|
|
GameTooltip:SetText(this.tooltipText, nil, nil, nil, nil, 1);
|
|
end
|
|
end
|
|
end
|
|
|
|
function TitanPanelFontScaleControlSlider_OnEnter()
|
|
local fontscale = TitanPanelGetVar("FontScale");
|
|
|
|
if TitanPanelGetVar("DisableFont") then
|
|
fontscale = 1;
|
|
end
|
|
this.tooltipText = TitanOptionSlider_TooltipText(TITAN_UISCALE_CONTROL_TOOLTIP_FONT, TitanPanelUIScale_GetSCaleText(fontscale));
|
|
GameTooltip:SetOwner(this, "ANCHOR_BOTTOMLEFT");
|
|
GameTooltip:SetText(this.tooltipText, nil, nil, nil, nil, 1);
|
|
TitanUtils_StopFrameCounting(this:GetParent());
|
|
end
|
|
|
|
function TitanPanelFontScaleControlSlider_OnLeave()
|
|
if TitanPanelGetVar("DisableFont") then
|
|
fontscale = 1;
|
|
end
|
|
this.tooltipText = nil;
|
|
GameTooltip:Hide();
|
|
TitanUtils_StartFrameCounting(this:GetParent(), TITAN_UISCALE_FRAME_SHOW_TIME);
|
|
end
|
|
|
|
function TitanPanelFontScaleControlSlider_OnShow()
|
|
local fontscale = TitanPanelGetVar("FontScale");
|
|
local min = TITAN_FONTSCALE_MIN;
|
|
local max = TITAN_FONTSCALE_MAX;
|
|
local step = TITAN_FONTSCALE_STEP;
|
|
|
|
if TitanPanelGetVar("DisableFont") then
|
|
fontscale = 1;
|
|
end
|
|
getglobal(this:GetName().."Text"):SetText(TitanPanelUIScale_GetSCaleText(fontscale));
|
|
getglobal(this:GetName().."High"):SetText(TITAN_UISCALE_CONTROL_LOW_FONT);
|
|
getglobal(this:GetName().."Low"):SetText(TITAN_UISCALE_CONTROL_HIGH_FONT);
|
|
this:SetMinMaxValues(min, max);
|
|
this:SetValueStep(step);
|
|
this:SetValue(min + max - fontscale);
|
|
this.previousValue = this:GetValue();
|
|
end
|
|
|
|
function TitanPanelFontScaleControlSlider_OnValueChanged()
|
|
if TitanPanelGetVar("DisableFont") then
|
|
return;
|
|
end
|
|
|
|
if (this:GetValue() ~= this.previousValue) then
|
|
this.previousValue = this:GetValue();
|
|
|
|
local position = 1;
|
|
|
|
local i = TitanPanel_GetButtonNumber(TITAN_UISCALE_ID);
|
|
if TitanPanelSettings.Location[i] == "Bar" and TitanPanelGetVar("BothBars") then
|
|
position = 1;
|
|
elseif TitanPanelSettings.Location[i] == "Bar" then
|
|
position = TitanPanelGetVar("Position");
|
|
else
|
|
position = 2;
|
|
end
|
|
|
|
-- Set panel scale
|
|
local min = TITAN_FONTSCALE_MIN;
|
|
local max = TITAN_FONTSCALE_MAX;
|
|
local scale = min + max - this:GetValue();
|
|
TitanPanelSetVar("FontScale", scale);
|
|
|
|
-- Adjust panel scale
|
|
TitanPanel_SetScale();
|
|
TitanPanel_RefreshPanelButtons();
|
|
|
|
-- Adjust frame positions
|
|
TitanMovableFrame_MoveFrames(position);
|
|
TitanMovableFrame_AdjustBlizzardFrames();
|
|
|
|
-- Update slider value text
|
|
getglobal(this:GetName().."Text"):SetText(TitanPanelUIScale_GetSCaleText(scale));
|
|
|
|
-- Update GameTooltip
|
|
if (this.tooltipText) then --??
|
|
this.tooltipText = TitanOptionSlider_TooltipText(TITAN_UISCALE_CONTROL_TOOLTIP_FONT, TitanPanelUIScale_GetSCaleText(scale));
|
|
GameTooltip:SetText(this.tooltipText, nil, nil, nil, nil, 1);
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
function TitanPanelUIScale_GetSCaleText(scale)
|
|
return tostring(floor(100 * scale + 0.5)) .. "%";
|
|
end
|
|
|
|
function TitanPanelUIScaleControlFrame_OnLoad()
|
|
getglobal(this:GetName().."UITitle"):SetText(TITAN_UISCALE_CONTROL_TITLE_UI);
|
|
getglobal(this:GetName().."PanelTitle"):SetText(TITAN_UISCALE_CONTROL_TITLE_PANEL);
|
|
getglobal(this:GetName().."FontTitle"):SetText(TITAN_UISCALE_CONTROL_TITLE_FONT);
|
|
this:SetBackdropBorderColor(1, 1, 1);
|
|
this:SetBackdropColor(0, 0, 0, 1);
|
|
end
|
|
|
|
function TitanPanelUIScaleControlFrame_OnShow()
|
|
this:SetScale(UIParent:GetEffectiveScale());
|
|
end
|
|
|
|
function TitanPanelUIScaleControlFrame_OnUpdate(elapsed)
|
|
TitanUtils_CheckFrameCounting(this, elapsed);
|
|
end
|
|
|
|
function TitanPanelRightClickMenu_PrepareUIScaleMenu()
|
|
TitanPanelRightClickMenu_AddTitle(TitanPlugins[TITAN_UISCALE_ID].menuText);
|
|
TitanPanelRightClickMenu_AddCommand(TITAN_PANEL_MENU_HIDE, TITAN_UISCALE_ID, TITAN_PANEL_MENU_FUNC_HIDE);
|
|
end
|