diff MapFrame.lua @ 108:b67ba1078824

- Added some WorldMapFrame alterations to make the filter bar less obtrusive
author Nenue
date Sat, 03 Jun 2017 17:20:14 -0400
parents 4d1520186ea4
children caa482329919
line wrap: on
line diff
--- a/MapFrame.lua	Sun May 28 20:16:05 2017 -0400
+++ b/MapFrame.lua	Sat Jun 03 17:20:14 2017 -0400
@@ -1,10 +1,11 @@
 --
--- Created by IntelliJ IDEA.
--- User: Nick
--- Date: 5/24/2017
--- Time: 9:27 PM
--- To change this template use File | Settings | File Templates.
+-- WorldPlan
+-- Map Frame Customizations
 --
+local _, db = ...
+local print = DEVIAN_WORKSPACE and function(...) print('MapFrame',...) end or nop
+local enableConfigLayers = false
+local regionLabels = {}
 
 WorldPlanMapFrameMixin = {
   defaults = {
@@ -23,14 +24,163 @@
 
 function Module:OnLoad()
   WorldPlan:AddHandler(self)
-
-
+  hooksecurefunc("WorldMap_ToggleSizeUp", function()
+    self:ApplySettings()
+  end)
+  hooksecurefunc("WorldMap_ToggleSizeDown", function()
+    self:ApplySettings()
+  end)
+  print('OnLoad()')
 end
 
 function Module:Setup()
+  print('Setup()')
   self:ApplySettings()
+
+
+  --if not InCombatLockdown() then
+  --end
 end
 
+
+
+db.CLTriggers.map = function(arg2)
+  WorldPlanMapFrame:ApplySettings()
+  if enableConfigLayers then
+    enableConfigLayers = false
+    db.print('Map Labels off')
+  else
+    enableConfigLayers = true
+    db.print('Map Labels on')
+  end
+  for m, label  in pairs(regionLabels) do
+    print(m, label)
+    label:SetShown(enableConfigLayers)
+  end
+end
+
+local BORDER_COLOR = {0,0,0,1}
+local BORDER_INSET = 0
+local BORDER_WIDTH = 2
+local BORDER_INSET_WIDTH = BORDER_INSET+BORDER_WIDTH
+
+local GlobalRegions = {
+  [WorldMapFrameLeftBorder] = {
+    color = BORDER_COLOR,
+    w = BORDER_WIDTH,
+    [1] = {'TOPRIGHT', 'TOPLEFT', BORDER_INSET, 0},
+    [2] = {'BOTTOMRIGHT', 'BOTTOMRIGHT', BORDER_INSET_WIDTH, -BORDER_INSET }
+  },
+  [WorldMapFrameRightBorder] = {
+    color = BORDER_COLOR,
+    w = BORDER_WIDTH,
+    [1] = {'TOPLEFT', 'TOPRIGHT', BORDER_INSET,0 },
+    [2] = {'BOTTOMRIGHT', 'BOTTOMRIGHT', BORDER_INSET_WIDTH, -BORDER_INSET_WIDTH}
+  },
+  [WorldMapFrameTopBorder] = {
+    color = BORDER_COLOR,
+    h = BORDER_WIDTH,
+    [1] = {'BOTTOMRIGHT', 'TOPRIGHT', BORDER_INSET_WIDTH, 0},
+    [2] = {'BOTTOMLEFT', 'TOPLEFT', -(BORDER_INSET_WIDTH), 0}
+  },
+  [WorldMapFrameBottomBorder]  = {
+    h = BORDER_WIDTH,
+    color = BORDER_COLOR,
+    [1] = {'TOPRIGHT', 'BOTTOMRIGHT', BORDER_INSET_WIDTH, -BORDER_INSET},
+    [2] = {'TOPLEFT', 'BOTTOMLEFT', -BORDER_INSET_WIDTH, -BORDER_INSET}
+  },
+  [WorldMapFrameBg] = {
+    color = BORDER_COLOR,
+    [1] = {'TOPLEFT', 'TOPLEFT', 0, 0},
+    [2] = {'BOTTOMRIGHT', 'BOTTOMRIGHT', 0, 0}
+  },
+  [WorldMapFrameNavBar] = {
+    [1] = {'TOPLEFT', 'TOPLEFT', 3, 0, WorldMapFrameBg},
+    [2] = {'TOPRIGHT', 'TOPRIGHT', -3, 0, WorldMapFrameBg}
+  },
+  [WorldMapTitleButton] = {
+    [1] = {'TOPLEFT', 'TOPLEFT', 0, 0, WorldMapFrameNavBarOverlay},
+    [2] = {'BOTTOMRIGHT', 'BOTTOMRIGHT', 0, 0, WorldMapFrameNavBarOverlay},
+  },
+
+  [WorldMapFrameBotLeftCorner] = { hidden = true},
+  [WorldMapFramePortraitFrame] = { hidden = true},
+  [WorldMapFramePortrait] = { hidden = true, },
+  [WorldMapFrameTutorialButton] = { hidden = true, },
+  [WorldMapFrameTopRightCorner] = {hidden = true},
+  [WorldMapFrameTopLeftCorner] = {hidden = true},
+  [WorldMapFrameBotLeftCorner] = {hidden = true},
+  [WorldMapFrameBotRightCorner] = {hidden = true},
+  [WorldMapFrameTopTileStreaks] = { hidden = true},
+  [WorldMapFrame.BorderFrame.ButtonFrameEdge] = { hidden = true},
+  [WW] = {hidden = true}
+}
+
+
+
 function Module:ApplySettings()
+  print('ApplySettings()')
+
+  local regions = {WorldMapFrame.BorderFrame:GetRegions() }
+  local r,g,b,a = 1,0,0,1
+  for name, region in pairs(regions) do
+    local fs = regionLabels[region]
+    if not fs then
+      --print(name, type(region), tostring(region), region:GetName())
+      fs = self:CreateFontString(nil, 'OVERLAY')
+      fs:SetFontObject(WorldPlanFont)
+      regionLabels[region] = fs
+      fs:SetPoint('TOPLEFT', region, 'TOPLEFT')
+      fs:SetShown(enableConfigLayers)
+      fs:SetText(tostring(region:GetName()))
+    end
+
+
+    if region.SetColorTexture then
+      region:SetColorTexture(r,g,b,a)
+      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))
+      if g < 1 then
+        g = g + 0.25
+      elseif r > 0 then
+        r = r - 0.25
+      elseif b < 1 then
+        b = b + .25
+      end
+    end
+
+  end
+
+  for region, data in pairs(GlobalRegions) do
+    print(region, data)
+    if data.hidden then
+      region:SetShown(false)
+    else
+
+      if data.w then
+        print('width =', data.w)
+        region:SetWidth(data.w)
+      end
+      if data.h then
+        print('height =', data.h)
+        region:SetHeight(data.h)
+      end
+      if data.color then
+        print('color =', unpack(data.color))
+        region:SetColorTexture(unpack(data.color))
+      end
+
+      if #data >= 1 then
+        region:ClearAllPoints()
+        for i, point in ipairs(data) do
+          print(i)
+          if type(point) == 'table' then
+            print('point +=', unpack(point))
+            region:SetPoint(point[1], point[5] or region:GetParent(), point[2], point[3], point[4])
+          end
+        end
+      end
+    end
+
+  end
 
 end
\ No newline at end of file