You've already forked GnomishVendorShrinker
And so it begins...
This commit is contained in:
30
tekKonfig/LibStub.lua
Normal file
30
tekKonfig/LibStub.lua
Normal file
@ -0,0 +1,30 @@
|
||||
-- LibStub is a simple versioning stub meant for use in Libraries. http://www.wowace.com/wiki/LibStub for more info
|
||||
-- LibStub is hereby placed in the Public Domain Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel, joshborke
|
||||
local LIBSTUB_MAJOR, LIBSTUB_MINOR = "LibStub", 2 -- NEVER MAKE THIS AN SVN REVISION! IT NEEDS TO BE USABLE IN ALL REPOS!
|
||||
local LibStub = _G[LIBSTUB_MAJOR]
|
||||
|
||||
if not LibStub or LibStub.minor < LIBSTUB_MINOR then
|
||||
LibStub = LibStub or {libs = {}, minors = {} }
|
||||
_G[LIBSTUB_MAJOR] = LibStub
|
||||
LibStub.minor = LIBSTUB_MINOR
|
||||
|
||||
function LibStub:NewLibrary(major, minor)
|
||||
assert(type(major) == "string", "Bad argument #2 to `NewLibrary' (string expected)")
|
||||
minor = assert(tonumber(strmatch(minor, "%d+")), "Minor version must either be a number or contain a number.")
|
||||
|
||||
local oldminor = self.minors[major]
|
||||
if oldminor and oldminor >= minor then return nil end
|
||||
self.minors[major], self.libs[major] = minor, self.libs[major] or {}
|
||||
return self.libs[major], oldminor
|
||||
end
|
||||
|
||||
function LibStub:GetLibrary(major, silent)
|
||||
if not self.libs[major] and not silent then
|
||||
error(("Cannot find a library instance of %q."):format(tostring(major)), 2)
|
||||
end
|
||||
return self.libs[major], self.minors[major]
|
||||
end
|
||||
|
||||
function LibStub:IterateLibraries() return pairs(self.libs) end
|
||||
setmetatable(LibStub, { __call = LibStub.GetLibrary })
|
||||
end
|
5
tekKonfig/tekKonfig.xml
Normal file
5
tekKonfig/tekKonfig.xml
Normal file
@ -0,0 +1,5 @@
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/">
|
||||
<Script file="LibStub.lua"/>
|
||||
<Script file="tekKonfigScroll.lua"/>
|
||||
<Script file="tekKonfigAboutPanel.lua"/>
|
||||
</Ui>
|
115
tekKonfig/tekKonfigAboutPanel.lua
Normal file
115
tekKonfig/tekKonfigAboutPanel.lua
Normal file
@ -0,0 +1,115 @@
|
||||
|
||||
local lib, oldminor = LibStub:NewLibrary("tekKonfig-AboutPanel", 5)
|
||||
if not lib then return end
|
||||
|
||||
|
||||
function lib.new(parent, addonname)
|
||||
local frame = CreateFrame("Frame", nil, InterfaceOptionsFramePanelContainer)
|
||||
frame.name, frame.parent, frame.addonname = parent and "About" or addonname, parent, addonname
|
||||
frame:Hide()
|
||||
frame:SetScript("OnShow", lib.OnShow)
|
||||
InterfaceOptions_AddCategory(frame)
|
||||
return frame
|
||||
end
|
||||
|
||||
|
||||
local editbox = CreateFrame('EditBox', nil, UIParent)
|
||||
editbox:Hide()
|
||||
editbox:SetAutoFocus(true)
|
||||
editbox:SetHeight(32)
|
||||
editbox:SetFontObject('GameFontHighlightSmall')
|
||||
lib.editbox = editbox
|
||||
|
||||
local left = editbox:CreateTexture(nil, "BACKGROUND")
|
||||
left:SetWidth(8) left:SetHeight(20)
|
||||
left:SetPoint("LEFT", -5, 0)
|
||||
left:SetTexture("Interface\\Common\\Common-Input-Border")
|
||||
left:SetTexCoord(0, 0.0625, 0, 0.625)
|
||||
|
||||
local right = editbox:CreateTexture(nil, "BACKGROUND")
|
||||
right:SetWidth(8) right:SetHeight(20)
|
||||
right:SetPoint("RIGHT", 0, 0)
|
||||
right:SetTexture("Interface\\Common\\Common-Input-Border")
|
||||
right:SetTexCoord(0.9375, 1, 0, 0.625)
|
||||
|
||||
local center = editbox:CreateTexture(nil, "BACKGROUND")
|
||||
center:SetHeight(20)
|
||||
center:SetPoint("RIGHT", right, "LEFT", 0, 0)
|
||||
center:SetPoint("LEFT", left, "RIGHT", 0, 0)
|
||||
center:SetTexture("Interface\\Common\\Common-Input-Border")
|
||||
center:SetTexCoord(0.0625, 0.9375, 0, 0.625)
|
||||
|
||||
editbox:SetScript("OnEscapePressed", editbox.ClearFocus)
|
||||
editbox:SetScript("OnEnterPressed", editbox.ClearFocus)
|
||||
editbox:SetScript("OnEditFocusLost", editbox.Hide)
|
||||
editbox:SetScript("OnEditFocusGained", editbox.HighlightText)
|
||||
editbox:SetScript("OnTextChanged", function(self)
|
||||
self:SetText(self:GetParent().val)
|
||||
self:HighlightText()
|
||||
end)
|
||||
|
||||
|
||||
function lib.OpenEditbox(self)
|
||||
editbox:SetText(self.val)
|
||||
editbox:SetParent(self)
|
||||
editbox:SetPoint("LEFT", self)
|
||||
editbox:SetPoint("RIGHT", self)
|
||||
editbox:Show()
|
||||
end
|
||||
|
||||
|
||||
local fields = {"Version", "Author", "X-Category", "X-License", "X-Email", "X-Website", "X-Credits"}
|
||||
local haseditbox = {["Version"] = true, ["X-Website"] = true, ["X-Email"] = true}
|
||||
local function HideTooltip() GameTooltip:Hide() end
|
||||
local function ShowTooltip(self)
|
||||
GameTooltip:SetOwner(self, "ANCHOR_TOPRIGHT")
|
||||
GameTooltip:SetText("Click and press Ctrl-C to copy")
|
||||
end
|
||||
function lib.OnShow(frame)
|
||||
local notes = GetAddOnMetadata(frame.addonname, "Notes")
|
||||
|
||||
local title = frame:CreateFontString(nil, "ARTWORK", "GameFontNormalLarge")
|
||||
title:SetPoint("TOPLEFT", 16, -16)
|
||||
title:SetText((frame.parent or frame.addonname).." - About")
|
||||
|
||||
local subtitle = frame:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
|
||||
subtitle:SetHeight(32)
|
||||
subtitle:SetPoint("TOPLEFT", title, "BOTTOMLEFT", 0, -8)
|
||||
subtitle:SetPoint("RIGHT", parent, -32, 0)
|
||||
subtitle:SetNonSpaceWrap(true)
|
||||
subtitle:SetJustifyH("LEFT")
|
||||
subtitle:SetJustifyV("TOP")
|
||||
subtitle:SetText(notes)
|
||||
|
||||
local anchor
|
||||
for _,field in pairs(fields) do
|
||||
local val = GetAddOnMetadata(frame.addonname, field)
|
||||
if val then
|
||||
local title = frame:CreateFontString(nil, "ARTWORK", "GameFontNormalSmall")
|
||||
title:SetWidth(75)
|
||||
if not anchor then title:SetPoint("TOPLEFT", subtitle, "BOTTOMLEFT", -2, -8)
|
||||
else title:SetPoint("TOPLEFT", anchor, "BOTTOMLEFT", 0, -6) end
|
||||
title:SetJustifyH("RIGHT")
|
||||
title:SetText(field:gsub("X%-", ""))
|
||||
|
||||
local detail = frame:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
|
||||
detail:SetPoint("LEFT", title, "RIGHT", 4, 0)
|
||||
detail:SetPoint("RIGHT", -16, 0)
|
||||
detail:SetJustifyH("LEFT")
|
||||
detail:SetText((haseditbox[field] and "|cff9999ff" or "").. val)
|
||||
|
||||
if haseditbox[field] then
|
||||
local button = CreateFrame("Button", nil, frame)
|
||||
button:SetAllPoints(detail)
|
||||
button.val = val
|
||||
button:SetScript("OnClick", lib.OpenEditbox)
|
||||
button:SetScript("OnEnter", ShowTooltip)
|
||||
button:SetScript("OnLeave", HideTooltip)
|
||||
end
|
||||
|
||||
anchor = title
|
||||
end
|
||||
end
|
||||
|
||||
frame:SetScript("OnShow", nil)
|
||||
end
|
80
tekKonfig/tekKonfigScroll.lua
Normal file
80
tekKonfig/tekKonfigScroll.lua
Normal file
@ -0,0 +1,80 @@
|
||||
|
||||
local lib, oldminor = LibStub:NewLibrary("tekKonfig-Scroll", 2)
|
||||
if not lib then return end
|
||||
|
||||
lib.bg = {
|
||||
edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
|
||||
tile = true,
|
||||
tileSize = 16,
|
||||
edgeSize = 12,
|
||||
insets = { left = 0, right = 0, top = 5, bottom = 5 }
|
||||
}
|
||||
|
||||
-- Creates a scrollbar
|
||||
-- Parent is required, offset and step are optional
|
||||
function lib.new(parent, offset, step)
|
||||
local f = CreateFrame("Slider", nil, parent)
|
||||
f:SetWidth(16)
|
||||
|
||||
f:SetPoint("TOPRIGHT", 0 - (offset or 0), -16 - (offset or 0))
|
||||
f:SetPoint("BOTTOMRIGHT", 0 - (offset or 0), 16 + (offset or 0))
|
||||
|
||||
local up = CreateFrame("Button", nil, f)
|
||||
up:SetPoint("BOTTOM", f, "TOP")
|
||||
up:SetWidth(16) up:SetHeight(16)
|
||||
up:SetNormalTexture("Interface\\Buttons\\UI-ScrollBar-ScrollUpButton-Up")
|
||||
up:SetPushedTexture("Interface\\Buttons\\UI-ScrollBar-ScrollUpButton-Down")
|
||||
up:SetDisabledTexture("Interface\\Buttons\\UI-ScrollBar-ScrollUpButton-Disabled")
|
||||
up:SetHighlightTexture("Interface\\Buttons\\UI-ScrollBar-ScrollUpButton-Highlight")
|
||||
|
||||
up:GetNormalTexture():SetTexCoord(1/4, 3/4, 1/4, 3/4)
|
||||
up:GetPushedTexture():SetTexCoord(1/4, 3/4, 1/4, 3/4)
|
||||
up:GetDisabledTexture():SetTexCoord(1/4, 3/4, 1/4, 3/4)
|
||||
up:GetHighlightTexture():SetTexCoord(1/4, 3/4, 1/4, 3/4)
|
||||
up:GetHighlightTexture():SetBlendMode("ADD")
|
||||
|
||||
up:SetScript("OnClick", function(self)
|
||||
local parent = self:GetParent()
|
||||
parent:SetValue(parent:GetValue() - (step or parent:GetHeight()/2))
|
||||
PlaySound("UChatScrollButton")
|
||||
end)
|
||||
|
||||
local down = CreateFrame("Button", nil, f)
|
||||
down:SetPoint("TOP", f, "BOTTOM")
|
||||
down:SetWidth(16) down:SetHeight(16)
|
||||
down:SetNormalTexture("Interface\\Buttons\\UI-ScrollBar-ScrollDownButton-Up")
|
||||
down:SetPushedTexture("Interface\\Buttons\\UI-ScrollBar-ScrollDownButton-Down")
|
||||
down:SetDisabledTexture("Interface\\Buttons\\UI-ScrollBar-ScrollDownButton-Disabled")
|
||||
down:SetHighlightTexture("Interface\\Buttons\\UI-ScrollBar-ScrollDownButton-Highlight")
|
||||
|
||||
down:GetNormalTexture():SetTexCoord(1/4, 3/4, 1/4, 3/4)
|
||||
down:GetPushedTexture():SetTexCoord(1/4, 3/4, 1/4, 3/4)
|
||||
down:GetDisabledTexture():SetTexCoord(1/4, 3/4, 1/4, 3/4)
|
||||
down:GetHighlightTexture():SetTexCoord(1/4, 3/4, 1/4, 3/4)
|
||||
down:GetHighlightTexture():SetBlendMode("ADD")
|
||||
|
||||
down:SetScript("OnClick", function(self)
|
||||
local parent = self:GetParent()
|
||||
parent:SetValue(parent:GetValue() + (step or parent:GetHeight()/2))
|
||||
PlaySound("UChatScrollButton")
|
||||
end)
|
||||
|
||||
f:SetThumbTexture("Interface\\Buttons\\UI-ScrollBar-Knob")
|
||||
local thumb = f:GetThumbTexture()
|
||||
thumb:SetWidth(16) thumb:SetHeight(24)
|
||||
thumb:SetTexCoord(1/4, 3/4, 1/8, 7/8)
|
||||
|
||||
f:SetScript("OnValueChanged", function(self, value)
|
||||
local min, max = self:GetMinMaxValues()
|
||||
if value == min then up:Disable() else up:Enable() end
|
||||
if value == max then down:Disable() else down:Enable() end
|
||||
end)
|
||||
|
||||
local border = CreateFrame("Frame", nil, f)
|
||||
border:SetPoint("TOPLEFT", up, -5, 5)
|
||||
border:SetPoint("BOTTOMRIGHT", down, 5, -3)
|
||||
border:SetBackdrop(lib.bg)
|
||||
border:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 0.5)
|
||||
|
||||
return f, up, down, border
|
||||
end
|
Reference in New Issue
Block a user