1 |
170 |
Thurallor-7095 |
GlobalOptionsTab = class(Thurallor.UI.TabCard); |
2 |
|
Thurallor-7095 |
|
3 |
|
Thurallor-7095 |
function GlobalOptionsTab:Constructor(manager, optionsPanel) |
4 |
|
Thurallor-7095 |
Thurallor.UI.TabCard.Constructor(self); |
5 |
|
Thurallor-7095 |
self.manager = manager; |
6 |
|
Thurallor-7095 |
self.optionsPanel = optionsPanel; |
7 |
|
Thurallor-7095 |
|
8 |
|
Thurallor-7095 |
self:SetTabLeft(0); |
9 |
|
Thurallor-7095 |
self.inside = Turbine.UI.Control(); |
10 |
|
Thurallor-7095 |
self:SetInteriorControl(self.inside); |
11 |
|
Thurallor-7095 |
self:SetInteriorAlignment(Turbine.UI.ContentAlignment.TopLeft); |
12 |
|
Thurallor-7095 |
|
13 |
|
Thurallor-7095 |
local left, top, width = 10, 10, 350; |
14 |
|
Thurallor-7095 |
|
15 |
|
Thurallor-7095 |
self.language = Turbine.UI.Label(); |
16 |
|
Thurallor-7095 |
self.language:SetParent(self.inside); |
17 |
|
Thurallor-7095 |
self.language:SetFont(Turbine.UI.Lotro.Font.TrajanPro14); |
18 |
|
Thurallor-7095 |
self.language:SetPosition(left, top); |
19 |
|
Thurallor-7095 |
self.language:SetSize(width, 16); |
20 |
|
Thurallor-7095 |
top = top + 16; |
21 |
|
Thurallor-7095 |
|
22 |
|
Thurallor-7095 |
local languages = { "English", "German", "French", "Portuguese", "Russian" }; |
23 |
|
Thurallor-7095 |
local peers = {}; |
24 |
|
Thurallor-7095 |
self.languageButtons = {}; |
25 |
|
Thurallor-7095 |
for l = 1, #languages do |
26 |
|
Thurallor-7095 |
language = languages[l]; |
27 |
|
Thurallor-7095 |
local radioButton = Thurallor.UI.RadioButton(self.inside); |
28 |
|
Thurallor-7095 |
radioButton.language = languages[l]; |
29 |
|
Thurallor-7095 |
radioButton:SetFont((l == 5) and Turbine.UI.Lotro.Font.Verdana14 or Turbine.UI.Lotro.Font.TrajanPro14); |
30 |
|
Thurallor-7095 |
radioButton:SetSize(width, 16); |
31 |
|
Thurallor-7095 |
radioButton:SetPosition(left, top); |
32 |
|
Thurallor-7095 |
radioButton.Clicked = function(sender) |
33 |
|
Thurallor-7095 |
self.manager:SetLanguage(Turbine.Language[sender.language]); |
34 |
|
Thurallor-7095 |
end |
35 |
|
Thurallor-7095 |
self.languageButtons[radioButton.language] = radioButton; |
36 |
|
Thurallor-7095 |
table.insert(peers, radioButton); |
37 |
|
Thurallor-7095 |
top = top + 16; |
38 |
|
Thurallor-7095 |
end |
39 |
|
Thurallor-7095 |
Thurallor.UI.RadioButton.LinkPeers(peers); |
40 |
|
Thurallor-7095 |
|
41 |
|
Thurallor-7095 |
top = top + 16; |
42 |
|
Thurallor-7095 |
self.snapToGrid = Turbine.UI.Lotro.CheckBox(); |
43 |
|
Thurallor-7095 |
self.snapToGrid:SetParent(self.inside); |
44 |
|
Thurallor-7095 |
self.snapToGrid:SetFont(Turbine.UI.Lotro.Font.TrajanPro14); |
45 |
|
Thurallor-7095 |
self.snapToGrid:SetPosition(left, top); |
46 |
|
Thurallor-7095 |
self.snapToGrid:SetSize(width, 16); |
47 |
|
Thurallor-7095 |
self.snapToGrid.CheckedChanged = function(sender) |
48 |
|
Thurallor-7095 |
self.manager:SetSnapToGrid(sender:IsChecked()); |
49 |
|
Thurallor-7095 |
end |
50 |
|
Thurallor-7095 |
|
51 |
|
Thurallor-7095 |
self.showGrid = Thurallor.UI.EyeButton(self.inside, false, true); |
52 |
|
Thurallor-7095 |
self.showGrid:SetPosition(left + 186, top); |
53 |
|
Thurallor-7095 |
self.showGrid.CheckedChanged = function(sender) |
54 |
|
Thurallor-7095 |
self.manager:SetGridDisplayEnable(sender:IsChecked()); |
55 |
|
Thurallor-7095 |
end |
56 |
|
Thurallor-7095 |
|
57 |
|
Thurallor-7095 |
top = top + 32; |
58 |
|
Thurallor-7095 |
self.uiScaleLabel = Turbine.UI.Label(); |
59 |
|
Thurallor-7095 |
self.uiScaleLabel:SetParent(self.inside); |
60 |
|
Thurallor-7095 |
self.uiScaleLabel:SetFont(Turbine.UI.Lotro.Font.TrajanPro14); |
61 |
|
Thurallor-7095 |
self.uiScaleLabel:SetPosition(left, top); |
62 |
|
Thurallor-7095 |
self.uiScaleLabel:SetSize(width, 16); |
63 |
|
Thurallor-7095 |
|
64 |
|
Thurallor-7095 |
top = top + 16; |
65 |
|
Thurallor-7095 |
self.uiScale = Turbine.UI.Lotro.ScrollBar(); |
66 |
|
Thurallor-7095 |
self.uiScale:SetParent(self.inside); |
67 |
|
Thurallor-7095 |
self.uiScale:SetPosition(left, top); |
68 |
|
Thurallor-7095 |
self.uiScale:SetSize(200, 10); |
69 |
|
Thurallor-7095 |
self.uiScale:SetMinimum(13); |
70 |
|
Thurallor-7095 |
self.uiScale:SetMaximum(96); |
71 |
|
Thurallor-7095 |
self.uiScale:SetSmallChange(1); |
72 |
|
Thurallor-7095 |
self.uiScale:SetLargeChange(10); |
73 |
|
Thurallor-7095 |
self.uiScale.ValueChanged = function(sb) |
74 |
|
Thurallor-7095 |
local scale = sb:GetValue(); |
75 |
|
Thurallor-7095 |
self.manager:SetUIScale(scale); |
76 |
|
Thurallor-7095 |
sb:UpdateLabel(); |
77 |
|
Thurallor-7095 |
end |
78 |
|
Thurallor-7095 |
self.uiScale.UpdateLabel = function(sb) |
79 |
|
Thurallor-7095 |
local scale = sb:GetValue(); |
80 |
|
Thurallor-7095 |
self.uiScaleLabel:SetText(L:GetText("/PluginManager/OptionsTab/GlobalSettingsTab/UiScale") .. ": " .. string.format("%d", scale * 100 / 32) .. "%"); |
81 |
|
Thurallor-7095 |
end |
82 |
|
Thurallor-7095 |
|
83 |
|
Thurallor-7095 |
top = top + 26; |
84 |
|
Thurallor-7095 |
self.uiOpacityLabel = Turbine.UI.Label(); |
85 |
|
Thurallor-7095 |
self.uiOpacityLabel:SetParent(self.inside); |
86 |
|
Thurallor-7095 |
self.uiOpacityLabel:SetFont(Turbine.UI.Lotro.Font.TrajanPro14); |
87 |
|
Thurallor-7095 |
self.uiOpacityLabel:SetPosition(left, top); |
88 |
|
Thurallor-7095 |
self.uiOpacityLabel:SetSize(width, 16); |
89 |
|
Thurallor-7095 |
|
90 |
|
Thurallor-7095 |
top = top + 16; |
91 |
|
Thurallor-7095 |
self.uiOpacity = Turbine.UI.Lotro.ScrollBar(); |
92 |
|
Thurallor-7095 |
self.uiOpacity:SetParent(self.inside); |
93 |
|
Thurallor-7095 |
self.uiOpacity:SetPosition(left, top); |
94 |
|
Thurallor-7095 |
self.uiOpacity:SetSize(200, 10); |
95 |
|
Thurallor-7095 |
self.uiOpacity:SetMinimum(0); |
96 |
|
Thurallor-7095 |
self.uiOpacity:SetMaximum(100); |
97 |
|
Thurallor-7095 |
self.uiOpacity:SetSmallChange(1); |
98 |
|
Thurallor-7095 |
self.uiOpacity:SetLargeChange(10); |
99 |
|
Thurallor-7095 |
self.uiOpacity.ValueChanged = function(sb) |
100 |
|
Thurallor-7095 |
local opacity = sb:GetValue(); |
101 |
|
Thurallor-7095 |
self.manager:SetUIOpacity(opacity / 100); |
102 |
|
Thurallor-7095 |
sb:UpdateLabel(); |
103 |
|
Thurallor-7095 |
end |
104 |
|
Thurallor-7095 |
self.uiOpacity.UpdateLabel = function(sb) |
105 |
|
Thurallor-7095 |
local opacity = sb:GetValue(); |
106 |
|
Thurallor-7095 |
self.uiOpacityLabel:SetText(L:GetText("/PluginManager/OptionsTab/GlobalSettingsTab/UiOpacity") .. ": " .. opacity .. "%"); |
107 |
|
Thurallor-7095 |
end |
108 |
|
Thurallor-7095 |
|
109 |
|
Thurallor-7095 |
top = top + 26; |
110 |
|
Thurallor-7095 |
self.rightClickAction = Turbine.UI.Label(); |
111 |
|
Thurallor-7095 |
self.rightClickAction:SetParent(self.inside); |
112 |
|
Thurallor-7095 |
self.rightClickAction:SetFont(Turbine.UI.Lotro.Font.TrajanPro14); |
113 |
|
Thurallor-7095 |
self.rightClickAction:SetPosition(left, top); |
114 |
|
Thurallor-7095 |
self.rightClickAction:SetSize(width, 16); |
115 |
|
Thurallor-7095 |
top = top + 16; |
116 |
|
Thurallor-7095 |
self.rightClickActionShowMenu = Thurallor.UI.RadioButton(self.inside, ""); |
117 |
|
Thurallor-7095 |
self.rightClickActionShowMenu:SetFont(Turbine.UI.Lotro.Font.TrajanPro14); |
118 |
|
Thurallor-7095 |
self.rightClickActionShowMenu:SetPosition(left, top); |
119 |
|
Thurallor-7095 |
self.rightClickActionShowMenu:SetSize(width, 16); |
120 |
|
Thurallor-7095 |
self.rightClickActionShowMenu.Clicked = function(sender) |
121 |
|
Thurallor-7095 |
self.manager:SetUseOnRightClick(false); |
122 |
|
Thurallor-7095 |
end |
123 |
|
Thurallor-7095 |
top = top + 16; |
124 |
|
Thurallor-7095 |
self.rightClickActionExecute = Thurallor.UI.RadioButton(self.inside, ""); |
125 |
|
Thurallor-7095 |
self.rightClickActionExecute:SetFont(Turbine.UI.Lotro.Font.TrajanPro14); |
126 |
|
Thurallor-7095 |
self.rightClickActionExecute:SetPosition(left, top); |
127 |
|
Thurallor-7095 |
self.rightClickActionExecute:SetSize(width, 16); |
128 |
|
Thurallor-7095 |
self.rightClickActionExecute.Clicked = function(sender) |
129 |
|
Thurallor-7095 |
self.manager:SetUseOnRightClick(true); |
130 |
|
Thurallor-7095 |
end |
131 |
|
Thurallor-7095 |
Thurallor.UI.RadioButton.LinkPeers({self.rightClickActionShowMenu, self.rightClickActionExecute}); |
132 |
|
Thurallor-7095 |
top = top + 16; |
133 |
|
Thurallor-7095 |
|
134 |
|
Thurallor-7095 |
local height = top + 10; |
135 |
|
Thurallor-7095 |
self.inside:SetSize(width, height); |
136 |
|
Thurallor-7095 |
end |
137 |
|
Thurallor-7095 |
|
138 |
|
Thurallor-7095 |
function GlobalOptionsTab:Refresh() |
139 |
|
Thurallor-7095 |
for language in keys(self.languageButtons) do |
140 |
|
Thurallor-7095 |
self.languageButtons[language]:SetChecked(self.manager.settings.language == Turbine.Language[language]); |
141 |
|
Thurallor-7095 |
end |
142 |
|
Thurallor-7095 |
self.snapToGrid:SetChecked(self.manager.settings.snapToGrid); |
143 |
|
Thurallor-7095 |
self.showGrid:SetChecked(false); |
144 |
|
Thurallor-7095 |
self.uiScale:SetValue(self.manager.settings.uiScale); |
145 |
|
Thurallor-7095 |
self.uiOpacity:SetValue(self.manager.settings.uiOpacity * 100); |
146 |
|
Thurallor-7095 |
self.rightClickActionExecute:SetChecked(self.manager.settings.useOnRightClick); |
147 |
|
Thurallor-7095 |
self.rightClickActionShowMenu:SetChecked(not self.manager.settings.useOnRightClick); |
148 |
|
Thurallor-7095 |
end |
149 |
|
Thurallor-7095 |
|
150 |
|
Thurallor-7095 |
function GlobalOptionsTab:Localize() |
151 |
|
Thurallor-7095 |
self:SetTabText(L:GetText("/PluginManager/OptionsTab/GlobalSettings")); |
152 |
|
Thurallor-7095 |
self.language:SetText(L:GetText("/PluginManager/OptionsTab/GlobalSettingsTab/Language")); |
153 |
|
Thurallor-7095 |
for language in keys(self.languageButtons) do |
154 |
|
Thurallor-7095 |
self.languageButtons[language]:SetText(L:GetText("/PluginManager/OptionsTab/GlobalSettingsTab/LanguageMenu/" .. language)); |
155 |
|
Thurallor-7095 |
end |
156 |
|
Thurallor-7095 |
self.snapToGrid:SetText(L:GetText("/PluginManager/OptionsTab/GlobalSettingsTab/SnapToGrid")); |
157 |
|
Thurallor-7095 |
self.uiScale:UpdateLabel(); |
158 |
|
Thurallor-7095 |
self.uiOpacity:UpdateLabel(); |
159 |
|
Thurallor-7095 |
self.rightClickAction:SetText(L:GetText("/PluginManager/OptionsTab/GlobalSettingsTab/RightClickAction")); |
160 |
|
Thurallor-7095 |
self.rightClickActionExecute:SetText(L:GetText("/PluginManager/OptionsTab/GlobalSettingsTab/RightClickActionExecute")); |
161 |
|
Thurallor-7095 |
self.rightClickActionShowMenu:SetText(L:GetText("/PluginManager/OptionsTab/GlobalSettingsTab/RightClickActionShowMenu")); |
162 |
|
Thurallor-7095 |
end |