Mercurial > wow > devian
diff Dock.lua @ 47:eb7544afd77a
dock frame implementation
fixes to /dvc command
author | Nenue |
---|---|
date | Mon, 04 Jan 2016 05:42:44 -0500 |
parents | dcc57a7cabc9 |
children | 2bf7eb1844cb |
line wrap: on
line diff
--- a/Dock.lua Sun Jan 03 15:49:35 2016 -0500 +++ b/Dock.lua Mon Jan 04 05:42:44 2016 -0500 @@ -7,7 +7,7 @@ local D = LibStub("AceAddon-3.0"):GetAddon("Devian") local _G = _G -local db = DevianDB +local db local function Dock_MenuClick() end @@ -110,17 +110,73 @@ --- function D:UpdateDock() - local num_active, num_inactive = 0, 0 + local pad_offset = 12 + local draw_offset = pad_offset + for i = 1, #self.dock.buttons do + local d = self.dock.buttons[i] + d:SetPoint('TOPLEFT', DevianDock, 'TOPLEFT', draw_offset, 0) + draw_offset= draw_offset + d:GetWidth() + pad_offset + end - for id, ch in pairs(self.console) do - if not self.dock[id] then - self.dock[id] = self.dock:CreateTexture('DockButton'..id, 'OVERLAY') + self.dock:SetWidth(draw_offset) +end + +--- Dock interactions +function D.DockHighlight(beacon) + db = D.db + print('Dvn', 'dock mouse event', beacon) + local self = D.dock + local mouseOverDock + --for i, b in pairs(self.buttons) do + --print('polling', i, b:GetName()) + if self:IsMouseOver() then + mouseOverDock = true + end + + + if beacon and beacon:IsMouseOver() then + mouseOverDock = true + --print('mouse is over', i, b:GetName()) + + if not beacon.raised then + beacon.raised = true + local a = (db.dock_button_alpha_on - self:GetAlpha()) + local b = (db.dock_button_alpha_on-db.dock_button_alpha_off) + local dur = (a / b) * db.dock_button_fade_in + print(a, b, db.dock_button_fade_in, dur) + UIFrameFadeIn(beacon, dur,beacon:GetAlpha(),db.dock_button_alpha_on) + UIFrameFadeIn(beacon.caption, dur,beacon:GetAlpha(),1) end + elseif beacon.raised and beacon.index ~= db.current_channel then + beacon.raised = nil + local a = (self:GetAlpha() - db.dock_button_alpha_off) + local b = (db.dock_button_alpha_on-db.dock_button_alpha_off) + local dur = (a / b) * db.dock_button_fade_out + print(a, b, db.dock_button_fade_in, dur) + UIFrameFadeOut(beacon, dur,beacon:GetAlpha(),db.dock_button_alpha_off) + UIFrameFadeOut(beacon.caption, dur,beacon:GetAlpha(),0) + end - if ch.enabled then - num_active = num_active + 1 - else - num_inactive = num_inactive + 1 + --end + --end + if mouseOverDock then + if not self.raised then + print('rising') + self.raised = true + local a = (db.dock_alpha_on - self:GetAlpha()) + local b = (db.dock_alpha_on-db.dock_alpha_off) + local dur = (a / b) * db.dock_fade_in + print(a, b, db.dock_fade_in, dur) + UIFrameFadeIn(self, dur,self:GetAlpha(),db.dock_alpha_on) end + elseif self.raised then + print('dropping') + self.raised = nil + local a = (self:GetAlpha() - db.dock_alpha_off) + local b = (db.dock_alpha_on-db.dock_alpha_off) + local dur = (a / b) * db.dock_fade_out + print(a, b, db.dock_fade_in, dur) + UIFrameFadeOut(self, dur,self:GetAlpha(),db.dock_alpha_off) end + end \ No newline at end of file