vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 simpleMinimap_Coords = simpleMinimap:NewModule("coords")
2 local L = AceLibrary("AceLocale-2.1"):GetInstance("simpleMinimap_Coords", true)
3 --
4 function simpleMinimap_Coords:OnInitialize()
5 self.db = simpleMinimap:AcquireDBNamespace("coords")
6 self.positions = {
7 { "BOTTOM", "BOTTOM" },
8 { "TOP", "BOTTOM" },
9 { "TOP", "TOP" },
10 { "BOTTOM", "TOP" },
11 { "TOPLEFT", "TOPLEFT" },
12 { "BOTTOMLEFT", "BOTTOMLEFT" },
13 { "TOPRIGHT", "TOPRIGHT" },
14 { "BOTTOMRIGHT", "BOTTOMRIGHT" }
15 }
16  
17 self.defaults = { enabled=true, position=6, backdrop=true, border=true, scale=0.9, alpha=0.8, fontR=0.8, fontG=0.8, fontB=0.6, time=1 }
18 self.options = {
19 type="group", name=L.coords, desc=L.coords_desc,
20 args={
21 title={
22 type="header", order=1, name="simpleMinimap |cFFFFFFCC"..L.coords
23 },
24 spacer1={
25 type="header", order=2
26 },
27 enabled={
28 type="toggle", order=3, name=L.enabled, desc=L.enabled_desc,
29 get=function() return(self.db.profile.enabled) end,
30 set=function(x) self.db.profile.enabled=x simpleMinimap:ToggleModuleActive(self,x) end
31 },
32 spacer2={
33 type="header", order=4, name="---"
34 },
35 alpha={
36 type="range", order=10, name=L.alpha, desc=L.alpha_desc,
37 min=0, max=1, step=0.05, isPercent=true,
38 get=function() return(self.db.profile.alpha) end,
39 set=function(x) self.db.profile.alpha=x self:UpdateScreen() end
40 },
41 backdrop={
42 type="toggle", order=11, name=L.backdrop, desc=L.backdrop_desc,
43 get=function() return(self.db.profile.backdrop) end,
44 set=function(x) self.db.profile.backdrop=x self:UpdateScreen() end
45 },
46 border={
47 type="toggle", order=12, name=L.border, desc=L.border_desc,
48 get=function() return(self.db.profile.border) end,
49 set=function(x) self.db.profile.border=x self:UpdateScreen() end
50 },
51 fontColor={
52 type="color", order=13, name=L.fontColor, desc=L.fontColor_desc,
53 get = function() return self.db.profile.fontR, self.db.profile.fontG, self.db.profile.fontB end,
54 set = function(r, g, b) self.db.profile.fontR=r self.db.profile.fontG=g self.db.profile.fontB=b self:UpdateScreen() end
55 },
56 position = {
57 type="group", order=14, name=L.position, desc=L.position_desc,
58 args = {
59 ["1"]={
60 type="toggle", order=1, name=L.position1, desc=L.position1_desc,
61 get=function() return(self.db.profile.position==1) end,
62 set=function() self.db.profile.position=1 self:UpdateScreen() end
63 },
64 ["2"]={
65 type="toggle", order=2, name=L.position2, desc=L.position2_desc,
66 get=function() return(self.db.profile.position==2) end,
67 set=function() self.db.profile.position=2 self:UpdateScreen() end
68 },
69 ["3"]={
70 type="toggle", order=3, name=L.position3, desc=L.position3_desc,
71 get=function() return(self.db.profile.position==3) end,
72 set=function() self.db.profile.position=3 self:UpdateScreen() end
73 },
74 ["4"]={
75 type="toggle", order=4, name=L.position4, desc=L.position4_desc,
76 get=function() return(self.db.profile.position==4) end,
77 set=function() self.db.profile.position=4 self:UpdateScreen() end
78 },
79 ["5"]={
80 type="toggle", order=5, name=L.position5, desc=L.position5_desc,
81 get=function() return(self.db.profile.position==5) end,
82 set=function() self.db.profile.position=5 self:UpdateScreen() end
83 },
84 ["6"]={
85 type="toggle", order=6, name=L.position6, desc=L.position6_desc,
86 get=function() return(self.db.profile.position==6) end,
87 set=function() self.db.profile.position=6 self:UpdateScreen() end
88 },
89 ["7"]={
90 type="toggle", order=7, name = L.position7, desc = L.position7_desc,
91 get=function() return(self.db.profile.position==7) end,
92 set=function() self.db.profile.position=7 self:UpdateScreen() end
93 },
94 ["8"]={
95 type="toggle", order=8, name=L.position8, desc=L.position8_desc,
96 get=function() return(self.db.profile.position==8) end,
97 set=function() self.db.profile.position=8 self:UpdateScreen() end
98 }
99 }
100 },
101 scale={
102 type="range", order=15, name=L.scale, desc=L.scale_desc,
103 min=0.5, max=2, step=0.05,
104 get=function() return(self.db.profile.scale) end,
105 set=function(x) self.db.profile.scale=x self:UpdateScreen() end
106 },
107 time={
108 type="range", order=16, name=L.time, desc=L.time_desc,
109 min=0, max=5, step=1,
110 get=function() return(self.db.profile.time) end,
111 set=function(x) self.db.profile.time=x self:UpdateEvent() end
112 },
113 }
114 }
115 simpleMinimap.options.args.modules.args.coords = self.options
116 simpleMinimap:RegisterDefaults("coords", "profile", self.defaults)
117 smmCoordsFrameText:SetText("00, 00")
118 smmCoordsFrame:SetWidth(smmCoordsFrameText:GetWidth() + 16)
119 smmCoordsFrame:SetHeight(smmCoordsFrameText:GetHeight() + 12)
120 end
121 --
122 function simpleMinimap_Coords:OnEnable()
123 if(self.db.profile.enabled) then
124 self:RegisterEvent("ZONE_CHANGED_NEW_AREA")
125 self:UpdateEvent()
126 self:UpdateScreen()
127 else
128 simpleMinimap:ToggleModuleActive(self, false)
129 end
130 end
131 --
132 function simpleMinimap_Coords:OnDisable()
133 self:CancelAllScheduledEvents()
134 smmCoordsFrame:SetScript("OnUpdate", nil)
135 self:UpdateScreen()
136 end
137 --
138 function simpleMinimap_Coords:UpdateScreen()
139 if(simpleMinimap:IsModuleActive(self)) then
140 smmCoordsFrame:Show()
141 smmCoordsFrame:ClearAllPoints()
142 smmCoordsFrame:SetPoint(self.positions[self.db.profile.position][1], "Minimap", self.positions[self.db.profile.position][2])
143 smmCoordsFrame:SetAlpha(self.db.profile.alpha)
144 smmCoordsFrame:SetScale(self.db.profile.scale)
145 smmCoordsFrameText:SetTextColor(self.db.profile.fontR, self.db.profile.fontG, self.db.profile.fontB)
146 if(self.db.profile.backdrop) then
147 smmCoordsFrame:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b, 1)
148 else
149 smmCoordsFrame:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b, 0)
150 end
151 if(self.db.profile.border) then
152 smmCoordsFrame:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 1)
153 else
154 smmCoordsFrame:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 0)
155 end
156 else
157 smmCoordsFrame:Hide()
158 end
159 end
160 --
161 function simpleMinimap_Coords:UpdateEvent()
162 if(self.db.profile.time > 0) then
163 smmCoordsFrame:SetScript("OnUpdate", nil)
164 self:ScheduleRepeatingEvent("smmCoordsUpdate", function()
165 local x, y = GetPlayerMapPosition("player")
166 smmCoordsFrameText:SetText(math.floor(x * 100)..", "..math.floor(y * 100))
167 end, self.db.profile.time, self)
168 else
169 self:CancelAllScheduledEvents()
170 smmCoordsFrame:SetScript("OnUpdate", function()
171 local x, y = GetPlayerMapPosition("player")
172 smmCoordsFrameText:SetText(math.floor(x * 100)..", "..math.floor(y * 100))
173 end)
174 end
175 end
176 --
177 function simpleMinimap_Coords:ZONE_CHANGED_NEW_AREA()
178 SetMapToCurrentZone()
179 end