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