annotate MapFrame.lua @ 116:bf4a36378bb9

- Fixed flight map pins jumping about
author Nenue
date Fri, 24 Nov 2017 23:51:44 -0500
parents caa482329919
children
rev   line source
Nenue@102 1 --
Nenue@108 2 -- WorldPlan
Nenue@108 3 -- Map Frame Customizations
Nenue@102 4 --
Nenue@108 5 local _, db = ...
Nenue@108 6 local print = DEVIAN_WORKSPACE and function(...) print('MapFrame',...) end or nop
Nenue@108 7 local enableConfigLayers = false
Nenue@108 8 local regionLabels = {}
Nenue@102 9
Nenue@102 10 WorldPlanMapFrameMixin = {
Nenue@102 11 defaults = {
Nenue@102 12 anchors = {
Nenue@102 13 point = 'LEFT',
Nenue@102 14 x = 50,
Nenue@102 15 },
Nenue@102 16 size = {
Nenue@102 17 x = 800,
Nenue@102 18 y = 600
Nenue@102 19 }
Nenue@102 20 }
Nenue@102 21
Nenue@102 22 }
Nenue@102 23 local Module = WorldPlanMapFrameMixin
Nenue@102 24
Nenue@102 25 function Module:OnLoad()
Nenue@102 26 WorldPlan:AddHandler(self)
Nenue@108 27 hooksecurefunc("WorldMap_ToggleSizeUp", function()
Nenue@108 28 self:ApplySettings()
Nenue@108 29 end)
Nenue@108 30 hooksecurefunc("WorldMap_ToggleSizeDown", function()
Nenue@108 31 self:ApplySettings()
Nenue@108 32 end)
Nenue@108 33 print('OnLoad()')
Nenue@102 34 end
Nenue@102 35
Nenue@102 36 function Module:Setup()
Nenue@108 37 print('Setup()')
Nenue@102 38 self:ApplySettings()
Nenue@108 39
Nenue@108 40
Nenue@108 41 --if not InCombatLockdown() then
Nenue@108 42 --end
Nenue@102 43 end
Nenue@102 44
Nenue@108 45
Nenue@108 46
Nenue@108 47 db.CLTriggers.map = function(arg2)
Nenue@108 48 WorldPlanMapFrame:ApplySettings()
Nenue@108 49 if enableConfigLayers then
Nenue@108 50 enableConfigLayers = false
Nenue@108 51 db.print('Map Labels off')
Nenue@108 52 else
Nenue@108 53 enableConfigLayers = true
Nenue@108 54 db.print('Map Labels on')
Nenue@108 55 end
Nenue@108 56 for m, label in pairs(regionLabels) do
Nenue@108 57 print(m, label)
Nenue@108 58 label:SetShown(enableConfigLayers)
Nenue@108 59 end
Nenue@108 60 end
Nenue@108 61
Nenue@108 62 local BORDER_COLOR = {0,0,0,1}
Nenue@108 63 local BORDER_INSET = 0
Nenue@108 64 local BORDER_WIDTH = 2
Nenue@108 65 local BORDER_INSET_WIDTH = BORDER_INSET+BORDER_WIDTH
Nenue@108 66
Nenue@108 67 local GlobalRegions = {
Nenue@108 68 [WorldMapFrameLeftBorder] = {
Nenue@108 69 color = BORDER_COLOR,
Nenue@108 70 w = BORDER_WIDTH,
Nenue@108 71 [1] = {'TOPRIGHT', 'TOPLEFT', BORDER_INSET, 0},
Nenue@108 72 [2] = {'BOTTOMRIGHT', 'BOTTOMRIGHT', BORDER_INSET_WIDTH, -BORDER_INSET }
Nenue@108 73 },
Nenue@108 74 [WorldMapFrameRightBorder] = {
Nenue@108 75 color = BORDER_COLOR,
Nenue@108 76 w = BORDER_WIDTH,
Nenue@108 77 [1] = {'TOPLEFT', 'TOPRIGHT', BORDER_INSET,0 },
Nenue@108 78 [2] = {'BOTTOMRIGHT', 'BOTTOMRIGHT', BORDER_INSET_WIDTH, -BORDER_INSET_WIDTH}
Nenue@108 79 },
Nenue@108 80 [WorldMapFrameTopBorder] = {
Nenue@108 81 color = BORDER_COLOR,
Nenue@108 82 h = BORDER_WIDTH,
Nenue@108 83 [1] = {'BOTTOMRIGHT', 'TOPRIGHT', BORDER_INSET_WIDTH, 0},
Nenue@108 84 [2] = {'BOTTOMLEFT', 'TOPLEFT', -(BORDER_INSET_WIDTH), 0}
Nenue@108 85 },
Nenue@108 86 [WorldMapFrameBottomBorder] = {
Nenue@108 87 h = BORDER_WIDTH,
Nenue@108 88 color = BORDER_COLOR,
Nenue@108 89 [1] = {'TOPRIGHT', 'BOTTOMRIGHT', BORDER_INSET_WIDTH, -BORDER_INSET},
Nenue@108 90 [2] = {'TOPLEFT', 'BOTTOMLEFT', -BORDER_INSET_WIDTH, -BORDER_INSET}
Nenue@108 91 },
Nenue@108 92 [WorldMapFrameBg] = {
Nenue@108 93 color = BORDER_COLOR,
Nenue@108 94 [1] = {'TOPLEFT', 'TOPLEFT', 0, 0},
Nenue@108 95 [2] = {'BOTTOMRIGHT', 'BOTTOMRIGHT', 0, 0}
Nenue@108 96 },
Nenue@108 97 [WorldMapFrameNavBar] = {
Nenue@108 98 [1] = {'TOPLEFT', 'TOPLEFT', 3, 0, WorldMapFrameBg},
Nenue@108 99 [2] = {'TOPRIGHT', 'TOPRIGHT', -3, 0, WorldMapFrameBg}
Nenue@108 100 },
Nenue@108 101 [WorldMapTitleButton] = {
Nenue@108 102 [1] = {'TOPLEFT', 'TOPLEFT', 0, 0, WorldMapFrameNavBarOverlay},
Nenue@108 103 [2] = {'BOTTOMRIGHT', 'BOTTOMRIGHT', 0, 0, WorldMapFrameNavBarOverlay},
Nenue@108 104 },
Nenue@109 105 [WorldMapFrameTitleText] = { hidden = true },
Nenue@108 106 [WorldMapFrameBotLeftCorner] = { hidden = true},
Nenue@108 107 [WorldMapFramePortraitFrame] = { hidden = true},
Nenue@108 108 [WorldMapFramePortrait] = { hidden = true, },
Nenue@108 109 [WorldMapFrameTutorialButton] = { hidden = true, },
Nenue@108 110 [WorldMapFrameTopRightCorner] = {hidden = true},
Nenue@108 111 [WorldMapFrameTopLeftCorner] = {hidden = true},
Nenue@108 112 [WorldMapFrameBotLeftCorner] = {hidden = true},
Nenue@108 113 [WorldMapFrameBotRightCorner] = {hidden = true},
Nenue@108 114 [WorldMapFrameTopTileStreaks] = { hidden = true},
Nenue@108 115 [WorldMapFrame.BorderFrame.ButtonFrameEdge] = { hidden = true},
Nenue@108 116 [WW] = {hidden = true}
Nenue@108 117 }
Nenue@108 118
Nenue@108 119
Nenue@108 120
Nenue@102 121 function Module:ApplySettings()
Nenue@108 122 print('ApplySettings()')
Nenue@108 123
Nenue@108 124 local regions = {WorldMapFrame.BorderFrame:GetRegions() }
Nenue@108 125 local r,g,b,a = 1,0,0,1
Nenue@108 126 for name, region in pairs(regions) do
Nenue@108 127 local fs = regionLabels[region]
Nenue@108 128 if not fs then
Nenue@108 129 --print(name, type(region), tostring(region), region:GetName())
Nenue@108 130 fs = self:CreateFontString(nil, 'OVERLAY')
Nenue@108 131 fs:SetFontObject(WorldPlanFont)
Nenue@108 132 regionLabels[region] = fs
Nenue@108 133 fs:SetPoint('TOPLEFT', region, 'TOPLEFT')
Nenue@108 134 fs:SetShown(enableConfigLayers)
Nenue@108 135 fs:SetText(tostring(region:GetName()))
Nenue@108 136 end
Nenue@108 137
Nenue@116 138 --[[
Nenue@108 139 if region.SetColorTexture then
Nenue@108 140 region:SetColorTexture(r,g,b,a)
Nenue@108 141 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 142 if g < 1 then
Nenue@108 143 g = g + 0.25
Nenue@108 144 elseif r > 0 then
Nenue@108 145 r = r - 0.25
Nenue@108 146 elseif b < 1 then
Nenue@108 147 b = b + .25
Nenue@108 148 end
Nenue@108 149 end
Nenue@116 150 ]]
Nenue@108 151
Nenue@108 152 end
Nenue@108 153
Nenue@108 154 for region, data in pairs(GlobalRegions) do
Nenue@108 155 print(region, data)
Nenue@108 156 if data.hidden then
Nenue@108 157 region:SetShown(false)
Nenue@108 158 else
Nenue@108 159
Nenue@108 160 if data.w then
Nenue@108 161 print('width =', data.w)
Nenue@108 162 region:SetWidth(data.w)
Nenue@108 163 end
Nenue@108 164 if data.h then
Nenue@108 165 print('height =', data.h)
Nenue@108 166 region:SetHeight(data.h)
Nenue@108 167 end
Nenue@108 168 if data.color then
Nenue@108 169 print('color =', unpack(data.color))
Nenue@108 170 region:SetColorTexture(unpack(data.color))
Nenue@108 171 end
Nenue@108 172
Nenue@108 173 if #data >= 1 then
Nenue@108 174 region:ClearAllPoints()
Nenue@108 175 for i, point in ipairs(data) do
Nenue@108 176 print(i)
Nenue@108 177 if type(point) == 'table' then
Nenue@108 178 print('point +=', unpack(point))
Nenue@108 179 region:SetPoint(point[1], point[5] or region:GetParent(), point[2], point[3], point[4])
Nenue@108 180 end
Nenue@108 181 end
Nenue@108 182 end
Nenue@108 183 end
Nenue@108 184
Nenue@108 185 end
Nenue@102 186
Nenue@102 187 end