режим предателя + UI референсы и DragonUI
This commit is contained in:
@@ -0,0 +1,389 @@
|
||||
MacOptionsFrameCheckButtons = { };
|
||||
MacOptionsFrameCheckButtons["MOVIE_RECORDING_ENABLE_GUI"] = { index = 1, cvar = "MovieRecordingGUI", tooltipText = MOVIE_RECORDING_ENABLE_GUI_TOOLTIP};
|
||||
MacOptionsFrameCheckButtons["MOVIE_RECORDING_ENABLE_SOUND"] = { index = 2, cvar = "MovieRecordingSound", tooltipText = MOVIE_RECORDING_ENABLE_SOUND_TOOLTIP};
|
||||
MacOptionsFrameCheckButtons["MOVIE_RECORDING_ENABLE_CURSOR"] = { index = 3, cvar = "MovieRecordingCursor", tooltipText = MOVIE_RECORDING_ENABLE_CURSOR_TOOLTIP};
|
||||
MacOptionsFrameCheckButtons["MOVIE_RECORDING_ENABLE_ICON"] = { index = 4, cvar = "MovieRecordingIcon", tooltipText = MOVIE_RECORDING_ENABLE_ICON_TOOLTIP};
|
||||
MacOptionsFrameCheckButtons["MOVIE_RECORDING_ENABLE_RECOVER"] = { index = 5, cvar = "MovieRecordingRecover", tooltipText = MOVIE_RECORDING_ENABLE_RECOVER_TOOLTIP};
|
||||
MacOptionsFrameCheckButtons["MOVIE_RECORDING_ENABLE_COMPRESSION"] = { index = 6, cvar = "MovieRecordingAutoCompress", tooltipText = MOVIE_RECORDING_ENABLE_COMPRESSION_TOOLTIP};
|
||||
MacOptionsFrameCheckButtons["ITUNES_SHOW_FEEDBACK"] = { index = 7, cvar = "iTunesRemoteFeedback", tooltipText = ITUNES_SHOW_FEEDBACK_TOOLTIP};
|
||||
MacOptionsFrameCheckButtons["ITUNES_SHOW_ALL_TRACK_CHANGES"] = { index = 8, cvar = "iTunesTrackDisplay", tooltipText = ITUNES_SHOW_ALL_TRACK_CHANGES_TOOLTIP};
|
||||
|
||||
function MacOptionsFrame_OnLoad(self)
|
||||
if(IsMacClient()) then
|
||||
self:RegisterEvent("CVAR_UPDATE");
|
||||
end
|
||||
end
|
||||
|
||||
function MacOptionsFrame_OnEvent(self, event, ...)
|
||||
if ( event == "CVAR_UPDATE" ) then
|
||||
local arg1, arg2 = ...
|
||||
local info = MacOptionsFrameCheckButtons[arg1];
|
||||
if ( info ) then
|
||||
info.value = arg2;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function MacOptionsFrame_DisableText(text)
|
||||
text:SetVertexColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b);
|
||||
end
|
||||
|
||||
function MacOptionsFrame_DisableSlider(slider)
|
||||
local name = slider:GetName();
|
||||
local value = _G[name.."Value"];
|
||||
_G[name.."Thumb"]:Hide();
|
||||
MacOptionsFrame_DisableText( _G[name.."Text"] );
|
||||
MacOptionsFrame_DisableText( _G[name.."Low"] );
|
||||
MacOptionsFrame_DisableText( _G[name.."High"] );
|
||||
slider:Disable();
|
||||
if ( value ) then
|
||||
value:SetVertexColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b);
|
||||
end
|
||||
end
|
||||
|
||||
function MacOptionsFrame_Load()
|
||||
for index, value in pairs(MacOptionsFrameCheckButtons) do
|
||||
local button = _G["MacOptionsFrameCheckButton"..value.index];
|
||||
local string = _G["MacOptionsFrameCheckButton"..value.index.."Text"];
|
||||
local checked = 0;
|
||||
checked = GetCVar(value.cvar);
|
||||
button:SetChecked(checked);
|
||||
|
||||
string:SetText(_G[index]);
|
||||
button.tooltipText = value.tooltipText;
|
||||
|
||||
if(not MovieRecording_IsSupported() and (value.index < 7)) then
|
||||
MacOptionsFrame_DisableCheckBox(button);
|
||||
else
|
||||
MacOptionsFrame_EnableCheckBox(button);
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
if(not MovieRecording_IsSupported()) then
|
||||
UIDropDownMenu_DisableDropDown(MacOptionsFrameResolutionDropDown);
|
||||
UIDropDownMenu_DisableDropDown(MacOptionsFrameFramerateDropDown);
|
||||
UIDropDownMenu_DisableDropDown(MacOptionsFrameCodecDropDown);
|
||||
MacOptionsFrame_DisableSlider(MacOptionsFrameQualitySlider);
|
||||
MacOptionsButtonCompress:Disable();
|
||||
|
||||
-- disable frame text
|
||||
MacOptionsFrame_DisableText(MacOptionsFrameText1);
|
||||
MacOptionsFrame_DisableText(MacOptionsFrameText2);
|
||||
MacOptionsFrame_DisableText(MacOptionsFrameText3);
|
||||
MacOptionsFrame_DisableText(MacOptionsFrameText4);
|
||||
|
||||
else
|
||||
MacOptionsFrameQualitySlider:SetValue(GetCVar("MovieRecordingQuality"));
|
||||
if GetCVar("MovieRecordingGUI") then
|
||||
MacOptionsFrame_EnableCheckBox(_G["MacOptionsFrameCheckButton3"]);
|
||||
else
|
||||
MacOptionsFrame_DisableCheckBox(_G["MacOptionsFrameCheckButton3"]);
|
||||
end
|
||||
end
|
||||
if(not MovieRecording_IsCursorRecordingSupported()) then
|
||||
local button = _G["MacOptionsFrameCheckButton3"];
|
||||
button:SetChecked(0);
|
||||
MacOptionsFrame_DisableCheckBox(button);
|
||||
end
|
||||
|
||||
-- make sure that if UI recording is not enabled, that we disable cursor recording (it's part of the UI)
|
||||
if ( not MacOptionsFrameCheckButton1:GetChecked() ) then
|
||||
MacOptionsFrameCheckButton3:SetChecked(0);
|
||||
MacOptionsFrame_DisableCheckBox(MacOptionsFrameCheckButton3);
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function MacOptionsFrame_Save()
|
||||
for index, value in pairs(MacOptionsFrameCheckButtons) do
|
||||
local button = _G["MacOptionsFrameCheckButton"..value.index];
|
||||
if ( button:GetChecked() ) then
|
||||
value.value = "1";
|
||||
else
|
||||
value.value = "0";
|
||||
end
|
||||
|
||||
SetCVar(value.cvar, value.value, index);
|
||||
end
|
||||
|
||||
local resolution, xIndex, width;
|
||||
resolution = UIDropDownMenu_GetSelectedValue(MacOptionsFrameResolutionDropDown);
|
||||
xIndex = strfind(resolution, "x");
|
||||
width = strsub(resolution, 1, xIndex-1);
|
||||
|
||||
SetCVar("MovieRecordingWidth", width);
|
||||
SetCVar("MovieRecordingFramerate", UIDropDownMenu_GetSelectedValue(MacOptionsFrameFramerateDropDown));
|
||||
SetCVar("MovieRecordingCompression", UIDropDownMenu_GetSelectedValue(MacOptionsFrameCodecDropDown));
|
||||
|
||||
SetCVar("MovieRecordingQuality", MacOptionsFrameQualitySlider:GetValue());
|
||||
end
|
||||
|
||||
function MacOptionsFrame_Cancel()
|
||||
PlaySound("gsTitleOptionExit");
|
||||
HideUIPanel(MacOptionsFrame);
|
||||
end
|
||||
|
||||
function MacOptionsFrameResolutionDropDown_OnLoad(self)
|
||||
if ( not IsMacClient() ) then
|
||||
return;
|
||||
end
|
||||
local ratio, width;
|
||||
|
||||
UIDropDownMenu_Initialize(self, MacOptionsFrameResolutionDropDown_Initialize);
|
||||
|
||||
ratio = MovieRecording_GetAspectRatio();
|
||||
width = min(GetCVar("MovieRecordingWidth"), MovieRecording_GetViewportWidth());
|
||||
UIDropDownMenu_SetSelectedValue(self, width.."x"..floor(width*ratio), 1);
|
||||
UIDropDownMenu_SetWidth(MacOptionsFrameResolutionDropDown, 110);
|
||||
end
|
||||
|
||||
local function greaterThanTableSort(a, b) return a > b end
|
||||
|
||||
function MacOptionsFrameResolutionDropDown_Initialize()
|
||||
local info = UIDropDownMenu_CreateInfo();
|
||||
local width, height, ratio, halfWidth, quarterWidth, oldWidth;
|
||||
|
||||
ratio = MovieRecording_GetAspectRatio();
|
||||
width = MovieRecording_GetViewportWidth();
|
||||
width = width - (width % 4);
|
||||
|
||||
oldWidth = GetCVar("MovieRecordingWidth");
|
||||
oldWidth = oldWidth - (oldWidth % 4);
|
||||
|
||||
info.text = width.."x"..floor(width*ratio);
|
||||
info.value = info.text;
|
||||
info.func = MacOptionsFrameResolutionButton_OnClick;
|
||||
info.checked = nil;
|
||||
info.tooltipTitle = MOVIE_RECORDING_FULL_RESOLUTION;
|
||||
UIDropDownMenu_AddButton(info);
|
||||
info.tooltipTitle = nil;
|
||||
|
||||
halfWidth = width / 2;
|
||||
halfWidth = halfWidth - (halfWidth % 4);
|
||||
quarterWidth = width / 4;
|
||||
quarterWidth = quarterWidth - (quarterWidth % 4);
|
||||
|
||||
local resWidth = { 4096, 2560, 1920, 1600, 1344, 1280, 1024, 960, 800, 640, 320 };
|
||||
table.insert(resWidth, tonumber(oldWidth));
|
||||
if halfWidth > 320 then
|
||||
table.insert(resWidth, tonumber(halfWidth));
|
||||
if quarterWidth > 320 then
|
||||
table.insert(resWidth, tonumber(quarterWidth));
|
||||
end
|
||||
end
|
||||
|
||||
table.sort(resWidth, greaterThanTableSort);
|
||||
|
||||
local lastWidth = width;
|
||||
for index, value in pairs(resWidth) do
|
||||
if value < width and value ~= lastWidth then
|
||||
height = floor(value * ratio);
|
||||
info.text = value.."x"..height;
|
||||
info.value = info.text;
|
||||
info.func = MacOptionsFrameResolutionButton_OnClick;
|
||||
info.checked = nil;
|
||||
if value == tonumber(halfWidth) then
|
||||
info.tooltipTitle = "Half Resolution";
|
||||
elseif value == tonumber(quarterWidth) then
|
||||
info.tooltipTitle = "Quarter Resolution";
|
||||
else
|
||||
info.tooltipTitle = nil;
|
||||
end
|
||||
UIDropDownMenu_AddButton(info);
|
||||
lastWidth = value;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function MacOptionsFrameResolutionButton_OnClick(self)
|
||||
UIDropDownMenu_SetSelectedValue(MacOptionsFrameResolutionDropDown, self.value);
|
||||
MacOptionsFrame_UpdateTime();
|
||||
end
|
||||
|
||||
function MacOptionsFrameFramerateDropDown_OnLoad(self)
|
||||
if ( not IsMacClient() ) then
|
||||
return;
|
||||
end
|
||||
|
||||
UIDropDownMenu_Initialize(self, MacOptionsFrameFramerateDropDown_Initialize);
|
||||
UIDropDownMenu_SetSelectedValue(self, GetCVar("MovieRecordingFramerate"));
|
||||
UIDropDownMenu_SetWidth(self, 110);
|
||||
end
|
||||
|
||||
function MacOptionsFrameFramerateDropDown_Initialize()
|
||||
local info = UIDropDownMenu_CreateInfo();
|
||||
info.func = MacOptionsFrameFramerateDropDown_OnClick;
|
||||
info.checked = nil;
|
||||
|
||||
info.text = MOVIE_RECORDING_FPS_HALF;
|
||||
info.value = "2";
|
||||
info.checked = nil;
|
||||
UIDropDownMenu_AddButton(info);
|
||||
|
||||
info.text = MOVIE_RECORDING_FPS_THIRD;
|
||||
info.value = "3";
|
||||
info.checked = nil;
|
||||
UIDropDownMenu_AddButton(info);
|
||||
|
||||
info.text = MOVIE_RECORDING_FPS_FOURTH;
|
||||
info.value = "4";
|
||||
info.checked = nil;
|
||||
UIDropDownMenu_AddButton(info);
|
||||
|
||||
local fps = { "100", "90", "80", "70", "60", "50", "40", "30", "29.97", "25", "23.98", "20", "15", "10" };
|
||||
|
||||
for index, value in pairs(fps) do
|
||||
info.text = value;
|
||||
info.value = info.text;
|
||||
info.checked = nil;
|
||||
UIDropDownMenu_AddButton(info);
|
||||
end
|
||||
end
|
||||
|
||||
function MacOptionsFrameCodecDropDown_OnClick(self)
|
||||
UIDropDownMenu_SetSelectedValue(MacOptionsFrameCodecDropDown, self.value);
|
||||
MacOptionsFrame_UpdateTime();
|
||||
end
|
||||
|
||||
function MacOptionsFrameCodecDropDown_OnLoad(self)
|
||||
if ( not IsMacClient() ) then
|
||||
return;
|
||||
end
|
||||
|
||||
UIDropDownMenu_Initialize(self, MacOptionsFrameCodecDropDown_Initialize);
|
||||
UIDropDownMenu_SetSelectedValue(self, tonumber(GetCVar("MovieRecordingCompression")));
|
||||
UIDropDownMenu_SetWidth(self, 110);
|
||||
end
|
||||
|
||||
function MacOptionsFrameCodecDropDown_Initialize()
|
||||
local info = UIDropDownMenu_CreateInfo();
|
||||
info.func = MacOptionsFrameCodecDropDown_OnClick;
|
||||
info.checked = nil;
|
||||
|
||||
local codecType = { 1835692129,
|
||||
1635148593,
|
||||
1768124260,
|
||||
1836070006 };
|
||||
local codecName = { MOVIE_RECORDING_MJPEG,
|
||||
MOVIE_RECORDING_H264,
|
||||
MOVIE_RECORDING_AIC,
|
||||
MOVIE_RECORDING_MPEG4 };
|
||||
local codecTooltip = { MOVIE_RECORDING_MJPEG_TOOLTIP,
|
||||
MOVIE_RECORDING_H264_TOOLTIP,
|
||||
MOVIE_RECORDING_AIC_TOOLTIP,
|
||||
MOVIE_RECORDING_MPEG4_TOOLTIP };
|
||||
|
||||
for index, value in pairs(codecType) do
|
||||
if ( MovieRecording_IsCodecSupported(value)) then
|
||||
info.text = codecName[index];
|
||||
info.value = value;
|
||||
info.checked = nil;
|
||||
info.tooltipTitle = codecName[index];
|
||||
info.tooltipText = codecTooltip[index];
|
||||
UIDropDownMenu_AddButton(info);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function MacOptionsFrameFramerateDropDown_OnClick(self)
|
||||
UIDropDownMenu_SetSelectedValue(MacOptionsFrameFramerateDropDown, self.value);
|
||||
MacOptionsFrame_UpdateTime();
|
||||
end
|
||||
|
||||
function MacOptionsFrame_SetDefaults()
|
||||
local checkButton, slider;
|
||||
for index, value in pairs(MacOptionsFrameCheckButtons) do
|
||||
checkButton = _G["MacOptionsFrameCheckButton"..value.index];
|
||||
checkButton:SetChecked(GetCVarDefault(value.cvar));
|
||||
end
|
||||
if(not MovieRecording_IsCursorRecordingSupported()) then
|
||||
local button = _G["MacOptionsFrameCheckButton3"];
|
||||
button:SetChecked(0);
|
||||
MacOptionsFrame_DisableCheckBox(button);
|
||||
else
|
||||
local button = _G["MacOptionsFrameCheckButton3"];
|
||||
MacOptionsFrame_EnableCheckBox(button);
|
||||
end
|
||||
|
||||
UIDropDownMenu_Initialize(MacOptionsFrameFramerateDropDown, MacOptionsFrameFramerateDropDown_Initialize);
|
||||
UIDropDownMenu_SetSelectedValue(MacOptionsFrameFramerateDropDown, "29.97");
|
||||
UIDropDownMenu_Initialize(MacOptionsFrameCodecDropDown, MacOptionsFrameCodecDropDown_Initialize);
|
||||
UIDropDownMenu_SetSelectedValue(MacOptionsFrameCodecDropDown, 1635148593);
|
||||
UIDropDownMenu_Initialize(MacOptionsFrameResolutionDropDown, MacOptionsFrameResolutionDropDown_Initialize);
|
||||
local ratio = MovieRecording_GetAspectRatio();
|
||||
UIDropDownMenu_SetSelectedValue(MacOptionsFrameResolutionDropDown, "640x"..floor(640*ratio));
|
||||
|
||||
MacOptionsFrameQualitySlider:SetValue(2);
|
||||
MacOptionsFrame_UpdateTime();
|
||||
end
|
||||
|
||||
function MacOptionsFrame_DisableCheckBox(checkBox)
|
||||
--checkBox:SetChecked(0);
|
||||
checkBox:Disable();
|
||||
_G[checkBox:GetName().."Text"]:SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b);
|
||||
end
|
||||
|
||||
function MacOptionsFrame_EnableCheckBox(checkBox, setChecked, checked, isWhite)
|
||||
if ( setChecked ) then
|
||||
checkBox:SetChecked(checked);
|
||||
end
|
||||
checkBox:Enable();
|
||||
if ( isWhite ) then
|
||||
_G[checkBox:GetName().."Text"]:SetTextColor(HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b);
|
||||
else
|
||||
_G[checkBox:GetName().."Text"]:SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b);
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function MacOptionsFrame_UpdateTime()
|
||||
local resolution, framerate, xIndex, width, sound;
|
||||
framerate = UIDropDownMenu_GetSelectedValue(MacOptionsFrameFramerateDropDown);
|
||||
if tonumber(framerate) >= 10 then
|
||||
resolution = UIDropDownMenu_GetSelectedValue(MacOptionsFrameResolutionDropDown);
|
||||
xIndex = strfind(resolution, "x");
|
||||
width = tonumber(strsub(resolution, 1, xIndex-1));
|
||||
if(MacOptionsFrameCheckButton2:GetChecked()) then
|
||||
sound = 1;
|
||||
else
|
||||
sound = 0;
|
||||
end
|
||||
|
||||
MacOptionsFrameText2:SetText(MovieRecording_MaxLength( tonumber(width),
|
||||
tonumber(framerate),
|
||||
tonumber(sound)));
|
||||
|
||||
local dataRate = MovieRecording_DataRate( tonumber(width),
|
||||
tonumber(UIDropDownMenu_GetSelectedValue(MacOptionsFrameFramerateDropDown)),
|
||||
tonumber(sound))
|
||||
MacOptionsFrameText4:SetText(dataRate);
|
||||
MovieRecordingFrameTextTooltip1:SetWidth(MacOptionsFrameText1:GetWidth() + MacOptionsFrameText2:GetWidth() + 2);
|
||||
MovieRecordingFrameTextTooltip2:SetWidth(MacOptionsFrameText3:GetWidth() + MacOptionsFrameText4:GetWidth() + 2);
|
||||
else
|
||||
MacOptionsFrameText2:SetText("");
|
||||
MacOptionsFrameText4:SetText("");
|
||||
end
|
||||
end
|
||||
|
||||
function MacOptionsCancelFrame_OnShow()
|
||||
MacOptionsCancelFrameFileName:SetText(MovieRecording_GetMovieFullPath());
|
||||
|
||||
local fileNameWidth = MacOptionsCancelFrameFileName:GetWidth();
|
||||
local questionWidth = MacOptionsCancelFrameQuestion:GetWidth();
|
||||
local frameWidth = math.min(600, math.max(fileNameWidth, questionWidth));
|
||||
|
||||
MacOptionsCancelFrame:SetWidth(frameWidth + 40);
|
||||
MacOptionsCancelFrameFileName:SetWidth(frameWidth);
|
||||
MacOptionsCancelFrameQuestion:SetWidth(frameWidth);
|
||||
end
|
||||
|
||||
function MacOptionsCompressFrame_OnShow()
|
||||
local fileNameWidth = MacOptionsCompressFrameFileName:GetWidth();
|
||||
local frameWidth = math.max(350, fileNameWidth);
|
||||
|
||||
MacOptionsCompressFrame:SetWidth(frameWidth + 40);
|
||||
MacOptionsCompressFrameFileName:SetWidth(frameWidth);
|
||||
end
|
||||
Reference in New Issue
Block a user