Nenue@102: -- Nenue@108: -- WorldPlan Nenue@108: -- Map Frame Customizations Nenue@102: -- Nenue@108: local _, db = ... Nenue@108: local print = DEVIAN_WORKSPACE and function(...) print('MapFrame',...) end or nop Nenue@108: local enableConfigLayers = false Nenue@108: local regionLabels = {} Nenue@102: Nenue@102: WorldPlanMapFrameMixin = { Nenue@102: defaults = { Nenue@102: anchors = { Nenue@102: point = 'LEFT', Nenue@102: x = 50, Nenue@102: }, Nenue@102: size = { Nenue@102: x = 800, Nenue@102: y = 600 Nenue@102: } Nenue@102: } Nenue@102: Nenue@102: } Nenue@102: local Module = WorldPlanMapFrameMixin Nenue@102: Nenue@102: function Module:OnLoad() Nenue@102: WorldPlan:AddHandler(self) Nenue@108: hooksecurefunc("WorldMap_ToggleSizeUp", function() Nenue@108: self:ApplySettings() Nenue@108: end) Nenue@108: hooksecurefunc("WorldMap_ToggleSizeDown", function() Nenue@108: self:ApplySettings() Nenue@108: end) Nenue@108: print('OnLoad()') Nenue@102: end Nenue@102: Nenue@102: function Module:Setup() Nenue@108: print('Setup()') Nenue@102: self:ApplySettings() Nenue@108: Nenue@108: Nenue@108: --if not InCombatLockdown() then Nenue@108: --end Nenue@102: end Nenue@102: Nenue@108: Nenue@108: Nenue@108: db.CLTriggers.map = function(arg2) Nenue@108: WorldPlanMapFrame:ApplySettings() Nenue@108: if enableConfigLayers then Nenue@108: enableConfigLayers = false Nenue@108: db.print('Map Labels off') Nenue@108: else Nenue@108: enableConfigLayers = true Nenue@108: db.print('Map Labels on') Nenue@108: end Nenue@108: for m, label in pairs(regionLabels) do Nenue@108: print(m, label) Nenue@108: label:SetShown(enableConfigLayers) Nenue@108: end Nenue@108: end Nenue@108: Nenue@108: local BORDER_COLOR = {0,0,0,1} Nenue@108: local BORDER_INSET = 0 Nenue@108: local BORDER_WIDTH = 2 Nenue@108: local BORDER_INSET_WIDTH = BORDER_INSET+BORDER_WIDTH Nenue@108: Nenue@108: local GlobalRegions = { Nenue@108: [WorldMapFrameLeftBorder] = { Nenue@108: color = BORDER_COLOR, Nenue@108: w = BORDER_WIDTH, Nenue@108: [1] = {'TOPRIGHT', 'TOPLEFT', BORDER_INSET, 0}, Nenue@108: [2] = {'BOTTOMRIGHT', 'BOTTOMRIGHT', BORDER_INSET_WIDTH, -BORDER_INSET } Nenue@108: }, Nenue@108: [WorldMapFrameRightBorder] = { Nenue@108: color = BORDER_COLOR, Nenue@108: w = BORDER_WIDTH, Nenue@108: [1] = {'TOPLEFT', 'TOPRIGHT', BORDER_INSET,0 }, Nenue@108: [2] = {'BOTTOMRIGHT', 'BOTTOMRIGHT', BORDER_INSET_WIDTH, -BORDER_INSET_WIDTH} Nenue@108: }, Nenue@108: [WorldMapFrameTopBorder] = { Nenue@108: color = BORDER_COLOR, Nenue@108: h = BORDER_WIDTH, Nenue@108: [1] = {'BOTTOMRIGHT', 'TOPRIGHT', BORDER_INSET_WIDTH, 0}, Nenue@108: [2] = {'BOTTOMLEFT', 'TOPLEFT', -(BORDER_INSET_WIDTH), 0} Nenue@108: }, Nenue@108: [WorldMapFrameBottomBorder] = { Nenue@108: h = BORDER_WIDTH, Nenue@108: color = BORDER_COLOR, Nenue@108: [1] = {'TOPRIGHT', 'BOTTOMRIGHT', BORDER_INSET_WIDTH, -BORDER_INSET}, Nenue@108: [2] = {'TOPLEFT', 'BOTTOMLEFT', -BORDER_INSET_WIDTH, -BORDER_INSET} Nenue@108: }, Nenue@108: [WorldMapFrameBg] = { Nenue@108: color = BORDER_COLOR, Nenue@108: [1] = {'TOPLEFT', 'TOPLEFT', 0, 0}, Nenue@108: [2] = {'BOTTOMRIGHT', 'BOTTOMRIGHT', 0, 0} Nenue@108: }, Nenue@108: [WorldMapFrameNavBar] = { Nenue@108: [1] = {'TOPLEFT', 'TOPLEFT', 3, 0, WorldMapFrameBg}, Nenue@108: [2] = {'TOPRIGHT', 'TOPRIGHT', -3, 0, WorldMapFrameBg} Nenue@108: }, Nenue@108: [WorldMapTitleButton] = { Nenue@108: [1] = {'TOPLEFT', 'TOPLEFT', 0, 0, WorldMapFrameNavBarOverlay}, Nenue@108: [2] = {'BOTTOMRIGHT', 'BOTTOMRIGHT', 0, 0, WorldMapFrameNavBarOverlay}, Nenue@108: }, Nenue@109: [WorldMapFrameTitleText] = { hidden = true }, Nenue@108: [WorldMapFrameBotLeftCorner] = { hidden = true}, Nenue@108: [WorldMapFramePortraitFrame] = { hidden = true}, Nenue@108: [WorldMapFramePortrait] = { hidden = true, }, Nenue@108: [WorldMapFrameTutorialButton] = { hidden = true, }, Nenue@108: [WorldMapFrameTopRightCorner] = {hidden = true}, Nenue@108: [WorldMapFrameTopLeftCorner] = {hidden = true}, Nenue@108: [WorldMapFrameBotLeftCorner] = {hidden = true}, Nenue@108: [WorldMapFrameBotRightCorner] = {hidden = true}, Nenue@108: [WorldMapFrameTopTileStreaks] = { hidden = true}, Nenue@108: [WorldMapFrame.BorderFrame.ButtonFrameEdge] = { hidden = true}, Nenue@108: [WW] = {hidden = true} Nenue@108: } Nenue@108: Nenue@108: Nenue@108: Nenue@102: function Module:ApplySettings() Nenue@108: print('ApplySettings()') Nenue@108: Nenue@108: local regions = {WorldMapFrame.BorderFrame:GetRegions() } Nenue@108: local r,g,b,a = 1,0,0,1 Nenue@108: for name, region in pairs(regions) do Nenue@108: local fs = regionLabels[region] Nenue@108: if not fs then Nenue@108: --print(name, type(region), tostring(region), region:GetName()) Nenue@108: fs = self:CreateFontString(nil, 'OVERLAY') Nenue@108: fs:SetFontObject(WorldPlanFont) Nenue@108: regionLabels[region] = fs Nenue@108: fs:SetPoint('TOPLEFT', region, 'TOPLEFT') Nenue@108: fs:SetShown(enableConfigLayers) Nenue@108: fs:SetText(tostring(region:GetName())) Nenue@108: end Nenue@108: Nenue@108: Nenue@108: if region.SetColorTexture then Nenue@108: region:SetColorTexture(r,g,b,a) Nenue@108: print('===', region.GetName and region:GetName() or tostring(region), string.format("|cFF%2X%2X%2X%f,%f,%f", r*255, g*255, b*255, r,g,b)) Nenue@108: if g < 1 then Nenue@108: g = g + 0.25 Nenue@108: elseif r > 0 then Nenue@108: r = r - 0.25 Nenue@108: elseif b < 1 then Nenue@108: b = b + .25 Nenue@108: end Nenue@108: end Nenue@108: Nenue@108: end Nenue@108: Nenue@108: for region, data in pairs(GlobalRegions) do Nenue@108: print(region, data) Nenue@108: if data.hidden then Nenue@108: region:SetShown(false) Nenue@108: else Nenue@108: Nenue@108: if data.w then Nenue@108: print('width =', data.w) Nenue@108: region:SetWidth(data.w) Nenue@108: end Nenue@108: if data.h then Nenue@108: print('height =', data.h) Nenue@108: region:SetHeight(data.h) Nenue@108: end Nenue@108: if data.color then Nenue@108: print('color =', unpack(data.color)) Nenue@108: region:SetColorTexture(unpack(data.color)) Nenue@108: end Nenue@108: Nenue@108: if #data >= 1 then Nenue@108: region:ClearAllPoints() Nenue@108: for i, point in ipairs(data) do Nenue@108: print(i) Nenue@108: if type(point) == 'table' then Nenue@108: print('point +=', unpack(point)) Nenue@108: region:SetPoint(point[1], point[5] or region:GetParent(), point[2], point[3], point[4]) Nenue@108: end Nenue@108: end Nenue@108: end Nenue@108: end Nenue@108: Nenue@108: end Nenue@102: Nenue@102: end