Mercurial > wow > devian
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 |