WoWInterface SVN pMinimap

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 87 to Rev 88
    Reverse comparison

Rev 87 → Rev 88

trunk/pMinimap/pMinimap.toc
4,7 → 4,7
## Title: |cffff6000p|rMinimap
## Notes: Yet another square minimap addon
## SavedVariablesPerCharacter: pMinimapDB
## OptionalDeps: LibSharedMedia-3.0
## OptionalDeps: Ace3, LibSharedMedia-3.0, SharedMedia
 
libs\LibStub\LibStub.lua
libs\CallbackHandler-1.0\CallbackHandler-1.0.xml
trunk/pMinimap/pMinimap.lua
2,9 → 2,6
pMinimap:SetScript('OnEvent', function(self, event, ...) self[event](self, event, ...) end)
pMinimap:RegisterEvent('ADDON_LOADED')
 
local dummy = CreateFrame('Frame', nil, InterfaceOptionsFrame)
dummy:SetScript('OnShow', function(self) if(not IsAddOnLoaded('pMinimap_Config')) then LoadAddOn('pMinimap_Config') end self:SetScript('OnShow', nil) end)
 
local LSM = LibStub('LibSharedMedia-3.0')
 
local onUpdate, onClickClock, onClickCoord, onMouseWheel
79,34 → 76,10
end
 
 
local function DisableBlizzard()
for k,v in next, {InterfaceOptionsDisplayPanelShowClock} do
local warning = v:CreateFontString(nil, 'OVERLAY', 'GameFontNormal')
warning:SetPoint('TOPLEFT', v, 0, 10)
warning:SetText('|cff00ff33OVERRID BY PMINIMAP!|r')
 
v:SetButtonState('DISABLED', true)
end
 
InterfaceOptionsDisplayPanelShowClock.setFunc('1')
InterfaceOptionsDisplayPanelShowClock.setFunc = function() end
end
 
local function LoadDefaults()
pMinimapDB = pMinimapDB or {}
for k,v in pairs(defaults) do
if(type(pMinimapDB[k]) == 'nil') then
pMinimapDB[k] = v
end
end
 
pMinimapDB.unlocked = false
end
 
local function SlashCommand(str)
local function slashHandler(str)
if(str == 'reset') then
pMinimapDB = {}
LoadDefaults()
pMinimapDB = nil
pMinimap:LoadDefaults()
print('|cffff8080pMinimap:|r Savedvariables is now reset. You should reload/relog to affect changes.')
elseif(str == 'refresh') then
Minimap:SetMaskTexture([=[Interface\ChatFrame\ChatFrameBackground]=])
119,79 → 92,16
end
end
 
 
local function CreateClock(self)
TimeManager_LoadUI()
 
TimeManagerClockButton:SetWidth(40)
TimeManagerClockButton:SetHeight(14)
TimeManagerClockButton:ClearAllPoints()
TimeManagerClockButton:SetPoint(pMinimapDB.coords and 'BOTTOMLEFT' or 'BOTTOM', Minimap)
TimeManagerClockButton:GetRegions():Hide()
TimeManagerClockButton:Show()
TimeManagerClockButton:SetScript('OnClick', onClickClock)
 
TimeManagerClockTicker:SetPoint('CENTER', TimeManagerClockButton)
TimeManagerClockTicker:SetFont(LSM:Fetch('font', pMinimapDB.smfont), pMinimapDB.fontsize, pMinimapDB.fontflag)
TimeManagerClockTicker:SetShadowOffset(0, 0)
 
TimeManagerAlarmFiredTexture.Show = function() TimeManagerClockTicker:SetTextColor(1, 0, 0) end
TimeManagerAlarmFiredTexture.Hide = function() TimeManagerClockTicker:SetTextColor(1, 1, 1) end
 
self:RegisterEvent('CALENDAR_UPDATE_PENDING_INVITES')
self.CALENDAR_UPDATE_PENDING_INVITES()
 
self.RunClock = true
end
 
local function CreateCoords(self)
self.Coord = CreateFrame('Button', nil, Minimap)
self.Coord:SetPoint(pMinimapDB.clock and 'BOTTOMRIGHT' or 'BOTTOM', Minimap)
self.Coord:SetWidth(40)
self.Coord:SetHeight(14)
self.Coord:RegisterForClicks('AnyUp')
 
self.Coord.Text = self.Coord:CreateFontString(nil, 'OVERLAY')
self.Coord.Text:SetPoint('CENTER', self.Coord)
self.Coord.Text:SetFont(LSM:Fetch('font', pMinimapDB.smfont), pMinimapDB.fontsize, pMinimapDB.fontflag)
self.Coord.Text:SetTextColor(1, 1, 1)
 
self.Coord:SetScript('OnClick', onClickCoord)
self.Coord:SetScript('OnUpdate', onUpdate)
 
self:RegisterEvent('ZONE_CHANGED_NEW_AREA')
self.RunCoords = true
end
 
