From 1aa4d877ba89301c3d196456b9b95f4881414278 Mon Sep 17 00:00:00 2001 From: p3lim Date: Sun, 12 Sep 2010 23:35:28 +0200 Subject: [PATCH] Complete rewrite --- Config.lua | 322 ---------------------------------- LICENSE | 6 + config/configuration.lua | 161 +++++++++++++++++ config/module.checkbox.lua | 24 +++ config/module.dropdown.lua | 40 +++++ config/module.palette.lua | 73 ++++++++ config/module.slider.lua | 77 ++++++++ libs/CallbackHandler-1.0.lua | 2 +- libs/tekKonfig/tekKonfig.xml | 8 - libs/tekKonfig/tekKonfigCheckbox.lua | 46 ----- libs/tekKonfig/tekKonfigDropdown.lua | 86 --------- libs/tekKonfig/tekKonfigGroup.lua | 31 ---- libs/tekKonfig/tekKonfigHeading.lua | 24 --- libs/tekKonfig/tekKonfigScroll.lua | 80 --------- libs/tekKonfig/tekKonfigSlider.lua | 85 --------- media/font.ttf | Bin 27552 -> 0 bytes pMinimap.lua | 314 +++++++-------------------------- pMinimap.toc | 14 +- 18 files changed, 455 insertions(+), 938 deletions(-) delete mode 100644 Config.lua create mode 100644 LICENSE create mode 100644 config/configuration.lua create mode 100644 config/module.checkbox.lua create mode 100644 config/module.dropdown.lua create mode 100644 config/module.palette.lua create mode 100644 config/module.slider.lua delete mode 100644 libs/tekKonfig/tekKonfig.xml delete mode 100644 libs/tekKonfig/tekKonfigCheckbox.lua delete mode 100644 libs/tekKonfig/tekKonfigDropdown.lua delete mode 100644 libs/tekKonfig/tekKonfigGroup.lua delete mode 100644 libs/tekKonfig/tekKonfigHeading.lua delete mode 100644 libs/tekKonfig/tekKonfigScroll.lua delete mode 100644 libs/tekKonfig/tekKonfigSlider.lua delete mode 100644 media/font.ttf diff --git a/Config.lua b/Config.lua deleted file mode 100644 index 8830589..0000000 --- a/Config.lua +++ /dev/null @@ -1,322 +0,0 @@ -local SharedMedia = LibStub('LibSharedMedia-3.0') - -local group, slider, dropdown, checkbox = LibStub('tekKonfig-Group'), LibStub('tekKonfig-Slider'), LibStub('tekKonfig-Dropdown'), LibStub('tekKonfig-Checkbox') - -local function updateStrings() - local font, size, flag = SharedMedia:Fetch('font', pMinimapDB.font), pMinimapDB.fontsize, pMinimapDB.fontflag - - MiniMapMailText:SetFont(font, size, flag) - MinimapZoneText:SetFont(font, size, flag) - MinimapCoordinatesText:SetFont(font, size, flag) - - if(pMinimapDB.clock) then - TimeManagerClockTicker:SetFont(font, size, flag) - end -end - -local function dropStrata(orig) - local info = UIDropDownMenu_CreateInfo() - info.func = function(self) - pMinimapDB.strata = self.value - Minimap:SetFrameStrata(self.value) - orig.text:SetText(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(orig) - local info = UIDropDownMenu_CreateInfo() - info.func = function(self) - pMinimapDB.zonepoint = self.value - MinimapZoneTextButton:ClearAllPoints() - if(pMinimapDB.zonefixed) then - MinimapZoneTextButton:SetPoint(self.value == 'BOTTOM' and 'BOTTOMLEFT' or 'TOPLEFT', Minimap, 0, pMinimapDB.zoneoffset) - MinimapZoneTextButton:SetPoint(self.value == 'BOTTOM' and 'BOTTOMRIGHT' or 'TOPRIGHT', Minimap, 0, pMinimapDB.zoneoffset) - else - MinimapZoneTextButton:SetPoint(self.value, Minimap, 0, pMinimapDB.zoneoffset) - MinimapZoneTextButton:SetWidth(Minimap:GetWidth() * 1.5) - end - orig.text:SetText(self.value) - end - - for k, v in next, {'TOP', 'BOTTOM'} do - info.text = v - info.value = v - UIDropDownMenu_AddButton(info) - end -end - -local function dropFont(orig) - local info = UIDropDownMenu_CreateInfo() - info.func = function(self) - pMinimapDB.font = self.value - orig.text:SetText(self.value) - updateStrings() - end - - for k, v in next, SharedMedia:List('font') do - info.text = v - info.value = v - UIDropDownMenu_AddButton(info) - end -end - -local function dropFontflag(orig) - local info = UIDropDownMenu_CreateInfo() - info.func = function(self) - pMinimapDB.fontflag = self.value - updateStrings() - orig.text:SetText(self.value) - end - - for k, v in next, {'OUTLINE', 'THICKOUTLINE', 'MONOCHROME', 'NONE'} do - info.text = v - info.value = v - UIDropDownMenu_AddButton(info) - end -end - -local function config(self) - local header = LibStub('tekKonfig-Heading').new(self, self.name) - - local info = self:CreateFontString(nil, 'OVERLAY', 'GameFontHighlightLeft') - info:SetPoint('TOPLEFT', header, 0, 100) - info:SetWidth(300) - info:SetHeight(400) - info:SetText('Use the colums in the menu to the left to access the options.\n\nThis is most likely temporary, and will be cleaned up later.\n\n\nPlease visit the addon page over at\n|cff8080ffhttp://wowinterface.com/|r for more information and to ask for questions/report bugs.\n\nEnjoy!') -end - -local function minimap(self) - local scale, scaletext = slider.new(self, format('Scale: %.2f', pMinimapDB.scale), 0.5, 2.5, 'TOPLEFT', self, 15, -15) - scale:SetValueStep(0.01) - scale:SetValue(pMinimapDB.scale) - scale:SetScript('OnValueChanged', function(self, value) - pMinimapDB.scale = value - scaletext:SetFormattedText('Scale: %.2f', value) - Minimap:SetScale(value) - end) - - local level, leveltext = slider.new(self, 'Framelevel: '..pMinimapDB.level, 1, 15, 'TOPLEFT', scale, 'BOTTOMLEFT', 0, -30) - level:SetValueStep(1) - level:SetValue(pMinimapDB.level) - level:SetScript('OnValueChanged', function(self, value) - pMinimapDB.level = value - leveltext:SetFormattedText('Framelevel: %d', value) - pMinimap:SetFrameLevel(value) - end) - - local strata, stratatext = dropdown.new(self, 'Framestrata', 'LEFT', scale, 'RIGHT', 40, 0) - strata.text = stratatext - strata.text:SetText(pMinimapDB.strata) - UIDropDownMenu_Initialize(strata, dropStrata) - - local lock = checkbox.new(self, 22, 'Locked', 'LEFT', level, 'RIGHT', 45, 0) - lock:SetChecked(not pMinimap.unlocked) - lock:SetScript('OnClick', function() - pMinimap.unlocked = not pMinimap.unlocked - - if(pMinimap.unlocked) then - Minimap:SetBackdropColor(0, 1, 0, 0.5) - else - Minimap:SetBackdropColor(unpack(pMinimapDB.bordercolors)) - end - end) -end - -local function modules(self) - local coordinates = checkbox.new(self, 22, 'Coordinates', 'TOPLEFT', self, 10, -10) - coordinates:SetChecked(pMinimapDB.coordinates) - coordinates:SetScript('OnClick', function() - pMinimapDB.coordinates = not pMinimapDB.coordinates - - if(pMinimapDB.coordinates) then - MinimapCoordinates:Show() - MinimapCoordinates:ClearAllPoints() - MinimapCoordinates:SetPoint(pMinimapDB.clock and 'BOTTOMRIGHT' or 'BOTTOM') - else - MinimapCoordinates:Hide() - end - - if(pMinimapDB.clock) then - TimeManagerClockButton:ClearAllPoints() - TimeManagerClockButton:SetPoint(pMinimapDB.coordinates and 'BOTTOMLEFT' or 'BOTTOM', Minimap) - end - end) - - local coordinatesdecimals, cdtext = slider.new(self, 'Coord Decimals: '..pMinimapDB.coordinatesdecimals, 0, 3, 'TOPRIGHT', self, -15, -15) - coordinatesdecimals:SetValueStep(1) - coordinatesdecimals:SetValue(pMinimapDB.coordinatesdecimals) - coordinatesdecimals:SetScript('OnValueChanged', function(self, value) - pMinimapDB.coordinatesdecimals = value - cdtext:SetFormattedText('Coord Decimals: %d', value) - end) - - local clock = checkbox.new(self, 22, 'Clock', 'TOPLEFT', coordinates, 'BOTTOMLEFT', 0, -10) - clock:SetChecked(pMinimapDB.clock) - clock:SetScript('OnClick', function() - pMinimapDB.clock = not pMinimapDB.clock - - if(pMinimapDB.clock) then - if(not pMinimap:IsEventRegistered('CALENDAR_UPDATE_PENDING_INVITES')) then - pMinimap:Clock() - else - TimeManagerClockButton:ClearAllPoints() - TimeManagerClockButton:SetPoint(pMinimapDB.coordinates and 'BOTTOMLEFT' or 'BOTTOM', Minimap) - TimeManagerClockButton:SetScript('OnShow', nil) - TimeManagerClockButton:Show() - end - else - TimeManagerClockButton:Hide() - TimeManagerClockButton:SetScript('OnShow', pMinimap.ClockHook) - end - - if(pMinimapDB.coordinates) then - MinimapCoordinates:ClearAllPoints() - MinimapCoordinates:SetPoint(pMinimapDB.clock and 'BOTTOMRIGHT' or 'BOTTOM') - end - end) - - local mail = checkbox.new(self, 22, 'Mail', 'TOPLEFT', clock, 'BOTTOMLEFT', 0, -10) - mail:SetChecked(pMinimapDB.mail) - mail:SetScript('OnClick', function() - pMinimapDB.mail = not pMinimapDB.mail - - if(pMinimapDB.mail) then - MiniMapMailIcon:Hide() - MiniMapMailText:Show() - else - MiniMapMailIcon:Show() - MiniMapMailText:Hide() - end - end) - - local durability = checkbox.new(self, 22, 'Durability', 'LEFT', mail, 'RIGHT', 110, 0) - durability:SetChecked(pMinimapDB.durability) - durability:SetScript('OnClick', function() - pMinimapDB.durability = not pMinimapDB.durability - - if(pMinimapDB.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(pMinimapDB.bordercolors)) - end - end) -end - -local function background(self) - local borderoffset, borderoffsettext = slider.new(self, 'Thickness: '..pMinimapDB.borderoffset, 0, 10, 'TOPLEFT', self, 15, -15) - borderoffset:SetValueStep(1/2) - borderoffset:SetValue(pMinimapDB.borderoffset) - borderoffset:SetScript('OnValueChanged', function(self, value) - pMinimapDB.borderoffset = value - borderoffsettext:SetFormattedText('Thickness: %.1f', value) - Minimap:SetBackdrop({bgFile = [=[Interface\ChatFrame\ChatFrameBackground]=], insets = {top = -value, bottom = -value, left = -value, right = -value}}) - Minimap:SetBackdropColor(unpack(pMinimapDB.bordercolors)) - end) - - -- todo: color palette -end - -local function zone(self) - local zone = checkbox.new(self, 22, 'Zone Toggle', 'TOPLEFT', self, 10, -10) - zone:SetChecked(pMinimapDB.zone) - zone:SetScript('OnClick', function() - pMinimapDB.zone = not pMinimapDB.zone - - if(pMinimapDB.zone) then - MinimapZoneTextButton:Show() - else - MinimapZoneTextButton:Hide() - end - end) - - local zonepoint, zonepointtext = dropdown.new(self, 'Zone Point', 'TOPLEFT', zone, 'BOTTOMLEFT') - zonepoint.text = zonepointtext - zonepoint.text:SetText(pMinimapDB.zonepoint) - UIDropDownMenu_Initialize(zonepoint, dropZone) - - local zoneoffset, zoneoffsettext = slider.new(self, 'Zone Offset: '..pMinimapDB.zoneoffset, -45, 45, 'TOPRIGHT', self, -15, -15) - zoneoffset:SetValueStep(1) - zoneoffset:SetValue(pMinimapDB.zoneoffset) - zoneoffset:SetScript('OnValueChanged', function(self, value) - pMinimapDB.zoneoffset = value - zoneoffsettext:SetFormattedText('Zone Offset: %d', value) - - MinimapZoneTextButton:ClearAllPoints() - if(pMinimapDB.zonefixed) then - MinimapZoneTextButton:SetPoint(pMinimapDB.zonepoint == 'BOTTOM' and 'BOTTOMLEFT' or 'TOPLEFT', Minimap, 0, value) - MinimapZoneTextButton:SetPoint(pMinimapDB.zonepoint == 'BOTTOM' and 'BOTTOMRIGHT' or 'TOPRIGHT', Minimap, 0, value) - else - MinimapZoneTextButton:SetPoint(pMinimapDB.zonepoint, Minimap, 0, value) - MinimapZoneTextButton:SetWidth(Minimap:GetWidth() * 1.5) - end - end) - - local zonefixed = checkbox.new(self, 22, 'Zone Fixed Width', 'TOPLEFT', zonepoint, 'BOTTOMLEFT', 10, -10) - zonefixed:SetChecked(pMinimapDB.zonefixed) - zonefixed:SetScript('OnClick', function() - pMinimapDB.zonefixed = not pMinimapDB.zonefixed - - MinimapZoneTextButton:ClearAllPoints() - if(pMinimapDB.zonefixed) then - MinimapZoneTextButton:SetPoint(pMinimapDB.zonepoint == 'BOTTOM' and 'BOTTOMLEFT' or 'TOPLEFT', Minimap, 0, pMinimapDB.zoneoffset) - MinimapZoneTextButton:SetPoint(pMinimapDB.zonepoint == 'BOTTOM' and 'BOTTOMRIGHT' or 'TOPRIGHT', Minimap, 0, pMinimapDB.zoneoffset) - else - MinimapZoneTextButton:SetPoint(pMinimapDB.zonepoint, Minimap, 0, pMinimapDB.zoneoffset) - MinimapZoneTextButton:SetWidth(Minimap:GetWidth() * 1.5) - end - - zoneoffset:GetScript('OnValueChanged')(self, pMinimapDB.zoneoffset) - end) -end - -local function fonts(self) - local font, fonttext, fontcontainer = dropdown.new(self, 'Font', 'TOPLEFT', self, 10, -4) - font:SetWidth(180) - font.text = fonttext - font.text:SetText(pMinimapDB.font) - UIDropDownMenu_Initialize(font, dropFont) - - local fontflag, fontflagtext = dropdown.new(self, 'Font Flag', 'TOPLEFT', font, 'BOTTOMLEFT', 15, 0) - fontflag:SetWidth(180) - fontflag.text = fontflagtext - fontflag.text:SetText(pMinimapDB.fontflag) - UIDropDownMenu_Initialize(fontflag, dropFontflag) - - local fontsize, fontsizetext = slider.new(self, 'Font Size'..pMinimapDB.fontsize, 5, 18, 'TOPRIGHT', self, -15, -15) - fontsize:SetValueStep(1) - fontsize:SetValue(pMinimapDB.fontsize) - fontsize:SetScript('OnValueChanged', function(self, value) - pMinimapDB.fontsize = value - fontsizetext:SetFormattedText('Font Size: %d', value) - updateStrings() - end) -end - -local function spawn(name, func, parent) - local group = CreateFrame('Frame', nil, InterfaceOptionsFramePanelContainer) - group.name = name - group.parent = parent and 'pMinimap' - group.addonname = parent and 'pMinimap' - group:SetScript('OnShow', func) - group:HookScript('OnShow', function(self) self:SetScript('OnShow', nil) end) - - InterfaceOptions_AddCategory(group) - return group -end - -spawn('pMinimap', config):Hide() -spawn('Minimap', minimap, true) -spawn('Modules', modules, true) -spawn('Background', background, true) -spawn('Zone', zone, true) -spawn('Fonts', fonts, true) diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..172c817 --- /dev/null +++ b/LICENSE @@ -0,0 +1,6 @@ +Copyright (c) 2009, Adrian L Lange +All rights reserved. + +You're allowed to use this addon, free of monetary charge, +but you are not allowed to modify, alter, or redistribute +this addon without express, written permission of the author. \ No newline at end of file diff --git a/config/configuration.lua b/config/configuration.lua new file mode 100644 index 0000000..881b676 --- /dev/null +++ b/config/configuration.lua @@ -0,0 +1,161 @@ +local _, ns = ... + +local LSM = LibStub('LibSharedMedia-3.0') +local OBJECTS = { + Zone = 'MinimapZoneTextButton', + Difficulty = 'MiniMapInstanceDifficulty', + Battlefield = 'MiniMapBattlefieldFrame', + Dungeon = 'MiniMapLFGFrame', + Tracking = 'MiniMapTracking', + Clock = 'TimeManagerClockButton', + Mail = 'MiniMapMailFrame', +} + +function ns.UpdateObjects() + for name, setting in pairs(pMinimapDB.objects) do + local object = _G[OBJECTS[name]] + + if(setting.shown) then + object:SetAlpha(1) + object:EnableMouse(true) + else + object:SetAlpha(0) + object:EnableMouse(false) + end + + object:ClearAllPoints() + object:SetPoint(setting.point) + end +end + +function ns.UpdateCore() + Minimap:SetScale(pMinimapDB.minimap.scale) + Minimap:SetFrameStrata(pMinimapDB.minimap.strata) + Minimap:SetFrameLevel(pMinimapDB.minimap.level) + + local size = pMinimapDB.minimap.borderSize + Minimap:SetBackdrop({bgFile = [=[Interface\ChatFrame\ChatFrameBackground]=], insets = {left = -size, right = -size, top = -size, bottom = -size}}) + Minimap:SetBackdropColor(unpack(pMinimapDB.minimap.borderColors)) +end + +function ns.UpdateFont() + local font, size = LSM:Fetch('font', pMinimapDB.font.name), pMinimapDB.font.size + local flag = pMinimapDB.font.shadow .. (pMinimapDB.font.monochrome and 'MONOCHROME' or '') + + MinimapZoneText:SetFont(font, size, flag) + TimeManagerClockTicker:SetFont(font, size, flag) +end + + +local function AddConfig(name, func) + local group = CreateFrame('Frame', nil, InterfaceOptionsFramePanelContainer) + group.name = name + group:SetScript('OnShow', func) + group:HookScript('OnShow', function(self) self:SetScript('OnShow', nil) end) + + if(name ~= 'pMinimap') then + group.parent = 'pMinimap' + group.addonname = 'pMinimap' + end + + InterfaceOptions_AddCategory(group) +end + +AddConfig('pMinimap', function(self) + local scale = ns.slider(self, 'Scale', '%.1f', pMinimapDB.minimap.scale, 0.5, 2.5, 0.1, 'TOPLEFT', 30, -30) + scale:HookScript('OnValueChanged', function(frame, value) + pMinimapDB.minimap.scale = value + ns.UpdateCore() + end) + + local level = ns.slider(self, 'Frame Level', '%d', pMinimapDB.minimap.level, 0, 10, 1, 'TOPRIGHT', -30, -30) + level:HookScript('OnValueChanged', function(frame, value) + pMinimapDB.minimap.level = value + ns.UpdateCore() + end) + + local strata = ns.dropdown(self, 'Frame Strata', pMinimapDB.minimap.strata, {'HIGH', 'MEDIUM', 'LOW', 'BACKGROUND'}, + function(self) + pMinimapDB.minimap.strata = self.value + ns.UpdateCore() + end) + strata:SetPoint('TOPRIGHT', -10, -80) + + local background1 = self:CreateTexture(nil, 'BACKGROUND') + background1:SetPoint('TOPLEFT', scale, -20, 20) + background1:SetPoint('BOTTOMRIGHT', strata, 0, -5) + background1:SetTexture(0, 0, 0, 0.5) + + local borderSize = ns.slider(self, 'Border Thickness', '%d', pMinimapDB.minimap.borderSize, 0, 10, 1, 'LEFT', 30, 0) + borderSize:HookScript('OnValueChanged', function(frame, value) + pMinimapDB.minimap.borderSize = value + ns.UpdateCore() + end) + + local borderColor = ns.palette(self, 'Border Color', pMinimapDB.minimap.borderColors, 'RIGHT', -130, 0) + + local background2 = self:CreateTexture(nil, 'BACKGROUND') + background2:SetPoint('TOPLEFT', borderSize, -20, 20) + background2:SetPoint('BOTTOMRIGHT', borderColor, 120, -20) + background2:SetTexture(0, 0, 0, 0.5) + + ns.dropdown(self, 'Font', pMinimapDB.font.name, LSM:List('font'), + function(self) + pMinimapDB.font.name = self.value + ns.UpdateFont() + end + ):SetPoint('BOTTOMLEFT', 10, 20) + + local size = ns.slider(self, 'Font Size', '%d', pMinimapDB.font.size, 6, 36, 1, 'BOTTOMLEFT', 30, 80) + size:HookScript('OnValueChanged', function(frame, value) + pMinimapDB.font.size = value + ns.UpdateFont() + end) + + local shadow = ns.dropdown(self, 'Font Shadow', pMinimapDB.font.shadow, {'OUTLINE', 'THICKOUTLINE', 'NONE'}, + function(self) + pMinimapDB.font.shadow = self.value + ns.UpdateFont() + end) + shadow:SetPoint('BOTTOMRIGHT', -10, 20) + + local monochrome = ns.checkbox(self, 'Monochrome', 'BOTTOMRIGHT', -140, 75) + monochrome:SetChecked(pMinimapDB.font.monochrome) + monochrome:SetScript('OnClick', function() + pMinimapDB.font.monochrome = not pMinimapDB.font.monochrome + ns.UpdateFont() + end) + + local background3 = self:CreateTexture(nil, 'BACKGROUND') + background3:SetPoint('TOPLEFT', size, -20, 20) + background3:SetPoint('BOTTOMRIGHT', shadow, 0, -5) + background3:SetTexture(0, 0, 0, 0.5) +end) + +AddConfig('Objects', function(self) + local points = {'TOPLEFT', 'TOP', 'TOPRIGHT', 'LEFT', 'CENTER', 'RIGHT', 'BOTTOMLEFT', 'BOTTOM', 'BOTTOMRIGHT'} + local offset = 25 + + for name, setting in pairs(pMinimapDB.objects) do + local shown = ns.checkbox(self, name, 'TOPLEFT', 25, -offset) + shown:SetChecked(setting.shown) + shown:SetScript('OnClick', function() + setting.shown = not setting.shown + ns.UpdateObjects() + end) + + local position = ns.dropdown(self, name..' Position', setting.point, points, + function(self) + setting.point = self.value + ns.UpdateObjects() + end) + position:SetPoint('TOPRIGHT', -10, -offset) + + local background = self:CreateTexture(nil, 'BACKGROUND') + background:SetPoint('TOPLEFT', shown, -15, 15) + background:SetPoint('BOTTOMRIGHT', position) + background:SetTexture(0, 0, 0, 0.4) + + offset = offset + 60 + end +end) diff --git a/config/module.checkbox.lua b/config/module.checkbox.lua new file mode 100644 index 0000000..8be23f9 --- /dev/null +++ b/config/module.checkbox.lua @@ -0,0 +1,24 @@ +local _, ns = ... + +local NORMAL = [=[Interface\Buttons\UI-CheckBox-Up]=] +local PUSHED = [=[Interface\Buttons\UI-CheckBox-Down]=] +local CHECKED = [=[Interface\Buttons\UI-CheckBox-Check]=] +local HIGHLIGHT = [=[Interface\Buttons\UI-CheckBox-Highlight]=] + +function ns.checkbox(parent, str, ...) + local button = CreateFrame('CheckButton', nil, parent) + button:SetPoint(...) + button:SetSize(26, 26) + button:SetHitRectInsets(0, -100, 0, 0) + + button:SetNormalTexture(NORMAL) + button:SetPushedTexture(PUSHED) + button:SetCheckedTexture(CHECKED) + button:SetHighlightTexture(HIGHLIGHT) + + local label = button:CreateFontString(nil, 'ARTWORK', 'GameFontHighlight') + label:SetPoint('LEFT', button, 'RIGHT', 0, 1) + label:SetText(str) + + return button +end diff --git a/config/module.dropdown.lua b/config/module.dropdown.lua new file mode 100644 index 0000000..0687bce --- /dev/null +++ b/config/module.dropdown.lua @@ -0,0 +1,40 @@ +local _, ns = ... + +local GLUE = [=[Interface\Glues\CharacterCreate\CharacterCreate-LabelFrame]=] +local NORMAL = [=[Interface\ChatFrame\UI-ChatIcon-ScrollDown-Up]=] +local PUSHED = [=[Interface\ChatFrame\UI-ChatIcon-ScrollDown-Down]=] +local HIGHLIGHT = [=[Interface\Buttons\UI-Common-MouseHilight]=] + +function ns.dropdown(parent, str, default, values, func) + local container = CreateFrame('Button', nil, parent) + container:SetSize(180, 30) + + local frame = CreateFrame('Frame', 'pMinimapDropDown'..str, parent, 'UIDropDownMenuTemplate') + frame:SetPoint('TOPLEFT', container) + frame:EnableMouse(true) + + UIDropDownMenu_SetWidth(frame, 130) + UIDropDownMenu_Initialize(frame, function() + local info = UIDropDownMenu_CreateInfo() + info.notCheckable = true + info.func = function(self) + _G[frame:GetName()..'Text']:SetText(self.value) + func(self) + end + + for _, value in pairs(values) do + info.text = value + info.value = value + UIDropDownMenu_AddButton(info) + end + end) + + local label = container:CreateFontString(nil, 'BACKGROUND', 'GameFontNormalSmall') + label:SetPoint('BOTTOM', container, 'TOP') + label:SetText(str) + + _G['pMinimapDropDown'..str..'Text']:SetText(default) + + return container +end + diff --git a/config/module.palette.lua b/config/module.palette.lua new file mode 100644 index 0000000..5fb7c96 --- /dev/null +++ b/config/module.palette.lua @@ -0,0 +1,73 @@ +local _, ns = ... + +local SWATCH = [=[Interface\ChatFrame\ChatFrameColorSwatch]=] +local CHECKERS = [=[Tileset\Generic\Checkers]=] + +local function OnClick(self) + HideUIPanel(ColorPickerFrame) + + local origR, origG, origB, origA = unpack(pMinimapDB.minimap.borderColors) + ColorPickerFrame:SetFrameStrata('FULLSCREEN_DIALOG') + ColorPickerFrame.func = function() + local r, g, b = ColorPickerFrame:GetColorRGB() + local a = 1 - OpacitySliderFrame:GetValue() + self.swatch:SetVertexColor(r, g, b, a) + pMinimapDB.minimap.borderColors = {r, g, b, a} + ns.UpdateCore() + end + + ColorPickerFrame.hasOpacity = true + ColorPickerFrame.opacityFunc = function() + local r, g, b = ColorPickerFrame:GetColorRGB() + local a = 1 - OpacitySliderFrame:GetValue() + self.swatch:SetVertexColor(r, g, b, a) + pMinimapDB.minimap.borderColors = {r, g, b, a} + ns.UpdateCore() + end + + ColorPickerFrame.cancelFunc = function() + self.swatch:SetVertexColor(origR, origG, origB, origA) + pMinimapDB.minimap.borderColors = {origR, origG, origB, origA} + ns.UpdateCore() + end + + ColorPickerFrame.opacity = 1 - origA + ColorPickerFrame:SetColorRGB(origR, origG, origB) + ShowUIPanel(ColorPickerFrame) +end + +function ns.palette(parent, str, default, ...) + local container = CreateFrame('Button', nil, parent) + container:SetPoint(...) + container:SetSize(22, 22) + container:SetHitRectInsets(0, -100, 0, 0) + container:SetScript('OnClick', OnClick) + container:EnableMouse(true) + + local swatch = container:CreateTexture(nil, 'OVERLAY') + swatch:SetAllPoints() + swatch:SetTexture(SWATCH) + swatch:SetVertexColor(unpack(default)) + container.swatch = swatch + + local background = container:CreateTexture(nil, 'BACKGROUND') + background:SetPoint('CENTER') + background:SetSize(18, 18) + background:SetTexture(1, 1, 1) + + local checkers = container:CreateTexture(nil, 'BACKGROUND') + checkers:SetPoint('CENTER') + checkers:SetSize(17, 17) + checkers:SetTexture(CHECKERS) + checkers:SetTexCoord(0.25, 0, 0.5, 0.25) + checkers:SetDesaturated(true) + checkers:SetVertexColor(1, 1, 1, 0.75) + + local label = container:CreateFontString(nil, 'OVERLAY', 'GameFontHighlight') + label:SetPoint('LEFT', swatch, 'RIGHT', 2, 0) + label:SetHeight(24) + label:SetJustifyH('LEFT') + label:SetText(str) + + return container +end diff --git a/config/module.slider.lua b/config/module.slider.lua new file mode 100644 index 0000000..71a918b --- /dev/null +++ b/config/module.slider.lua @@ -0,0 +1,77 @@ +local _, ns = ... + +local THUMB = [=[Interface\Buttons\UI-SliderBar-Button-Horizontal]=] +local SLIDER = { + bgFile = [=[Interface\Buttons\UI-SliderBar-Background]=], + edgeFile = [=[Interface\Buttons\UI-SliderBar-Border]=], + edgeSize = 8, tile = true, tileSize = 8, + insets = {left = 3, right = 3, top = 6, bottom = 6}, +} + +local EDITBOX = { + bgFile = [=[Interface\ChatFrame\ChatFrameBackground]=], + edgeFile = [=[Interface\ChatFrame\ChatFrameBackground]=], + tile = true, edgeSize = 1, tileSize = 5, +} + +local function OnEnterPressed(self) + local value = tonumber(self:GetText()) + if(value) then + PlaySound('igMainMenuOptionCheckBoxOn') + self:GetParent():SetValue(value) + end +end + +local function OnEnter(self) + self:SetBackdropBorderColor(0.5, 0.5, 0.5, 1) +end + +local function OnLeave(self) + self:SetBackdropBorderColor(0.3, 0.3, 0.3, 0.8) +end + +function ns.slider(parent, str, formatting, cur, min, max, step, ...) + local slider = CreateFrame('Slider', nil, parent) + slider:SetPoint(...) + slider:SetSize(144, 16) + slider:SetBackdrop(SLIDER) + slider:SetThumbTexture(THUMB) + slider:SetOrientation('HORIZONTAL') + slider:SetMinMaxValues(min, max) + slider:SetValueStep(step) + slider:SetValue(cur) + + local left = slider:CreateFontString(nil, 'ARTWORK', 'GameFontHighlightSmall') + left:SetPoint('TOPLEFT', slider, 'BOTTOMLEFT', -4, 3) + left:SetText(min) + + local right = slider:CreateFontString(nil, 'ARTWORK', 'GameFontHighlightSmall') + right:SetPoint('TOPRIGHT', slider, 'BOTTOMRIGHT', 4, 3) + right:SetText(max) + + local label = slider:CreateFontString(nil, 'ARTWORK', 'GameFontNormal') + label:SetPoint('BOTTOM', slider, 'TOP') + label:SetText(str) + + local editbox = CreateFrame('EditBox', nil, slider) + editbox:SetPoint('TOP', slider, 'BOTTOM') + editbox:SetSize(40, 14) + editbox:SetAutoFocus(false) + editbox:SetFontObject(GameFontHighlightSmall) + editbox:SetBackdrop(EDITBOX) + editbox:SetBackdropColor(0, 0, 0, 0.5) + editbox:SetBackdropBorderColor(0.3, 0.3, 0.3, 0.8) + editbox:EnableMouse(true) + editbox:SetScript('OnEnter', OnEnter) + editbox:SetScript('OnLeave', OnLeave) + editbox:SetScript('OnEnterPressed', OnEnterPressed) + editbox:SetScript('OnEscapePressed', editbox.ClearFocus) + editbox:SetJustifyH('CENTER') + editbox:SetText(string.format(formatting, cur)) + + slider:SetScript('OnValueChanged', function(self, value) + editbox:SetText(string.format(formatting, value)) + end) + + return slider +end diff --git a/libs/CallbackHandler-1.0.lua b/libs/CallbackHandler-1.0.lua index 06befb3..5ad658f 100644 --- a/libs/CallbackHandler-1.0.lua +++ b/libs/CallbackHandler-1.0.lua @@ -1,4 +1,4 @@ ---[[ $Id: CallbackHandler-1.0.lua 504 2008-02-07 11:04:06Z nevcairiel $ ]] +--[[ $Id: CallbackHandler-1.0.lua 60548 2008-02-07 11:04:06Z nevcairiel $ ]] local MAJOR, MINOR = "CallbackHandler-1.0", 3 local CallbackHandler = LibStub:NewLibrary(MAJOR, MINOR) diff --git a/libs/tekKonfig/tekKonfig.xml b/libs/tekKonfig/tekKonfig.xml deleted file mode 100644 index dbbbb6b..0000000 --- a/libs/tekKonfig/tekKonfig.xml +++ /dev/null @@ -1,8 +0,0 @@ - -