flickerstreak@175
|
1 local addonName, addonTable = ...
|
flickerstreak@175
|
2 local ReAction = addonTable.ReAction
|
flickerstreak@159
|
3 local format = string.format
|
flickerstreak@159
|
4
|
flickerstreak@159
|
5 --
|
flickerstreak@159
|
6 -- VExitButton Button class
|
flickerstreak@159
|
7 --
|
flickerstreak@159
|
8 local Super = ReAction.Button
|
flickerstreak@159
|
9 local VExitButton = setmetatable( { }, { __index = Super } )
|
flickerstreak@159
|
10 ReAction.Button.VehicleExit = VExitButton
|
flickerstreak@159
|
11
|
flickerstreak@159
|
12 function VExitButton:New( idx, config, bar )
|
flickerstreak@159
|
13 local name = format("ReAction_%s_VehicleExit_%d",bar:GetName(),idx)
|
flickerstreak@159
|
14
|
flickerstreak@159
|
15 self = Super.New(self, name, config, bar, idx, "SecureFrameTemplate, ActionButtonTemplate", "Button")
|
flickerstreak@159
|
16
|
flickerstreak@159
|
17 -- frame setup
|
flickerstreak@159
|
18 local f = self:GetFrame()
|
flickerstreak@159
|
19 self.frames.icon:SetTexture("Interface\\Vehicles\\UI-Vehicles-Button-Exit-Up")
|
flickerstreak@159
|
20 self.frames.icon:SetTexCoord(0.140625, 0.859375, 0.140625, 0.859375)
|
flickerstreak@159
|
21
|
flickerstreak@159
|
22 -- attribute setup
|
flickerstreak@159
|
23 -- (none)
|
flickerstreak@159
|
24
|
flickerstreak@159
|
25 -- non secure scripts
|
flickerstreak@159
|
26 f:SetScript("OnClick", VehicleExit)
|
flickerstreak@159
|
27 f:SetScript("OnEnter", function(frame) GameTooltip_AddNewbieTip(frame, LEAVE_VEHICLE, 1.0, 1.0, 1.0, nil) end)
|
flickerstreak@159
|
28 f:SetScript("OnLeave", GameTooltip_Hide)
|
flickerstreak@159
|
29 f:SetScript("OnEvent", function(frame, evt, ...) self:OnEvent(evt,...) end)
|
flickerstreak@159
|
30
|
flickerstreak@159
|
31 -- event registration
|
flickerstreak@159
|
32 f:EnableMouse(true)
|
flickerstreak@159
|
33 f:RegisterForClicks("AnyUp")
|
flickerstreak@159
|
34 f:RegisterEvent("UPDATE_BINDINGS")
|
flickerstreak@159
|
35
|
flickerstreak@159
|
36 -- attach to skinner
|
flickerstreak@159
|
37 bar:SkinButton(self)
|
flickerstreak@159
|
38
|
flickerstreak@159
|
39 self:Refresh()
|
flickerstreak@159
|
40 self:UpdateHotkey()
|
flickerstreak@159
|
41
|
flickerstreak@159
|
42 return self
|
flickerstreak@159
|
43 end
|
flickerstreak@159
|
44
|
flickerstreak@159
|
45 function VExitButton:GetActionID()
|
flickerstreak@159
|
46 return 1
|
flickerstreak@159
|
47 end
|
flickerstreak@159
|
48
|
flickerstreak@159
|
49 function VExitButton:Refresh()
|
flickerstreak@159
|
50 Super.Refresh(self)
|
flickerstreak@159
|
51 -- it seems that setscale kills the texcoord, have to refresh it
|
flickerstreak@159
|
52 self.frames.icon:SetTexCoord(0.140625, 0.859375, 0.140625, 0.859375)
|
flickerstreak@159
|
53 end
|
flickerstreak@159
|
54
|
flickerstreak@159
|
55 function VExitButton:OnEvent(event, ...)
|
flickerstreak@159
|
56 if self[event] then
|
flickerstreak@159
|
57 self[event](self, event, ...)
|
flickerstreak@159
|
58 end
|
flickerstreak@159
|
59 end
|
flickerstreak@159
|
60
|
flickerstreak@159
|
61 function VExitButton:UPDATE_BINDINGS()
|
flickerstreak@159
|
62 self:UpdateHotkey()
|
flickerstreak@159
|
63 end
|