function pMinimap:CALENDAR_UPDATE_PENDING_INVITES()
if(CalendarGetNumPendingInvites() ~= 0) then
TimeManagerClockTicker:SetTextColor(0, 1, 0)
else
TimeManagerClockTicker:SetTextColor(1, 1, 1)
local function optionsPanel(self)
if(not IsAddOnLoaded('pMinimap_Config')) then
LoadAddOn('pMinimap_Config')
end
end
self:SetScript('OnShow', nil)
 
function pMinimap:ZONE_CHANGED_NEW_AREA()
SetMapToCurrentZone()
InterfaceOptionsDisplayPanelShowClock:Disable()
InterfaceOptionsDisplayPanelShowClock:Hide()
end
 
function pMinimap:UPDATE_INVENTORY_ALERTS()
local highstatus = 0
for i in next, INVENTORY_ALERT_STATUS_SLOTS do
local status = GetInventoryAlertStatus(i)
if(status > highstatus) then
highstatus = status
end
end
 
local color = INVENTORY_ALERT_COLORS[highstatus]
if(color) then
Minimap:SetBackdropColor(color.r, color.g, color.b)
else
Minimap:SetBackdropColor(unpack(pMinimapDB.colors))
end
end
 
local function Initialize(self)
MinimapZoomIn:Hide()
MinimapZoomOut:Hide()
218,19 → 128,19
MiniMapMailFrame:SetHeight(8)
 
MiniMapMailText = MiniMapMailFrame:CreateFontString(nil, 'OVERLAY')
MiniMapMailText:SetFont(LSM:Fetch('font', pMinimapDB.smfont), pMinimapDB.fontsize, pMinimapDB.fontflag)
MiniMapMailText:SetFont(LSM:Fetch('font', self.db.smfont), self.db.fontsize, self.db.fontflag)
MiniMapMailText:SetPoint('BOTTOM', 0, 2)
MiniMapMailText:SetText('New Mail!')
MiniMapMailText:SetTextColor(1, 1, 1)
 
MinimapZoneTextButton:SetParent(Minimap)
MinimapZoneTextButton:ClearAllPoints()
MinimapZoneTextButton:SetPoint(pMinimapDB.zonePoint == 'BOTTOM' and 'TOP' or 'BOTTOM', Minimap, pMinimapDB.zonePoint, 0, pMinimapDB.zoneOffset)
MinimapZoneTextButton:SetPoint(self.db.zonePoint == 'BOTTOM' and 'TOP' or 'BOTTOM', Minimap, self.db.zonePoint, 0, self.db.zoneOffset)
MinimapZoneTextButton:SetWidth(Minimap:GetWidth() * 1.5)
 
MinimapZoneText:ClearAllPoints()
MinimapZoneText:SetAllPoints(MinimapZoneTextButton)
MinimapZoneText:SetFont(LSM:Fetch('font', pMinimapDB.smfont), pMinimapDB.fontsize, pMinimapDB.fontflag)
MinimapZoneText:SetFont(LSM:Fetch('font', self.db.smfont), self.db.fontsize, self.db.fontflag)
MinimapZoneText:SetShadowOffset(0, 0)
 
MinimapBorder:SetTexture('')
246,12 → 156,12
 
Minimap:EnableMouseWheel()
Minimap:SetScript('OnMouseWheel', onMouseWheel)
Minimap:SetScale(pMinimapDB.scale)
Minimap:SetFrameLevel(pMinimapDB.level)
Minimap:SetFrameStrata(pMinimapDB.strata)
Minimap:SetScale(self.db.scale)
Minimap:SetFrameLevel(self.db.level)
Minimap:SetFrameStrata(self.db.strata)
Minimap:SetMaskTexture([=[Interface\ChatFrame\ChatFrameBackground]=])
Minimap:SetBackdrop({bgFile = [=[Interface\ChatFrame\ChatFrameBackground]=], insets = {top = - pMinimapDB.offset, left = - pMinimapDB.offset, bottom = - pMinimapDB.offset, right = - pMinimapDB.offset}})
Minimap:SetBackdropColor(unpack(pMinimapDB.colors))
Minimap:SetBackdrop({bgFile = [=[Interface\ChatFrame\ChatFrameBackground]=], insets = {top = - self.db.offset, left = - self.db.offset, bottom = - self.db.offset, right = - self.db.offset}})
Minimap:SetBackdropColor(unpack(self.db.colors))
 
MinimapCluster:EnableMouse(false)
Minimap:SetMovable(true)
259,28 → 169,28
Minimap:SetScript('OnDragStop', function() if(pMinimapDB.unlocked) then Minimap:StopMovingOrSizing() end end)
Minimap:SetScript('OnDragStart', function() if(pMinimapDB.unlocked) then Minimap:StartMoving() end end)
 
if(not pMinimapDB.zone) then
if(not self.db.zone) then
MinimapZoneTextButton:Hide()
end
 
if(pMinimapDB.dura) then
if(self.db.dura) then
DurabilityFrame:SetAlpha(0)
 
self:RegisterEvent('UPDATE_INVENTORY_ALERTS')
self.UPDATE_INVENTORY_ALERTS()
end
 
if(pMinimapDB.coords) then
CreateCoords(self)
if(self.db.coords) then
self:CreateCoords()
end
 
