diff --git a/pMinimap.toc b/pMinimap.toc index 8d9a5ad..dfbef69 100644 --- a/pMinimap.toc +++ b/pMinimap.toc @@ -14,4 +14,4 @@ pMinimap.lua libs\tekKonfig\tekKonfig.xml -pMinimap_Config.lua \ No newline at end of file +pMinimapConfig.lua diff --git a/pMinimapConfig.lua b/pMinimapConfig.lua new file mode 100644 index 0000000..354a9f7 --- /dev/null +++ b/pMinimapConfig.lua @@ -0,0 +1 @@ +local GAP = 20 local SharedMedia = LibStub('LibSharedMedia-3.0') local group = LibStub('tekKonfig-Group') local slider = LibStub('tekKonfig-Slider') local dropdown = LibStub('tekKonfig-Dropdown') local checkbox = LibStub('tekKonfig-Checkbox') local function updateFont() MiniMapMailText:SetFont(SharedMedia:Fetch('font', pMinimap.db.font), pMinimap.db.fontsize, pMinimap.db.fontflag) MinimapZoneText:SetFont(SharedMedia:Fetch('font', pMinimap.db.font), pMinimap.db.fontsize, pMinimap.db.fontflag) MinimapCoordinatesText:SetFont(SharedMedia:Fetch('font', pMinimap.db.font), pMinimap.db.fontsize, pMinimap.db.fontflag) -- TimeManagerClockTicker:SetFont(SharedMedia:Fetch('font', pMinimap.db.font), pMinimap.db.fontsize, pMinimap.db.fontflag) end local function dropStrata() local info = UIDropDownMenu_CreateInfo() info.func = function(self) pMinimap.db.strata = self.value Minimap:SetFrameStrata(self.value) end for k, v in next, {'DIALOG', 'HIGH', 'MEDIUM', 'LOW', 'BACKGROUND'} do info.text = v info.value = v UIDropDownMenu_AddButton(info) end end local function dropZone() local info = UIDropDownMenu_CreateInfo() info.func = function(self) pMinimap.db.zonepoint = self.value MinimapZoneTextButton:ClearAllPoints() MinimapZoneTextButton:SetPoint(self.value == 'TOP' and 'BOTTOM' or 'TOP', Minimap, self.value, 0, pMinimap.db.zoneoffset) end for k, v in next, {'TOP', 'BOTTOM'} do info.text = v info.value = v UIDropDownMenu_AddButton(info) end end local function dropFont() local info = UIDropDownMenu_CreateInfo() info.func = function(self) pMinimap.db.font = self.value print(self.value) updateFont() end for k, v in next, SharedMedia:List('font') do info.text = v info.value = v UIDropDownMenu_AddButton(info) end end local function dropFontflag() local info = UIDropDownMenu_CreateInfo() info.func = function(self) pMinimap.db.fontflag = self.value updateFont() end for k, v in next, {'OUTLINE', 'THICKOUTLINE', 'MONOCHROME', 'NONE'} do info.text = v info.value = v UIDropDownMenu_AddButton(info) end end local addon = CreateFrame('Frame', nil, InterfaceOptionsFramePanelContainer) addon.name = 'pMinimap' addon:Hide() addon:SetScript('OnShow', function(self) local title, subtitle = LibStub('tekKonfig-Heading').new(self, 'pMinimap', 'Options for pMinimap') LibStub('tekKonfig-Scroll').new(self, 5) local group1 = group.new(self, 'Minimap', 'TOPLEFT', subtitle, 'BOTTOMLEFT') group1:SetHeight(120) group1:SetWidth(370) local scale = slider.new(self, 'Scale', 0.5, 2.5, 'TOPLEFT', group1, 15, -15) scale:SetValueStep(0.01) scale:SetValue(pMinimap.db.scale) scale:SetScript('OnValueChanged', function(self, value) pMinimap.db.scale = value Minimap:SetScale(value) end) local level = slider.new(self, 'Framelevel', 1, 15, 'TOPLEFT', scale, 'BOTTOMLEFT', 0, -GAP) level:SetValueStep(1) level:SetValue(pMinimap.db.level) level:SetScript('OnValueChanged', function(self, value) pMinimap.db.level = value Minimap:SetFrameLevel(value) end) local strata = dropdown.new(self, 'Framestrata', 'LEFT', scale, 'RIGHT', GAP * 2, 0) UIDropDownMenu_Initialize(strata, dropStrata) local group2 = group.new(self, 'Modules', 'TOPLEFT', group1, 'BOTTOMLEFT', 0, -GAP) group2:SetHeight(105) group2:SetWidth(370) local coordinates = checkbox.new(self, 22, 'Coordinates', 'TOPLEFT', group2, 10, -10) coordinates:SetChecked(pMinimap.db.coordinates) coordinates:SetScript('OnClick', function(self) pMinimap.db.coordinates = not pMinimap.db.coordinates if(pMinimap.db.coordinates) then MinimapCoordinates:Show() MinimapCoordinates:ClearAllPoints() MinimapCoordinates:SetPoint(pMinimap.db.clock and 'BOTTOMRIGHT' or 'BOTTOM') else MinimapCoordinates:Hide() end if(pMinimap.db.clock) then TimeManagerClockButton:ClearAllPoints() TimeManagerClockButton:SetPoint(pMinimap.db.coordinates and 'BOTTOMLEFT' or 'BOTTOM', Minimap) end end) local coordinatesdecimals = slider.new(self, 'Coordinates Decimals', 0, 3, 'TOPRIGHT', group2, -15, -15) coordinatesdecimals:SetValueStep(1) coordinatesdecimals:SetValue(pMinimap.db.coordinatesdecimals) coordinatesdecimals:SetScript('OnValueChanged', function(self, value) pMinimap.db.coordinatesdecimals = value end) local clock = checkbox.new(self, 22, 'Clock (Disabled NYI)', 'TOPLEFT', coordinates, 'BOTTOMLEFT', 0, -GAP / 2) clock:SetChecked(pMinimap.db.clock) clock:Disable() clock:SetScript('OnClick', function(self) pMinimap.db.clock = not pMinimap.db.clock if(pMinimap.db.clock) then if(not pMinimap:IsEventRegistered('CALENDAR_UPDATE_PENDING_INVITES')) then pMinimap:Clock() else TimeManagerClockButton:Show() TimeManagerClockButton:ClearAllPoints() TimeManagerClockButton:SetPoint(pMinimap.db.coordinates and 'BOTTOMLEFT' or 'BOTTOM', Minimap) end pMinimap.CALENDAR_UPDATE_PENDING_INVITES() else TimeManagerClockButton:Hide() end if(pMinimap.coordinates) then MinimapCoordinates:ClearAllPoints() MinimapCoordinates:SetPoint(pMinimap.db.clock and 'BOTTOMRIGHT' or 'BOTTOM') end end) local mail = checkbox.new(self, nil, 'Mail', 'TOPLEFT', clock, 'BOTTOMLEFT', 0, -GAP / 2) mail:SetChecked(pMinimap.db.mail) mail:SetScript('OnClick', function(self) pMinimap.db.mail = not pMinimap.db.mail if(pMinimap.db.mail) then MiniMapMailIcon:Hide() MiniMapMailText:Show() else MiniMapMailIcon:Show() MiniMapMailText:Hide() end end) local durability = checkbox.new(self, nil, 'Durability', 'LEFT', mail, 'RIGHT', GAP * 3, 0) durability:SetChecked(pMinimap.db.durability) durability:SetScript('OnClick', function(self) pMinimap.db.durability = not pMinimap.db.durability if(pMinimap.db.durability) then DurabilityFrame:SetAlpha(0) pMinimap:RegisterEvent('UPDATE_INVENTORY_ALERTS') pMinimap.UPDATE_INVENTORY_ALERTS() else DurabilityFrame:SetAlpha(1) pMinimap:UnregisterEvent('UPDATE_INVENTORY_ALERTS') Minimap:SetBackdropColor(unpack(pMinimap.db.bordercolors)) end end) local group3 = group.new(self, 'Background', 'TOPLEFT', group2, 'BOTTOMLEFT', 0, -GAP) group3:SetHeight(60) group3:SetWidth(370) local borderoffset = slider.new(self, 'Thickness', 0, 10, 'TOPLEFT', group3, 15, -15) borderoffset:SetValueStep(0.5) borderoffset:SetValue(pMinimap.db.borderoffset) borderoffset:SetScript('OnValueChanged', function(self, value) pMinimap.db.borderoffset = value Minimap:SetBackdrop({bgFile = [=[Interface\ChatFrame\ChatFrameBackground]=], insets = {top = - value, bottom = - value, left = - value, right = - value}}) Minimap:SetBackdropColor(unpack(pMinimap.db.bordercolors)) end) -- bordercolor local group4 = group.new(self, 'Zone', 'TOPLEFT', group3, 'BOTTOMLEFT', 0, -GAP) group4:SetHeight(95) group4:SetWidth(370) local zone = checkbox.new(self, 22, 'Zone Toggle', 'TOPLEFT', group4, 10, -10) zone:SetChecked(pMinimap.db.zone) zone:SetScript('OnClick', function(self) pMinimap.db.zone = not pMinimap.db.zone if(pMinimap.db.zone) then MinimapZoneTextButton:Show() else MinimapZoneTextButton:Hide() end end) local zonepoint = dropdown.new(self, 'Zone Point', 'TOPLEFT', zone, 'BOTTOMLEFT') UIDropDownMenu_Initialize(zonepoint, dropZone) local zoneoffset = slider.new(self, 'Zone Offset', -25, 25, 'TOPRIGHT', group4, -15, -15) zoneoffset:SetValueStep(0.5) zoneoffset:SetValue(pMinimap.db.zoneoffset) zoneoffset:SetScript('OnValueChanged', function(self, value) pMinimap.db.zoneoffset = value MinimapZoneTextButton:ClearAllPoints() MinimapZoneTextButton:SetPoint(pMinimap.db.zonepoint == 'TOP' and 'BOTTOM' or 'TOP', Minimap, pMinimap.db.zonepoint, 0, value) end) local group5 = group.new(self, 'Fonts', 'TOPLEFT', group4, 'BOTTOMLEFT', 0, -GAP) group5:SetHeight(110) group5:SetWidth(370) local font = dropdown.new(self, 'Font', 'TOPLEFT', group5, 10, -4) UIDropDownMenu_Initialize(font, dropFont) local fontflag = dropdown.new(self, 'Font Flag', 'BOTTOMLEFT', group5, 10, 4) UIDropDownMenu_Initialize(fontflag, dropFontflag) local fontsize = slider.new(self, 'Font Size', 5, 18, 'TOPRIGHT', group5, -15, -15) fontsize:SetValueStep(1) fontsize:SetValue(pMinimap.db.fontsize) fontsize:SetScript('OnValueChanged', function(self, value) pMinimap.db.fontsize = value updateFont() end) self:SetScript('OnShow', nil) end) InterfaceOptions_AddCategory(addon) \ No newline at end of file diff --git a/pMinimap_Config.lua b/pMinimap_Config.lua deleted file mode 100644 index efff672..0000000 --- a/pMinimap_Config.lua +++ /dev/null @@ -1 +0,0 @@ -local GAP = 20 local SharedMedia = LibStub('LibSharedMedia-3.0') local group = LibStub('tekKonfig-Group') local slider = LibStub('tekKonfig-Slider') local dropdown = LibStub('tekKonfig-Dropdown') local checkbox = LibStub('tekKonfig-Checkbox') local function updateFont() MiniMapMailText:SetFont(SharedMedia:Fetch('font', pMinimap.db.font), pMinimap.db.fontsize, pMinimap.db.fontflag) MinimapZoneText:SetFont(SharedMedia:Fetch('font', pMinimap.db.font), pMinimap.db.fontsize, pMinimap.db.fontflag) MinimapCoordinates:SetFont(SharedMedia:Fetch('font', pMinimap.db.font), pMinimap.db.fontsize, pMinimap.db.fontflag) -- TimeManagerClockTicker:SetFont(SharedMedia:Fetch('font', pMinimap.db.font), pMinimap.db.fontsize, pMinimap.db.fontflag) end local function dropStrata() local info = UIDropDownMenu_CreateInfo() info.func = function(self) pMinimap.db.strata = self.value Minimap:SetFrameStrata(self.value) end for k, v in next, {'DIALOG', 'HIGH', 'MEDIUM', 'LOW', 'BACKGROUND'} do info.text = v info.value = v UIDropDownMenu_AddButton(info) end end local function dropZone() local info = UIDropDownMenu_CreateInfo() info.func = function(self) pMinimap.db.zonepoint = self.value MinimapZoneTextButton:ClearAllPoints() MinimapZoneTextButton:SetPoint(self.value == 'TOP' and 'BOTTOM' or 'TOP', Minimap, self.value, 0, pMinimap.db.zoneoffset) end for k, v in next, {'TOP', 'BOTTOM'} do info.text = v info.value = v UIDropDownMenu_AddButton(info) end end local function dropFont() local info = UIDropDownMenu_CreateInfo() info.func = function(self) pMinimap.db.font = SharedMedia:List('font')[self.value] print('|cffff8080pMinimap:|r DEBUG:', pMinimap.db.font) updateFont() end for k, v in next, SharedMedia:List('font') do info.text = k info.value = v UIDropDownMenu_AddButton(info) end end local function dropFontFlag() local info = UIDropDownMenu_CreateInfo() info.func = function(self) pMinimap.db.fontflag = self.value updateFont() end for k, k in next, {'OUTLINE', 'THICKOUTLINE', 'MONOCHROME', 'NONE'} do info.text = v info.value = v UIDropDownMenu_AddButton(info) end end local addon = CreateFrame('Frame', nil, InterfaceOptionsFramePanelContainer) addon.name = 'pMinimap' addon:Hide() addon:SetScript('OnShow', function(self) local title, subtitle = LibStub('tekKonfig-Heading').new(self, 'pMinimap', 'Options for pMinimap') LibStub('tekKonfig-Scroll').new(self, 5) local group1 = group.new(self, 'Minimap', 'TOPLEFT', subtitle, 'BOTTOMLEFT') group1:SetHeight(120) group1:SetWidth(370) local scale = slider.new(self, 'Scale', 0.5, 2.5, 'TOPLEFT', group1, 15, -15) scale:SetValueStep(0.01) scale:SetValue(pMinimap.db.scale) scale:SetScript('OnValueChanged', function(self, value) pMinimap.db.scale = value Minimap:SetScale(value) end) local level = slider.new(self, 'Framelevel', 1, 15, 'TOPLEFT', scale, 'BOTTOMLEFT', 0, -GAP) level:SetValueStep(1) level:SetValue(pMinimap.db.level) level:SetScript('OnValueChanged', function(self, value) pMinimap.db.level = value Minimap:SetFrameLevel(value) end) local strata = dropdown.new(self, 'Framestrata (NYI)', 'LEFT', scale, 'RIGHT', GAP * 2, 0) UIDropDownMenu_Initialize(strata, dropStrata) local group2 = group.new(self, 'Modules', 'TOPLEFT', group1, 'BOTTOMLEFT', 0, -GAP) group2:SetHeight(105) group2:SetWidth(370) local coordinates = checkbox.new(self, 22, 'Coordinates', 'TOPLEFT', group2, 10, -10) coordinates:SetScript('OnClick', function(self) pMinimap.db.coordinates = not pMinimap.db.coordinates if(pMinimap.db.coordinates) then MinimapCoordinates:Show() MinimapCoordinates:ClearAllPoints() MinimapCoordinates:SetPoint(pMinimap.db.clock and 'BOTTOMRIGHT' or 'BOTTOM') else MinimapCoordinates:Hide() end if(pMinimap.db.clock) then TimeManagerClockButton:ClearAllPoints() TimeManagerClockButton:SetPoint(pMinimap.db.coordinates and 'BOTTOMLEFT' or 'BOTTOM', Minimap) end end) local coordinatesdecimals = slider.new(self, 'Coordinates Decimals', 0, 3, 'TOPRIGHT', group2, -15, -15) coordinatesdecimals:SetValueStep(1) coordinatesdecimals:SetValue(pMinimap.db.coordinatesdecimals) coordinatesdecimals:SetScript('OnValueChanged', function(self, value) pMinimap.db.coordinatesdecimals = value end) local clock = checkbox.new(self, 22, 'Clock (Disabled NYI)', 'TOPLEFT', coordinates, 'BOTTOMLEFT', 0, -GAP / 2) clock:Disable() clock:SetScript('OnClick', function(self) pMinimap.db.clock = not pMinimap.db.clock if(pMinimap.db.clock) then if(not pMinimap:IsEventRegistered('CALENDAR_UPDATE_PENDING_INVITES')) then pMinimap:Clock() else TimeManagerClockButton:Show() TimeManagerClockButton:ClearAllPoints() TimeManagerClockButton:SetPoint(pMinimap.db.coordinates and 'BOTTOMLEFT' or 'BOTTOM', Minimap) end pMinimap.CALENDAR_UPDATE_PENDING_INVITES() else TimeManagerClockButton:Hide() end if(pMinimap.coordinates) then MinimapCoordinates:ClearAllPoints() MinimapCoordinates:SetPoint(pMinimap.db.clock and 'BOTTOMRIGHT' or 'BOTTOM') end end) local mail = checkbox.new(self, nil, 'Mail', 'TOPLEFT', clock, 'BOTTOMLEFT', 0, -GAP / 2) mail:SetScript('OnClick', function(self) pMinimap.db.mail = not pMinimap.db.mail if(pMinimap.db.mail) then MiniMapMailIcon:Hide() MiniMapMailText:Show() else MiniMapMailIcon:Show() MiniMapMailText:Hide() end end) local durability = checkbox.new(self, nil, 'Durability', 'LEFT', mail, 'RIGHT', GAP * 3, 0) durability:SetScript('OnClick', function(self) pMinimap.db.durability = not pMinimap.db.durability if(pMinimap.db.durability) then DurabilityFrame:SetAlpha(0) pMinimap:RegisterEvent('UPDATE_INVENTORY_ALERTS') pMinimap.UPDATE_INVENTORY_ALERTS() else DurabilityFrame:SetAlpha(1) pMinimap:UnregisterEvent('UPDATE_INVENTORY_ALERTS') Minimap:SetBackdropColor(unpack(pMinimap.db.bordercolors)) end end) local group3 = group.new(self, 'Background', 'TOPLEFT', group2, 'BOTTOMLEFT', 0, -GAP) group3:SetHeight(60) group3:SetWidth(370) local borderoffset = slider.new(self, 'Thickness', 0, 10, 'TOPLEFT', group3, 15, -15) borderoffset:SetValueStep(0.5) borderoffset:SetValue(pMinimap.db.borderoffset) borderoffset:SetScript('OnValueChanged', function(self, value) pMinimap.db.borderoffset = value Minimap:SetBackdrop({bgFile = [=[Interface\ChatFrame\ChatFrameBackground]=], insets = {top = - value, bottom = - value, left = - value, right = - value}}) Minimap:SetBackdropColor(unpack(pMinimap.db.bordercolors)) end) -- bordercolor local group4 = group.new(self, 'Zone', 'TOPLEFT', group3, 'BOTTOMLEFT', 0, -GAP) group4:SetHeight(95) group4:SetWidth(370) local zone = checkbox.new(self, 22, 'Zone Toggle', 'TOPLEFT', group4, 10, -10) zone:SetScript('OnClick', function(self) pMinimap.db.zone = not pMinimap.db.zone if(pMinimap.db.zone) then MinimapZoneTextButton:Show() else MinimapZoneTextButton:Hide() end end) local zonepoint = dropdown.new(self, 'Zone Point', 'TOPLEFT', zone, 'BOTTOMLEFT') UIDropDownMenu_Initialize(zonepoint, dropZone) local zoneoffset = slider.new(self, 'Zone Offset', -25, 25, 'TOPRIGHT', group4, -15, -15) zoneoffset:SetValueStep(0.5) zoneoffset:SetValue(pMinimap.db.zoneoffset) zoneoffset:SetScript('OnValueChanged', function(self, value) pMinimap.db.zoneoffset = value MinimapZoneTextButton:ClearAllPoints() MinimapZoneTextButton:SetPoint(pMinimap.db.zonepoint == 'TOP' and 'BOTTOM' or 'TOP', Minimap, pMinimap.db.zonepoint, 0, value) end) local group5 = group.new(self, 'Fonts', 'TOPLEFT', group4, 'BOTTOMLEFT', 0, -GAP) group5:SetHeight(110) group5:SetWidth(370) local font = dropdown.new(self, 'Font', 'TOPLEFT', group5, 10, -4) UIDropDownMenu_Initialize(font, dropFont) local fontflag = dropdown.new(self, 'Font Flag', 'BOTTOMLEFT', group5, 10, 4) UIDropDownMenu_Initialize(fontflag, dropFontflag) local fontsize = slider.new(self, 'Font Size', 5, 18, 'TOPRIGHT', group5, -15, -15) fontsize:SetValueStep(1) fontsize:SetValue(pMinimap.db.fontsize) fontsize:SetScript('OnValueChanged', function(self, value) pMinimap.db.fontsize = value updateFont() end) self:SetScript('OnShow', nil) end) InterfaceOptions_AddCategory(addon) \ No newline at end of file