GlobalOptionsTab = class(Thurallor.UI.TabCard);
function GlobalOptionsTab:Constructor(manager, optionsPanel)
Thurallor.UI.TabCard.Constructor(self);
self.manager = manager;
self.optionsPanel = optionsPanel;
self:SetTabLeft(0);
self.inside = Turbine.UI.Control();
self:SetInteriorControl(self.inside);
self:SetInteriorAlignment(Turbine.UI.ContentAlignment.TopLeft);
local left, top, width = 10, 10, 350;
self.language = Turbine.UI.Label();
self.language:SetParent(self.inside);
self.language:SetFont(Turbine.UI.Lotro.Font.TrajanPro14);
self.language:SetPosition(left, top);
self.language:SetSize(width, 16);
top = top + 16;
local languages = { "English", "German", "French", "Portuguese", "Russian" };
local peers = {};
self.languageButtons = {};
for l = 1, #languages do
language = languages[l];
local radioButton = Thurallor.UI.RadioButton(self.inside);
radioButton.language = languages[l];
radioButton:SetFont((l == 5) and Turbine.UI.Lotro.Font.Verdana14 or Turbine.UI.Lotro.Font.TrajanPro14);
radioButton:SetSize(width, 16);
radioButton:SetPosition(left, top);
radioButton.Clicked = function(sender)
self.manager:SetLanguage(Turbine.Language[sender.language]);
end
self.languageButtons[radioButton.language] = radioButton;
table.insert(peers, radioButton);
top = top + 16;
end
Thurallor.UI.RadioButton.LinkPeers(peers);
top = top + 16;
self.snapToGrid = Turbine.UI.Lotro.CheckBox();
self.snapToGrid:SetParent(self.inside);
self.snapToGrid:SetFont(Turbine.UI.Lotro.Font.TrajanPro14);
self.snapToGrid:SetPosition(left, top);
self.snapToGrid:SetSize(width, 16);
self.snapToGrid.CheckedChanged = function(sender)
self.manager:SetSnapToGrid(sender:IsChecked());
end
self.showGrid = Thurallor.UI.EyeButton(self.inside, false, true);
self.showGrid:SetPosition(left + 186, top);
self.showGrid.CheckedChanged = function(sender)
self.manager:SetGridDisplayEnable(sender:IsChecked());
end
top = top + 32;
self.uiScaleLabel = Turbine.UI.Label();
self.uiScaleLabel:SetParent(self.inside);
self.uiScaleLabel:SetFont(Turbine.UI.Lotro.Font.TrajanPro14);
self.uiScaleLabel:SetPosition(left, top);
self.uiScaleLabel:SetSize(width, 16);
top = top + 16;
self.uiScale = Turbine.UI.Lotro.ScrollBar();
self.uiScale:SetParent(self.inside);
self.uiScale:SetPosition(left, top);
self.uiScale:SetSize(200, 10);
self.uiScale:SetMinimum(13);
self.uiScale:SetMaximum(96);
self.uiScale:SetSmallChange(1);
self.uiScale:SetLargeChange(10);
self.uiScale.ValueChanged = function(sb)
local scale = sb:GetValue();
self.manager:SetUIScale(scale);
sb:UpdateLabel();
end
self.uiScale.UpdateLabel = function(sb)
local scale = sb:GetValue();
self.uiScaleLabel:SetText(L:GetText("/PluginManager/OptionsTab/GlobalSettingsTab/UiScale") .. ": " .. string.format("%d", scale * 100 / 32) .. "%");
end
top = top + 26;
self.uiOpacityLabel = Turbine.UI.Label();
self.uiOpacityLabel:SetParent(self.inside);
self.uiOpacityLabel:SetFont(Turbine.UI.Lotro.Font.TrajanPro14);
self.uiOpacityLabel:SetPosition(left, top);
self.uiOpacityLabel:SetSize(width, 16);
top = top + 16;
self.uiOpacity = Turbine.UI.Lotro.ScrollBar();
self.uiOpacity:SetParent(self.inside);
self.uiOpacity:SetPosition(left, top);
self.uiOpacity:SetSize(200, 10);
self.uiOpacity:SetMinimum(0);
self.uiOpacity:SetMaximum(100);
self.uiOpacity:SetSmallChange(1);
self.uiOpacity:SetLargeChange(10);
self.uiOpacity.ValueChanged = function(sb)
local opacity = sb:GetValue();
self.manager:SetUIOpacity(opacity / 100);
sb:UpdateLabel();
end
self.uiOpacity.UpdateLabel = function(sb)
local opacity = sb:GetValue();
self.uiOpacityLabel:SetText(L:GetText("/PluginManager/OptionsTab/GlobalSettingsTab/UiOpacity") .. ": " .. opacity .. "%");
end
top = top + 26;
self.rightClickAction = Turbine.UI.Label();
self.rightClickAction:SetParent(self.inside);
self.rightClickAction:SetFont(Turbine.UI.Lotro.Font.TrajanPro14);
self.rightClickAction:SetPosition(left, top);
self.rightClickAction:SetSize(width, 16);
top = top + 16;
self.rightClickActionShowMenu = Thurallor.UI.RadioButton(self.inside, "");
self.rightClickActionShowMenu:SetFont(Turbine.UI.Lotro.Font.TrajanPro14);
self.rightClickActionShowMenu:SetPosition(left, top);
self.rightClickActionShowMenu:SetSize(width, 16);
self.rightClickActionShowMenu.Clicked = function(sender)
self.manager:SetUseOnRightClick(false);
end
top = top + 16;
self.rightClickActionExecute = Thurallor.UI.RadioButton(self.inside, "");
self.rightClickActionExecute:SetFont(Turbine.UI.Lotro.Font.TrajanPro14);
self.rightClickActionExecute:SetPosition(left, top);
self.rightClickActionExecute:SetSize(width, 16);
self.rightClickActionExecute.Clicked = function(sender)
self.manager:SetUseOnRightClick(true);
end
Thurallor.UI.RadioButton.LinkPeers({self.rightClickActionShowMenu, self.rightClickActionExecute});
top = top + 16;
local height = top + 10;
self.inside:SetSize(width, height);
end
function GlobalOptionsTab:Refresh()
for language in keys(self.languageButtons) do
self.languageButtons[language]:SetChecked(self.manager.settings.language == Turbine.Language[language]);
end
self.snapToGrid:SetChecked(self.manager.settings.snapToGrid);
self.showGrid:SetChecked(false);
self.uiScale:SetValue(self.manager.settings.uiScale);
self.uiOpacity:SetValue(self.manager.settings.uiOpacity * 100);
self.rightClickActionExecute:SetChecked(self.manager.settings.useOnRightClick);
self.rightClickActionShowMenu:SetChecked(not self.manager.settings.useOnRightClick);
end
function GlobalOptionsTab:Localize()
self:SetTabText(L:GetText("/PluginManager/OptionsTab/GlobalSettings"));
self.language:SetText(L:GetText("/PluginManager/OptionsTab/GlobalSettingsTab/Language"));
for language in keys(self.languageButtons) do
self.languageButtons[language]:SetText(L:GetText("/PluginManager/OptionsTab/GlobalSettingsTab/LanguageMenu/" .. language));
end
self.snapToGrid:SetText(L:GetText("/PluginManager/OptionsTab/GlobalSettingsTab/SnapToGrid"));
self.uiScale:UpdateLabel();
self.uiOpacity:UpdateLabel();
self.rightClickAction:SetText(L:GetText("/PluginManager/OptionsTab/GlobalSettingsTab/RightClickAction"));
self.rightClickActionExecute:SetText(L:GetText("/PluginManager/OptionsTab/GlobalSettingsTab/RightClickActionExecute"));
self.rightClickActionShowMenu:SetText(L:GetText("/PluginManager/OptionsTab/GlobalSettingsTab/RightClickActionShowMenu"));
end