if(pMinimapDB.clock) then
CreateClock(self)
if(self.db.clock) then
self:CreateClock()
else
TimeManagerClockButton:Hide()
end
 
if(pMinimapDB.mail) then
if(self.db.mail) then
MiniMapMailIcon:Hide()
else
MiniMapMailText:Hide()
288,25 → 198,105
end
 
 
function pMinimap:LoadDefaults()
pMinimapDB = setmetatable(pMinimapDB or {}, {__index = defaults})
pMinimapDB.unlocked = false
 
self.db = pMinimapDB
end
 
function pMinimap:CreateClock()
TimeManager_LoadUI()
 
TimeManagerClockButton:SetWidth(40)
TimeManagerClockButton:SetHeight(14)
TimeManagerClockButton:ClearAllPoints()
TimeManagerClockButton:SetPoint(self.db.coords and 'BOTTOMLEFT' or 'BOTTOM', Minimap)
TimeManagerClockButton:GetRegions():Hide()
TimeManagerClockButton:Show()
TimeManagerClockButton:SetScript('OnClick', onClickClock)
 
TimeManagerClockTicker:SetPoint('CENTER', TimeManagerClockButton)
TimeManagerClockTicker:SetFont(LSM:Fetch('font', self.db.smfont), self.db.fontsize, self.db.fontflag)
TimeManagerClockTicker:SetShadowOffset(0, 0)
 
TimeManagerAlarmFiredTexture.Show = function() TimeManagerClockTicker:SetTextColor(1, 0, 0) end
TimeManagerAlarmFiredTexture.Hide = function() TimeManagerClockTicker:SetTextColor(1, 1, 1) end
 
self:RegisterEvent('CALENDAR_UPDATE_PENDING_INVITES')
self.CALENDAR_UPDATE_PENDING_INVITES()
 
self.RunClock = true
end
 
function pMinimap:CreateCoords()
self.Coord = CreateFrame('Button', nil, Minimap)
self.Coord:SetPoint(self.db.clock and 'BOTTOMRIGHT' or 'BOTTOM', Minimap)
self.Coord:SetWidth(40)
self.Coord:SetHeight(14)
self.Coord:RegisterForClicks('AnyUp')
 
self.Coord.Text = self.Coord:CreateFontString(nil, 'OVERLAY')
self.Coord.Text:SetPoint('CENTER', self.Coord)
self.Coord.Text:SetFont(LSM:Fetch('font', self.db.smfont), self.db.fontsize, self.db.fontflag)
self.Coord.Text:SetTextColor(1, 1, 1)
 
self.Coord:SetScript('OnClick', onClickCoord)
self.Coord:SetScript('OnUpdate', onUpdate)
 
self:RegisterEvent('ZONE_CHANGED_NEW_AREA')
end
 
 
function pMinimap:ADDON_LOADED(event, addon)
if(addon ~= 'pMinimap') then return end
self:UnregisterEvent(event)
 
self.onUpdate = onUpdate
self:UnregisterEvent(event)
DisableBlizzard()
CreateFrame('Frame', nil, InterfaceOptionsFrame):SetScript('OnShow', optionsPanel)
LSM:Register('font', 'Visitor TT1', [=[Interface\AddOns\pMinimap\font.ttf]=])
 
SLASH_PMINIMAP1 = '/pmm'
SLASH_PMINIMAP2 = '/pminimap'
SlashCmdList.PMINIMAP = SlashCommand
SlashCmdList.PMINIMAP = slashHandler
 
LSM:Register('font', 'Visitor TT1', [=[Interface\AddOns\pMinimap\font.ttf]=])
LoadDefaults()
self:LoadDefaults()
self.onCoordUpdate = onUpdate
 
InterfaceOptionsDisplayPanelShowClock.setFunc('1')
InterfaceOptionsDisplayPanelShowClock.setFunc = function() end
 
Initialize(self)
end
 
self.CreateClock = CreateClock
self.CreateCoords = CreateCoords
function pMinimap:CALENDAR_UPDATE_PENDING_INVITES()
if(CalendarGetNumPendingInvites() ~= 0) then
TimeManagerClockTicker:SetTextColor(0, 1, 0)
else
TimeManagerClockTicker:SetTextColor(1, 1, 1)
end
end
 
function pMinimap:ZONE_CHANGED_NEW_AREA()
SetMapToCurrentZone()
end
 
function pMinimap:UPDATE_INVENTORY_ALERTS()
local highstatus = 0
for i in next, INVENTORY_ALERT_STATUS_SLOTS do
local status = GetInventoryAlertStatus(i)
if(status > highstatus) then
highstatus = status
end
end
 
local color = INVENTORY_ALERT_COLORS[highstatus]
if(color) then
Minimap:SetBackdropColor(color.r, color.g, color.b)
else
Minimap:SetBackdropColor(unpack(pMinimapDB.colors))
end
end
 
 
-- http://www.wowwiki.com/GetMinimapShape
function GetMinimapShape() return 'SQUARE' end
\ No newline at end of file