comparison 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
comparison
equal deleted inserted replaced
46:dcc57a7cabc9 47:eb7544afd77a
5 -- Created: 12/26/2015 12:32 PM 5 -- Created: 12/26/2015 12:32 PM
6 -- Dock management functions 6 -- Dock management functions
7 7
8 local D = LibStub("AceAddon-3.0"):GetAddon("Devian") 8 local D = LibStub("AceAddon-3.0"):GetAddon("Devian")
9 local _G = _G 9 local _G = _G
10 local db = DevianDB 10 local db
11 11
12 local function Dock_MenuClick() end 12 local function Dock_MenuClick() end
13 13
14 local function Dock_MouseDown(self, button, up) 14 local function Dock_MouseDown(self, button, up)
15 end 15 end
108 end 108 end
109 109
110 110
111 --- 111 ---
112 function D:UpdateDock() 112 function D:UpdateDock()
113 local num_active, num_inactive = 0, 0 113 local pad_offset = 12
114 local draw_offset = pad_offset
115 for i = 1, #self.dock.buttons do
116 local d = self.dock.buttons[i]
117 d:SetPoint('TOPLEFT', DevianDock, 'TOPLEFT', draw_offset, 0)
118 draw_offset= draw_offset + d:GetWidth() + pad_offset
119 end
114 120
115 for id, ch in pairs(self.console) do 121 self.dock:SetWidth(draw_offset)
116 if not self.dock[id] then 122 end
117 self.dock[id] = self.dock:CreateTexture('DockButton'..id, 'OVERLAY') 123
124 --- Dock interactions
125 function D.DockHighlight(beacon)
126 db = D.db
127 print('Dvn', 'dock mouse event', beacon)
128 local self = D.dock
129 local mouseOverDock
130 --for i, b in pairs(self.buttons) do
131 --print('polling', i, b:GetName())
132 if self:IsMouseOver() then
133 mouseOverDock = true
134 end
135
136
137 if beacon and beacon:IsMouseOver() then
138 mouseOverDock = true
139 --print('mouse is over', i, b:GetName())
140
141 if not beacon.raised then
142 beacon.raised = true
143 local a = (db.dock_button_alpha_on - self:GetAlpha())
144 local b = (db.dock_button_alpha_on-db.dock_button_alpha_off)
145 local dur = (a / b) * db.dock_button_fade_in
146 print(a, b, db.dock_button_fade_in, dur)
147 UIFrameFadeIn(beacon, dur,beacon:GetAlpha(),db.dock_button_alpha_on)
148 UIFrameFadeIn(beacon.caption, dur,beacon:GetAlpha(),1)
118 end 149 end
150 elseif beacon.raised and beacon.index ~= db.current_channel then
151 beacon.raised = nil
152 local a = (self:GetAlpha() - db.dock_button_alpha_off)
153 local b = (db.dock_button_alpha_on-db.dock_button_alpha_off)
154 local dur = (a / b) * db.dock_button_fade_out
155 print(a, b, db.dock_button_fade_in, dur)
156 UIFrameFadeOut(beacon, dur,beacon:GetAlpha(),db.dock_button_alpha_off)
157 UIFrameFadeOut(beacon.caption, dur,beacon:GetAlpha(),0)
158 end
119 159
120 if ch.enabled then 160 --end
121 num_active = num_active + 1 161 --end
122 else 162 if mouseOverDock then
123 num_inactive = num_inactive + 1 163 if not self.raised then
164 print('rising')
165 self.raised = true
166 local a = (db.dock_alpha_on - self:GetAlpha())
167 local b = (db.dock_alpha_on-db.dock_alpha_off)
168 local dur = (a / b) * db.dock_fade_in
169 print(a, b, db.dock_fade_in, dur)
170 UIFrameFadeIn(self, dur,self:GetAlpha(),db.dock_alpha_on)
124 end 171 end
172 elseif self.raised then
173 print('dropping')
174 self.raised = nil
175 local a = (self:GetAlpha() - db.dock_alpha_off)
176 local b = (db.dock_alpha_on-db.dock_alpha_off)
177 local dur = (a / b) * db.dock_fade_out
178 print(a, b, db.dock_fade_in, dur)
179 UIFrameFadeOut(self, dur,self:GetAlpha(),db.dock_alpha_off)
125 end 180 end
181
126 end 182 end