From 850b4b39d69a8b30839c2409834377ad67c4bca3 Mon Sep 17 00:00:00 2001 From: Darthpred Date: Sat, 23 Feb 2013 21:14:49 +0400 Subject: [PATCH] New option for minimap coords --- ElvUI_SLE/config/profile.lua | 1 + ElvUI_SLE/locales/english.lua | 2 ++ ElvUI_SLE/locales/russian.lua | 2 ++ ElvUI_SLE/modules/minimap/minimapcoords.lua | 32 +++++++++++++++++++++------ ElvUI_SLE/modules/minimap/options.lua | 9 ++++++++ 5 files changed, 39 insertions(+), 7 deletions(-) diff --git a/ElvUI_SLE/config/profile.lua b/ElvUI_SLE/config/profile.lua index e75677f..0638adc 100644 --- a/ElvUI_SLE/config/profile.lua +++ b/ElvUI_SLE/config/profile.lua @@ -156,6 +156,7 @@ P['sle'] = { ['enable'] = false, ['coords'] = { ['display'] = "SHOW", + ['middle'] = false, }, ['buttons'] = { ['anchor'] = "NOANCHOR", diff --git a/ElvUI_SLE/locales/english.lua b/ElvUI_SLE/locales/english.lua index 2abf3a4..2b17443 100644 --- a/ElvUI_SLE/locales/english.lua +++ b/ElvUI_SLE/locales/english.lua @@ -171,6 +171,8 @@ L['MINIMAP_DESC'] = "These options effect various aspects of the minimap. Some L["Minimap Coordinates"] = true L['Coords Display'] = true L['Change settings for the display of the coordinates that are on the minimap.'] = true +L["Coords in the middle"] = true +L['If enabled will show coordinates in the center of minimaps lower border. Otherwise in the lower corners.'] = true L["Minimap Buttons"] = true L['Enable/Disable minimap button skinning.'] = true L['Anchor Setting'] = true diff --git a/ElvUI_SLE/locales/russian.lua b/ElvUI_SLE/locales/russian.lua index fcf67d7..9e3a1eb 100644 --- a/ElvUI_SLE/locales/russian.lua +++ b/ElvUI_SLE/locales/russian.lua @@ -170,6 +170,8 @@ L['MINIMAP_DESC'] = "Эти опции влияют на различные фу L["Minimap Coordinates"] = "Координаты на миникарте" L['Coords Display'] = "Отображение координат" L['Change settings for the display of the coordinates that are on the minimap.'] = "Укажите условие отображения координат на миникарте." +L["Coords in the middle"] = "Координаты посередине" +L['If enabled will show coordinates in the center of minimaps lower border. Otherwise in the lower corners.'] = "Если аткивно, будет отображать координаты внизу миникарты по центру. В противном случае, в нижних углах." L["Minimap Buttons"] = "Иконки у миникарты" L['Enable/Disable minimap button skinning.'] = "Включить/выключить стилизацию иконок у миникарты." L['Anchor Setting'] = "Настрокий расположения" diff --git a/ElvUI_SLE/modules/minimap/minimapcoords.lua b/ElvUI_SLE/modules/minimap/minimapcoords.lua index 79268b9..f72a674 100644 --- a/ElvUI_SLE/modules/minimap/minimapcoords.lua +++ b/ElvUI_SLE/modules/minimap/minimapcoords.lua @@ -4,36 +4,50 @@ local M = E:GetModule('Minimap') local GetPlayerMapPosition = GetPlayerMapPosition local framescreated = false local panel, xpos, ypos +local middle local function UpdateCoords(self, elapsed) panel.elapsed = (panel.elapsed or 0) + elapsed if panel.elapsed < .1 then return end xpos.pos, ypos.pos = GetPlayerMapPosition('player') - xpos.text:SetFormattedText('%.2f', xpos.pos * 100) + xpos.text:SetFormattedText(E.db.sle.minimap.middle and '%.2f/' or '%.2f', xpos.pos * 100) ypos.text:SetFormattedText('%.2f', ypos.pos * 100) panel.elapsed = 0 end -local function CreateCoordsFrame() +local function UpdatePosition(middle) + xpos:ClearAllPoints() + ypos:ClearAllPoints() + if middle then + xpos:Point('BOTTOMRIGHT', panel, 'BOTTOM',10, 0) + else + xpos:Point('LEFT', panel, 'LEFT', 2, 0) + end + if middle then + ypos:Point('BOTTOMLEFT', panel, 'BOTTOM', 0, 0) + else + ypos:Point('RIGHT', panel, 'RIGHT', 2, 0) + end +end + +local function CreateCoordsFrame(middle) panel = CreateFrame('Frame', 'EnhancedLocationPanel', E.UIParent) panel:SetFrameStrata("MEDIUM") panel:Point("CENTER", Minimap, "CENTER", 0, 0) panel:Size(E.MinimapSize, 22) xpos = CreateFrame('Frame', "MapCoordinatesX", panel) - xpos:Point('LEFT', panel, 'LEFT', 2, 0) xpos:Size(40, 22) - + xpos.text = xpos:CreateFontString(nil, "OVERLAY") xpos.text:FontTemplate(E.media.font, 12, "OUTLINE") xpos.text:SetAllPoints(xpos) ypos = CreateFrame('Frame', "MapCoordinatesY", panel) - ypos:Point('RIGHT', panel, 'RIGHT', -2, 0) ypos:Size(40, 22) - + ypos.text = ypos:CreateFontString(nil, "OVERLAY") ypos.text:FontTemplate(E.media.font, 12, "OUTLINE") ypos.text:SetAllPoints(ypos) @@ -47,19 +61,23 @@ local function CreateCoordsFrame() panel:Hide() end) framescreated = true + + UpdatePosition(middle) end M.UpdateSettingsSLE = M.UpdateSettings function M:UpdateSettings() M.UpdateSettingsSLE(self) + middle = E.db.sle.minimap.middle if not framescreated then - CreateCoordsFrame() + CreateCoordsFrame(middle) end panel:SetPoint('BOTTOM', Minimap, 'BOTTOM', 0, -(E.PixelMode and 1 or 2)) panel:Size(E.MinimapSize, 22) panel:SetScript('OnUpdate', UpdateCoords) + UpdatePosition(middle) if E.db.sle.minimap.coords.display ~= 'SHOW' or not E.private.general.minimap.enable or not E.db.sle.minimap.enable then panel:Hide() else diff --git a/ElvUI_SLE/modules/minimap/options.lua b/ElvUI_SLE/modules/minimap/options.lua index d15ee1a..1d42f45 100644 --- a/ElvUI_SLE/modules/minimap/options.lua +++ b/ElvUI_SLE/modules/minimap/options.lua @@ -43,6 +43,15 @@ local function configTable() }, disabled = function() return not E.db.sle.minimap.enable end, }, + middle = { + order = 3, + type = "toggle", + name = L["Coords in the middle"], + desc = L['If enabled will show coordinates in the center of minimaps lower border. Otherwise in the lower corners.'], + disabled = function() return not E.db.sle.minimap.enable end, + get = function(info) return E.db.sle.minimap.middle end, + set = function(info, value) E.db.sle.minimap.middle = value; E:GetModule('Minimap'):UpdateSettings() end, + }, }, }, buttons = { -- 1.7.9.5