Mercurial > wow > devian
diff Devian.lua @ 4:247118593c66
Console interface properly resides in XML, and has been fitted with a sizing widget.
Console frame can be moved by clicking and dragging anywhere, and can be minimized by right click.
Font paths point to the actual addon tree.
author | Nenue |
---|---|
date | Fri, 18 Dec 2015 19:48:10 -0500 |
parents | 77adceb8ebe4 |
children | ac644fc860cc |
line wrap: on
line diff
--- a/Devian.lua Fri Dec 18 04:10:09 2015 -0500 +++ b/Devian.lua Fri Dec 18 19:48:10 2015 -0500 @@ -5,10 +5,31 @@ end Devian = LibStub("AceAddon-3.0"):NewAddon("Devian", "AceConsole-3.0", "AceEvent-3.0") local D = _G.Devian -local db local STATE_LOW, STATE_HIGH = 1, 2 local PLAYER_REALM = UnitName("player") .. '-' .. GetRealmName() -local DEVIAN_FRAME = DevianDebugInfo +local DEVIAN_FRAME = DevianConsole +local cherry = false +if not DevianDB then + DevianDB = { + ['global'] = {[STATE_LOW] = {}, [STATE_HIGH] = {}}, + console = true, + dnd_status = true, + dnd_message = "Debugging. Your messages may get eaten.", + x = 100, + y = -150, + height = 500, + width = 600, + } + cherry = "This is probably the first time, so:\n /dvn 2 to save your regular addon list\n /dvn 1 to save your development addon list\n /dvn to switch between the two\n /dvc to toggle print() frame" +end +local db = DevianDB + +function D:SavePos(x,y) + db.y = DEVIAN_FRAME:GetTop() + db.x = DEVIAN_FRAME:GetLeft() + db.width = DEVIAN_FRAME:GetWidth() + db.height = DEVIAN_FRAME:GetHeight() +end local ScanAddOnList = function(args) local list_state @@ -86,15 +107,13 @@ -- Debug info local function CreateMessenger() - -- TODO: throw this into an XML file - if not DEVIAN_FRAME then - DEVIAN_FRAME = CreateFrame('ScrollingMessageFrame', DEVIAN_FRAME, UIParent) - if not db.console then - DEVIAN_FRAME:Hide() - end + if db.console == true then + DEVIAN_FRAME:Show() end + local f = DEVIAN_FRAME + --[[ f.backdrop = f:CreateTexture('backdrop', 'BACKGROUND') f.backdrop:SetTexture(1,1,1,1) f.backdrop:SetGradient('HORIZONTAL', 0.2, 0.2, 0.2, 1, 1, 1) @@ -105,30 +124,20 @@ f:EnableMouseWheel(true) f:EnableKeyboard(true) f:SetScript('OnMouseWheel', function (self, delta) - local up = delta > 0 - if IsControlKeyDown() then - if up then self:ScrollToTop() - else self:ScrollToBottom() end - elseif IsShiftKeyDown() then - if up then self:PageUp() - else self:PageDown() end - else - if up then self:ScrollUp() - else self:ScrollDown() end - end end) f:ScrollToBottom() f:SetMaxLines(500) - f:SetInsertMode('BOTTOM') - f:SetPoint('BOTTOMLEFT', GENERAL_CHAT_DOCK, 'TOPLEFT', 0, 25) - f:SetPoint('TOPRIGHT', UIParent, 'TOP', 0, 0- PlayerFrame:GetHeight()) - f:SetFrameStrata('BACKGROUND') - f:SetFont([[Interface\Addons\Turok\Media\font\SourceCodePro-Regular.ttf]], 14, 'NONE') + --]] + f.console:SetInsertMode('BOTTOM') + f:SetPoint('CENTER', UIParent, 'CENTER', db.x, db.y) + f:SetSize(db.width, db.height) + f:Lower() + f.console:SetFont([[Interface\Addons\Turok\Media\font\SourceCodePro-Regular.ttf]], 13, 'NONE') - f:SetFading(false) - f:SetTimeVisible(2147483647) - f:SetJustifyH('LEFT') + f.console:SetFading(false) + f.console:SetTimeVisible(2147483647) + --f:SetJustifyH('LEFT') D.debug_init = true @@ -177,7 +186,7 @@ table.insert(buffer, var) end - DEVIAN_FRAME:AddMessage(table.concat(buffer, ' ')) + DEVIAN_FRAME.console:AddMessage(table.concat(buffer, ' ')) table.wipe(buffer) end @@ -192,18 +201,6 @@ function D:OnInitialize() - local cherry = false - if not DevianDB then - DevianDB = { - ['global'] = {[STATE_LOW] = {}, [STATE_HIGH] = {}}, - console = true, - dnd_status = true, - dnd_message = "Debugging. Your messages may get eaten.", - } - cherry = "This is probably the first time, so:\n /dvn 2 to save your regular addon list\n /dvn 1 to save your development addon list\n /dvn to switch between the two\n /dvc to toggle print() frame" - end - db = DevianDB - if not db[PLAYER_REALM] then db[PLAYER_REALM] = {[STATE_LOW] = {}, [STATE_HIGH] = {} } if not cherry then