Mercurial > wow > worldplan
changeset 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 | b2be2de2b133 |
children | caa482329919 |
files | FilterBar.lua MapFrame.lua MapFrame.xml QuestPOI.lua WorldPlan.lua WorldQuests.lua |
diffstat | 6 files changed, 273 insertions(+), 78 deletions(-) [+] |
line wrap: on
line diff
--- a/FilterBar.lua Sun May 28 20:16:05 2017 -0400 +++ b/FilterBar.lua Sat Jun 03 17:20:14 2017 -0400 @@ -87,7 +87,9 @@ } local defaults = {} -WorldPlanSummaryMixin = WorldPlanSummaryMixin or {} +WorldPlanSummaryMixin = { + fadeOpacity = 1, +} local Module = WorldPlanSummaryMixin Module.selectedBountyIndex = {} Module.bounties = {} @@ -144,29 +146,7 @@ end barMouseOver = self:IsMouseOver() - if barMouseOver or filtersUsed then - - self.toAlpha = 1 - self.Backdrop:Show() - else - self.toAlpha = 0.25 - self.Backdrop:Hide() - end - local cAlpha = self:GetAlpha() - if cAlpha ~= self.toAlpha then - if cAlpha > self.toAlpha then - cAlpha = cAlpha - sinceLast*4 - if cAlpha <= self.toAlpha then - cAlpha = self.toAlpha - end - else - cAlpha = cAlpha + sinceLast*4 - if cAlpha >= self.toAlpha then - cAlpha = self.toAlpha - end - end - end - self:SetAlpha(cAlpha) + self:UpdateAlpha(sinceLast, barMouseOver) end function Module:OnMapInfo(isBrokenIsle, isZoomedOut, mapAreaID, isNewMap, isMapOpen) @@ -418,7 +398,7 @@ self:SetSize(layoutWidth, BUTTONS_HEIGHT + (BUTTONS_SPACING * 2)) self:ClearAllPoints() - self:SetPoint('BOTTOM') + self:SetPoint('TOPLEFT', WorldMapFrameNavBar, 'BOTTOMLEFT', 0, -3) self.isStale = nil layoutDirty = nil end @@ -432,6 +412,7 @@ function Pin:OnEnter() if #self.GlobalMatches >= 1 then GameTooltip:SetOwner(self, 'ANCHOR_BOTTOMRIGHT') + GameTooltip:AddLine(headerNames[self.info.filterKey]) GameTooltip:AddLine(self.info.label) wipe(found)
--- 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
--- a/MapFrame.xml Sun May 28 20:16:05 2017 -0400 +++ b/MapFrame.xml Sat Jun 03 17:20:14 2017 -0400 @@ -2,10 +2,14 @@ ..\FrameXML\UI.xsd"> <Script file="MapFrame.lua" /> - <Frame name="WorldPlanMapFrame" mixin="WorldPlanMapFrameMixin"> + <Frame name="WorldPlanMapFrame" mixin="WorldPlanMapFrameMixin" parent="UIParent" frameStrata="DIALOG"> <Scripts> + <OnLoad method="OnLoad" /> + <OnEnter method="OnEnter" /> + <OnLeave method="OnEnter" /> <OnShow method="OnShow" /> <OnHide method="OnHide" /> + <OnEvent method="OnEvent" /> <OnUpdate method="OnUpdate" /> </Scripts> </Frame>
--- a/QuestPOI.lua Sun May 28 20:16:05 2017 -0400 +++ b/QuestPOI.lua Sat Jun 03 17:20:14 2017 -0400 @@ -95,12 +95,15 @@ highlightWidth = 2, TagSize = 8, maxAlertLevel = 3, - numberFontObject = 'WorldPlanFont' + numberFontObject = 'WorldPlanFont', + showTime = true, } local MINIMIZED_STYLE = { hideNumber = true, hideIcon = true, + showTime = false, iconWidth = 3, + maxAlertLevel = 0, } local REWARD_TYPE_STYLES = { [REWARD_CASH] = { @@ -786,15 +789,18 @@ if owner then self:SetParent(owner) self.Overlay:SetParent(owner) - self:SetFrameStrata('HIGH') + --self:SetFrameStrata('HIGH') self:SetFrameLevel(pinBaseIndex + self:GetID()) - self.Overlay:SetFrameStrata('HIGH') + --self.Overlay:SetFrameStrata('HIGH') self.Overlay:SetFrameLevel(overlayBaseIndex + self:GetID()) self.isStale = true else owner = self:GetParent() end + self:SetFrameStrata(db.PinStrata) + self.Overlay:SetFrameStrata(db.PinStrata) + if scaleFactor then print('scaleFactor') @@ -944,6 +950,7 @@ local highlightWidth = style.highlightWidth or DEFAULT_STYLE.highlightWidth local tagSize = style.TagSize or DEFAULT_STYLE.TagSize local hideIcon = style.hideIcon or DEFAULT_STYLE.hideIcon + local showtime = style.showTime or DEFAULT_STYLE.showTime local borderColor = style.border or DEFAULT_STYLE.border local textColor = style.textColor or DEFAULT_STYLE.textColor local questID = self.questID @@ -952,6 +959,7 @@ local icon = self.icon local count = self.count local hideNumbers = style.hideNumber or DEFAULT_STYLE.hideNumber + self.showTime = (style.showTime ~= nil) and style.showTime or DEFAULT_STYLE.showTime local tagIcon = self.tagIcon @@ -1065,6 +1073,8 @@ iconBorder:SetVertexColor(unpack(borderColor)) trackingBorder:SetVertexColor(0,0,0,.5) end + + self.timeLabel:SetShown(style.showTime) self:UpdateStatus() if SpellCanTargetQuest() then @@ -1108,7 +1118,7 @@ end self.alertLevel = tl - self.timeLabel:SetShown(self.worldQuest and (self.maxAlertLevel >= 1)) + self.timeLabel:SetShown(self.worldQuest and (self.maxAlertLevel >= 1) and self.showTime) else self.hideReason = "No longer active." self:HideOrShowFrames(false)
--- a/WorldPlan.lua Sun May 28 20:16:05 2017 -0400 +++ b/WorldPlan.lua Sat Jun 03 17:20:14 2017 -0400 @@ -36,6 +36,66 @@ db.BountiesByQuestID = {} db.BountiesByFactionID = {} db.IgnoreTimers = {} +db.CLTriggers = { + wq = function(arg2, extraArgs) + if arg2 and WorldPlanQuests[arg2] then + self:print('WorldPlanQuests:'..arg2..'()') + WorldPlanQuests[arg2](WorldPlanQuests) + else + self:print('WorldPlanQuests:Refresh(true)') + WorldPlanQuests:Refresh(true) + end + end, + flightmap = function(arg2, extraArgs) + if not extraArgs then + return + end + + local val1, val2, val3 = extraArgs:match("(%S+)%s*(%S*)%s*(%S*)") + if arg2 == 'scale' then + if tonumber(val1) and tonumber(val2) and tonumber(val3) then + db.Config.FlightMapScalingLimits = {tonumber(val1), tonumber(val2), tonumber(val3)} + self:print('FlightMapFrame scaling limits updated:', unpack(db.Config.FlightMapScalingLimits)) + else + self:print('FlightMapFrame scaling limits:', unpack(db.Config.FlightMapScalingLimits)) + end + elseif arg2 == 'alpha' then + + if tonumber(val1) and tonumber(val2) and tonumber(val3) then + db.Config.FlightMapAlphaLimits = {tonumber(val1), tonumber(val2), tonumber(val3)} + self:print('FlightMapFrame alpha limits updated:', unpack(db.Config.FlightMapAlphaLimits)) + else + self:print('FlightMapFrame alpha limits:', unpack(db.Config.FlightMapAlphaLimits)) + end + end + + end, + filter = function(arg2) + if arg2 and WorldPlanSummary[arg2] then + self:print('WorldPlanSummary:'..arg2..'()') + WorldPlanSummary[arg2](WorldPlanSummary) + else + self:print('WorldPlanSummary:Refresh(true)') + WorldPlanSummary:Refresh(true) + end + end, + log = function() + if WorldPlanDebug:IsShown() then + WorldPlanDebug:SetShown(false) + else + WorldPlanDebug:SetShown(true) + end + + end, + debug = function() + + if WorldPlanData then + WorldPlanData.DebugEnabled = (not WorldPlanData.DebugEnabled) + self:print(WorldPlanData.DebugEnabled and "Debugger on." or "Debugger off.") + end + end +} + -- default color templates db.DefaultType = { @@ -190,6 +250,31 @@ --]] end +local function Handler_UpdateFader(self, sinceLast, isActive) + + if isActive then + self.toAlpha = 1 + self.Backdrop:Show() + else + self.toAlpha = self.fadeOpacity + self.Backdrop:Hide() + end + local cAlpha = self:GetAlpha() + if cAlpha ~= self.toAlpha then + if cAlpha > self.toAlpha then + cAlpha = cAlpha - sinceLast*4 + if cAlpha <= self.toAlpha then + cAlpha = self.toAlpha + end + else + cAlpha = cAlpha + sinceLast*4 + if cAlpha >= self.toAlpha then + cAlpha = self.toAlpha + end + end + end + self:SetAlpha(cAlpha) +end function db.print(...) for i = 1, select('#', ...) do @@ -241,6 +326,7 @@ end } + function WorldPlanCore:OnConfigUpdate() for _, module in ipairs(db.OrderedModules) do if module.OnConfigUpdate then @@ -264,7 +350,7 @@ if frame.defaults then db.DefaultConfig[frame:GetName()] = frame.defaults end - + frame.UpdateAlpha = Handler_UpdateFader frame.owningFrame = self else @@ -511,54 +597,12 @@ + SlashCmdList.WORLDPLAN = function(args) local arg1, arg2, extraArgs = args:match("(%S+)%s*(%S*)%s*(.*)") - if arg1 == 'wq' then - if arg2 and WorldPlanQuests[arg2] then - self:print('WorldPlanQuests:'..arg2..'()') - WorldPlanQuests[arg2](WorldPlanQuests) - elseif arg2 == 'flightscale' and extraArgs then - local val1, val2, val3 = extraArgs:match("(%S+)%s*(%S*)%s*(%S*)") - if tonumber(val1) and tonumber(val2) and tonumber(val3) then - db.Config.FlightMapScalingLimits = {tonumber(val1), tonumber(val2), tonumber(val3)} - self:print('FlightMapFrame scaling limits updated:', unpack(db.Config.FlightMapScalingLimits)) - else - self:print('FlightMapFrame scaling limits:', unpack(db.Config.FlightMapScalingLimits)) - end - elseif arg2 == 'flightalpha' and extraArgs then - local val1, val2, val3 = extraArgs:match("(%S+)%s*(%S*)%s*(%S*)") - if tonumber(val1) and tonumber(val2) and tonumber(val3) then - db.Config.FlightMapAlphaLimits = {tonumber(val1), tonumber(val2), tonumber(val3)} - self:print('FlightMapFrame alpha limits updated:', unpack(db.Config.FlightMapAlphaLimits)) - else - self:print('FlightMapFrame alpha limits:', unpack(db.Config.FlightMapAlphaLimits)) - end - else - - self:print('WorldPlanQuests:Refresh(true)') - WorldPlanQuests:Refresh(true) - end - elseif arg1 == 'filter' then - if arg2 and WorldPlanSummary[arg2] then - self:print('WorldPlanSummary:'..arg2..'()') - WorldPlanSummary[arg2](WorldPlanSummary) - else - self:print('WorldPlanSummary:Refresh(true)') - WorldPlanSummary:Refresh(true) - end - elseif arg1 == 'log' then - if WorldPlanDebug:IsShown() then - WorldPlanDebug:SetShown(false) - else - WorldPlanDebug:SetShown(true) - end - elseif arg1 == 'debug' then - if WorldPlanData then - WorldPlanData.DebugEnabled = (not WorldPlanData.DebugEnabled) - self:print(WorldPlanData.DebugEnabled and "Debugger on." or "Debugger off.") - end - + if db.CLTriggers[arg1] then + db.CLTriggers[arg1](arg2, extraArgs) else self:print('Refreshing data.') self:Refresh(true)
--- a/WorldQuests.lua Sun May 28 20:16:05 2017 -0400 +++ b/WorldQuests.lua Sat Jun 03 17:20:14 2017 -0400 @@ -553,6 +553,7 @@ elseif db.isBrokenIsle then continentScanned = true end + db.PinStrata = WorldMapFrame_InWindowedMode() and 'HIGH' or 'FULLSCREEN' print('layoutDirty =',layoutDirty) for index, info in pairs(taskInfo) do