-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathGuildMapOptions.lua
152 lines (113 loc) · 4.06 KB
/
GuildMapOptions.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
local GuildMapOldConfig = {};
function GuildMap_ShowOptions()
GuildMapOldConfig = GuildMap_CloneTable(GuildMapConfig);
if (GuildMapConfig.channel) then
GuildMapOptionsFrameChannelEB:SetText(GuildMapConfig.channel);
else
GuildMapOptionsFrameChannelEB:SetText("");
end
if (GuildMapConfig.password) then
GuildMapOptionsFramePasswordEB:SetText(GuildMapConfig.password);
else
GuildMapOptionsFramePasswordEB:SetText("");
end
if (GuildMapConfig.mmArrows) then
GuildMapOptionsFrameDisplayArrowsCB:SetChecked(1);
OptionsFrame_EnableSlider(GuildMapOptionsFrameArrowDistanceSL);
else
GuildMapOptionsFrameDisplayArrowsCB:SetChecked(nil);
OptionsFrame_DisableSlider(GuildMapOptionsFrameArrowDistanceSL);
end
GuildMapOptionsFrameArrowDistanceSL:SetValue(GuildMapConfig.mmDistance);
UIDropDownMenu_SetSelectedValue(GuildMapOptionsFrameIconLeftMouseDD, GuildMapConfig.mmLMB);
UIDropDownMenu_SetSelectedValue(GuildMapOptionsFrameIconRightMouseDD, GuildMapConfig.mmRMB);
-- workaround problem with setting the text (shared drop down instances???)
GuildMap_SetIconMouseDDText(GuildMapOptionsFrameIconLeftMouseDD, GuildMapConfig.mmLMB);
GuildMap_SetIconMouseDDText(GuildMapOptionsFrameIconRightMouseDD, GuildMapConfig.mmRMB);
GuildMapOptionsFrame:Show();
end
function GuildMap_SetIconMouseDDText(frame, value)
if (value == "TARGET") then
UIDropDownMenu_SetText(GUILDMAP_TEXT_TARGET_PLAYER, frame);
elseif (value == "PING") then
UIDropDownMenu_SetText(GUILDMAP_TEXT_PING_THRU, frame);
else
UIDropDownMenu_SetText(GUILDMAP_TEXT_NO_ACTION, frame);
end
end
function GuildMap_IconLeftMouseDDInitialize()
local info = {};
info.text = GUILDMAP_TEXT_NO_ACTION;
info.value = "NOTHING";
info.func = GuildMap_IconLeftMouseDDClick;
info.checked = nil;
UIDropDownMenu_AddButton(info);
info.text = GUILDMAP_TEXT_PING_THRU;
info.value = "PING";
info.func = GuildMap_IconLeftMouseDDClick;
info.checked = nil;
UIDropDownMenu_AddButton(info);
info.text = GUILDMAP_TEXT_TARGET_PLAYER;
info.value = "TARGET";
info.func = GuildMap_IconLeftMouseDDClick;
info.checked = nil;
UIDropDownMenu_AddButton(info);
end
function GuildMap_IconLeftMouseDDClick()
UIDropDownMenu_SetSelectedValue(GuildMapOptionsFrameIconLeftMouseDD, this.value);
GuildMapConfig.mmLMB = this.value;
end
function GuildMap_IconRightMouseDDInitialize()
local info = {};
info.text = GUILDMAP_TEXT_NO_ACTION;
info.value = "NOTHING";
info.func = GuildMap_IconRightMouseDDClick;
info.checked = nil;
UIDropDownMenu_AddButton(info);
info.text = GUILDMAP_TEXT_PING_THRU;
info.value = "PING";
info.func = GuildMap_IconRightMouseDDClick;
info.checked = nil;
UIDropDownMenu_AddButton(info);
info.text = GUILDMAP_TEXT_TARGET_PLAYER;
info.value = "TARGET";
info.func = GuildMap_IconRightMouseDDClick;
info.checked = nil;
UIDropDownMenu_AddButton(info);
end
function GuildMap_IconRightMouseDDClick()
UIDropDownMenu_SetSelectedValue(GuildMapOptionsFrameIconRightMouseDD, this.value);
GuildMapConfig.mmRMB = this.value;
end
function GuildMap_DisplayArrowsCB_OnClick()
if (this:GetChecked()) then
OptionsFrame_EnableSlider(GuildMapOptionsFrameArrowDistanceSL);
GuildMapConfig.mmArrows = true;
else
OptionsFrame_DisableSlider(GuildMapOptionsFrameArrowDistanceSL);
GuildMapConfig.mmArrows = false;
end
end
function GuildMap_ArrowDistanceSL_OnValueChanged()
GuildMapConfig.mmDistance = this:GetValue();
end
function GuildMap_Cancel_OnClick()
-- restore settings backup
GuildMapConfig = GuildMapOldConfig;
PlaySound("gsTitleOptionExit");
GuildMapOptionsFrame:Hide();
end
function GuildMap_OK_OnClick()
local newChannel = GuildMapOptionsFrameChannelEB:GetText();
newChannel = string.gsub(newChannel, "[^%w]", "");
newChannel = string.lower(newChannel);
local newPassword = GuildMapOptionsFramePasswordEB:GetText();
if (strlower(newChannel) ~= strlower(GuildMapConfig.channel)) then
LeaveChannelByName(GuildMapConfig.channel);
GuildMapConfig.channel = newChannel;
GuildMapConfig.password = newPassword;
end
GuildMap_SetupComm();
PlaySound("gsTitleOptionOK");
GuildMapOptionsFrame:Hide();
end