|
Tercio@11
|
1
|
|
Tercio@11
|
2 local DF = _G ["DetailsFramework"]
|
|
Tercio@20
|
3 if (not DF or not DetailsFrameworkCanLoad) then
|
|
Tercio@20
|
4 return
|
|
Tercio@20
|
5 end
|
|
Tercio@20
|
6
|
|
Tercio@11
|
7 local SharedMedia = LibStub:GetLibrary("LibSharedMedia-3.0")
|
|
Tercio@11
|
8 local _
|
|
Tercio@11
|
9 --lua locals
|
|
Tercio@11
|
10 local _math_floor= math.floor
|
|
Tercio@11
|
11 local _type = type
|
|
Tercio@11
|
12 local _math_abs = math.abs
|
|
Tercio@11
|
13 local _tinsert = tinsert
|
|
Tercio@11
|
14 local _unpack = unpack
|
|
Tercio@11
|
15 local _ipairs = ipairs
|
|
Tercio@11
|
16 local _table_wipe = table.wipe
|
|
Tercio@11
|
17 local _table_insert = table.insert
|
|
Tercio@11
|
18 local _math_max = math.max
|
|
Tercio@11
|
19 --api locals
|
|
Tercio@11
|
20 local _GetScreenWidth = GetScreenWidth
|
|
Tercio@11
|
21 local _GetScreenHeight = GetScreenHeight
|
|
Tercio@11
|
22 local _UIParent = UIParent
|
|
Tercio@11
|
23 local _CreateFrame = CreateFrame
|
|
Tercio@11
|
24
|
|
Tercio@20
|
25 local version = 2
|
|
Tercio@11
|
26
|
|
Tercio@11
|
27 function DF:CreateCoolTip()
|
|
Tercio@11
|
28
|
|
Tercio@11
|
29 ----------------------------------------------------------------------
|
|
Tercio@11
|
30 --> Cooltip Startup
|
|
Tercio@11
|
31 ----------------------------------------------------------------------
|
|
Tercio@11
|
32
|
|
Tercio@55
|
33 --> if a cooltip is already created with a higher version
|
|
Tercio@11
|
34 if (_G.GameCooltip2 and _G.GameCooltip2.version >= version) then
|
|
Tercio@11
|
35 return
|
|
Tercio@11
|
36 end
|
|
Tercio@11
|
37
|
|
Tercio@55
|
38 --> initialize
|
|
Tercio@55
|
39 local CoolTip = {
|
|
Tercio@55
|
40 version = version
|
|
Tercio@55
|
41 }
|
|
Tercio@11
|
42 _G.GameCooltip2 = CoolTip
|
|
Tercio@11
|
43
|
|
Tercio@55
|
44 --> containers
|
|
Tercio@11
|
45 CoolTip.LeftTextTable = {}
|
|
Tercio@11
|
46 CoolTip.LeftTextTableSub = {}
|
|
Tercio@11
|
47 CoolTip.RightTextTable = {}
|
|
Tercio@11
|
48 CoolTip.RightTextTableSub = {}
|
|
Tercio@11
|
49 CoolTip.LeftIconTable = {}
|
|
Tercio@11
|
50 CoolTip.LeftIconTableSub = {}
|
|
Tercio@11
|
51 CoolTip.RightIconTable = {}
|
|
Tercio@11
|
52 CoolTip.RightIconTableSub = {}
|
|
Tercio@11
|
53 CoolTip.Banner = {false, false, false}
|
|
Tercio@11
|
54 CoolTip.TopIconTableSub = {}
|
|
Tercio@11
|
55 CoolTip.StatusBarTable = {}
|
|
Tercio@11
|
56 CoolTip.StatusBarTableSub = {}
|
|
Tercio@11
|
57 CoolTip.WallpaperTable = {}
|
|
Tercio@11
|
58 CoolTip.WallpaperTableSub = {}
|
|
Tercio@11
|
59
|
|
Tercio@20
|
60 CoolTip.PopupFrameTable = {}
|
|
Tercio@20
|
61
|
|
Tercio@11
|
62 CoolTip.FunctionsTableMain = {} --> menus
|
|
Tercio@11
|
63 CoolTip.FunctionsTableSub = {} --> menus
|
|
Tercio@11
|
64 CoolTip.ParametersTableMain = {} --> menus
|
|
Tercio@11
|
65 CoolTip.ParametersTableSub = {} --> menus
|
|
Tercio@11
|
66
|
|
Tercio@11
|
67 CoolTip.FixedValue = nil --> menus
|
|
Tercio@11
|
68 CoolTip.SelectedIndexMain = nil --> menus
|
|
Tercio@11
|
69 CoolTip.SelectedIndexSec = {} --> menus
|
|
Tercio@11
|
70
|
|
Tercio@11
|
71 --options table
|
|
Tercio@11
|
72 CoolTip.OptionsList = {
|
|
Tercioo@30
|
73 ["RightTextMargin"] = true,
|
|
Tercio@11
|
74 ["IconSize"] = true,
|
|
Tercio@11
|
75 ["HeightAnchorMod"] = true,
|
|
Tercio@11
|
76 ["WidthAnchorMod"] = true,
|
|
Tercio@11
|
77 ["MinWidth"] = true,
|
|
Tercio@11
|
78 ["FixedWidth"] = true,
|
|
Tercio@11
|
79 ["FixedHeight"] = true,
|
|
Tercio@11
|
80 ["FixedWidthSub"] = true,
|
|
Tercio@11
|
81 ["FixedHeightSub"] = true,
|
|
Tercio@11
|
82 ["AlignAsBlizzTooltip"] = true,
|
|
Tercio@11
|
83 ["IgnoreSubMenu"] = true,
|
|
Tercio@11
|
84 ["IgnoreButtonAutoHeight"] = true,
|
|
Tercio@11
|
85 ["TextHeightMod"] = true,
|
|
Tercio@11
|
86 ["ButtonHeightMod"] = true,
|
|
Tercio@11
|
87 ["ButtonHeightModSub"] = true,
|
|
Tercio@11
|
88 ["YSpacingMod"] = true,
|
|
Tercio@11
|
89 ["YSpacingModSub"] = true,
|
|
Tercio@11
|
90 ["ButtonsYMod"] = true,
|
|
Tercio@11
|
91 ["ButtonsYModSub"] = true,
|
|
Tercio@11
|
92 ["IconHeightMod"] = true,
|
|
Tercio@11
|
93 ["StatusBarHeightMod"] = true,
|
|
Tercio@11
|
94 ["StatusBarTexture"] = true,
|
|
Tercio@11
|
95 ["TextSize"] = true,
|
|
Tercio@11
|
96 ["TextFont"] = true,
|
|
Tercio@11
|
97 ["TextColor"] = true,
|
|
Tercio@11
|
98 ["TextColorRight"] = true,
|
|
Tercio@11
|
99 ["TextShadow"] = true,
|
|
Tercio@11
|
100 ["LeftTextWidth"] = true,
|
|
Tercio@11
|
101 ["RightTextWidth"] = true,
|
|
Tercio@11
|
102 ["LeftTextHeight"] = true,
|
|
Tercio@11
|
103 ["RightTextHeight"] = true,
|
|
Tercio@11
|
104 ["NoFade"] = true,
|
|
Tercio@11
|
105 ["MyAnchor"] = true,
|
|
Tercio@11
|
106 ["Anchor"] = true,
|
|
Tercio@11
|
107 ["RelativeAnchor"] = true,
|
|
Tercio@11
|
108 ["NoLastSelectedBar"] = true,
|
|
Tercio@11
|
109 ["SubMenuIsTooltip"] = true,
|
|
Tercio@11
|
110 ["LeftBorderSize"] = true,
|
|
Tercio@11
|
111 ["RightBorderSize"] = true,
|
|
Tercio@11
|
112 ["HeighMod"] = true,
|
|
Tercio@11
|
113 ["HeighModSub"] = true,
|
|
Tercio@11
|
114 ["IconBlendMode"] = true,
|
|
Tercio@11
|
115 ["IconBlendModeHover"] = true,
|
|
Tercio@11
|
116 ["SubFollowButton"] = true,
|
|
Tercio@11
|
117 ["IgnoreArrows"] = true,
|
|
Tercio@11
|
118 ["SelectedTopAnchorMod"] = true,
|
|
Tercio@11
|
119 ["SelectedBottomAnchorMod"] = true,
|
|
Tercio@11
|
120 ["SelectedLeftAnchorMod"] = true,
|
|
Tercio@11
|
121 ["SelectedRightAnchorMod"] = true,
|
|
Tercio@11
|
122 }
|
|
Tercio@11
|
123
|
|
Tercio@58
|
124 CoolTip.AliasList = {
|
|
Tercio@58
|
125 ["VerticalOffset"] = "ButtonsYMod",
|
|
Tercio@58
|
126 ["VerticalPadding"] = "YSpacingMod",
|
|
Tercio@58
|
127 ["LineHeightSizeOffset"] = "ButtonHeightMod",
|
|
Tercio@58
|
128 ["FrameHeightSizeOffset"] = "HeighMod",
|
|
Tercio@58
|
129
|
|
Tercio@58
|
130 }
|
|
Tercio@58
|
131
|
|
Tercio@11
|
132 CoolTip.OptionsTable = {}
|
|
Tercio@11
|
133
|
|
Tercio@11
|
134 --cprops
|
|
Tercio@11
|
135 CoolTip.Indexes = 0 --> amount of lines current on shown
|
|
Tercio@11
|
136 CoolTip.IndexesSub = {} --> amount of lines current on shown
|
|
Tercio@11
|
137 CoolTip.HaveSubMenu = false --> amount of lines current on shown
|
|
Tercio@11
|
138 CoolTip.SubIndexes = 0 --> amount of lines current on shown on sub menu
|
|
Tercio@11
|
139 CoolTip.Type = 1 --> 1 tooltip 2 tooltip with bars 3 menu 4 menu + submenus
|
|
Tercio@11
|
140 CoolTip.Host = nil --> frame to anchor
|
|
Tercio@11
|
141 CoolTip.LastSize = 0 --> last size
|
|
Tercio@11
|
142
|
|
Tercio@11
|
143 CoolTip.LastIndex = 0
|
|
Tercio@11
|
144
|
|
Tercio@11
|
145 CoolTip.internal_x_mod = 0
|
|
Tercio@11
|
146 CoolTip.internal_y_mod = 0
|
|
Tercio@11
|
147 CoolTip.overlap_checked = false
|
|
Tercio@11
|
148
|
|
Tercio@11
|
149 --defaults
|
|
Tercio@11
|
150 CoolTip.default_height = 20
|
|
Tercio@11
|
151 CoolTip.default_text_size = 10.5
|
|
Tercio@11
|
152 CoolTip.default_text_font = "GameFontHighlight"
|
|
Tercio@11
|
153
|
|
Tercio@11
|
154 CoolTip.selected_anchor = {}
|
|
Tercio@11
|
155 CoolTip.selected_anchor.left = 2
|
|
Tercio@11
|
156 CoolTip.selected_anchor.right = 0
|
|
Tercio@11
|
157 CoolTip.selected_anchor.top = 0
|
|
Tercio@11
|
158 CoolTip.selected_anchor.bottom = 0
|
|
Tercio@11
|
159
|
|
Tercio@11
|
160 CoolTip._default_font = SharedMedia:Fetch ("font", "Friz Quadrata TT")
|
|
Tercio@11
|
161
|
|
Tercio@55
|
162 --> create frames
|
|
Tercio@11
|
163
|
|
Tercio@11
|
164 --> main frame
|
|
Tercio@11
|
165 local frame1
|
|
Tercio@11
|
166 if (not GameCooltipFrame1) then
|
|
Tercio@11
|
167 frame1 = CreateFrame ("Frame", "GameCooltipFrame1", UIParent, "DFCooltipMainFrameTemplate")
|
|
Tercio@11
|
168 tinsert (UISpecialFrames, "GameCooltipFrame1")
|
|
Tercio@11
|
169 DF:CreateFlashAnimation (frame1)
|
|
Tercio@40
|
170
|
|
Tercio@40
|
171 if (DF.CreateBorder) then
|
|
Tercio@40
|
172 DF:CreateBorder (frame1, .3, .1, .03)
|
|
Tercio@40
|
173 end
|
|
Tercio@11
|
174 else
|
|
Tercio@11
|
175 frame1 = GameCooltipFrame1
|
|
Tercio@11
|
176 end
|
|
Tercio@11
|
177
|
|
Tercio@11
|
178 GameCooltipFrame1_FrameBackgroundCenter:SetTexture (DF.folder .. "cooltip_background")
|
|
Tercio@11
|
179 GameCooltipFrame1_FrameBackgroundCenter:SetTexCoord (0.10546875, 0.89453125, 0, 1)
|
|
Tercio@11
|
180 GameCooltipFrame1_FrameBackgroundLeft:SetTexture (DF.folder .. "cooltip_background")
|
|
Tercio@11
|
181 GameCooltipFrame1_FrameBackgroundLeft:SetTexCoord (0, 0.103515625, 0, 1)
|
|
Tercio@11
|
182 GameCooltipFrame1_FrameBackgroundRight:SetTexture (DF.folder .. "cooltip_background")
|
|
Tercio@11
|
183 GameCooltipFrame1_FrameBackgroundRight:SetTexCoord (0.896484375, 1, 0, 1)
|
|
Tercio@11
|
184
|
|
Tercio@11
|
185 --> secondary frame
|
|
Tercio@11
|
186 local frame2
|
|
Tercio@11
|
187 if (not GameCooltipFrame2) then
|
|
Tercio@11
|
188 frame2 = CreateFrame ("Frame", "GameCooltipFrame2", UIParent, "DFCooltipMainFrameTemplate")
|
|
Tercio@11
|
189 tinsert (UISpecialFrames, "GameCooltipFrame2")
|
|
Tercio@11
|
190 DF:CreateFlashAnimation (frame2)
|
|
Tercio@11
|
191 frame2:SetClampedToScreen (true)
|
|
Tercio@40
|
192
|
|
Tercio@40
|
193 if (DF.CreateBorder) then
|
|
Tercio@40
|
194 DF:CreateBorder (frame2, .3, .1, .03)
|
|
Tercio@40
|
195 end
|
|
Tercio@11
|
196 else
|
|
Tercio@11
|
197 frame2 = GameCooltipFrame2
|
|
Tercio@11
|
198 end
|
|
Tercio@11
|
199
|
|
Tercio@40
|
200 frame2:SetPoint ("bottomleft", frame1, "bottomright", 4, 0)
|
|
Tercio@11
|
201
|
|
Tercio@11
|
202 GameCooltipFrame2_FrameBackgroundCenter:SetTexture (DF.folder .. "cooltip_background")
|
|
Tercio@11
|
203 GameCooltipFrame2_FrameBackgroundCenter:SetTexCoord (0.10546875, 0.89453125, 0, 1)
|
|
Tercio@11
|
204 GameCooltipFrame2_FrameBackgroundLeft:SetTexture (DF.folder .. "cooltip_background")
|
|
Tercio@11
|
205 GameCooltipFrame2_FrameBackgroundLeft:SetTexCoord (0, 0.103515625, 0, 1)
|
|
Tercio@11
|
206 GameCooltipFrame2_FrameBackgroundRight:SetTexture (DF.folder .. "cooltip_background")
|
|
Tercio@11
|
207 GameCooltipFrame2_FrameBackgroundRight:SetTexCoord (0.896484375, 1, 0, 1)
|
|
Tercio@11
|
208
|
|
Tercio@11
|
209 CoolTip.frame1 = frame1
|
|
Tercio@11
|
210 CoolTip.frame2 = frame2
|
|
Tercio@26
|
211 DF:FadeFrame (frame1, 0)
|
|
Tercio@26
|
212 DF:FadeFrame (frame2, 0)
|
|
Tercio@11
|
213
|
|
Tercio@55
|
214 --> line container
|
|
Tercio@11
|
215 frame1.Lines = {}
|
|
Tercio@11
|
216 frame2.Lines = {}
|
|
Tercio@11
|
217
|
|
Tercio@11
|
218 ----------------------------------------------------------------------
|
|
Tercio@11
|
219 --> Title Function
|
|
Tercio@11
|
220 ----------------------------------------------------------------------
|
|
Tercio@11
|
221
|
|
Tercio@11
|
222 function CoolTip:SetTitle (_f, text)
|
|
Tercio@11
|
223 if (_f == 1) then
|
|
Tercio@11
|
224 CoolTip.title1 = true
|
|
Tercio@11
|
225 CoolTip.title_text = text
|
|
Tercio@11
|
226 end
|
|
Tercio@11
|
227 end
|
|
Tercio@11
|
228
|
|
Tercio@11
|
229 function CoolTip:SetTitleAnchor (_f, _anchor, ...)
|
|
Tercio@11
|
230 _anchor = string.lower (_anchor)
|
|
Tercio@11
|
231 if (_f == 1) then
|
|
Tercio@11
|
232 self.frame1.titleIcon:ClearAllPoints()
|
|
Tercio@11
|
233 self.frame1.titleText:ClearAllPoints()
|
|
Tercio@11
|
234
|
|
Tercio@11
|
235 if (_anchor == "left") then
|
|
Tercio@11
|
236 self.frame1.titleIcon:SetPoint ("left", frame1, "left", ...)
|
|
Tercio@11
|
237 self.frame1.titleText:SetPoint ("left", frame1.titleIcon, "right")
|
|
Tercio@11
|
238
|
|
Tercio@11
|
239 elseif (_anchor == "center") then
|
|
Tercio@11
|
240 self.frame1.titleIcon:SetPoint ("center", frame1, "center")
|
|
Tercio@11
|
241 self.frame1.titleIcon:SetPoint ("bottom", frame1, "top")
|
|
Tercio@11
|
242 self.frame1.titleText:SetPoint ("left", frame1.titleIcon, "right")
|
|
Tercio@11
|
243 self.frame1.titleText:SetText ("TESTE")
|
|
Tercio@11
|
244
|
|
Tercio@11
|
245 self.frame1.titleText:Show()
|
|
Tercio@11
|
246 self.frame1.titleIcon:Show()
|
|
Tercio@11
|
247
|
|
Tercio@11
|
248 elseif (_anchor == "right") then
|
|
Tercio@11
|
249 self.frame1.titleIcon:SetPoint ("right", frame1, "right", ...)
|
|
Tercio@11
|
250 self.frame1.titleText:SetPoint ("right", frame1.titleIcon, "left")
|
|
Tercio@11
|
251
|
|
Tercio@11
|
252 end
|
|
Tercio@11
|
253 elseif (_f == 2) then
|
|
Tercio@11
|
254 self.frame2.titleIcon:ClearAllPoints()
|
|
Tercio@11
|
255 self.frame2.titleText:ClearAllPoints()
|
|
Tercio@11
|
256 if (_anchor == "left") then
|
|
Tercio@11
|
257 self.frame2.titleIcon:SetPoint ("left", frame2, "left", ...)
|
|
Tercio@11
|
258 self.frame2.titleText:SetPoint ("left", frame2.titleIcon, "right")
|
|
Tercio@11
|
259 elseif (_anchor == "center") then
|
|
Tercio@11
|
260 self.frame2.titleIcon:SetPoint ("center", frame2, "center", ...)
|
|
Tercio@11
|
261 self.frame2.titleText:SetPoint ("left", frame2.titleIcon, "right")
|
|
Tercio@11
|
262 elseif (_anchor == "right") then
|
|
Tercio@11
|
263 self.frame2.titleIcon:SetPoint ("right", frame2, "right", ...)
|
|
Tercio@11
|
264 self.frame2.titleText:SetPoint ("right", frame2.titleIcon, "left")
|
|
Tercio@11
|
265 end
|
|
Tercio@11
|
266 end
|
|
Tercio@11
|
267 end
|
|
Tercio@11
|
268
|
|
Tercio@11
|
269 ----------------------------------------------------------------------
|
|
Tercio@11
|
270 --> Button Hide and Show Functions
|
|
Tercio@11
|
271 ----------------------------------------------------------------------
|
|
Tercio@11
|
272
|
|
Tercio@11
|
273 local elapsedTime = 0
|
|
Tercio@11
|
274
|
|
Tercio@11
|
275 CoolTip.mouseOver = false
|
|
Tercio@11
|
276 CoolTip.buttonClicked = false
|
|
Tercio@11
|
277
|
|
Tercio@11
|
278 frame1:SetScript ("OnEnter", function (self)
|
|
Tercio@55
|
279 --> is cooltip a menu?
|
|
Tercio@55
|
280 if (CoolTip.Type ~= 1 and CoolTip.Type ~= 2) then
|
|
Tercio@11
|
281 CoolTip.active = true
|
|
Tercio@11
|
282 CoolTip.mouseOver = true
|
|
Tercio@20
|
283 CoolTip.had_interaction = true
|
|
Tercio@11
|
284 self:SetScript ("OnUpdate", nil)
|
|
Tercio@26
|
285 DF:FadeFrame (self, 0)
|
|
Tercio@55
|
286
|
|
Tercio@11
|
287 if (CoolTip.sub_menus) then
|
|
Tercio@26
|
288 DF:FadeFrame (frame2, 0)
|
|
Tercio@11
|
289 end
|
|
Tercio@11
|
290 end
|
|
Tercio@11
|
291 end)
|
|
Tercio@11
|
292
|
|
Tercio@11
|
293 frame2:SetScript ("OnEnter", function (self)
|
|
Tercio@11
|
294 if (CoolTip.OptionsTable.SubMenuIsTooltip) then
|
|
Tercio@11
|
295 return CoolTip:Close()
|
|
Tercio@11
|
296 end
|
|
Tercio@11
|
297 if (CoolTip.Type ~= 1 and CoolTip.Type ~= 2) then
|
|
Tercio@11
|
298 CoolTip.active = true
|
|
Tercio@11
|
299 CoolTip.mouseOver = true
|
|
Tercio@20
|
300 CoolTip.had_interaction = true
|
|
Tercio@11
|
301 self:SetScript ("OnUpdate", nil)
|
|
Tercio@26
|
302 DF:FadeFrame (self, 0)
|
|
Tercio@26
|
303 DF:FadeFrame (frame1, 0)
|
|
Tercio@11
|
304 end
|
|
Tercio@11
|
305 end)
|
|
Tercio@11
|
306
|
|
Tercio@11
|
307 local OnLeaveUpdateFrame1 = function (self, elapsed)
|
|
Tercio@11
|
308 elapsedTime = elapsedTime+elapsed
|
|
Tercio@11
|
309 if (elapsedTime > 0.7) then
|
|
Tercio@11
|
310 if (not CoolTip.active and not CoolTip.buttonClicked and self == CoolTip.Host) then
|
|
Tercio@26
|
311 DF:FadeFrame (self, 1)
|
|
Tercio@26
|
312 DF:FadeFrame (frame2, 1)
|
|
Tercio@11
|
313 elseif (not CoolTip.active) then
|
|
Tercio@26
|
314 DF:FadeFrame (self, 1)
|
|
Tercio@26
|
315 DF:FadeFrame (frame2, 1)
|
|
Tercio@11
|
316 end
|
|
Tercio@11
|
317 self:SetScript ("OnUpdate", nil)
|
|
Tercio@11
|
318 frame2:SetScript ("OnUpdate", nil)
|
|
Tercio@11
|
319 end
|
|
Tercio@11
|
320 end
|
|
Tercio@11
|
321
|
|
Tercio@11
|
322 frame1:SetScript ("OnLeave", function (self)
|
|
Tercio@11
|
323
|
|
Tercio@11
|
324 if (CoolTip.Type ~= 1 and CoolTip.Type ~= 2) then
|
|
Tercio@11
|
325 CoolTip.active = false
|
|
Tercio@11
|
326 CoolTip.mouseOver = false
|
|
Tercio@11
|
327 elapsedTime = 0
|
|
Tercio@11
|
328 self:SetScript ("OnUpdate", OnLeaveUpdateFrame1)
|
|
Tercio@11
|
329 else
|
|
Tercio@11
|
330 CoolTip.active = false
|
|
Tercio@11
|
331 CoolTip.mouseOver = false
|
|
Tercio@11
|
332 elapsedTime = 0
|
|
Tercio@11
|
333 self:SetScript ("OnUpdate", OnLeaveUpdateFrame1)
|
|
Tercio@11
|
334 end
|
|
Tercio@11
|
335 end)
|
|
Tercio@11
|
336
|
|
Tercio@11
|
337 local OnLeaveUpdateFrame2 = function (self, elapsed)
|
|
Tercio@11
|
338 elapsedTime = elapsedTime+elapsed
|
|
Tercio@11
|
339 if (elapsedTime > 0.7) then
|
|
Tercio@11
|
340 if (not CoolTip.active and not CoolTip.buttonClicked and self == CoolTip.Host) then
|
|
Tercio@26
|
341 DF:FadeFrame (self, 1)
|
|
Tercio@26
|
342 DF:FadeFrame (frame2, 1)
|
|
Tercio@11
|
343 elseif (not CoolTip.active) then
|
|
Tercio@26
|
344 DF:FadeFrame (self, 1)
|
|
Tercio@26
|
345 DF:FadeFrame (frame2, 1)
|
|
Tercio@11
|
346 end
|
|
Tercio@11
|
347 self:SetScript ("OnUpdate", nil)
|
|
Tercio@11
|
348 frame1:SetScript ("OnUpdate", nil)
|
|
Tercio@11
|
349 end
|
|
Tercio@11
|
350 end
|
|
Tercio@11
|
351
|
|
Tercio@11
|
352 frame2:SetScript ("OnLeave", function (self)
|
|
Tercio@11
|
353 if (CoolTip.Type ~= 1 and CoolTip.Type ~= 2) then
|
|
Tercio@11
|
354 CoolTip.active = false
|
|
Tercio@11
|
355 CoolTip.mouseOver = false
|
|
Tercio@11
|
356 elapsedTime = 0
|
|
Tercio@11
|
357 self:SetScript ("OnUpdate", OnLeaveUpdateFrame2)
|
|
Tercio@11
|
358 else
|
|
Tercio@11
|
359 CoolTip.active = false
|
|
Tercio@11
|
360 CoolTip.mouseOver = false
|
|
Tercio@11
|
361 elapsedTime = 0
|
|
Tercio@11
|
362 self:SetScript ("OnUpdate", OnLeaveUpdateFrame2)
|
|
Tercio@11
|
363
|
|
Tercio@11
|
364 end
|
|
Tercio@11
|
365 end)
|
|
Tercio@53
|
366
|
|
Tercio@11
|
367 frame1:SetScript ("OnHide", function (self)
|
|
Tercio@11
|
368 CoolTip.active = false
|
|
Tercio@11
|
369 CoolTip.buttonClicked = false
|
|
Tercio@11
|
370 CoolTip.mouseOver = false
|
|
Tercio@53
|
371
|
|
Tercio@53
|
372 --> reset parent and strata
|
|
Tercio@53
|
373 frame1:SetParent (UIParent)
|
|
Tercio@53
|
374 frame2:SetParent (UIParent)
|
|
Tercio@53
|
375 frame1:SetFrameStrata ("TOOLTIP")
|
|
Tercio@53
|
376 frame2:SetFrameStrata ("TOOLTIP")
|
|
Tercio@11
|
377 end)
|
|
Tercio@53
|
378
|
|
Tercio@11
|
379 ----------------------------------------------------------------------
|
|
Tercio@11
|
380 --> Button Creation Functions
|
|
Tercio@11
|
381 ----------------------------------------------------------------------
|
|
Tercio@11
|
382
|
|
Tercio@11
|
383 function GameCooltipButtonMouseDown (button)
|
|
Tercio@11
|
384 local mod = CoolTip.OptionsTable.TextHeightMod or 0
|
|
Tercio@11
|
385 button.leftText:SetPoint ("center", button.leftIcon, "center", 0, 0+mod)
|
|
Tercio@11
|
386 button.leftText:SetPoint ("left", button.leftIcon, "right", 4, -1+mod)
|
|
Tercio@11
|
387 end
|
|
Tercio@11
|
388
|
|
Tercio@11
|
389 function GameCooltipButtonMouseUp (button)
|
|
Tercio@11
|
390 local mod = CoolTip.OptionsTable.TextHeightMod or 0
|
|
Tercio@11
|
391 button.leftText:SetPoint ("center", button.leftIcon, "center", 0, 0+mod)
|
|
Tercio@11
|
392 button.leftText:SetPoint ("left", button.leftIcon, "right", 3, 0+mod)
|
|
Tercio@11
|
393 end
|
|
Tercio@11
|
394
|
|
Tercio@11
|
395 function CoolTip:CreateButton (index, frame, name)
|
|
Tercio@11
|
396 local new_button = CreateFrame ("Button", name, frame, "DFCooltipButtonTemplate")
|
|
Tercio@11
|
397 frame.Lines [index] = new_button
|
|
Tercio@11
|
398 return new_button
|
|
Tercio@11
|
399 end
|
|
Tercio@11
|
400
|
|
Tercio@11
|
401 local OnEnterUpdateButton = function (self, elapsed)
|
|
Tercio@55
|
402 elapsedTime = elapsedTime+elapsed
|
|
Tercio@55
|
403 if (elapsedTime > 0.001) then
|
|
Tercio@55
|
404 --> search key: ~onenterupdatemain
|
|
Tercio@55
|
405 CoolTip:ShowSub (self.index)
|
|
Tercio@55
|
406 CoolTip.last_button = self.index
|
|
Tercio@55
|
407 self:SetScript ("OnUpdate", nil)
|
|
Tercio@55
|
408 end
|
|
Tercio@55
|
409 end
|
|
Tercio@55
|
410
|
|
Tercio@11
|
411 local OnLeaveUpdateButton = function (self, elapsed)
|
|
Tercio@55
|
412 elapsedTime = elapsedTime+elapsed
|
|
Tercio@55
|
413 if (elapsedTime > 0.7) then
|
|
Tercio@55
|
414 if (not CoolTip.active and not CoolTip.buttonClicked) then
|
|
Tercio@55
|
415 DF:FadeFrame (frame1, 1)
|
|
Tercio@55
|
416 DF:FadeFrame (frame2, 1)
|
|
Tercio@55
|
417
|
|
Tercio@55
|
418 elseif (not CoolTip.active) then
|
|
Tercio@55
|
419 DF:FadeFrame (frame1, 1)
|
|
Tercio@55
|
420 DF:FadeFrame (frame2, 1)
|
|
Tercio@55
|
421 end
|
|
Tercio@55
|
422 frame1:SetScript ("OnUpdate", nil)
|
|
Tercio@55
|
423 end
|
|
Tercio@55
|
424 end
|
|
Tercio@55
|
425
|
|
Tercio@55
|
426 local OnEnterMainButton = function (self)
|
|
Tercio@55
|
427 if (CoolTip.Type ~= 1 and CoolTip.Type ~= 2 and not self.isDiv) then
|
|
Tercio@55
|
428 CoolTip.active = true
|
|
Tercio@55
|
429 CoolTip.mouseOver = true
|
|
Tercio@55
|
430 CoolTip.had_interaction = true
|
|
Tercio@55
|
431
|
|
Tercio@55
|
432 frame1:SetScript ("OnUpdate", nil)
|
|
Tercio@55
|
433 frame2:SetScript ("OnUpdate", nil)
|
|
Tercio@55
|
434
|
|
Tercio@55
|
435 self.background:Show()
|
|
Tercio@55
|
436
|
|
Tercio@55
|
437 if (CoolTip.OptionsTable.IconBlendModeHover) then
|
|
Tercio@55
|
438 self.leftIcon:SetBlendMode (CoolTip.OptionsTable.IconBlendModeHover)
|
|
Tercio@55
|
439 else
|
|
Tercio@55
|
440 self.leftIcon:SetBlendMode ("BLEND")
|
|
Tercio@55
|
441 end
|
|
Tercio@55
|
442
|
|
Tercio@55
|
443 if (CoolTip.PopupFrameTable [self.index]) then
|
|
Tercio@55
|
444 local on_enter, on_leave, param1, param2 = unpack (CoolTip.PopupFrameTable [self.index])
|
|
Tercio@55
|
445 if (on_enter) then
|
|
Tercio@55
|
446 xpcall (on_enter, geterrorhandler(), frame1, param1, param2)
|
|
Tercio@55
|
447 end
|
|
Tercio@55
|
448
|
|
Tercio@55
|
449 elseif (CoolTip.IndexesSub [self.index] and CoolTip.IndexesSub [self.index] > 0) then
|
|
Tercio@55
|
450 if (CoolTip.OptionsTable.SubMenuIsTooltip) then
|
|
Tercio@55
|
451 CoolTip:ShowSub (self.index)
|
|
Tercio@55
|
452 self.index = self.ID
|
|
Tercio@55
|
453 else
|
|
Tercio@55
|
454 if (CoolTip.last_button) then
|
|
Tercio@55
|
455 CoolTip:ShowSub (CoolTip.last_button)
|
|
Tercio@55
|
456 else
|
|
Tercio@55
|
457 CoolTip:ShowSub (self.index)
|
|
Tercio@55
|
458 end
|
|
Tercio@55
|
459 elapsedTime = 0
|
|
Tercio@55
|
460 self.index = self.ID
|
|
Tercio@55
|
461 self:SetScript ("OnUpdate", OnEnterUpdateButton)
|
|
Tercio@55
|
462 end
|
|
Tercio@55
|
463
|
|
Tercio@55
|
464 else
|
|
Tercio@55
|
465 --hide second frame
|
|
Tercio@55
|
466 DF:FadeFrame (frame2, 1)
|
|
Tercio@55
|
467 CoolTip.last_button = nil
|
|
Tercio@55
|
468 end
|
|
Tercio@55
|
469 else
|
|
Tercio@55
|
470 CoolTip.mouseOver = true
|
|
Tercio@55
|
471 CoolTip.had_interaction = true
|
|
Tercio@55
|
472 end
|
|
Tercio@55
|
473 end
|
|
Tercio@55
|
474
|
|
Tercio@55
|
475 local OnLeaveMainButton = function (self)
|
|
Tercio@55
|
476 if (CoolTip.Type ~= 1 and CoolTip.Type ~= 2 and not self.isDiv) then
|
|
Tercio@55
|
477 CoolTip.active = false
|
|
Tercio@55
|
478 CoolTip.mouseOver = false
|
|
Tercio@55
|
479 self:SetScript ("OnUpdate", nil)
|
|
Tercio@55
|
480
|
|
Tercio@55
|
481 self.background:Hide()
|
|
Tercio@55
|
482
|
|
Tercio@55
|
483 if (CoolTip.OptionsTable.IconBlendMode) then
|
|
Tercio@55
|
484 self.leftIcon:SetBlendMode (CoolTip.OptionsTable.IconBlendMode)
|
|
Tercio@55
|
485 self.rightIcon:SetBlendMode (CoolTip.OptionsTable.IconBlendMode)
|
|
Tercio@55
|
486 else
|
|
Tercio@55
|
487 self.leftIcon:SetBlendMode ("BLEND")
|
|
Tercio@55
|
488 self.rightIcon:SetBlendMode ("BLEND")
|
|
Tercio@55
|
489 end
|
|
Tercio@55
|
490
|
|
Tercio@55
|
491 if (CoolTip.PopupFrameTable [self.index]) then
|
|
Tercio@55
|
492 local on_enter, on_leave, param1, param2 = unpack (CoolTip.PopupFrameTable [self.index])
|
|
Tercio@55
|
493 if (on_leave) then
|
|
Tercio@55
|
494 xpcall (on_leave, geterrorhandler(), frame1, param1, param2)
|
|
Tercio@55
|
495 end
|
|
Tercio@55
|
496 end
|
|
Tercio@55
|
497
|
|
Tercio@55
|
498 elapsedTime = 0
|
|
Tercio@55
|
499 frame1:SetScript ("OnUpdate", OnLeaveUpdateButton)
|
|
Tercio@55
|
500 else
|
|
Tercio@55
|
501 CoolTip.active = false
|
|
Tercio@55
|
502 elapsedTime = 0
|
|
Tercio@55
|
503 frame1:SetScript ("OnUpdate", OnLeaveUpdateButton)
|
|
Tercio@55
|
504 CoolTip.mouseOver = false
|
|
Tercio@55
|
505 end
|
|
Tercio@55
|
506 end
|
|
Tercio@11
|
507
|
|
Tercio@11
|
508 function CoolTip:NewMainButton (i)
|
|
Tercio@55
|
509 local newButton = CoolTip:CreateButton (i, frame1, "GameCooltipMainButton"..i)
|
|
Tercio@11
|
510
|
|
Tercio@11
|
511 --> serach key: ~onenter
|
|
Tercio@55
|
512 newButton.ID = i
|
|
Tercio@55
|
513 newButton:SetScript ("OnEnter", OnEnterMainButton)
|
|
Tercio@55
|
514 newButton:SetScript ("OnLeave", OnLeaveMainButton)
|
|
Tercio@11
|
515
|
|
Tercio@55
|
516 return newButton
|
|
Tercio@11
|
517 end
|
|
Tercio@11
|
518
|
|
Tercio@55
|
519 --> buttons for the secondary frame
|
|
Tercio@55
|
520
|
|
Tercio@11
|
521 local OnLeaveUpdateButtonSec = function (self, elapsed)
|
|
Tercio@55
|
522 elapsedTime = elapsedTime+elapsed
|
|
Tercio@55
|
523 if (elapsedTime > 0.7) then
|
|
Tercio@55
|
524 if (not CoolTip.active and not CoolTip.buttonClicked) then
|
|
Tercio@55
|
525 DF:FadeFrame (frame1, 1)
|
|
Tercio@55
|
526 DF:FadeFrame (frame2, 1)
|
|
Tercio@55
|
527 elseif (not CoolTip.active) then
|
|
Tercio@55
|
528 DF:FadeFrame (frame1, 1)
|
|
Tercio@55
|
529 DF:FadeFrame (frame2, 1)
|
|
Tercio@55
|
530 end
|
|
Tercio@55
|
531 frame2:SetScript ("OnUpdate", nil)
|
|
Tercio@55
|
532 end
|
|
Tercio@55
|
533 end
|
|
Tercio@55
|
534
|
|
Tercio@55
|
535 local OnEnterSecondaryButton = function (self)
|
|
Tercio@55
|
536 if (CoolTip.OptionsTable.SubMenuIsTooltip) then
|
|
Tercio@55
|
537 return CoolTip:Close()
|
|
Tercio@55
|
538 end
|
|
Tercio@55
|
539 if (CoolTip.Type ~= 1 and CoolTip.Type ~= 2 and not self.isDiv) then
|
|
Tercio@55
|
540 CoolTip.active = true
|
|
Tercio@55
|
541 CoolTip.mouseOver = true
|
|
Tercio@55
|
542 CoolTip.had_interaction = true
|
|
Tercio@55
|
543
|
|
Tercio@55
|
544 self.background:Show()
|
|
Tercio@55
|
545
|
|
Tercio@55
|
546 if (CoolTip.OptionsTable.IconBlendModeHover) then
|
|
Tercio@55
|
547 self.leftIcon:SetBlendMode (CoolTip.OptionsTable.IconBlendModeHover)
|
|
Tercio@55
|
548 else
|
|
Tercio@55
|
549 self.leftIcon:SetBlendMode ("BLEND")
|
|
Tercio@55
|
550 end
|
|
Tercio@55
|
551
|
|
Tercio@55
|
552 frame1:SetScript ("OnUpdate", nil)
|
|
Tercio@55
|
553 frame2:SetScript ("OnUpdate", nil)
|
|
Tercio@55
|
554
|
|
Tercio@55
|
555 DF:FadeFrame (frame1, 0)
|
|
Tercio@55
|
556 DF:FadeFrame (frame2, 0)
|
|
Tercio@55
|
557 else
|
|
Tercio@55
|
558 CoolTip.mouseOver = true
|
|
Tercio@55
|
559 CoolTip.had_interaction = true
|
|
Tercio@55
|
560 end
|
|
Tercio@55
|
561 end
|
|
Tercio@55
|
562
|
|
Tercio@55
|
563 local OnLeaveSecondaryButton = function (self)
|
|
Tercio@55
|
564 if (CoolTip.Type ~= 1 and CoolTip.Type ~= 2) then
|
|
Tercio@55
|
565 CoolTip.active = false
|
|
Tercio@55
|
566 CoolTip.mouseOver = false
|
|
Tercio@55
|
567
|
|
Tercio@55
|
568 self.background:Hide()
|
|
Tercio@55
|
569
|
|
Tercio@55
|
570 if (CoolTip.OptionsTable.IconBlendMode) then
|
|
Tercio@55
|
571 self.leftIcon:SetBlendMode (CoolTip.OptionsTable.IconBlendMode)
|
|
Tercio@55
|
572 self.rightIcon:SetBlendMode (CoolTip.OptionsTable.IconBlendMode)
|
|
Tercio@55
|
573 else
|
|
Tercio@55
|
574 self.leftIcon:SetBlendMode ("BLEND")
|
|
Tercio@55
|
575 self.rightIcon:SetBlendMode ("BLEND")
|
|
Tercio@55
|
576 end
|
|
Tercio@55
|
577
|
|
Tercio@55
|
578 elapsedTime = 0
|
|
Tercio@55
|
579 frame2:SetScript ("OnUpdate", OnLeaveUpdateButtonSec)
|
|
Tercio@55
|
580 else
|
|
Tercio@55
|
581 CoolTip.active = false
|
|
Tercio@55
|
582 CoolTip.mouseOver = false
|
|
Tercio@55
|
583 elapsedTime = 0
|
|
Tercio@55
|
584 frame2:SetScript ("OnUpdate", OnLeaveUpdateButtonSec)
|
|
Tercio@55
|
585 end
|
|
Tercio@55
|
586 end
|
|
Tercio@11
|
587
|
|
Tercio@11
|
588 function CoolTip:NewSecondaryButton (i)
|
|
Tercio@55
|
589 local newButton = CoolTip:CreateButton (i, frame2, "GameCooltipSecButton"..i)
|
|
Tercio@11
|
590
|
|
Tercio@55
|
591 newButton.ID = i
|
|
Tercio@55
|
592 newButton:SetScript ("OnEnter", OnEnterSecondaryButton)
|
|
Tercio@55
|
593 newButton:SetScript ("OnLeave", OnLeaveSecondaryButton)
|
|
Tercio@11
|
594
|
|
Tercio@55
|
595 return newButton
|
|
Tercio@11
|
596 end
|
|
Tercio@11
|
597
|
|
Tercio@11
|
598 ----------------------------------------------------------------------
|
|
Tercio@11
|
599 --> Button Click Functions
|
|
Tercio@11
|
600 ----------------------------------------------------------------------
|
|
Tercio@11
|
601
|
|
Tercio@11
|
602 CoolTip.selected_anchor.left = 4
|
|
Tercio@11
|
603 CoolTip.selected_anchor.right = -4
|
|
Tercio@11
|
604 CoolTip.selected_anchor.top = 0
|
|
Tercio@11
|
605 CoolTip.selected_anchor.bottom = 0
|
|
Tercio@11
|
606
|
|
Tercio@11
|
607 function CoolTip:HideSelectedTexture (frame)
|
|
Tercio@11
|
608 frame.selectedTop:Hide()
|
|
Tercio@11
|
609 frame.selectedBottom:Hide()
|
|
Tercio@11
|
610 frame.selectedMiddle:Hide()
|
|
Tercio@11
|
611 end
|
|
Tercio@11
|
612
|
|
Tercio@11
|
613 function CoolTip:ShowSelectedTexture (frame)
|
|
Tercio@11
|
614 frame.selectedTop:Show()
|
|
Tercio@11
|
615 frame.selectedBottom:Show()
|
|
Tercio@11
|
616 frame.selectedMiddle:Show()
|
|
Tercio@11
|
617 end
|
|
Tercio@11
|
618
|
|
Tercio@11
|
619 function CoolTip:SetSelectedAnchor (frame, button)
|
|
Tercio@11
|
620
|
|
Tercio@11
|
621 local left = CoolTip.selected_anchor.left + (CoolTip.OptionsTable.SelectedLeftAnchorMod or 0)
|
|
Tercio@11
|
622 local right = CoolTip.selected_anchor.right + (CoolTip.OptionsTable.SelectedRightAnchorMod or 0)
|
|
Tercio@11
|
623
|
|
Tercio@11
|
624 local top = CoolTip.selected_anchor.top + (CoolTip.OptionsTable.SelectedTopAnchorMod or 0)
|
|
Tercio@11
|
625 local bottom = CoolTip.selected_anchor.bottom + (CoolTip.OptionsTable.SelectedBottomAnchorMod or 0)
|
|
Tercio@11
|
626
|
|
Tercio@11
|
627 frame.selectedTop:ClearAllPoints()
|
|
Tercio@11
|
628 frame.selectedBottom:ClearAllPoints()
|
|
Tercio@11
|
629
|
|
Tercio@40
|
630 frame.selectedTop:SetPoint ("topleft", button, "topleft", left+1, top) --
|
|
Tercio@40
|
631 frame.selectedTop:SetPoint ("topright", button, "topright", right-1, top) --
|
|
Tercio@11
|
632
|
|
Tercio@40
|
633 frame.selectedBottom:SetPoint ("bottomleft", button, "bottomleft", left+1, bottom) --
|
|
Tercio@40
|
634 frame.selectedBottom:SetPoint ("bottomright", button, "bottomright", right-1, bottom) --
|
|
Tercio@11
|
635
|
|
Tercio@11
|
636 CoolTip:ShowSelectedTexture (frame)
|
|
Tercio@11
|
637 end
|
|
Tercio@11
|
638
|
|
Tercio@55
|
639 local OnClickFunctionMainButton = function (self, button)
|
|
Tercio@55
|
640 if (CoolTip.IndexesSub [self.index] and CoolTip.IndexesSub [self.index] > 0) then
|
|
Tercio@55
|
641 CoolTip:ShowSub (self.index)
|
|
Tercio@55
|
642 CoolTip.last_button = self.index
|
|
Tercio@55
|
643 end
|
|
Tercio@55
|
644
|
|
Tercio@55
|
645 CoolTip.buttonClicked = true
|
|
Tercio@55
|
646 CoolTip:SetSelectedAnchor (frame1, self)
|
|
Tercio@55
|
647
|
|
Tercio@55
|
648 if (not CoolTip.OptionsTable.NoLastSelectedBar) then
|
|
Tercio@55
|
649 CoolTip:ShowSelectedTexture (frame1)
|
|
Tercio@55
|
650 end
|
|
Tercio@55
|
651 CoolTip.SelectedIndexMain = self.index
|
|
Tercio@55
|
652
|
|
Tercio@55
|
653 if (CoolTip.FunctionsTableMain [self.index]) then
|
|
Tercio@55
|
654 local parameterTable = CoolTip.ParametersTableMain [self.index]
|
|
Tercio@55
|
655 local func = CoolTip.FunctionsTableMain [self.index]
|
|
Tercio@55
|
656 --> passing nil as the first parameter was a design mistake
|
|
Tercio@55
|
657 --CoolTip.FunctionsTableMain [self.index] (_, CoolTip.FixedValue, parameterTable [1], parameterTable [2], parameterTable [3], button)
|
|
Tercio@55
|
658 local okay, errortext = pcall (func, nil, CoolTip.FixedValue, parameterTable [1], parameterTable [2], parameterTable [3], button)
|
|
Tercio@55
|
659 if (not okay) then
|
|
Tercio@55
|
660 print ("Cooltip OnClick Error:", errortext)
|
|
Tercio@11
|
661 end
|
|
Tercio@55
|
662 end
|
|
Tercio@55
|
663 end
|
|
Tercio@55
|
664
|
|
Tercio@55
|
665 local OnClickFunctionSecondaryButton = function (self, button)
|
|
Tercio@55
|
666 CoolTip.buttonClicked = true
|
|
Tercio@55
|
667
|
|
Tercio@55
|
668 CoolTip:SetSelectedAnchor (frame2, self)
|
|
Tercio@55
|
669
|
|
Tercio@55
|
670 if (CoolTip.FunctionsTableSub [self.mainIndex] and CoolTip.FunctionsTableSub [self.mainIndex] [self.index]) then
|
|
Tercio@55
|
671 local parameterTable = CoolTip.ParametersTableSub [self.mainIndex] [self.index]
|
|
Tercio@55
|
672 local func = CoolTip.FunctionsTableSub [self.mainIndex] [self.index]
|
|
Tercio@55
|
673 --CoolTip.FunctionsTableSub [self.mainIndex] [self.index] (_, CoolTip.FixedValue, parameterTable [1], parameterTable [2], parameterTable [3], button)
|
|
Tercio@55
|
674 local okay, errortext = pcall (func, nil, CoolTip.FixedValue, parameterTable [1], parameterTable [2], parameterTable [3], button)
|
|
Tercio@55
|
675 if (not okay) then
|
|
Tercio@55
|
676 print ("Cooltip OnClick Error:", errortext)
|
|
Tercio@55
|
677 end
|
|
Tercio@55
|
678 end
|
|
Tercio@55
|
679
|
|
Tercio@55
|
680 local botao_p = frame1.Lines [self.mainIndex]
|
|
Tercio@55
|
681 CoolTip:SetSelectedAnchor (frame1, botao_p)
|
|
Tercio@11
|
682
|
|
Tercio@55
|
683 if (not CoolTip.OptionsTable.NoLastSelectedBar) then
|
|
Tercio@55
|
684 CoolTip:ShowSelectedTexture (frame1)
|
|
Tercio@55
|
685 end
|
|
Tercio@55
|
686
|
|
Tercio@55
|
687 CoolTip.SelectedIndexMain = self.mainIndex
|
|
Tercio@55
|
688 CoolTip.SelectedIndexSec [self.mainIndex] = self.index
|
|
Tercio@55
|
689 end
|
|
Tercio@55
|
690
|
|
Tercio@55
|
691
|
|
Tercio@55
|
692 --> format functions
|
|
Tercio@11
|
693
|
|
Tercio@11
|
694 function CoolTip:TextAndIcon (index, frame, menuButton, leftTextTable, rightTextTable, leftIconTable, rightIconTable, isSub)
|
|
Tercio@11
|
695 --> reset width
|
|
Tercio@11
|
696 menuButton.leftText:SetWidth (0)
|
|
Tercio@11
|
697 menuButton.leftText:SetHeight (0)
|
|
Tercio@11
|
698 menuButton.rightText:SetWidth (0)
|
|
Tercio@11
|
699 menuButton.rightText:SetHeight (0)
|
|
Tercio@11
|
700
|
|
Tercioo@30
|
701 menuButton.rightText:SetPoint ("right", menuButton.rightIcon, "left", CoolTip.OptionsTable.RightTextMargin or -3, 0)
|
|
Tercioo@30
|
702
|
|
Tercio@11
|
703 --> set text
|
|
Tercio@11
|
704 if (leftTextTable) then
|
|
Tercio@11
|
705
|
|
Tercio@11
|
706 menuButton.leftText:SetText (leftTextTable [1])
|
|
Tercio@11
|
707
|
|
Tercio@11
|
708 local r, g, b, a = leftTextTable [2], leftTextTable [3], leftTextTable [4], leftTextTable [5]
|
|
Tercio@11
|
709
|
|
Tercio@11
|
710 if (r == 0 and g == 0 and b == 0 and a == 0) then
|
|
Tercio@11
|
711 if (CoolTip.OptionsTable.TextColor) then
|
|
Tercio@11
|
712 r, g, b, a = DF:ParseColors (CoolTip.OptionsTable.TextColor)
|
|
Tercio@11
|
713 menuButton.leftText:SetTextColor (r, g, b, a)
|
|
Tercio@11
|
714 else
|
|
Tercio@11
|
715 menuButton.leftText:SetTextColor (1, 1, 1, 1)
|
|
Tercio@11
|
716 end
|
|
Tercio@11
|
717 else
|
|
Tercio@11
|
718 menuButton.leftText:SetTextColor (r, g, b, a)
|
|
Tercio@11
|
719 end
|
|
Tercio@11
|
720
|
|
Tercio@11
|
721 if (CoolTip.OptionsTable.TextSize and not leftTextTable [6]) then
|
|
Tercio@11
|
722 DF:SetFontSize (menuButton.leftText, CoolTip.OptionsTable.TextSize)
|
|
Tercio@11
|
723 end
|
|
Tercio@11
|
724
|
|
Tercio@11
|
725 if (CoolTip.OptionsTable.LeftTextWidth) then
|
|
Tercio@11
|
726 menuButton.leftText:SetWidth (CoolTip.OptionsTable.LeftTextWidth)
|
|
Tercio@11
|
727 else
|
|
Tercio@11
|
728 menuButton.leftText:SetWidth (0)
|
|
Tercio@11
|
729 end
|
|
Tercio@11
|
730
|
|
Tercio@11
|
731 if (CoolTip.OptionsTable.LeftTextHeight) then
|
|
Tercio@11
|
732 menuButton.leftText:SetHeight (CoolTip.OptionsTable.LeftTextHeight)
|
|
Tercio@11
|
733 else
|
|
Tercio@11
|
734 menuButton.leftText:SetHeight (0)
|
|
Tercio@11
|
735 end
|
|
Tercio@11
|
736
|
|
Tercio@11
|
737 if (CoolTip.OptionsTable.TextFont and not leftTextTable [7]) then --font
|
|
Tercio@11
|
738
|
|
Tercio@11
|
739 if (_G [CoolTip.OptionsTable.TextFont]) then
|
|
Tercio@11
|
740 menuButton.leftText:SetFontObject (GameFontRed or CoolTip.OptionsTable.TextFont)
|
|
Tercio@11
|
741 else
|
|
Tercio@11
|
742 local font = SharedMedia:Fetch ("font", CoolTip.OptionsTable.TextFont)
|
|
Tercio@11
|
743 local _, size, flags = menuButton.leftText:GetFont()
|
|
Tercio@11
|
744 flags = leftTextTable [8] or CoolTip.OptionsTable.TextShadow or nil
|
|
Tercio@11
|
745 size = leftTextTable [6] or CoolTip.OptionsTable.TextSize or size
|
|
Tercio@11
|
746 menuButton.leftText:SetFont (font, size, flags)
|
|
Tercio@11
|
747 end
|
|
Tercio@11
|
748
|
|
Tercio@11
|
749 elseif (leftTextTable [7]) then
|
|
Tercio@11
|
750 if (_G [leftTextTable [7]]) then
|
|
Tercio@11
|
751 menuButton.leftText:SetFontObject (leftTextTable [7])
|
|
Tercio@11
|
752 local face, size, flags = menuButton.leftText:GetFont()
|
|
Tercio@11
|
753 flags = leftTextTable [8] or CoolTip.OptionsTable.TextShadow or nil
|
|
Tercio@11
|
754 size = leftTextTable [6] or CoolTip.OptionsTable.TextSize or size
|
|
Tercio@11
|
755 menuButton.leftText:SetFont (face, size, flags)
|
|
Tercio@11
|
756 else
|
|
Tercio@11
|
757 local font = SharedMedia:Fetch ("font", leftTextTable [7])
|
|
Tercio@11
|
758 local face, size, flags = menuButton.leftText:GetFont()
|
|
Tercio@11
|
759 flags = leftTextTable [8] or CoolTip.OptionsTable.TextShadow or nil
|
|
Tercio@11
|
760 size = leftTextTable [6] or CoolTip.OptionsTable.TextSize or size
|
|
Tercio@11
|
761 menuButton.leftText:SetFont (face, size, flags)
|
|
Tercio@11
|
762 end
|
|
Tercio@11
|
763 else
|
|
Tercio@11
|
764 menuButton.leftText:SetFont (CoolTip._default_font, leftTextTable [6] or CoolTip.OptionsTable.TextSize or 10, leftTextTable [8] or CoolTip.OptionsTable.TextShadow)
|
|
Tercio@11
|
765 end
|
|
Tercio@11
|
766
|
|
Tercio@11
|
767 local height_mod = CoolTip.OptionsTable.TextHeightMod or 0
|
|
Tercio@11
|
768 menuButton.leftText:SetPoint ("center", menuButton.leftIcon, "center", 0, 0+height_mod)
|
|
Tercio@11
|
769 menuButton.leftText:SetPoint ("left", menuButton.leftIcon, "right", 3, 0+height_mod)
|
|
Tercio@11
|
770
|
|
Tercio@11
|
771 else
|
|
Tercio@11
|
772 menuButton.leftText:SetText ("")
|
|
Tercio@11
|
773 end
|
|
Tercio@11
|
774
|
|
Tercio@11
|
775 if (rightTextTable) then
|
|
Tercio@11
|
776 menuButton.rightText:SetText (rightTextTable [1])
|
|
Tercio@11
|
777
|
|
Tercio@11
|
778 local r, g, b, a = rightTextTable [2], rightTextTable [3], rightTextTable [4], rightTextTable [5]
|
|
Tercio@11
|
779
|
|
Tercio@11
|
780 if (r == 0 and g == 0 and b == 0 and a == 0) then
|
|
Tercio@11
|
781
|
|
Tercio@11
|
782 if (CoolTip.OptionsTable.TextColorRight) then
|
|
Tercio@11
|
783 r, g, b, a = DF:ParseColors (CoolTip.OptionsTable.TextColorRight)
|
|
Tercio@11
|
784 menuButton.rightText:SetTextColor (r, g, b, a)
|
|
Tercio@11
|
785 elseif (CoolTip.OptionsTable.TextColor) then
|
|
Tercio@11
|
786 r, g, b, a = DF:ParseColors (CoolTip.OptionsTable.TextColor)
|
|
Tercio@11
|
787 menuButton.rightText:SetTextColor (r, g, b, a)
|
|
Tercio@11
|
788 else
|
|
Tercio@11
|
789 menuButton.rightText:SetTextColor (1, 1, 1, 1)
|
|
Tercio@11
|
790 end
|
|
Tercio@11
|
791 else
|
|
Tercio@11
|
792 menuButton.rightText:SetTextColor (r, g, b, a)
|
|
Tercio@11
|
793 end
|
|
Tercio@11
|
794
|
|
Tercio@11
|
795 if (CoolTip.OptionsTable.TextSize and not rightTextTable [6]) then
|
|
Tercio@11
|
796 DF:SetFontSize (menuButton.rightText, CoolTip.OptionsTable.TextSize)
|
|
Tercio@11
|
797 end
|
|
Tercio@11
|
798
|
|
Tercio@11
|
799 if (CoolTip.OptionsTable.RightTextWidth) then
|
|
Tercio@11
|
800 menuButton.rightText:SetWidth (CoolTip.OptionsTable.RightTextWidth)
|
|
Tercio@11
|
801 else
|
|
Tercio@11
|
802 menuButton.rightText:SetWidth (0)
|
|
Tercio@11
|
803 end
|
|
Tercio@11
|
804
|
|
Tercio@11
|
805 if (CoolTip.OptionsTable.TextFont and not rightTextTable [7]) then
|
|
Tercio@11
|
806 if (_G [CoolTip.OptionsTable.TextFont]) then
|
|
Tercio@11
|
807 menuButton.rightText:SetFontObject (CoolTip.OptionsTable.TextFont)
|
|
Tercio@11
|
808 else
|
|
Tercio@11
|
809 local font = SharedMedia:Fetch ("font", CoolTip.OptionsTable.TextFont)
|
|
Tercio@11
|
810 local _, size, flags = menuButton.rightText:GetFont()
|
|
Tercio@11
|
811 flags = rightTextTable [8] or CoolTip.OptionsTable.TextShadow or nil
|
|
Tercio@11
|
812 size = rightTextTable [6] or CoolTip.OptionsTable.TextSize or size
|
|
Tercio@11
|
813 menuButton.rightText:SetFont (font, size, flags)
|
|
Tercio@11
|
814 end
|
|
Tercio@11
|
815
|
|
Tercio@11
|
816 elseif (rightTextTable [7]) then
|
|
Tercio@11
|
817 if (_G [rightTextTable [7]]) then
|
|
Tercio@11
|
818 menuButton.rightText:SetFontObject (rightTextTable [7])
|
|
Tercio@11
|
819 local face, size, flags = menuButton.rightText:GetFont()
|
|
Tercio@11
|
820 flags = rightTextTable [8] or CoolTip.OptionsTable.TextShadow or nil
|
|
Tercio@11
|
821 size = rightTextTable [6] or CoolTip.OptionsTable.TextSize or size
|
|
Tercio@11
|
822 menuButton.rightText:SetFont (face, size, flags)
|
|
Tercio@11
|
823 else
|
|
Tercio@11
|
824 local font = SharedMedia:Fetch ("font", rightTextTable [7])
|
|
Tercio@11
|
825 local face, size, flags = menuButton.rightText:GetFont()
|
|
Tercio@11
|
826 flags = rightTextTable [8] or CoolTip.OptionsTable.TextShadow or nil
|
|
Tercio@11
|
827 size = rightTextTable [6] or CoolTip.OptionsTable.TextSize or size
|
|
Tercio@11
|
828 menuButton.rightText:SetFont (face, size, flags)
|
|
Tercio@11
|
829 end
|
|
Tercio@11
|
830
|
|
Tercio@11
|
831 else
|
|
Tercio@11
|
832 menuButton.rightText:SetFont (CoolTip._default_font, rightTextTable [6] or CoolTip.OptionsTable.TextSize or 10, rightTextTable [8] or CoolTip.OptionsTable.TextShadow)
|
|
Tercio@11
|
833 end
|
|
Tercio@11
|
834
|
|
Tercio@11
|
835
|
|
Tercio@11
|
836 else
|
|
Tercio@11
|
837 menuButton.rightText:SetText ("")
|
|
Tercio@11
|
838 end
|
|
Tercio@11
|
839
|
|
Tercio@11
|
840 --> left icon
|
|
Tercio@11
|
841 if (leftIconTable and leftIconTable [1]) then
|
|
Tercio@11
|
842 menuButton.leftIcon:SetTexture (leftIconTable [1])
|
|
Tercio@11
|
843 menuButton.leftIcon:SetWidth (leftIconTable [2])
|
|
Tercio@11
|
844 menuButton.leftIcon:SetHeight (leftIconTable [3])
|
|
Tercio@11
|
845 menuButton.leftIcon:SetTexCoord (leftIconTable [4], leftIconTable [5], leftIconTable [6], leftIconTable [7])
|
|
Tercio@11
|
846
|
|
Tercio@11
|
847 local ColorR, ColorG, ColorB, ColorA = DF:ParseColors (leftIconTable [8])
|
|
Tercio@11
|
848 menuButton.leftIcon:SetVertexColor (ColorR, ColorG, ColorB, ColorA)
|
|
Tercio@11
|
849
|
|
Tercio@11
|
850 if (CoolTip.OptionsTable.IconBlendMode) then
|
|
Tercio@11
|
851 menuButton.leftIcon:SetBlendMode (CoolTip.OptionsTable.IconBlendMode)
|
|
Tercio@11
|
852 else
|
|
Tercio@11
|
853 menuButton.leftIcon:SetBlendMode ("BLEND")
|
|
Tercio@11
|
854 end
|
|
Tercio@11
|
855
|
|
Tercio@11
|
856 menuButton.leftIcon:SetDesaturated (leftIconTable [9])
|
|
Tercio@11
|
857 else
|
|
Tercio@11
|
858 menuButton.leftIcon:SetTexture (nil)
|
|
Tercio@11
|
859 menuButton.leftIcon:SetWidth (1)
|
|
Tercio@11
|
860 menuButton.leftIcon:SetHeight (1)
|
|
Tercio@11
|
861 end
|
|
Tercio@11
|
862
|
|
Tercio@11
|
863 --> right icon
|
|
Tercio@11
|
864 if (rightIconTable and rightIconTable [1]) then
|
|
Tercio@11
|
865 menuButton.rightIcon:SetTexture (rightIconTable [1])
|
|
Tercio@11
|
866 menuButton.rightIcon:SetWidth (rightIconTable [2])
|
|
Tercio@11
|
867 menuButton.rightIcon:SetHeight (rightIconTable [3])
|
|
Tercio@11
|
868 menuButton.rightIcon:SetTexCoord (rightIconTable [4], rightIconTable [5], rightIconTable [6], rightIconTable [7])
|
|
Tercio@11
|
869
|
|
Tercio@11
|
870 local ColorR, ColorG, ColorB, ColorA = DF:ParseColors (rightIconTable [8])
|
|
Tercio@11
|
871 menuButton.rightIcon:SetVertexColor (ColorR, ColorG, ColorB, ColorA)
|
|
Tercio@11
|
872
|
|
Tercio@11
|
873 if (CoolTip.OptionsTable.IconBlendMode) then
|
|
Tercio@11
|
874 menuButton.rightIcon:SetBlendMode (CoolTip.OptionsTable.IconBlendMode)
|
|
Tercio@11
|
875 else
|
|
Tercio@11
|
876 menuButton.rightIcon:SetBlendMode ("BLEND")
|
|
Tercio@11
|
877 end
|
|
Tercio@11
|
878
|
|
Tercio@11
|
879 menuButton.rightIcon:SetDesaturated (rightIconTable [9])
|
|
Tercio@11
|
880 else
|
|
Tercio@11
|
881 menuButton.rightIcon:SetTexture (nil)
|
|
Tercio@11
|
882 menuButton.rightIcon:SetWidth (1)
|
|
Tercio@11
|
883 menuButton.rightIcon:SetHeight (1)
|
|
Tercio@11
|
884 end
|
|
Tercio@11
|
885
|
|
Tercio@11
|
886 --> overwrite icon size
|
|
Tercio@11
|
887 if (CoolTip.OptionsTable.IconSize) then
|
|
Tercio@11
|
888 menuButton.leftIcon:SetWidth (CoolTip.OptionsTable.IconSize)
|
|
Tercio@11
|
889 menuButton.leftIcon:SetHeight (CoolTip.OptionsTable.IconSize)
|
|
Tercio@11
|
890 menuButton.rightIcon:SetWidth (CoolTip.OptionsTable.IconSize)
|
|
Tercio@11
|
891 menuButton.rightIcon:SetHeight (CoolTip.OptionsTable.IconSize)
|
|
Tercio@11
|
892 end
|
|
Tercio@11
|
893
|
|
Tercio@40
|
894 menuButton.leftText:SetHeight (0)
|
|
Tercio@40
|
895 menuButton.rightText:SetHeight (0)
|
|
Tercio@40
|
896
|
|
Tercio@11
|
897 if (CoolTip.Type == 2) then
|
|
Tercio@11
|
898 CoolTip:LeftTextSpace (menuButton)
|
|
Tercio@11
|
899 end
|
|
Tercio@40
|
900 if (CoolTip.OptionsTable.LeftTextHeight) then
|
|
Tercio@40
|
901 menuButton.leftText:SetHeight (CoolTip.OptionsTable.LeftTextHeight)
|
|
Tercio@40
|
902 end
|
|
Tercio@40
|
903 if (CoolTip.OptionsTable.RightTextHeight) then
|
|
Tercio@40
|
904 menuButton.rightText:SetHeight (CoolTip.OptionsTable.RightTextHeight)
|
|
Tercio@40
|
905 end
|
|
Tercio@11
|
906
|
|
Tercio@11
|
907 --> string length
|
|
Tercio@11
|
908 if (not isSub) then --> main frame
|
|
Tercio@11
|
909 if (not CoolTip.OptionsTable.FixedWidth) then
|
|
Tercio@11
|
910 if (CoolTip.Type == 1 or CoolTip.Type == 2) then
|
|
Tercio@11
|
911 local stringWidth = menuButton.leftText:GetStringWidth() + menuButton.rightText:GetStringWidth() + menuButton.leftIcon:GetWidth() + menuButton.rightIcon:GetWidth() + 10
|
|
Tercio@11
|
912 if (stringWidth > frame.w) then
|
|
Tercio@11
|
913 frame.w = stringWidth
|
|
Tercio@11
|
914 end
|
|
Tercio@11
|
915 end
|
|
Tercio@11
|
916 else
|
|
Tercio@40
|
917 menuButton.leftText:SetWidth (CoolTip.OptionsTable.FixedWidth - menuButton.leftIcon:GetWidth() - menuButton.rightText:GetStringWidth() - menuButton.rightIcon:GetWidth() - 22)
|
|
Tercio@11
|
918 end
|
|
Tercio@11
|
919 else
|
|
Tercio@11
|
920 if (not CoolTip.OptionsTable.FixedWidthSub) then
|
|
Tercio@11
|
921 if (CoolTip.Type == 1 or CoolTip.Type == 2) then
|
|
Tercio@11
|
922 local stringWidth = menuButton.leftText:GetStringWidth() + menuButton.rightText:GetStringWidth() + menuButton.leftIcon:GetWidth() + menuButton.rightIcon:GetWidth()
|
|
Tercio@11
|
923 if (stringWidth > frame.w) then
|
|
Tercio@11
|
924 frame.w = stringWidth
|
|
Tercio@11
|
925 end
|
|
Tercio@11
|
926 end
|
|
Tercio@11
|
927 else
|
|
Tercio@40
|
928 menuButton.leftText:SetWidth (CoolTip.OptionsTable.FixedWidthSub - menuButton.leftIcon:GetWidth() - 12)
|
|
Tercio@11
|
929 end
|
|
Tercio@11
|
930 end
|
|
Tercio@11
|
931
|
|
Tercio@11
|
932 local height = _math_max ( menuButton.leftIcon:GetHeight(), menuButton.rightIcon:GetHeight(), menuButton.leftText:GetStringHeight(), menuButton.rightText:GetStringHeight() )
|
|
Tercio@11
|
933 if (height > frame.hHeight) then
|
|
Tercio@11
|
934 frame.hHeight = height
|
|
Tercio@11
|
935 end
|
|
Tercio@11
|
936
|
|
Tercio@11
|
937 end
|
|
Tercio@11
|
938
|
|
Tercio@11
|
939 function CoolTip:RefreshSpark (menuButton)
|
|
Tercio@11
|
940 menuButton.spark:ClearAllPoints()
|
|
Tercio@45
|
941 menuButton.spark:SetPoint ("LEFT", menuButton.statusbar, "LEFT", (menuButton.statusbar:GetValue() * (menuButton.statusbar:GetWidth() / 100)) - 5, 0)
|
|
Tercio@11
|
942 menuButton.spark2:ClearAllPoints()
|
|
Tercio@11
|
943 menuButton.spark2:SetPoint ("left", menuButton.statusbar, "left", menuButton.statusbar:GetValue() * (menuButton.statusbar:GetWidth()/100) - 16, 0)
|
|
Tercio@11
|
944 end
|
|
Tercio@11
|
945
|
|
Tercio@11
|
946 function CoolTip:StatusBar (menuButton, StatusBar)
|
|
Tercioo@29
|
947
|
|
Tercio@11
|
948 if (StatusBar) then
|
|
Tercio@11
|
949
|
|
Tercio@11
|
950 menuButton.statusbar:SetValue (StatusBar [1])
|
|
Tercio@11
|
951 menuButton.statusbar:SetStatusBarColor (StatusBar [2], StatusBar [3], StatusBar [4], StatusBar [5])
|
|
Tercio@11
|
952 menuButton.statusbar:SetHeight (20 + (CoolTip.OptionsTable.StatusBarHeightMod or 0))
|
|
Tercio@11
|
953
|
|
Tercio@11
|
954 menuButton.spark2:Hide()
|
|
Tercio@11
|
955 if (StatusBar [6]) then
|
|
Tercio@11
|
956 menuButton.spark:Show()
|
|
Tercio@11
|
957 --menuButton.spark:ClearAllPoints()
|
|
Tercio@11
|
958 --menuButton.spark:SetPoint ("LEFT", menuButton.statusbar, "LEFT", (StatusBar [1] * (menuButton.statusbar:GetWidth() / 100)) - 3, 0)
|
|
Tercio@11
|
959 else
|
|
Tercio@11
|
960 menuButton.spark:Hide()
|
|
Tercio@11
|
961 end
|
|
Tercio@11
|
962
|
|
Tercio@11
|
963 if (StatusBar [7]) then
|
|
Tercio@11
|
964 menuButton.statusbar2:SetValue (StatusBar[7].value)
|
|
Tercio@11
|
965 menuButton.statusbar2.texture:SetTexture (StatusBar[7].texture or [[Interface\RaidFrame\Raid-Bar-Hp-Fill]])
|
|
Tercio@11
|
966 if (StatusBar[7].specialSpark) then
|
|
Tercio@11
|
967 menuButton.spark2:Show()
|
|
Tercio@11
|
968 end
|
|
Tercio@11
|
969 if (StatusBar[7].color) then
|
|
Tercio@11
|
970 local ColorR, ColorG, ColorB, ColorA = DF:ParseColors (StatusBar[7].color)
|
|
Tercio@11
|
971 menuButton.statusbar2:SetStatusBarColor (ColorR, ColorG, ColorB, ColorA)
|
|
Tercio@11
|
972 else
|
|
Tercio@11
|
973 menuButton.statusbar2:SetStatusBarColor (1, 1, 1, 1)
|
|
Tercio@11
|
974 end
|
|
Tercio@11
|
975 else
|
|
Tercio@11
|
976 menuButton.statusbar2:SetValue (0)
|
|
Tercio@11
|
977 menuButton.spark2:Hide()
|
|
Tercio@11
|
978 end
|
|
Tercio@11
|
979
|
|
Tercioo@29
|
980 if (StatusBar [8]) then
|
|
Tercioo@29
|
981 local texture = SharedMedia:Fetch ("statusbar", StatusBar [8], true)
|
|
Tercioo@29
|
982 if (texture) then
|
|
Tercioo@29
|
983 menuButton.statusbar.texture:SetTexture (texture)
|
|
Tercioo@29
|
984 else
|
|
Tercioo@29
|
985 menuButton.statusbar.texture:SetTexture (StatusBar [8])
|
|
Tercioo@29
|
986 end
|
|
Tercioo@29
|
987 elseif (CoolTip.OptionsTable.StatusBarTexture) then
|
|
Tercioo@29
|
988 local texture = SharedMedia:Fetch ("statusbar", CoolTip.OptionsTable.StatusBarTexture, true)
|
|
Tercioo@29
|
989 if (texture) then
|
|
Tercioo@29
|
990 menuButton.statusbar.texture:SetTexture (texture)
|
|
Tercioo@29
|
991 else
|
|
Tercioo@29
|
992 menuButton.statusbar.texture:SetTexture (CoolTip.OptionsTable.StatusBarTexture)
|
|
Tercioo@29
|
993 end
|
|
Tercioo@29
|
994 else
|
|
Tercioo@29
|
995 menuButton.statusbar.texture:SetTexture ("Interface\\PaperDollInfoFrame\\UI-Character-Skills-Bar")
|
|
Tercioo@29
|
996 end
|
|
Tercioo@29
|
997
|
|
Tercioo@29
|
998 --[[
|
|
Tercio@11
|
999 if (CoolTip.OptionsTable.StatusBarTexture) then
|
|
Tercio@11
|
1000 menuButton.statusbar.texture:SetTexture (CoolTip.OptionsTable.StatusBarTexture)
|
|
Tercio@11
|
1001 else
|
|
Tercio@11
|
1002 menuButton.statusbar.texture:SetTexture ("Interface\\PaperDollInfoFrame\\UI-Character-Skills-Bar")
|
|
Tercio@11
|
1003 end
|
|
Tercioo@29
|
1004 --]]
|
|
Tercio@11
|
1005 else
|
|
Tercio@11
|
1006 menuButton.statusbar:SetValue (0)
|
|
Tercio@11
|
1007 menuButton.statusbar2:SetValue (0)
|
|
Tercio@11
|
1008 menuButton.spark:Hide()
|
|
Tercio@11
|
1009 menuButton.spark2:Hide()
|
|
Tercio@11
|
1010 end
|
|
Tercioo@29
|
1011
|
|
Tercio@11
|
1012 if (CoolTip.OptionsTable.LeftBorderSize) then
|
|
Tercio@11
|
1013 menuButton.statusbar:SetPoint ("left", menuButton, "left", 10 + CoolTip.OptionsTable.LeftBorderSize, 0)
|
|
Tercio@11
|
1014 else
|
|
Tercio@11
|
1015 menuButton.statusbar:SetPoint ("left", menuButton, "left", 10, 0)
|
|
Tercio@11
|
1016 end
|
|
Tercio@11
|
1017
|
|
Tercio@11
|
1018 if (CoolTip.OptionsTable.RightBorderSize) then
|
|
Tercio@11
|
1019 menuButton.statusbar:SetPoint ("right", menuButton, "right", CoolTip.OptionsTable.RightBorderSize + (- 10), 0)
|
|
Tercio@11
|
1020 else
|
|
Tercio@11
|
1021 menuButton.statusbar:SetPoint ("right", menuButton, "right", -10, 0)
|
|
Tercio@11
|
1022 end
|
|
Tercio@11
|
1023 end
|
|
Tercio@11
|
1024
|
|
Tercio@11
|
1025 function CoolTip:SetupMainButton (menuButton, index)
|
|
Tercio@11
|
1026 menuButton.index = index
|
|
Tercio@11
|
1027
|
|
Tercio@11
|
1028 --> setup texts and icons
|
|
Tercio@11
|
1029 CoolTip:TextAndIcon (index, frame1, menuButton, CoolTip.LeftTextTable [index], CoolTip.RightTextTable [index], CoolTip.LeftIconTable [index], CoolTip.RightIconTable [index])
|
|
Tercio@11
|
1030 --> setup statusbar
|
|
Tercio@11
|
1031 CoolTip:StatusBar (menuButton, CoolTip.StatusBarTable [index])
|
|
Tercio@11
|
1032
|
|
Tercio@11
|
1033 --> click
|
|
Tercio@11
|
1034 menuButton:RegisterForClicks ("LeftButtonDown")
|
|
Tercio@11
|
1035
|
|
Tercio@11
|
1036 --> string length
|
|
Tercio@11
|
1037 if (not CoolTip.OptionsTable.FixedWidth) then
|
|
Tercio@11
|
1038 local stringWidth = menuButton.leftText:GetStringWidth() + menuButton.rightText:GetStringWidth() + menuButton.leftIcon:GetWidth() + menuButton.rightIcon:GetWidth()
|
|
Tercio@11
|
1039 if (stringWidth > frame1.w) then
|
|
Tercio@11
|
1040 frame1.w = stringWidth
|
|
Tercio@11
|
1041 end
|
|
Tercio@11
|
1042 end
|
|
Tercio@11
|
1043
|
|
Tercio@11
|
1044 --> register click function
|
|
Tercio@55
|
1045 menuButton:SetScript ("OnClick", OnClickFunctionMainButton)
|
|
Tercio@11
|
1046 menuButton:Show()
|
|
Tercio@11
|
1047 end
|
|
Tercio@11
|
1048
|
|
Tercio@11
|
1049 function CoolTip:SetupSecondaryButton (menuButton, index, mainMenuIndex)
|
|
Tercio@11
|
1050
|
|
Tercio@11
|
1051 menuButton.index = index
|
|
Tercio@11
|
1052 menuButton.mainIndex = mainMenuIndex
|
|
Tercio@11
|
1053
|
|
Tercio@11
|
1054 --> setup texts and icons
|
|
Tercio@11
|
1055 CoolTip:TextAndIcon (index, frame2, menuButton, CoolTip.LeftTextTableSub [mainMenuIndex] and CoolTip.LeftTextTableSub [mainMenuIndex] [index],
|
|
Tercio@11
|
1056 CoolTip.RightTextTableSub [mainMenuIndex] and CoolTip.RightTextTableSub [mainMenuIndex] [index],
|
|
Tercio@11
|
1057 CoolTip.LeftIconTableSub [mainMenuIndex] and CoolTip.LeftIconTableSub [mainMenuIndex] [index],
|
|
Tercio@11
|
1058 CoolTip.RightIconTableSub [mainMenuIndex] and CoolTip.RightIconTableSub [mainMenuIndex] [index], true)
|
|
Tercio@11
|
1059 --> setup statusbar
|
|
Tercio@11
|
1060 CoolTip:StatusBar (menuButton, CoolTip.StatusBarTableSub [mainMenuIndex] and CoolTip.StatusBarTableSub [mainMenuIndex] [index])
|
|
Tercio@11
|
1061
|
|
Tercio@11
|
1062 --> click
|
|
Tercio@11
|
1063 menuButton:RegisterForClicks ("LeftButtonDown")
|
|
Tercio@11
|
1064
|
|
Tercio@11
|
1065 menuButton:ClearAllPoints()
|
|
Tercio@11
|
1066 menuButton:SetPoint ("center", frame2, "center")
|
|
Tercio@11
|
1067 menuButton:SetPoint ("top", frame2, "top", 0, (((index-1)*20)*-1)-3)
|
|
Tercio@40
|
1068 menuButton:SetPoint ("left", frame2, "left", -4, 0)
|
|
Tercio@40
|
1069 menuButton:SetPoint ("right", frame2, "right", 4, 0)
|
|
Tercio@11
|
1070
|
|
Tercio@26
|
1071 DF:FadeFrame (menuButton, 0)
|
|
Tercio@11
|
1072
|
|
Tercio@11
|
1073 --> string length
|
|
Tercio@11
|
1074 local stringWidth = menuButton.leftText:GetStringWidth() + menuButton.rightText:GetStringWidth() + menuButton.leftIcon:GetWidth() + menuButton.rightIcon:GetWidth()
|
|
Tercio@11
|
1075 if (stringWidth > frame2.w) then
|
|
Tercio@11
|
1076 frame2.w = stringWidth
|
|
Tercio@11
|
1077 end
|
|
Tercio@11
|
1078
|
|
Tercio@55
|
1079 menuButton:SetScript ("OnClick", OnClickFunctionSecondaryButton)
|
|
Tercio@11
|
1080 menuButton:Show()
|
|
Tercio@11
|
1081
|
|
Tercio@11
|
1082 return true
|
|
Tercio@11
|
1083 end
|
|
Tercio@11
|
1084
|
|
Tercio@11
|
1085 -- -- --------------------------------------------------------------------------------------------------------------
|
|
Tercio@11
|
1086
|
|
Tercio@11
|
1087 function CoolTip:SetupWallpaper (wallpaperTable, wallpaper)
|
|
Tercio@11
|
1088 local texture = wallpaperTable [1]
|
|
Tercio@11
|
1089 if (DF:IsHtmlColor (texture) or type (texture) == "table") then
|
|
Tercio@11
|
1090 local r, g, b, a = DF:ParseColors (texture)
|
|
Tercio@11
|
1091 wallpaper:SetTexture (r, g, b, a)
|
|
Tercio@11
|
1092 else
|
|
Tercio@11
|
1093 wallpaper:SetTexture (texture)
|
|
Tercio@11
|
1094 end
|
|
Tercio@11
|
1095
|
|
Tercio@11
|
1096 wallpaper:SetTexCoord (wallpaperTable[2], wallpaperTable[3], wallpaperTable[4], wallpaperTable[5])
|
|
Tercio@11
|
1097
|
|
Tercio@11
|
1098 local color = wallpaperTable[6]
|
|
Tercio@11
|
1099 if (color) then
|
|
Tercio@11
|
1100 local r, g, b, a = DF:ParseColors (color)
|
|
Tercio@11
|
1101 wallpaper:SetVertexColor (r, g, b, a)
|
|
Tercio@11
|
1102 else
|
|
Tercio@11
|
1103 wallpaper:SetVertexColor (1, 1, 1, 1)
|
|
Tercio@11
|
1104 end
|
|
Tercio@11
|
1105
|
|
Tercio@11
|
1106 if (wallpaperTable[7]) then
|
|
Tercio@11
|
1107 wallpaper:SetDesaturated (true)
|
|
Tercio@11
|
1108 else
|
|
Tercio@11
|
1109 wallpaper:SetDesaturated (false)
|
|
Tercio@11
|
1110 end
|
|
Tercio@11
|
1111
|
|
Tercio@11
|
1112 wallpaper:Show()
|
|
Tercio@11
|
1113 end
|
|
Tercio@11
|
1114
|
|
Tercio@11
|
1115 -- -- --------------------------------------------------------------------------------------------------------------
|
|
Tercio@11
|
1116
|
|
Tercio@11
|
1117 function CoolTip:ShowSub (index)
|
|
Tercio@11
|
1118
|
|
Tercio@11
|
1119 if (CoolTip.OptionsTable.IgnoreSubMenu) then
|
|
Tercio@26
|
1120 DF:FadeFrame (frame2, 1)
|
|
Tercio@11
|
1121 return
|
|
Tercio@11
|
1122 end
|
|
Tercio@11
|
1123
|
|
Tercio@11
|
1124 frame2:SetHeight (6)
|
|
Tercio@11
|
1125
|
|
Tercio@11
|
1126 local amtIndexes = CoolTip.IndexesSub [index]
|
|
Tercio@11
|
1127 if (not amtIndexes) then
|
|
Tercio@11
|
1128 --print ("Sub menu called but sub menu indexes is nil")
|
|
Tercio@11
|
1129 return
|
|
Tercio@11
|
1130 end
|
|
Tercio@11
|
1131
|
|
Tercio@11
|
1132 if (CoolTip.OptionsTable.FixedWidthSub) then
|
|
Tercio@11
|
1133 frame2:SetWidth (CoolTip.OptionsTable.FixedWidthSub)
|
|
Tercio@11
|
1134 end
|
|
Tercio@11
|
1135
|
|
Tercio@11
|
1136 frame2.h = CoolTip.IndexesSub [index] * 20
|
|
Tercio@11
|
1137 frame2.hHeight = 0
|
|
Tercio@11
|
1138 frame2.w = 0
|
|
Tercio@11
|
1139
|
|
Tercio@11
|
1140 --> pegar a fontsize da label principal
|
|
Tercio@11
|
1141 local mainButton = frame1.Lines [index]
|
|
Tercio@11
|
1142 local fontSize = DF:GetFontSize (mainButton.leftText)
|
|
Tercio@11
|
1143
|
|
Tercio@11
|
1144 local GotChecked = false
|
|
Tercio@11
|
1145
|
|
Tercio@11
|
1146 local IsTooltip = CoolTip.OptionsTable.SubMenuIsTooltip
|
|
Tercio@11
|
1147 if (IsTooltip) then
|
|
Tercio@11
|
1148 frame2:EnableMouse (false)
|
|
Tercio@11
|
1149 else
|
|
Tercio@11
|
1150 frame2:EnableMouse (true)
|
|
Tercio@11
|
1151 end
|
|
Tercio@11
|
1152
|
|
Tercio@11
|
1153 for i = 1, CoolTip.IndexesSub [index] do
|
|
Tercio@11
|
1154
|
|
Tercio@11
|
1155 local button = frame2.Lines [i]
|
|
Tercio@11
|
1156
|
|
Tercio@11
|
1157 if (not button) then
|
|
Tercio@11
|
1158 button = CoolTip:NewSecondaryButton (i)
|
|
Tercio@11
|
1159 end
|
|
Tercio@11
|
1160
|
|
Tercio@11
|
1161 local checked = CoolTip:SetupSecondaryButton (button, i, index)
|
|
Tercio@11
|
1162 if (checked) then
|
|
Tercio@11
|
1163 GotChecked = true
|
|
Tercio@11
|
1164 end
|
|
Tercio@11
|
1165
|
|
Tercio@11
|
1166 if (IsTooltip) then
|
|
Tercio@11
|
1167 button:EnableMouse (false)
|
|
Tercio@11
|
1168 else
|
|
Tercio@11
|
1169 button:EnableMouse (true)
|
|
Tercio@11
|
1170 end
|
|
Tercio@11
|
1171 end
|
|
Tercio@11
|
1172
|
|
Tercio@11
|
1173 local selected = CoolTip.SelectedIndexSec [index]
|
|
Tercio@11
|
1174 if (selected) then
|
|
Tercio@11
|
1175
|
|
Tercio@11
|
1176 CoolTip:SetSelectedAnchor (frame2, frame2.Lines [selected])
|
|
Tercio@11
|
1177
|
|
Tercio@11
|
1178 if (not CoolTip.OptionsTable.NoLastSelectedBar) then
|
|
Tercio@11
|
1179 CoolTip:ShowSelectedTexture (frame2)
|
|
Tercio@11
|
1180 end
|
|
Tercio@11
|
1181 else
|
|
Tercio@11
|
1182 CoolTip:HideSelectedTexture (frame2)
|
|
Tercio@11
|
1183 end
|
|
Tercio@11
|
1184
|
|
Tercio@11
|
1185 for i = CoolTip.IndexesSub [index] + 1, #frame2.Lines do
|
|
Tercio@26
|
1186 DF:FadeFrame (frame2.Lines[i], 1)
|
|
Tercio@11
|
1187 end
|
|
Tercio@11
|
1188
|
|
Tercio@11
|
1189 local spacing = 0
|
|
Tercio@11
|
1190 if (CoolTip.OptionsTable.YSpacingModSub) then
|
|
Tercio@11
|
1191 spacing = CoolTip.OptionsTable.YSpacingModSub
|
|
Tercio@11
|
1192 end
|
|
Tercio@11
|
1193
|
|
Tercio@11
|
1194 --> normalize height of all rows
|
|
Tercio@11
|
1195 for i = 1, CoolTip.IndexesSub [index] do
|
|
Tercio@11
|
1196
|
|
Tercio@11
|
1197 local menuButton = frame2.Lines [i]
|
|
Tercio@11
|
1198
|
|
Tercio@11
|
1199 -- CoolTipFrame2.Lines [2].divbar
|
|
Tercio@11
|
1200
|
|
Tercio@11
|
1201 if (menuButton.leftText:GetText() == "$div") then
|
|
Tercio@11
|
1202
|
|
Tercio@11
|
1203 --> height
|
|
Tercio@11
|
1204 menuButton:SetHeight (4)
|
|
Tercio@11
|
1205
|
|
Tercio@11
|
1206 --> points
|
|
Tercio@11
|
1207 menuButton:ClearAllPoints()
|
|
Tercio@11
|
1208
|
|
Tercio@11
|
1209 menuButton:SetPoint ("center", frame2, "center")
|
|
Tercio@40
|
1210 menuButton:SetPoint ("left", frame2, "left", -4, 0)
|
|
Tercio@40
|
1211 menuButton:SetPoint ("right", frame2, "right", 4, 0)
|
|
Tercio@11
|
1212
|
|
Tercio@11
|
1213 menuButton.rightText:SetText ("")
|
|
Tercio@11
|
1214
|
|
Tercio@11
|
1215 local div_size_up = tonumber (CoolTip.RightTextTableSub [index] [i] [2])
|
|
Tercio@11
|
1216 if (not div_size_up) then
|
|
Tercio@11
|
1217 div_size_up = 0
|
|
Tercio@11
|
1218 end
|
|
Tercio@11
|
1219 local div_size_down = tonumber (CoolTip.RightTextTableSub [index] [i] [3])
|
|
Tercio@11
|
1220 if (not div_size_down) then
|
|
Tercio@11
|
1221 div_size_down = 0
|
|
Tercio@11
|
1222 end
|
|
Tercio@11
|
1223
|
|
Tercio@11
|
1224 menuButton:SetPoint ("top", frame2, "top", 0, ( ( (i-1) * frame2.hHeight) * -1) - 4 + (CoolTip.OptionsTable.ButtonsYModSub or 0) + spacing + (2 + (div_size_up or 0)))
|
|
Tercio@11
|
1225
|
|
Tercio@11
|
1226 if (CoolTip.OptionsTable.YSpacingModSub) then
|
|
Tercio@11
|
1227 spacing = spacing + CoolTip.OptionsTable.YSpacingModSub
|
|
Tercio@11
|
1228 end
|
|
Tercio@11
|
1229
|
|
Tercio@11
|
1230 spacing = spacing + 17 + (div_size_down or 0)
|
|
Tercio@11
|
1231
|
|
Tercio@11
|
1232 menuButton.leftText:SetText ("")
|
|
Tercio@11
|
1233 menuButton.isDiv = true
|
|
Tercio@11
|
1234
|
|
Tercio@11
|
1235 if (not menuButton.divbar) then
|
|
Tercio@11
|
1236 CoolTip:CreateDivBar (menuButton)
|
|
Tercio@11
|
1237 else
|
|
Tercio@11
|
1238 menuButton.divbar:Show()
|
|
Tercio@11
|
1239 end
|
|
Tercio@11
|
1240
|
|
Tercio@11
|
1241 menuButton.divbar:SetPoint ("left", menuButton, "left", frame1:GetWidth()*0.10, 0)
|
|
Tercio@11
|
1242 menuButton.divbar:SetPoint ("right", menuButton, "right", -frame1:GetWidth()*0.10, 0)
|
|
Tercio@11
|
1243
|
|
Tercio@11
|
1244 else
|
|
Tercio@11
|
1245 --> height
|
|
Tercio@11
|
1246 menuButton:SetHeight (frame2.hHeight + (CoolTip.OptionsTable.ButtonHeightModSub or 0))
|
|
Tercio@11
|
1247 --> points
|
|
Tercio@11
|
1248 menuButton:ClearAllPoints()
|
|
Tercio@11
|
1249 menuButton:SetPoint ("center", frame2, "center")
|
|
Tercio@11
|
1250 menuButton:SetPoint ("top", frame2, "top", 0, ( ( (i-1) * frame2.hHeight) * -1) - 4 + (CoolTip.OptionsTable.ButtonsYModSub or 0) + spacing)
|
|
Tercio@11
|
1251 if (CoolTip.OptionsTable.YSpacingModSub) then
|
|
Tercio@11
|
1252 spacing = spacing + CoolTip.OptionsTable.YSpacingModSub
|
|
Tercio@11
|
1253 end
|
|
Tercio@40
|
1254 menuButton:SetPoint ("left", frame2, "left", -4, 0)
|
|
Tercio@40
|
1255 menuButton:SetPoint ("right", frame2, "right", 4, 0)
|
|
Tercio@11
|
1256
|
|
Tercio@11
|
1257 if (menuButton.divbar) then
|
|
Tercio@11
|
1258 menuButton.divbar:Hide()
|
|
Tercio@11
|
1259 menuButton.isDiv = false
|
|
Tercio@11
|
1260 end
|
|
Tercio@11
|
1261 end
|
|
Tercio@11
|
1262
|
|
Tercio@11
|
1263 end
|
|
Tercio@11
|
1264
|
|
Tercio@11
|
1265 local mod = CoolTip.OptionsTable.HeighModSub or 0
|
|
Tercio@11
|
1266 frame2:SetHeight ( (frame2.hHeight * CoolTip.IndexesSub [index]) + 12 + (-spacing) + mod)
|
|
Tercio@11
|
1267
|
|
Tercio@11
|
1268 if (CoolTip.TopIconTableSub [index]) then
|
|
Tercio@11
|
1269 local upperImageTable = CoolTip.TopIconTableSub [index]
|
|
Tercio@11
|
1270 frame2.upperImage:SetTexture (upperImageTable [1])
|
|
Tercio@11
|
1271 frame2.upperImage:SetWidth (upperImageTable [2])
|
|
Tercio@11
|
1272 frame2.upperImage:SetHeight (upperImageTable [3])
|
|
Tercio@11
|
1273 frame2.upperImage:SetTexCoord (upperImageTable[4], upperImageTable[5], upperImageTable[6], upperImageTable[7])
|
|
Tercio@11
|
1274 frame2.upperImage:Show()
|
|
Tercio@11
|
1275 else
|
|
Tercio@11
|
1276 frame2.upperImage:Hide()
|
|
Tercio@11
|
1277 end
|
|
Tercio@11
|
1278
|
|
Tercio@11
|
1279 if (CoolTip.WallpaperTableSub [index]) then
|
|
Tercio@11
|
1280 CoolTip:SetupWallpaper (CoolTip.WallpaperTableSub [index], frame2.frameWallpaper)
|
|
Tercio@11
|
1281 else
|
|
Tercio@11
|
1282 frame2.frameWallpaper:Hide()
|
|
Tercio@11
|
1283 end
|
|
Tercio@11
|
1284
|
|
Tercio@11
|
1285 if (not CoolTip.OptionsTable.FixedWidthSub) then
|
|
Tercio@11
|
1286 frame2:SetWidth (frame2.w + 44)
|
|
Tercio@11
|
1287 end
|
|
Tercio@11
|
1288
|
|
Tercio@26
|
1289 DF:FadeFrame (frame2, 0)
|
|
Tercio@11
|
1290
|
|
Tercio@11
|
1291 CoolTip:CheckOverlap()
|
|
Tercio@11
|
1292
|
|
Tercio@11
|
1293 if (CoolTip.OptionsTable.SubFollowButton and not CoolTip.frame2_leftside) then
|
|
Tercio@11
|
1294
|
|
Tercio@11
|
1295 local button = frame1.Lines [index]
|
|
Tercio@11
|
1296
|
|
Tercio@11
|
1297 frame2:ClearAllPoints()
|
|
Tercio@40
|
1298 frame2:SetPoint ("left", button, "right", 4, 0)
|
|
Tercio@11
|
1299
|
|
Tercio@11
|
1300 elseif (CoolTip.OptionsTable.SubFollowButton and CoolTip.frame2_leftside) then
|
|
Tercio@11
|
1301
|
|
Tercio@11
|
1302 local button = frame1.Lines [index]
|
|
Tercio@11
|
1303
|
|
Tercio@11
|
1304 frame2:ClearAllPoints()
|
|
Tercio@40
|
1305 frame2:SetPoint ("right", button, "left", -4, 0)
|
|
Tercio@11
|
1306
|
|
Tercio@11
|
1307 elseif (CoolTip.frame2_leftside) then
|
|
Tercio@11
|
1308 frame2:ClearAllPoints()
|
|
Tercio@40
|
1309 frame2:SetPoint ("bottomright", frame1, "bottomleft", -4, 0)
|
|
Tercio@11
|
1310 else
|
|
Tercio@11
|
1311 frame2:ClearAllPoints()
|
|
Tercio@40
|
1312 frame2:SetPoint ("bottomleft", frame1, "bottomright", 4, 0)
|
|
Tercio@11
|
1313 end
|
|
Tercio@11
|
1314
|
|
Tercio@11
|
1315 end
|
|
Tercio@11
|
1316
|
|
Tercio@11
|
1317 function CoolTip:HideSub()
|
|
Tercio@26
|
1318 DF:FadeFrame (frame2, 1)
|
|
Tercio@11
|
1319 end
|
|
Tercio@11
|
1320
|
|
Tercio@11
|
1321
|
|
Tercio@11
|
1322 function CoolTip:LeftTextSpace (row)
|
|
Tercio@11
|
1323 row.leftText:SetWidth (row:GetWidth() - 30 - row.leftIcon:GetWidth() - row.rightIcon:GetWidth() - row.rightText:GetStringWidth())
|
|
Tercio@11
|
1324 row.leftText:SetHeight (10)
|
|
Tercio@11
|
1325 end
|
|
Tercio@11
|
1326
|
|
Tercio@26
|
1327 --> ~inicio ~start ~tooltip
|
|
Tercio@11
|
1328 function CoolTip:monta_tooltip()
|
|
Tercio@11
|
1329
|
|
Tercio@11
|
1330 --> hide sub frame
|
|
Tercio@26
|
1331 DF:FadeFrame (frame2, 1)
|
|
Tercio@11
|
1332 --> hide select bar
|
|
Tercio@11
|
1333 CoolTip:HideSelectedTexture (frame1)
|
|
Tercio@11
|
1334
|
|
Tercio@11
|
1335 frame1:EnableMouse (false)
|
|
Tercio@11
|
1336
|
|
Tercio@11
|
1337 --> elevator
|
|
Tercio@11
|
1338 local yDown = 5
|
|
Tercio@11
|
1339 --> width
|
|
Tercio@11
|
1340 if (CoolTip.OptionsTable.FixedWidth) then
|
|
Tercio@11
|
1341 frame1:SetWidth (CoolTip.OptionsTable.FixedWidth)
|
|
Tercio@11
|
1342 end
|
|
Tercio@11
|
1343
|
|
Tercio@11
|
1344 frame1.w = CoolTip.OptionsTable.FixedWidth or 0
|
|
Tercio@11
|
1345 frame1.hHeight = 0
|
|
Tercio@11
|
1346 frame2.hHeight = 0
|
|
Tercio@11
|
1347
|
|
Tercio@11
|
1348 CoolTip.active = true
|
|
Tercio@11
|
1349
|
|
Tercio@11
|
1350 for i = 1, CoolTip.Indexes do
|
|
Tercio@11
|
1351
|
|
Tercio@11
|
1352 local button = frame1.Lines [i]
|
|
Tercio@11
|
1353 if (not button) then
|
|
Tercio@11
|
1354 button = CoolTip:NewMainButton (i)
|
|
Tercio@11
|
1355 end
|
|
Tercio@11
|
1356
|
|
Tercio@11
|
1357 button.index = i
|
|
Tercio@11
|
1358
|
|
Tercio@11
|
1359 --> basic stuff
|
|
Tercio@11
|
1360 button:Show()
|
|
Tercio@11
|
1361 button.background:Hide()
|
|
Tercio@11
|
1362 button:SetHeight (CoolTip.OptionsTable.ButtonHeightMod or CoolTip.default_height)
|
|
Tercio@11
|
1363 button:RegisterForClicks()
|
|
Tercio@11
|
1364
|
|
Tercio@11
|
1365 --> setup texts and icons
|
|
Tercio@11
|
1366 CoolTip:TextAndIcon (i, frame1, button, CoolTip.LeftTextTable [i], CoolTip.RightTextTable [i], CoolTip.LeftIconTable [i], CoolTip.RightIconTable [i])
|
|
Tercio@11
|
1367 --> setup statusbar
|
|
Tercio@11
|
1368 CoolTip:StatusBar (button, CoolTip.StatusBarTable [i])
|
|
Tercio@11
|
1369 end
|
|
Tercio@11
|
1370
|
|
Tercio@11
|
1371 --> hide unused lines
|
|
Tercio@11
|
1372 for i = CoolTip.Indexes+1, #frame1.Lines do
|
|
Tercio@11
|
1373 frame1.Lines[i]:Hide()
|
|
Tercio@11
|
1374 end
|
|
Tercio@11
|
1375 CoolTip.NumLines = CoolTip.Indexes
|
|
Tercio@11
|
1376
|
|
Tercio@11
|
1377 local spacing = 0
|
|
Tercio@11
|
1378 if (CoolTip.OptionsTable.YSpacingMod) then
|
|
Tercio@11
|
1379 spacing = CoolTip.OptionsTable.YSpacingMod
|
|
Tercio@11
|
1380 end
|
|
Tercio@11
|
1381
|
|
Tercio@11
|
1382 --> normalize height of all rows
|
|
Tercio@11
|
1383 local temp = -6 + spacing + (CoolTip.OptionsTable.ButtonsYMod or 0)
|
|
Tercio@11
|
1384 for i = 1, CoolTip.Indexes do
|
|
Tercio@11
|
1385 local menuButton = frame1.Lines [i]
|
|
Tercio@11
|
1386
|
|
Tercio@11
|
1387 menuButton:ClearAllPoints()
|
|
Tercio@11
|
1388 menuButton:SetPoint ("center", frame1, "center")
|
|
Tercio@40
|
1389 menuButton:SetPoint ("left", frame1, "left", -4, 0)
|
|
Tercio@40
|
1390 menuButton:SetPoint ("right", frame1, "right", 4, 0)
|
|
Tercio@11
|
1391
|
|
Tercio@11
|
1392 --> height
|
|
Tercio@11
|
1393 if (CoolTip.OptionsTable.AlignAsBlizzTooltip) then
|
|
Tercio@11
|
1394 local height = _math_max (8, menuButton.leftText:GetStringHeight(), menuButton.rightText:GetStringHeight(), menuButton.leftIcon:GetHeight(), menuButton.rightIcon:GetHeight())
|
|
Tercio@11
|
1395 menuButton:SetHeight (height)
|
|
Tercio@11
|
1396 menuButton:SetPoint ("top", frame1, "top", 0, temp)
|
|
Tercio@11
|
1397 temp = temp + ( height * -1)
|
|
Tercio@11
|
1398
|
|
Tercio@11
|
1399 elseif (CoolTip.OptionsTable.IgnoreButtonAutoHeight) then
|
|
Tercio@11
|
1400
|
|
Tercio@11
|
1401 local height = _math_max (menuButton.leftText:GetStringHeight(), menuButton.rightText:GetStringHeight(), menuButton.leftIcon:GetHeight(), menuButton.rightIcon:GetHeight())
|
|
Tercio@11
|
1402 menuButton:SetHeight (height)
|
|
Tercio@11
|
1403 menuButton:SetPoint ("top", frame1, "top", 0, temp)
|
|
Tercio@11
|
1404
|
|
Tercio@11
|
1405 temp = temp + ( height * -1) + spacing + (CoolTip.OptionsTable.ButtonsYMod or 0)
|
|
Tercio@11
|
1406
|
|
Tercio@11
|
1407 else
|
|
Tercio@11
|
1408 menuButton:SetHeight (frame1.hHeight + (CoolTip.OptionsTable.ButtonHeightMod or 0))
|
|
Tercio@11
|
1409 menuButton:SetPoint ("top", frame1, "top", 0, ( ( (i-1) * frame1.hHeight) * -1) - 6 + (CoolTip.OptionsTable.ButtonsYMod or 0) + spacing)
|
|
Tercio@11
|
1410 end
|
|
Tercio@11
|
1411
|
|
Tercio@11
|
1412 --> points
|
|
Tercio@11
|
1413
|
|
Tercio@11
|
1414 if (CoolTip.OptionsTable.YSpacingMod and not CoolTip.OptionsTable.IgnoreButtonAutoHeight) then
|
|
Tercio@11
|
1415 spacing = spacing + CoolTip.OptionsTable.YSpacingMod
|
|
Tercio@11
|
1416 end
|
|
Tercio@11
|
1417
|
|
Tercio@11
|
1418 menuButton:EnableMouse (false)
|
|
Tercio@11
|
1419 end
|
|
Tercio@11
|
1420
|
|
Tercio@11
|
1421 if (not CoolTip.OptionsTable.FixedWidth) then
|
|
Tercio@11
|
1422 if (CoolTip.Type == 2) then --> with bars
|
|
Tercio@11
|
1423 if (CoolTip.OptionsTable.MinWidth) then
|
|
Tercio@11
|
1424 local w = frame1.w + 34
|
|
Tercio@11
|
1425 frame1:SetWidth (math.max (w, CoolTip.OptionsTable.MinWidth))
|
|
Tercio@11
|
1426 else
|
|
Tercio@11
|
1427 frame1:SetWidth (frame1.w + 34)
|
|
Tercio@11
|
1428 end
|
|
Tercio@11
|
1429 else
|
|
Tercio@11
|
1430 --> width stability check
|
|
Tercio@11
|
1431 local width = frame1.w + 24
|
|
Tercio@11
|
1432 if (width > CoolTip.LastSize-5 and width < CoolTip.LastSize+5) then
|
|
Tercio@11
|
1433 width = CoolTip.LastSize
|
|
Tercio@11
|
1434 else
|
|
Tercio@11
|
1435 CoolTip.LastSize = width
|
|
Tercio@11
|
1436 end
|
|
Tercio@11
|
1437
|
|
Tercio@11
|
1438 if (CoolTip.OptionsTable.MinWidth) then
|
|
Tercio@11
|
1439 frame1:SetWidth (math.max (width, CoolTip.OptionsTable.MinWidth))
|
|
Tercio@11
|
1440 else
|
|
Tercio@11
|
1441 frame1:SetWidth (width)
|
|
Tercio@11
|
1442 end
|
|
Tercio@11
|
1443 end
|
|
Tercio@11
|
1444 end
|
|
Tercio@11
|
1445
|
|
Tercio@11
|
1446 if (CoolTip.OptionsTable.FixedHeight) then
|
|
Tercio@11
|
1447 frame1:SetHeight (CoolTip.OptionsTable.FixedHeight)
|
|
Tercio@11
|
1448 else
|
|
Tercio@11
|
1449 if (CoolTip.OptionsTable.AlignAsBlizzTooltip) then
|
|
Tercio@11
|
1450 frame1:SetHeight ( (temp-10) * -1)
|
|
Tercio@11
|
1451 elseif (CoolTip.OptionsTable.IgnoreButtonAutoHeight) then
|
|
Tercio@11
|
1452 frame1:SetHeight ( (temp+spacing) * -1)
|
|
Tercio@11
|
1453 else
|
|
Tercioo@29
|
1454 frame1:SetHeight ( _math_max ( (frame1.hHeight * CoolTip.Indexes) + 8 + ((CoolTip.OptionsTable.ButtonsYMod or 0)*-1), 22 ))
|
|
Tercio@11
|
1455 end
|
|
Tercio@11
|
1456 end
|
|
Tercio@11
|
1457
|
|
Tercio@11
|
1458 if (CoolTip.WallpaperTable [1]) then
|
|
Tercio@11
|
1459 CoolTip:SetupWallpaper (CoolTip.WallpaperTable, frame1.frameWallpaper)
|
|
Tercio@11
|
1460 else
|
|
Tercio@11
|
1461 frame1.frameWallpaper:Hide()
|
|
Tercio@11
|
1462 end
|
|
Tercio@11
|
1463
|
|
Tercio@11
|
1464 --> unhide frame
|
|
Tercio@26
|
1465 DF:FadeFrame (frame1, 0)
|
|
Tercio@11
|
1466 CoolTip:SetMyPoint (host)
|
|
Tercio@11
|
1467
|
|
Tercio@11
|
1468 --> fix sparks
|
|
Tercio@11
|
1469 for i = 1, CoolTip.Indexes do
|
|
Tercio@11
|
1470 local menuButton = frame1.Lines [i]
|
|
Tercio@11
|
1471 if (menuButton.spark:IsShown() or menuButton.spark2:IsShown()) then
|
|
Tercio@11
|
1472 CoolTip:RefreshSpark (menuButton)
|
|
Tercio@11
|
1473 end
|
|
Tercio@11
|
1474 end
|
|
Tercio@11
|
1475 end
|
|
Tercio@11
|
1476
|
|
Tercio@11
|
1477 function CoolTip:CreateDivBar (button)
|
|
Tercio@11
|
1478 button.divbar = button:CreateTexture (nil, "overlay")
|
|
Tercio@11
|
1479
|
|
Tercio@11
|
1480 button.divbar:SetTexture ([[Interface\QUESTFRAME\AutoQuest-Parts]])
|
|
Tercio@11
|
1481 button.divbar:SetTexCoord (238/512, 445/512, 0/64, 4/64)
|
|
Tercio@11
|
1482
|
|
Tercio@11
|
1483 button.divbar:SetHeight (3)
|
|
Tercio@11
|
1484 button.divbar:SetAlpha (0.1)
|
|
Tercio@11
|
1485
|
|
Tercio@11
|
1486 button.divbar:SetDesaturated (true)
|
|
Tercio@11
|
1487 end
|
|
Tercio@11
|
1488
|
|
Tercio@26
|
1489 --> ~inicio ~start ~menu
|
|
Tercio@11
|
1490 function CoolTip:monta_cooltip (host, instancia, options, sub_menus, icones, tamanho1, tamanho2, font, fontsize)
|
|
Tercio@11
|
1491
|
|
Tercio@11
|
1492 if (CoolTip.Indexes == 0) then
|
|
Tercio@11
|
1493 CoolTip:Reset()
|
|
Tercio@11
|
1494 CoolTip:SetType ("tooltip")
|
|
Tercio@11
|
1495 CoolTip:AddLine ("There is no options.")
|
|
Tercio@11
|
1496 CoolTip:ShowCooltip()
|
|
Tercio@11
|
1497 return
|
|
Tercio@11
|
1498 end
|
|
Tercio@11
|
1499
|
|
Tercio@11
|
1500 if (CoolTip.OptionsTable.FixedWidth) then
|
|
Tercio@11
|
1501 frame1:SetWidth (CoolTip.OptionsTable.FixedWidth)
|
|
Tercio@11
|
1502 end
|
|
Tercio@11
|
1503
|
|
Tercio@11
|
1504 frame1.w = CoolTip.OptionsTable.FixedWidth or 0
|
|
Tercio@11
|
1505 frame1.hHeight = 0
|
|
Tercio@11
|
1506 frame2.hHeight = 0
|
|
Tercio@11
|
1507
|
|
Tercio@11
|
1508 frame1:EnableMouse (true)
|
|
Tercio@11
|
1509
|
|
Tercio@11
|
1510 if (CoolTip.HaveSubMenu) then --> zera o segundo frame
|
|
Tercio@11
|
1511 frame2.w = 0
|
|
Tercio@11
|
1512 frame2:SetHeight (6)
|
|
Tercio@11
|
1513 if (CoolTip.SelectedIndexMain and CoolTip.IndexesSub [CoolTip.SelectedIndexMain] and CoolTip.IndexesSub [CoolTip.SelectedIndexMain] > 0) then
|
|
Tercio@26
|
1514 DF:FadeFrame (frame2, 0)
|
|
Tercio@11
|
1515 else
|
|
Tercio@26
|
1516 DF:FadeFrame (frame2, 1)
|
|
Tercio@11
|
1517 end
|
|
Tercio@11
|
1518 else
|
|
Tercio@26
|
1519 DF:FadeFrame (frame2, 1)
|
|
Tercio@11
|
1520 end
|
|
Tercio@11
|
1521
|
|
Tercio@11
|
1522 CoolTip.active = true
|
|
Tercio@11
|
1523
|
|
Tercio@11
|
1524 for i = 1, CoolTip.Indexes do
|
|
Tercio@11
|
1525 local menuButton = frame1.Lines [i]
|
|
Tercio@11
|
1526 if (not menuButton) then
|
|
Tercio@11
|
1527 menuButton = CoolTip:NewMainButton (i)
|
|
Tercio@11
|
1528 end
|
|
Tercio@11
|
1529
|
|
Tercio@11
|
1530 CoolTip:SetupMainButton (menuButton, i)
|
|
Tercio@11
|
1531
|
|
Tercio@11
|
1532 menuButton.background:Hide()
|
|
Tercio@11
|
1533 end
|
|
Tercio@11
|
1534
|
|
Tercio@11
|
1535 --> selected texture
|
|
Tercio@11
|
1536 if (CoolTip.SelectedIndexMain) then
|
|
Tercio@11
|
1537 CoolTip:SetSelectedAnchor (frame1, frame1.Lines [CoolTip.SelectedIndexMain])
|
|
Tercio@11
|
1538
|
|
Tercio@11
|
1539 if (CoolTip.OptionsTable.NoLastSelectedBar) then
|
|
Tercio@11
|
1540 CoolTip:HideSelectedTexture (frame1)
|
|
Tercio@11
|
1541 else
|
|
Tercio@11
|
1542 CoolTip:ShowSelectedTexture (frame1)
|
|
Tercio@11
|
1543 end
|
|
Tercio@11
|
1544 else
|
|
Tercio@11
|
1545 CoolTip:HideSelectedTexture (frame1)
|
|
Tercio@11
|
1546 end
|
|
Tercio@11
|
1547
|
|
Tercio@11
|
1548 if (CoolTip.Indexes < #frame1.Lines) then
|
|
Tercio@11
|
1549 for i = CoolTip.Indexes+1, #frame1.Lines do
|
|
Tercio@11
|
1550 frame1.Lines[i]:Hide()
|
|
Tercio@11
|
1551 end
|
|
Tercio@11
|
1552 end
|
|
Tercio@11
|
1553
|
|
Tercio@11
|
1554 CoolTip.NumLines = CoolTip.Indexes
|
|
Tercio@11
|
1555
|
|
Tercio@11
|
1556 local spacing = 0
|
|
Tercio@11
|
1557 if (CoolTip.OptionsTable.YSpacingMod) then
|
|
Tercio@11
|
1558 spacing = CoolTip.OptionsTable.YSpacingMod
|
|
Tercio@11
|
1559 end
|
|
Tercio@11
|
1560
|
|
Tercio@11
|
1561 if (not CoolTip.OptionsTable.FixedWidth) then
|
|
Tercio@11
|
1562 if (CoolTip.OptionsTable.MinWidth) then
|
|
Tercio@11
|
1563 local w = frame1.w + 24
|
|
Tercio@11
|
1564 frame1:SetWidth (math.max (w, CoolTip.OptionsTable.MinWidth))
|
|
Tercio@11
|
1565 else
|
|
Tercio@11
|
1566 frame1:SetWidth (frame1.w + 24)
|
|
Tercio@11
|
1567 end
|
|
Tercio@11
|
1568 end
|
|
Tercio@11
|
1569
|
|
Tercio@11
|
1570 --> normalize height of all rows
|
|
Tercio@11
|
1571 for i = 1, CoolTip.Indexes do
|
|
Tercio@11
|
1572 local menuButton = frame1.Lines [i]
|
|
Tercio@11
|
1573 menuButton:EnableMouse (true)
|
|
Tercio@11
|
1574
|
|
Tercio@11
|
1575 if (menuButton.leftText:GetText() == "$div") then
|
|
Tercio@11
|
1576
|
|
Tercio@11
|
1577 --> height
|
|
Tercio@11
|
1578 menuButton:SetHeight (4)
|
|
Tercio@11
|
1579 --> points
|
|
Tercio@11
|
1580 menuButton:ClearAllPoints()
|
|
Tercio@40
|
1581 menuButton:SetPoint ("left", frame1, "left", -4, 0)
|
|
Tercio@40
|
1582 menuButton:SetPoint ("right", frame1, "right", 4, 0)
|
|
Tercio@11
|
1583 menuButton:SetPoint ("center", frame1, "center")
|
|
Tercio@11
|
1584
|
|
Tercio@11
|
1585 local div_size_up = tonumber (CoolTip.LeftTextTable [i] [2])
|
|
Tercio@11
|
1586 if (not div_size_up) then
|
|
Tercio@11
|
1587 div_size_up = 0
|
|
Tercio@11
|
1588 end
|
|
Tercio@11
|
1589 local div_size_down = tonumber (CoolTip.LeftTextTable [i] [3])
|
|
Tercio@11
|
1590 if (not div_size_down) then
|
|
Tercio@11
|
1591 div_size_down = 0
|
|
Tercio@11
|
1592 end
|
|
Tercio@11
|
1593
|
|
Tercio@11
|
1594 menuButton:SetPoint ("top", frame1, "top", 0, ( ( (i-1) * frame1.hHeight) * -1) - 4 + (CoolTip.OptionsTable.ButtonsYMod or 0) + spacing - 4 + div_size_up)
|
|
Tercio@11
|
1595 if (CoolTip.OptionsTable.YSpacingMod) then
|
|
Tercio@11
|
1596 spacing = spacing + CoolTip.OptionsTable.YSpacingMod
|
|
Tercio@11
|
1597 end
|
|
Tercio@11
|
1598
|
|
Tercio@11
|
1599 spacing = spacing + 4 + div_size_down
|
|
Tercio@11
|
1600
|
|
Tercio@11
|
1601 menuButton.leftText:SetText ("")
|
|
Tercio@11
|
1602 menuButton.isDiv = true
|
|
Tercio@11
|
1603
|
|
Tercio@11
|
1604 if (not menuButton.divbar) then
|
|
Tercio@11
|
1605 CoolTip:CreateDivBar (menuButton)
|
|
Tercio@11
|
1606 else
|
|
Tercio@11
|
1607 menuButton.divbar:Show()
|
|
Tercio@11
|
1608 end
|
|
Tercio@11
|
1609
|
|
Tercio@11
|
1610 menuButton.divbar:SetPoint ("left", menuButton, "left", frame1:GetWidth()*0.10, 0)
|
|
Tercio@11
|
1611 menuButton.divbar:SetPoint ("right", menuButton, "right", -frame1:GetWidth()*0.10, 0)
|
|
Tercio@11
|
1612
|
|
Tercio@11
|
1613 else
|
|
Tercio@11
|
1614
|
|
Tercio@11
|
1615 --> height
|
|
Tercio@11
|
1616 menuButton:SetHeight (frame1.hHeight + (CoolTip.OptionsTable.ButtonHeightMod or 0))
|
|
Tercio@11
|
1617 --> points
|
|
Tercio@11
|
1618 menuButton:ClearAllPoints()
|
|
Tercio@11
|
1619 menuButton:SetPoint ("center", frame1, "center")
|
|
Tercio@11
|
1620 menuButton:SetPoint ("top", frame1, "top", 0, ( ( (i-1) * frame1.hHeight) * -1) - 4 + (CoolTip.OptionsTable.ButtonsYMod or 0) + spacing)
|
|
Tercio@11
|
1621 if (CoolTip.OptionsTable.YSpacingMod) then
|
|
Tercio@11
|
1622 spacing = spacing + CoolTip.OptionsTable.YSpacingMod
|
|
Tercio@11
|
1623 end
|
|
Tercio@40
|
1624 menuButton:SetPoint ("left", frame1, "left", -4, 0)
|
|
Tercio@40
|
1625 menuButton:SetPoint ("right", frame1, "right", 4, 0)
|
|
Tercio@11
|
1626
|
|
Tercio@11
|
1627 if (menuButton.divbar) then
|
|
Tercio@11
|
1628 menuButton.divbar:Hide()
|
|
Tercio@11
|
1629 menuButton.isDiv = false
|
|
Tercio@11
|
1630 end
|
|
Tercio@11
|
1631 end
|
|
Tercio@11
|
1632
|
|
Tercio@11
|
1633 end
|
|
Tercio@56
|
1634
|
|
Tercio@11
|
1635 if (CoolTip.OptionsTable.FixedHeight) then
|
|
Tercio@11
|
1636 frame1:SetHeight (CoolTip.OptionsTable.FixedHeight)
|
|
Tercio@11
|
1637 else
|
|
Tercio@11
|
1638 local mod = CoolTip.OptionsTable.HeighMod or 0
|
|
Tercio@11
|
1639 frame1:SetHeight (_math_max ( (frame1.hHeight * CoolTip.Indexes) + 12 + (-spacing) + mod, 22 ))
|
|
Tercio@11
|
1640 end
|
|
Tercio@11
|
1641
|
|
Tercio@11
|
1642 --> sub menu arrows
|
|
Tercio@11
|
1643 if (CoolTip.HaveSubMenu and not CoolTip.OptionsTable.IgnoreArrows and not CoolTip.OptionsTable.SubMenuIsTooltip) then
|
|
Tercio@11
|
1644 for i = 1, CoolTip.Indexes do
|
|
Tercio@11
|
1645 if (CoolTip.IndexesSub [i] and CoolTip.IndexesSub [i] > 0) then
|
|
Tercio@11
|
1646 frame1.Lines [i].statusbar.subMenuArrow:Show()
|
|
Tercio@11
|
1647 else
|
|
Tercio@11
|
1648 frame1.Lines [i].statusbar.subMenuArrow:Hide()
|
|
Tercio@11
|
1649 end
|
|
Tercio@11
|
1650 end
|
|
Tercio@11
|
1651
|
|
Tercio@11
|
1652 frame1:SetWidth (frame1:GetWidth() + 16)
|
|
Tercio@11
|
1653 end
|
|
Tercio@11
|
1654
|
|
Tercio@11
|
1655 frame1:ClearAllPoints()
|
|
Tercio@11
|
1656 CoolTip:SetMyPoint (host)
|
|
Tercio@11
|
1657
|
|
Tercio@11
|
1658 if (CoolTip.title1) then
|
|
Tercio@11
|
1659 CoolTip.frame1.titleText:Show()
|
|
Tercio@11
|
1660 CoolTip.frame1.titleIcon:Show()
|
|
Tercio@11
|
1661 CoolTip.frame1.titleText:SetText (CoolTip.title_text)
|
|
Tercio@11
|
1662 CoolTip.frame1.titleIcon:SetWidth (frame1:GetWidth())
|
|
Tercio@11
|
1663 CoolTip.frame1.titleIcon:SetHeight (40)
|
|
Tercio@11
|
1664 end
|
|
Tercio@11
|
1665
|
|
Tercio@11
|
1666 if (CoolTip.WallpaperTable [1]) then
|
|
Tercio@11
|
1667 CoolTip:SetupWallpaper (CoolTip.WallpaperTable, frame1.frameWallpaper)
|
|
Tercio@11
|
1668 else
|
|
Tercio@11
|
1669 frame1.frameWallpaper:Hide()
|
|
Tercio@11
|
1670 end
|
|
Tercio@11
|
1671
|
|
Tercio@26
|
1672 DF:FadeFrame (frame1, 0)
|
|
Tercio@11
|
1673
|
|
Tercio@11
|
1674 for i = 1, CoolTip.Indexes do
|
|
Tercio@11
|
1675 if (CoolTip.SelectedIndexMain and CoolTip.SelectedIndexMain == i) then
|
|
Tercio@11
|
1676 if (CoolTip.HaveSubMenu and CoolTip.IndexesSub [i] and CoolTip.IndexesSub [i] > 0) then
|
|
Tercio@11
|
1677 CoolTip:ShowSub (i)
|
|
Tercio@11
|
1678 end
|
|
Tercio@11
|
1679 end
|
|
Tercio@11
|
1680 end
|
|
Tercio@11
|
1681
|
|
Tercio@11
|
1682 return true
|
|
Tercio@11
|
1683 end
|
|
Tercio@11
|
1684
|
|
Tercio@11
|
1685 function CoolTip:SetMyPoint (host, x_mod, y_mod)
|
|
Tercio@11
|
1686
|
|
Tercio@11
|
1687 local moveX = x_mod or 0
|
|
Tercio@11
|
1688 local moveY = y_mod or 0
|
|
Tercio@11
|
1689
|
|
Tercio@11
|
1690 --> clear all points
|
|
Tercio@11
|
1691 frame1:ClearAllPoints()
|
|
Tercio@11
|
1692
|
|
Tercio@11
|
1693 local anchor = CoolTip.OptionsTable.Anchor or CoolTip.Host
|
|
Tercio@56
|
1694
|
|
Tercio@11
|
1695 frame1:SetPoint (CoolTip.OptionsTable.MyAnchor, anchor, CoolTip.OptionsTable.RelativeAnchor, 0 + moveX + CoolTip.OptionsTable.WidthAnchorMod, 10 + CoolTip.OptionsTable.HeightAnchorMod + moveY)
|
|
Tercio@11
|
1696
|
|
Tercio@11
|
1697 if (not x_mod) then
|
|
Tercio@11
|
1698 --> check if cooltip is out of screen bounds
|
|
Tercio@11
|
1699 local center_x = frame1:GetCenter()
|
|
Tercio@11
|
1700
|
|
Tercio@11
|
1701 if (center_x) then
|
|
Tercio@11
|
1702 local screen_x_res = GetScreenWidth()
|
|
Tercio@11
|
1703 local half_x = frame1:GetWidth() / 2
|
|
Tercio@11
|
1704
|
|
Tercio@11
|
1705 if (center_x+half_x > screen_x_res) then
|
|
Tercio@11
|
1706 --> out of right side
|
|
Tercio@11
|
1707 local move_to_left = (center_x + half_x) - screen_x_res
|
|
Tercio@11
|
1708 CoolTip.internal_x_mod = -move_to_left
|
|
Tercio@11
|
1709 return CoolTip:SetMyPoint (host, -move_to_left, 0)
|
|
Tercio@11
|
1710
|
|
Tercio@11
|
1711 elseif (center_x-half_x < 0) then
|
|
Tercio@11
|
1712 --> out of left side
|
|
Tercio@11
|
1713 local move_to_right = center_x - half_x
|
|
Tercio@11
|
1714 CoolTip.internal_x_mod = move_to_right*-1
|
|
Tercio@11
|
1715 return CoolTip:SetMyPoint (host, move_to_right*-1, 0)
|
|
Tercio@11
|
1716 end
|
|
Tercio@11
|
1717 end
|
|
Tercio@11
|
1718 end
|
|
Tercio@11
|
1719
|
|
Tercio@11
|
1720 if (not y_mod) then
|
|
Tercio@11
|
1721 --> check if cooltip is out of screen bounds
|
|
Tercio@11
|
1722 local _, center_y = frame1:GetCenter()
|
|
Tercio@11
|
1723 local screen_y_res = GetScreenHeight()
|
|
Tercio@11
|
1724 local half_y = frame1:GetHeight() / 2
|
|
Tercio@11
|
1725
|
|
Tercio@11
|
1726 if (center_y) then
|
|
Tercio@11
|
1727 if (center_y+half_y > screen_y_res) then
|
|
Tercio@11
|
1728 --> out of top side
|
|
Tercio@11
|
1729 local move_to_down = (center_y + half_y) - screen_y_res
|
|
Tercio@11
|
1730 CoolTip.internal_y_mod = -move_to_down
|
|
Tercio@11
|
1731 return CoolTip:SetMyPoint (host, 0, -move_to_down)
|
|
Tercio@11
|
1732
|
|
Tercio@11
|
1733 elseif (center_y-half_y < 0) then
|
|
Tercio@11
|
1734 --> out of bottom side
|
|
Tercio@11
|
1735 local move_to_up = center_y - half_y
|
|
Tercio@11
|
1736 CoolTip.internal_y_mod = move_to_up*-1
|
|
Tercio@11
|
1737 return CoolTip:SetMyPoint (host, 0, move_to_up*-1)
|
|
Tercio@11
|
1738
|
|
Tercio@11
|
1739 end
|
|
Tercio@11
|
1740 end
|
|
Tercio@11
|
1741 end
|
|
Tercio@11
|
1742
|
|
Tercio@11
|
1743 if (frame2:IsShown() and not CoolTip.overlap_checked) then
|
|
Tercio@11
|
1744
|
|
Tercio@11
|
1745 local frame_2_center_x = frame2:GetCenter()
|
|
Tercio@11
|
1746 if (frame_2_center_x) then
|
|
Tercio@11
|
1747 local frame_2_half_x = frame2:GetWidth() / 2
|
|
Tercio@11
|
1748
|
|
Tercio@11
|
1749 local frame_1_center_x = frame1:GetCenter()
|
|
Tercio@11
|
1750 if (frame_1_center_x) then
|
|
Tercio@11
|
1751
|
|
Tercio@11
|
1752 local frame_1_half_x = frame1:GetWidth() / 2
|
|
Tercio@11
|
1753
|
|
Tercio@11
|
1754 local f1_end_point = frame_1_center_x + frame_1_half_x - 3
|
|
Tercio@11
|
1755 local f2_start_point = frame_2_center_x - frame_2_half_x
|
|
Tercio@11
|
1756
|
|
Tercio@11
|
1757 if (f2_start_point < f1_end_point) then
|
|
Tercio@11
|
1758 local diff = f2_start_point - f1_end_point
|
|
Tercio@11
|
1759 CoolTip.overlap_checked = true
|
|
Tercio@11
|
1760
|
|
Tercio@11
|
1761 frame2:ClearAllPoints()
|
|
Tercio@40
|
1762 frame2:SetPoint ("bottomright", frame1, "bottomleft", 4, 0)
|
|
Tercio@11
|
1763 CoolTip.frame2_leftside = true
|
|
Tercio@11
|
1764 --> diff
|
|
Tercio@11
|
1765 return CoolTip:SetMyPoint (host, CoolTip.internal_x_mod , CoolTip.internal_y_mod)
|
|
Tercio@11
|
1766 end
|
|
Tercio@11
|
1767
|
|
Tercio@11
|
1768 end
|
|
Tercio@11
|
1769 end
|
|
Tercio@11
|
1770
|
|
Tercio@11
|
1771 end
|
|
Tercio@11
|
1772
|
|
Tercio@11
|
1773 end
|
|
Tercio@11
|
1774
|
|
Tercio@11
|
1775 function CoolTip:CheckOverlap()
|
|
Tercio@11
|
1776 if (frame2:IsShown()) then
|
|
Tercio@11
|
1777
|
|
Tercio@11
|
1778 local frame_2_center_x = frame2:GetCenter()
|
|
Tercio@11
|
1779 if (frame_2_center_x) then
|
|
Tercio@11
|
1780 local frame_2_half_x = frame2:GetWidth() / 2
|
|
Tercio@11
|
1781
|
|
Tercio@11
|
1782 local frame_1_center_x = frame1:GetCenter()
|
|
Tercio@11
|
1783 if (frame_1_center_x) then
|
|
Tercio@11
|
1784
|
|
Tercio@11
|
1785 local frame_1_half_x = frame1:GetWidth() / 2
|
|
Tercio@11
|
1786
|
|
Tercio@11
|
1787 local f1_end_point = frame_1_center_x + frame_1_half_x - 3
|
|
Tercio@11
|
1788 local f2_start_point = frame_2_center_x - frame_2_half_x
|
|
Tercio@11
|
1789
|
|
Tercio@11
|
1790 if (f2_start_point < f1_end_point) then
|
|
Tercio@11
|
1791 local diff = f2_start_point - f1_end_point
|
|
Tercio@11
|
1792
|
|
Tercio@11
|
1793 frame2:ClearAllPoints()
|
|
Tercio@40
|
1794 frame2:SetPoint ("bottomright", frame1, "bottomleft", 4, 0)
|
|
Tercio@11
|
1795 CoolTip.frame2_leftside = true
|
|
Tercio@11
|
1796 end
|
|
Tercio@11
|
1797
|
|
Tercio@11
|
1798 end
|
|
Tercio@11
|
1799 end
|
|
Tercio@11
|
1800
|
|
Tercio@11
|
1801 end
|
|
Tercio@11
|
1802 end
|
|
Tercio@11
|
1803
|
|
Tercio@11
|
1804 function CoolTip:GetText (buttonIndex)
|
|
Tercio@11
|
1805 local button1 = frame1.Lines [buttonIndex]
|
|
Tercio@11
|
1806 if (not button1) then
|
|
Tercio@11
|
1807 return "", ""
|
|
Tercio@11
|
1808 else
|
|
Tercio@11
|
1809 return button1.leftText:GetText() or "", button1.rightText:GetText() or ""
|
|
Tercio@11
|
1810 end
|
|
Tercio@11
|
1811 end
|
|
Tercio@11
|
1812
|
|
Tercio@11
|
1813 ----------------------------------------------------------------------
|
|
Tercio@11
|
1814 --> Get the number of lines current shown on cooltip
|
|
Tercio@11
|
1815
|
|
Tercio@11
|
1816 function CoolTip:GetNumLines()
|
|
Tercio@11
|
1817 return CoolTip.NumLines or 0
|
|
Tercio@11
|
1818 end
|
|
Tercio@11
|
1819
|
|
Tercio@11
|
1820 ----------------------------------------------------------------------
|
|
Tercio@11
|
1821 --> Remove all options actived
|
|
Tercio@11
|
1822 --> Set a option on current cooltip
|
|
Tercio@11
|
1823
|
|
Tercio@11
|
1824 function CoolTip:ClearAllOptions()
|
|
Tercio@11
|
1825 for option, _ in pairs (CoolTip.OptionsTable) do
|
|
Tercio@11
|
1826 CoolTip.OptionsTable [option] = nil
|
|
Tercio@11
|
1827 end
|
|
Tercio@11
|
1828
|
|
Tercio@11
|
1829 CoolTip:SetOption ("MyAnchor", "bottom")
|
|
Tercio@11
|
1830 CoolTip:SetOption ("RelativeAnchor", "top")
|
|
Tercio@11
|
1831 CoolTip:SetOption ("WidthAnchorMod", 0)
|
|
Tercio@11
|
1832 CoolTip:SetOption ("HeightAnchorMod", 0)
|
|
Tercio@11
|
1833 end
|
|
Tercio@11
|
1834
|
|
Tercio@58
|
1835 function CoolTip:SetOption (optionName, value)
|
|
Tercio@58
|
1836
|
|
Tercio@58
|
1837 --> check for name alias
|
|
Tercio@58
|
1838 optionName = CoolTip.AliasList [optionName] or optionName
|
|
Tercio@58
|
1839
|
|
Tercio@11
|
1840 --> check if this options exists
|
|
Tercio@58
|
1841 if (not CoolTip.OptionsList [optionName]) then
|
|
Tercio@11
|
1842 return --> error
|
|
Tercio@11
|
1843 end
|
|
Tercio@58
|
1844
|
|
Tercio@11
|
1845 --> set options
|
|
Tercio@58
|
1846 CoolTip.OptionsTable [optionName] = value
|
|
Tercio@11
|
1847 end
|
|
Tercio@11
|
1848
|
|
Tercio@11
|
1849 ----------------------------------------------------------------------
|
|
Tercio@11
|
1850 --> set the anchor of cooltip
|
|
Tercio@11
|
1851 --> parameters: frame [, cooltip anchor point, frame anchor point [, x mod, y mod]]
|
|
Tercio@11
|
1852 --> frame [, x mod, y mod]
|
|
Tercio@11
|
1853
|
|
Tercio@11
|
1854 --> alias
|
|
Tercio@11
|
1855 function CoolTip:GetOwner()
|
|
Tercio@11
|
1856 return CoolTip.Host
|
|
Tercio@11
|
1857 end
|
|
Tercio@11
|
1858
|
|
Tercio@11
|
1859 function CoolTip:SetOwner (frame, myPoint, hisPoint, x, y)
|
|
Tercio@11
|
1860 return CoolTip:SetHost (frame, myPoint, hisPoint, x, y)
|
|
Tercio@11
|
1861 end
|
|
Tercio@11
|
1862
|
|
Tercio@11
|
1863 function CoolTip:SetHost (frame, myPoint, hisPoint, x, y)
|
|
Tercio@11
|
1864 --> check data integrity
|
|
Tercio@11
|
1865 if (type (frame) ~= "table" or not frame.GetObjectType) then
|
|
Tercio@56
|
1866 print ("host needs to be a frame")
|
|
Tercio@11
|
1867 return --> error
|
|
Tercio@11
|
1868 end
|
|
Tercio@11
|
1869
|
|
Tercio@11
|
1870 CoolTip.Host = frame
|
|
Tercio@56
|
1871
|
|
Tercio@11
|
1872 CoolTip.frame1:SetFrameLevel (frame:GetFrameLevel()+1)
|
|
Tercio@11
|
1873
|
|
Tercio@11
|
1874 --> defaults
|
|
Tercio@11
|
1875 myPoint = myPoint or CoolTip.OptionsTable.MyAnchor or "bottom"
|
|
Tercio@11
|
1876 hisPoint = hisPoint or CoolTip.OptionsTable.hisPoint or "top"
|
|
Tercio@11
|
1877
|
|
Tercio@11
|
1878 x = x or CoolTip.OptionsTable.WidthAnchorMod or 0
|
|
Tercio@11
|
1879 y = y or CoolTip.OptionsTable.HeightAnchorMod or 0
|
|
Tercio@11
|
1880
|
|
Tercio@11
|
1881 --> check options
|
|
Tercio@11
|
1882 if (type (myPoint) == "string") then
|
|
Tercio@11
|
1883 CoolTip:SetOption ("MyAnchor", myPoint)
|
|
Tercio@11
|
1884 CoolTip:SetOption ("WidthAnchorMod", x)
|
|
Tercio@11
|
1885 elseif (type (myPoint) == "number") then
|
|
Tercio@11
|
1886 CoolTip:SetOption ("HeightAnchorMod", myPoint)
|
|
Tercio@11
|
1887 end
|
|
Tercio@11
|
1888
|
|
Tercio@11
|
1889 if (type (hisPoint) == "string") then
|
|
Tercio@11
|
1890 CoolTip:SetOption ("RelativeAnchor", hisPoint)
|
|
Tercio@11
|
1891 CoolTip:SetOption ("HeightAnchorMod", y)
|
|
Tercio@11
|
1892 elseif (type (hisPoint) == "number") then
|
|
Tercio@11
|
1893 CoolTip:SetOption ("WidthAnchorMod", hisPoint)
|
|
Tercio@11
|
1894 end
|
|
Tercio@11
|
1895 end
|
|
Tercio@11
|
1896
|
|
Tercio@11
|
1897 ----------------------------------------------------------------------
|
|
Tercio@11
|
1898 --> set cooltip type
|
|
Tercio@11
|
1899 --> parameters: type (1 = tooltip | 2 = tooltip with bars | 3 = menu)
|
|
Tercio@11
|
1900
|
|
Tercio@11
|
1901 function CoolTip:IsMenu()
|
|
Tercio@11
|
1902 return CoolTip.frame1:IsShown() and CoolTip.Type == 3
|
|
Tercio@11
|
1903 end
|
|
Tercio@11
|
1904
|
|
Tercio@11
|
1905 function CoolTip:IsTooltip()
|
|
Tercio@11
|
1906 return CoolTip.frame1:IsShown() and (CoolTip.Type == 1 or CoolTip.Type == 2)
|
|
Tercio@11
|
1907 end
|
|
Tercio@11
|
1908
|
|
Tercio@11
|
1909 function CoolTip:GetType()
|
|
Tercio@11
|
1910 if (CoolTip.Type == 1 or CoolTip.Type == 2) then
|
|
Tercio@11
|
1911 return "tooltip"
|
|
Tercio@11
|
1912 elseif (CoolTip.Type == 3) then
|
|
Tercio@11
|
1913 return "menu"
|
|
Tercio@11
|
1914 else
|
|
Tercio@11
|
1915 return "none"
|
|
Tercio@11
|
1916 end
|
|
Tercio@11
|
1917 end
|
|
Tercio@11
|
1918
|
|
Tercio@11
|
1919 function CoolTip:SetType (newType)
|
|
Tercio@11
|
1920 if (type (newType) == "string") then
|
|
Tercio@11
|
1921 if (newType == "tooltip") then
|
|
Tercio@11
|
1922 CoolTip.Type = 1
|
|
Tercio@11
|
1923 elseif (newType == "tooltipbar") then
|
|
Tercio@11
|
1924 CoolTip.Type = 2
|
|
Tercio@11
|
1925 elseif (newType == "menu") then
|
|
Tercio@11
|
1926 CoolTip.Type = 3
|
|
Tercio@11
|
1927 else
|
|
Tercio@11
|
1928 --> error
|
|
Tercio@11
|
1929 end
|
|
Tercio@11
|
1930 elseif (type (newType) == "number") then
|
|
Tercio@11
|
1931 if (newType == 1) then
|
|
Tercio@11
|
1932 CoolTip.Type = 1
|
|
Tercio@11
|
1933 elseif (newType == 2) then
|
|
Tercio@11
|
1934 CoolTip.Type = 2
|
|
Tercio@11
|
1935 elseif (newType == 3) then
|
|
Tercio@11
|
1936 CoolTip.Type = 3
|
|
Tercio@11
|
1937 else
|
|
Tercio@11
|
1938 --> error
|
|
Tercio@11
|
1939 end
|
|
Tercio@11
|
1940 else
|
|
Tercio@11
|
1941 --> error
|
|
Tercio@11
|
1942 end
|
|
Tercio@11
|
1943 end
|
|
Tercio@11
|
1944
|
|
Tercio@11
|
1945 --> Set a fixed value for menu
|
|
Tercio@11
|
1946 function CoolTip:SetFixedParameter (value, injected)
|
|
Tercio@11
|
1947 if (injected ~= nil) then
|
|
Tercio@11
|
1948 local frame = value
|
|
Tercio@11
|
1949 if (frame.dframework) then
|
|
Tercio@11
|
1950 frame = frame.widget
|
|
Tercio@11
|
1951 end
|
|
Tercio@11
|
1952 if (frame.CoolTip) then
|
|
Tercio@11
|
1953 frame.CoolTip.FixedValue = injected
|
|
Tercio@11
|
1954 else
|
|
Tercio@11
|
1955 --debug
|
|
Tercio@11
|
1956 end
|
|
Tercio@11
|
1957 end
|
|
Tercio@11
|
1958 CoolTip.FixedValue = value
|
|
Tercio@11
|
1959 end
|
|
Tercio@11
|
1960
|
|
Tercio@11
|
1961 function CoolTip:SetColor (menuType, ...)
|
|
Tercio@11
|
1962 local ColorR, ColorG, ColorB, ColorA = DF:ParseColors (...)
|
|
Tercio@11
|
1963 if ((type (menuType) == "string" and menuType == "main") or (type (menuType) == "number" and menuType == 1)) then
|
|
Tercio@11
|
1964 frame1.framebackgroundLeft:SetVertexColor (ColorR, ColorG, ColorB, ColorA)
|
|
Tercio@11
|
1965 frame1.framebackgroundRight:SetVertexColor (ColorR, ColorG, ColorB, ColorA)
|
|
Tercio@11
|
1966 frame1.framebackgroundCenter:SetVertexColor (ColorR, ColorG, ColorB, ColorA)
|
|
Tercio@11
|
1967
|
|
Tercio@11
|
1968 elseif ((type (menuType) == "string" and menuType == "sec") or (type (menuType) == "number" and menuType == 2)) then
|
|
Tercio@11
|
1969 frame2.framebackgroundLeft:SetVertexColor (ColorR, ColorG, ColorB, ColorA)
|
|
Tercio@11
|
1970 frame2.framebackgroundRight:SetVertexColor (ColorR, ColorG, ColorB, ColorA)
|
|
Tercio@11
|
1971 frame2.framebackgroundCenter:SetVertexColor (ColorR, ColorG, ColorB, ColorA)
|
|
Tercio@11
|
1972
|
|
Tercio@11
|
1973 else
|
|
Tercio@11
|
1974 return --> error
|
|
Tercio@11
|
1975 end
|
|
Tercio@11
|
1976 end
|
|
Tercio@11
|
1977
|
|
Tercio@11
|
1978 --> Set last selected option
|
|
Tercio@11
|
1979 function CoolTip:SetLastSelected (menuType, index, index2)
|
|
Tercio@11
|
1980
|
|
Tercio@11
|
1981 if (CoolTip.Type == 3) then
|
|
Tercio@11
|
1982 if ((type (menuType) == "string" and menuType == "main") or (type (menuType) == "number" and menuType == 1)) then
|
|
Tercio@11
|
1983 CoolTip.SelectedIndexMain = index
|
|
Tercio@11
|
1984 elseif ((type (menuType) == "string" and menuType == "sec") or (type (menuType) == "number" and menuType == 2)) then
|
|
Tercio@11
|
1985 CoolTip.SelectedIndexSec [index] = index2
|
|
Tercio@11
|
1986 else
|
|
Tercio@11
|
1987 return --> error
|
|
Tercio@11
|
1988 end
|
|
Tercio@11
|
1989 else
|
|
Tercio@11
|
1990 return --> error
|
|
Tercio@11
|
1991 end
|
|
Tercio@11
|
1992 end
|
|
Tercio@11
|
1993
|
|
Tercio@11
|
1994 --> serack key: ~select
|
|
Tercio@11
|
1995 function CoolTip:Select (menuType, option, mainIndex)
|
|
Tercio@11
|
1996 if (menuType == 1) then --main menu
|
|
Tercio@11
|
1997 local botao = frame1.Lines [option]
|
|
Tercio@11
|
1998 CoolTip.buttonClicked = true
|
|
Tercio@11
|
1999 CoolTip:SetSelectedAnchor (frame1, botao)
|
|
Tercio@11
|
2000
|
|
Tercio@11
|
2001 --UIFrameFlash (frame1.selected, 0.05, 0.05, 0.2, true, 0, 0)
|
|
Tercio@11
|
2002
|
|
Tercio@11
|
2003 elseif (menuType == 2) then --sub menu
|
|
Tercio@11
|
2004 CoolTip:ShowSub (mainIndex)
|
|
Tercio@11
|
2005 local botao = frame2.Lines [option]
|
|
Tercio@11
|
2006 CoolTip.buttonClicked = true
|
|
Tercio@11
|
2007
|
|
Tercio@11
|
2008 CoolTip:SetSelectedAnchor (frame2, botao)
|
|
Tercio@11
|
2009 end
|
|
Tercio@11
|
2010 end
|
|
Tercio@11
|
2011
|
|
Tercio@11
|
2012 ----------------------------------------------------------------------
|
|
Tercio@11
|
2013 --> Reset cooltip
|
|
Tercio@11
|
2014
|
|
Tercioo@29
|
2015 local default_backdrop = {bgFile = [[Interface\DialogFrame\UI-DialogBox-Background-Dark]], edgeFile = [[Interface\Buttons\WHITE8X8]], tile = true,
|
|
Tercioo@29
|
2016 edgeSize = 1, tileSize = 16, insets = {left = 0, right = 0, top = 0, bottom = 0}}
|
|
Tercio@11
|
2017 local default_backdrop_color = {0.09019, 0.09019, 0.18823, 1}
|
|
Tercio@11
|
2018 local default_backdropborder_color = {1, 1, 1, 1}
|
|
Tercio@11
|
2019
|
|
Tercio@11
|
2020 --borda preta sem usar unpack
|
|
Tercio@11
|
2021
|
|
Tercio@11
|
2022 --> wipe all data ~reset
|
|
Tercio@11
|
2023 function CoolTip:Reset()
|
|
Tercio@11
|
2024
|
|
Tercio@11
|
2025 frame2:ClearAllPoints()
|
|
Tercio@40
|
2026 frame2:SetPoint ("bottomleft", frame1, "bottomright", 4, 0)
|
|
Tercio@40
|
2027
|
|
Tercio@40
|
2028 frame1:SetParent (UIParent)
|
|
Tercio@40
|
2029 frame2:SetParent (UIParent)
|
|
Tercio@40
|
2030 frame1:SetFrameStrata ("TOOLTIP")
|
|
Tercio@40
|
2031 frame2:SetFrameStrata ("TOOLTIP")
|
|
Tercio@40
|
2032
|
|
Tercio@11
|
2033 CoolTip:HideSelectedTexture (frame1)
|
|
Tercio@11
|
2034 CoolTip:HideSelectedTexture (frame2)
|
|
Tercio@11
|
2035
|
|
Tercio@11
|
2036 CoolTip.FixedValue = nil
|
|
Tercio@11
|
2037 CoolTip.HaveSubMenu = false
|
|
Tercio@11
|
2038
|
|
Tercio@11
|
2039 CoolTip.SelectedIndexMain = nil
|
|
Tercio@11
|
2040 _table_wipe (CoolTip.SelectedIndexSec)
|
|
Tercio@11
|
2041
|
|
Tercio@11
|
2042 CoolTip.Indexes = 0
|
|
Tercio@11
|
2043 CoolTip.SubIndexes = 0
|
|
Tercio@11
|
2044 _table_wipe (CoolTip.IndexesSub)
|
|
Tercio@11
|
2045
|
|
Tercio@11
|
2046 CoolTip.internal_x_mod = 0
|
|
Tercio@11
|
2047 CoolTip.internal_y_mod = 0
|
|
Tercio@11
|
2048 CoolTip.current_anchor = nil
|
|
Tercio@11
|
2049 CoolTip.overlap_checked = false
|
|
Tercio@11
|
2050
|
|
Tercio@11
|
2051 CoolTip.frame2_leftside = nil
|
|
Tercio@11
|
2052
|
|
Tercio@11
|
2053 frame1:SetBackdrop (default_backdrop)
|
|
Tercio@11
|
2054 frame1:SetBackdropColor (unpack (default_backdrop_color))
|
|
Tercio@11
|
2055 frame1:SetBackdropBorderColor (unpack (default_backdropborder_color))
|
|
Tercio@11
|
2056
|
|
Tercio@11
|
2057 frame2:SetBackdrop (default_backdrop)
|
|
Tercio@11
|
2058 frame2:SetBackdropColor (unpack (default_backdrop_color))
|
|
Tercio@11
|
2059 frame2:SetBackdropBorderColor (unpack (default_backdropborder_color))
|
|
Tercio@11
|
2060
|
|
Tercio@11
|
2061 --[
|
|
Tercio@20
|
2062 _table_wipe (CoolTip.PopupFrameTable)
|
|
Tercio@20
|
2063
|
|
Tercio@11
|
2064 _table_wipe (CoolTip.LeftTextTable)
|
|
Tercio@11
|
2065 _table_wipe (CoolTip.LeftTextTableSub)
|
|
Tercio@11
|
2066 _table_wipe (CoolTip.RightTextTable)
|
|
Tercio@11
|
2067 _table_wipe (CoolTip.RightTextTableSub)
|
|
Tercio@11
|
2068
|
|
Tercio@11
|
2069 _table_wipe (CoolTip.LeftIconTable)
|
|
Tercio@11
|
2070 _table_wipe (CoolTip.LeftIconTableSub)
|
|
Tercio@11
|
2071 _table_wipe (CoolTip.RightIconTable)
|
|
Tercio@11
|
2072 _table_wipe (CoolTip.RightIconTableSub)
|
|
Tercio@11
|
2073
|
|
Tercio@11
|
2074 _table_wipe (CoolTip.StatusBarTable)
|
|
Tercio@11
|
2075 _table_wipe (CoolTip.StatusBarTableSub)
|
|
Tercio@11
|
2076
|
|
Tercio@11
|
2077 _table_wipe (CoolTip.FunctionsTableMain)
|
|
Tercio@11
|
2078 _table_wipe (CoolTip.FunctionsTableSub)
|
|
Tercio@11
|
2079
|
|
Tercio@11
|
2080 _table_wipe (CoolTip.ParametersTableMain)
|
|
Tercio@11
|
2081 _table_wipe (CoolTip.ParametersTableSub)
|
|
Tercio@11
|
2082
|
|
Tercio@11
|
2083 _table_wipe (CoolTip.WallpaperTable)
|
|
Tercio@11
|
2084 _table_wipe (CoolTip.WallpaperTableSub)
|
|
Tercio@11
|
2085 --]]
|
|
Tercio@11
|
2086
|
|
Tercio@11
|
2087 _table_wipe (CoolTip.TopIconTableSub)
|
|
Tercio@11
|
2088 CoolTip.Banner [1] = false
|
|
Tercio@11
|
2089 CoolTip.Banner [2] = false
|
|
Tercio@11
|
2090 CoolTip.Banner [3] = false
|
|
Tercio@11
|
2091
|
|
Tercio@11
|
2092 frame1.upperImage:Hide()
|
|
Tercio@11
|
2093 frame1.upperImage2:Hide()
|
|
Tercio@11
|
2094 frame1.upperImageText:Hide()
|
|
Tercio@11
|
2095 frame1.upperImageText2:Hide()
|
|
Tercio@11
|
2096
|
|
Tercio@11
|
2097 frame1.frameWallpaper:Hide()
|
|
Tercio@11
|
2098 frame2.frameWallpaper:Hide()
|
|
Tercio@11
|
2099
|
|
Tercio@11
|
2100 frame2.upperImage:Hide()
|
|
Tercio@11
|
2101
|
|
Tercio@11
|
2102 CoolTip.title1 = nil
|
|
Tercio@11
|
2103 CoolTip.title_text = nil
|
|
Tercio@11
|
2104
|
|
Tercio@11
|
2105 CoolTip.frame1.titleText:Hide()
|
|
Tercio@11
|
2106 CoolTip.frame1.titleIcon:Hide()
|
|
Tercio@11
|
2107
|
|
Tercio@11
|
2108 CoolTip:ClearAllOptions()
|
|
Tercio@11
|
2109 CoolTip:SetColor (1, "transparent")
|
|
Tercio@11
|
2110 CoolTip:SetColor (2, "transparent")
|
|
Tercio@11
|
2111
|
|
Tercio@11
|
2112 local f1Lines = frame1.Lines
|
|
Tercio@11
|
2113 for i = 1, #f1Lines do
|
|
Tercio@11
|
2114 f1Lines [i].statusbar.subMenuArrow:Hide()
|
|
Tercio@11
|
2115 end
|
|
Tercio@11
|
2116 end
|
|
Tercio@11
|
2117
|
|
Tercio@11
|
2118 ----------------------------------------------------------------------
|
|
Tercio@11
|
2119 --> Menu functions
|
|
Tercio@11
|
2120
|
|
Tercio@11
|
2121 local _default_color = {1, 1, 1}
|
|
Tercio@11
|
2122 local _default_point = {"center", "center", 0, -3}
|
|
Tercio@11
|
2123
|
|
Tercio@11
|
2124 function CoolTip:AddMenu (menuType, func, param1, param2, param3, leftText, leftIcon, indexUp)
|
|
Tercio@11
|
2125
|
|
Tercio@11
|
2126 if (leftText and indexUp and ((type (menuType) == "string" and menuType == "main") or (type (menuType) == "number" and menuType == 1))) then
|
|
Tercio@11
|
2127 CoolTip.Indexes = CoolTip.Indexes + 1
|
|
Tercio@11
|
2128
|
|
Tercio@11
|
2129 if (not CoolTip.IndexesSub [CoolTip.Indexes]) then
|
|
Tercio@11
|
2130 CoolTip.IndexesSub [CoolTip.Indexes] = 0
|
|
Tercio@11
|
2131 end
|
|
Tercio@11
|
2132
|
|
Tercio@11
|
2133 CoolTip.SubIndexes = 0
|
|
Tercio@11
|
2134 end
|
|
Tercio@11
|
2135
|
|
Tercio@11
|
2136 --> need a previous line
|
|
Tercio@11
|
2137 if (CoolTip.Indexes == 0) then
|
|
Tercio@11
|
2138 print ("Indexes are 0")
|
|
Tercio@11
|
2139 return --> return error
|
|
Tercio@11
|
2140 end
|
|
Tercio@11
|
2141
|
|
Tercio@11
|
2142 --> check data integrity
|
|
Tercio@11
|
2143 if (type (func) ~= "function") then
|
|
Tercio@11
|
2144 print ("No function")
|
|
Tercio@11
|
2145 return --> erroe
|
|
Tercio@11
|
2146 end
|
|
Tercio@11
|
2147
|
|
Tercio@11
|
2148 --> add
|
|
Tercio@11
|
2149
|
|
Tercio@11
|
2150 if ((type (menuType) == "string" and menuType == "main") or (type (menuType) == "number" and menuType == 1)) then
|
|
Tercio@11
|
2151
|
|
Tercio@11
|
2152 local parameterTable
|
|
Tercio@11
|
2153 if (CoolTip.isSpecial) then
|
|
Tercio@11
|
2154 parameterTable = {}
|
|
Tercio@11
|
2155 _table_insert (CoolTip.FunctionsTableMain, CoolTip.Indexes, func)
|
|
Tercio@11
|
2156 _table_insert (CoolTip.ParametersTableMain, CoolTip.Indexes, parameterTable)
|
|
Tercio@11
|
2157 else
|
|
Tercio@11
|
2158
|
|
Tercio@11
|
2159 CoolTip.FunctionsTableMain [CoolTip.Indexes] = func
|
|
Tercio@11
|
2160
|
|
Tercio@11
|
2161 parameterTable = CoolTip.ParametersTableMain [CoolTip.Indexes]
|
|
Tercio@11
|
2162 if (not parameterTable) then
|
|
Tercio@11
|
2163 parameterTable = {}
|
|
Tercio@11
|
2164 CoolTip.ParametersTableMain [CoolTip.Indexes] = parameterTable
|
|
Tercio@11
|
2165 end
|
|
Tercio@11
|
2166 end
|
|
Tercio@11
|
2167
|
|
Tercio@11
|
2168 parameterTable [1] = param1
|
|
Tercio@11
|
2169 parameterTable [2] = param2
|
|
Tercio@11
|
2170 parameterTable [3] = param3
|
|
Tercio@11
|
2171
|
|
Tercio@11
|
2172 if (leftIcon) then
|
|
Tercio@11
|
2173 local iconTable = CoolTip.LeftIconTable [CoolTip.Indexes]
|
|
Tercio@11
|
2174
|
|
Tercio@11
|
2175 if (not iconTable or CoolTip.isSpecial) then
|
|
Tercio@11
|
2176 iconTable = {}
|
|
Tercio@11
|
2177 CoolTip.LeftIconTable [CoolTip.Indexes] = iconTable
|
|
Tercio@11
|
2178 end
|
|
Tercio@11
|
2179
|
|
Tercio@11
|
2180 iconTable [1] = leftIcon
|
|
Tercio@11
|
2181 iconTable [2] = 16 --> default 16
|
|
Tercio@11
|
2182 iconTable [3] = 16 --> default 16
|
|
Tercio@11
|
2183 iconTable [4] = 0 --> default 0
|
|
Tercio@11
|
2184 iconTable [5] = 1 --> default 1
|
|
Tercio@11
|
2185 iconTable [6] = 0 --> default 0
|
|
Tercio@11
|
2186 iconTable [7] = 1 --> default 1
|
|
Tercio@11
|
2187 iconTable [8] = _default_color
|
|
Tercio@11
|
2188 end
|
|
Tercio@11
|
2189
|
|
Tercio@11
|
2190 if (leftText) then
|
|
Tercio@11
|
2191 local lineTable_left = CoolTip.LeftTextTable [CoolTip.Indexes]
|
|
Tercio@11
|
2192
|
|
Tercio@11
|
2193 if (not lineTable_left or CoolTip.isSpecial) then
|
|
Tercio@11
|
2194 lineTable_left = {}
|
|
Tercio@11
|
2195 CoolTip.LeftTextTable [CoolTip.Indexes] = lineTable_left
|
|
Tercio@11
|
2196 end
|
|
Tercio@11
|
2197
|
|
Tercio@11
|
2198 lineTable_left [1] = leftText --> line text
|
|
Tercio@11
|
2199 lineTable_left [2] = 0
|
|
Tercio@11
|
2200 lineTable_left [3] = 0
|
|
Tercio@11
|
2201 lineTable_left [4] = 0
|
|
Tercio@11
|
2202 lineTable_left [5] = 0
|
|
Tercio@11
|
2203 lineTable_left [6] = false
|
|
Tercio@11
|
2204 lineTable_left [7] = false
|
|
Tercio@11
|
2205 lineTable_left [8] = false
|
|
Tercio@11
|
2206
|
|
Tercio@11
|
2207 end
|
|
Tercio@11
|
2208
|
|
Tercio@11
|
2209 elseif ((type (menuType) == "string" and menuType == "sec") or (type (menuType) == "number" and menuType == 2)) then
|
|
Tercio@11
|
2210
|
|
Tercio@11
|
2211 if (CoolTip.SubIndexes == 0) then
|
|
Tercio@11
|
2212 if (not indexUp or not leftText) then
|
|
Tercio@11
|
2213 print ("not indexUp or not leftText")
|
|
Tercio@11
|
2214 return --> error
|
|
Tercio@11
|
2215 end
|
|
Tercio@11
|
2216 end
|
|
Tercio@11
|
2217
|
|
Tercio@11
|
2218 if (indexUp and leftText) then
|
|
Tercio@11
|
2219 CoolTip.SubIndexes = CoolTip.SubIndexes + 1
|
|
Tercio@11
|
2220 CoolTip.IndexesSub [CoolTip.Indexes] = CoolTip.IndexesSub [CoolTip.Indexes] + 1
|
|
Tercio@11
|
2221 elseif (indexUp and not leftText) then
|
|
Tercio@11
|
2222 print ("indexUp and not leftText")
|
|
Tercio@11
|
2223 return --> error [leftText can't be nil if indexUp are true]
|
|
Tercio@11
|
2224 end
|
|
Tercio@11
|
2225
|
|
Tercio@11
|
2226 --> menu container
|
|
Tercio@11
|
2227 local subMenuContainerParameters = CoolTip.ParametersTableSub [CoolTip.Indexes]
|
|
Tercio@11
|
2228 if (not subMenuContainerParameters) then
|
|
Tercio@11
|
2229 subMenuContainerParameters = {}
|
|
Tercio@11
|
2230 CoolTip.ParametersTableSub [CoolTip.Indexes] = subMenuContainerParameters
|
|
Tercio@11
|
2231 end
|
|
Tercio@11
|
2232
|
|
Tercio@11
|
2233 local subMenuContainerFunctions = CoolTip.FunctionsTableSub [CoolTip.Indexes]
|
|
Tercio@11
|
2234 if (not subMenuContainerFunctions or CoolTip.isSpecial) then
|
|
Tercio@11
|
2235 subMenuContainerFunctions = {}
|
|
Tercio@11
|
2236 CoolTip.FunctionsTableSub [CoolTip.Indexes] = subMenuContainerFunctions
|
|
Tercio@11
|
2237 end
|
|
Tercio@11
|
2238
|
|
Tercio@11
|
2239 --> menu table
|
|
Tercio@11
|
2240 local subMenuTablesParameters = subMenuContainerParameters [CoolTip.SubIndexes]
|
|
Tercio@11
|
2241 if (not subMenuTablesParameters or CoolTip.isSpecial) then
|
|
Tercio@11
|
2242 subMenuTablesParameters = {}
|
|
Tercio@11
|
2243 subMenuContainerParameters [CoolTip.SubIndexes] = subMenuTablesParameters
|
|
Tercio@11
|
2244 end
|
|
Tercio@11
|
2245
|
|
Tercio@11
|
2246 --> add
|
|
Tercio@11
|
2247 subMenuContainerFunctions [CoolTip.SubIndexes] = func
|
|
Tercio@11
|
2248
|
|
Tercio@11
|
2249 subMenuTablesParameters [1] = param1
|
|
Tercio@11
|
2250 subMenuTablesParameters [2] = param2
|
|
Tercio@11
|
2251 subMenuTablesParameters [3] = param3
|
|
Tercio@11
|
2252
|
|
Tercio@11
|
2253 --> text and icon
|
|
Tercio@11
|
2254 if (leftIcon) then
|
|
Tercio@11
|
2255
|
|
Tercio@11
|
2256 local subMenuContainerIcons = CoolTip.LeftIconTableSub [CoolTip.Indexes]
|
|
Tercio@11
|
2257 if (not subMenuContainerIcons) then
|
|
Tercio@11
|
2258 subMenuContainerIcons = {}
|
|
Tercio@11
|
2259 CoolTip.LeftIconTableSub [CoolTip.Indexes] = subMenuContainerIcons
|
|
Tercio@11
|
2260 end
|
|
Tercio@11
|
2261 local subMenuTablesIcons = subMenuContainerIcons [CoolTip.SubIndexes]
|
|
Tercio@11
|
2262 if (not subMenuTablesIcons or CoolTip.isSpecial) then
|
|
Tercio@11
|
2263 subMenuTablesIcons = {}
|
|
Tercio@11
|
2264 subMenuContainerIcons [CoolTip.SubIndexes] = subMenuTablesIcons
|
|
Tercio@11
|
2265 end
|
|
Tercio@11
|
2266
|
|
Tercio@11
|
2267 subMenuTablesIcons [1] = leftIcon
|
|
Tercio@11
|
2268 subMenuTablesIcons [2] = 16 --> default 16
|
|
Tercio@11
|
2269 subMenuTablesIcons [3] = 16 --> default 16
|
|
Tercio@11
|
2270 subMenuTablesIcons [4] = 0 --> default 0
|
|
Tercio@11
|
2271 subMenuTablesIcons [5] = 1 --> default 1
|
|
Tercio@11
|
2272 subMenuTablesIcons [6] = 0 --> default 0
|
|
Tercio@11
|
2273 subMenuTablesIcons [7] = 1 --> default 1
|
|
Tercio@11
|
2274 subMenuTablesIcons [8] = _default_color
|
|
Tercio@11
|
2275 end
|
|
Tercio@11
|
2276
|
|
Tercio@11
|
2277 if (leftText) then
|
|
Tercio@11
|
2278
|
|
Tercio@11
|
2279 local subMenuContainerTexts = CoolTip.LeftTextTableSub [CoolTip.Indexes]
|
|
Tercio@11
|
2280 if (not subMenuContainerTexts) then
|
|
Tercio@11
|
2281 subMenuContainerTexts = {}
|
|
Tercio@11
|
2282 CoolTip.LeftTextTableSub [CoolTip.Indexes] = subMenuContainerTexts
|
|
Tercio@11
|
2283 end
|
|
Tercio@11
|
2284 local subMenuTablesTexts = subMenuContainerTexts [CoolTip.SubIndexes]
|
|
Tercio@11
|
2285 if (not subMenuTablesTexts or CoolTip.isSpecial) then
|
|
Tercio@11
|
2286 subMenuTablesTexts = {}
|
|
Tercio@11
|
2287 subMenuContainerTexts [CoolTip.SubIndexes] = subMenuTablesTexts
|
|
Tercio@11
|
2288 end
|
|
Tercio@11
|
2289
|
|
Tercio@11
|
2290 subMenuTablesTexts [1] = leftText --> line text
|
|
Tercio@11
|
2291 subMenuTablesTexts [2] = 0
|
|
Tercio@11
|
2292 subMenuTablesTexts [3] = 0
|
|
Tercio@11
|
2293 subMenuTablesTexts [4] = 0
|
|
Tercio@11
|
2294 subMenuTablesTexts [5] = 0
|
|
Tercio@11
|
2295 subMenuTablesTexts [6] = false
|
|
Tercio@11
|
2296 subMenuTablesTexts [7] = false
|
|
Tercio@11
|
2297 subMenuTablesTexts [8] = false
|
|
Tercio@11
|
2298
|
|
Tercio@11
|
2299 end
|
|
Tercio@11
|
2300
|
|
Tercio@11
|
2301 CoolTip.HaveSubMenu = true
|
|
Tercio@11
|
2302
|
|
Tercio@11
|
2303 else
|
|
Tercio@11
|
2304 return --> error
|
|
Tercio@11
|
2305 end
|
|
Tercio@11
|
2306 end
|
|
Tercio@11
|
2307
|
|
Tercio@11
|
2308 ----------------------------------------------------------------------
|
|
Tercio@11
|
2309 --> adds a statusbar to the last line added.
|
|
Tercio@11
|
2310 --> only works with cooltip type 2 (tooltip with bars)
|
|
Tercio@11
|
2311 --> parameters: value [, color red, color green, color blue, color alpha [, glow]]
|
|
Tercio@11
|
2312 --> can also use a table or html color name in color red and send glow in color green
|
|
Tercio@11
|
2313
|
|
Tercioo@29
|
2314 function CoolTip:AddStatusBar (statusbarValue, frame, ColorR, ColorG, ColorB, ColorA, statusbarGlow, backgroundBar, barTexture)
|
|
Tercio@11
|
2315
|
|
Tercio@11
|
2316 --> need a previous line
|
|
Tercio@11
|
2317 if (CoolTip.Indexes == 0) then
|
|
Tercio@11
|
2318 return --> return error
|
|
Tercio@11
|
2319 end
|
|
Tercio@11
|
2320
|
|
Tercio@11
|
2321 --> check data integrity
|
|
Tercio@11
|
2322 if (type (statusbarValue) ~= "number") then
|
|
Tercio@11
|
2323 return --> error
|
|
Tercio@11
|
2324 end
|
|
Tercio@11
|
2325
|
|
Tercio@11
|
2326 if (type (ColorR) == "table" or type (ColorR) == "string") then
|
|
Tercio@11
|
2327 statusbarGlow, backgroundBar, ColorR, ColorG, ColorB, ColorA = ColorG, ColorB, DF:ParseColors (ColorR)
|
|
Tercio@11
|
2328 elseif (type (ColorR) == "boolean") then
|
|
Tercio@11
|
2329 backgroundBar = ColorG
|
|
Tercio@11
|
2330 statusbarGlow = ColorR
|
|
Tercio@11
|
2331 ColorR, ColorG, ColorB, ColorA = 1, 1, 1, 1
|
|
Tercio@11
|
2332 else
|
|
Tercio@11
|
2333 --> error
|
|
Tercio@11
|
2334 end
|
|
Tercio@11
|
2335
|
|
Tercio@11
|
2336 --> add
|
|
Tercio@11
|
2337 local frameTable
|
|
Tercio@11
|
2338 local statusbarTable
|
|
Tercio@11
|
2339
|
|
Tercio@11
|
2340 if (not frame or (type (frame) == "string" and frame == "main") or (type (frame) == "number" and frame == 1)) then
|
|
Tercio@11
|
2341 frameTable = CoolTip.StatusBarTable
|
|
Tercio@11
|
2342
|
|
Tercio@11
|
2343 if (CoolTip.isSpecial) then
|
|
Tercio@11
|
2344 statusbarTable = {}
|
|
Tercio@11
|
2345 _table_insert (frameTable, CoolTip.Indexes, statusbarTable)
|
|
Tercio@11
|
2346 else
|
|
Tercio@11
|
2347 statusbarTable = frameTable [CoolTip.Indexes]
|
|
Tercio@11
|
2348 if (not statusbarTable) then
|
|
Tercio@11
|
2349 statusbarTable = {}
|
|
Tercio@11
|
2350 _table_insert (frameTable, CoolTip.Indexes, statusbarTable)
|
|
Tercio@11
|
2351 --frameTable [CoolTip.Indexes] = statusbarTable
|
|
Tercio@11
|
2352 end
|
|
Tercio@11
|
2353 end
|
|
Tercio@11
|
2354
|
|
Tercio@11
|
2355 elseif ((type (frame) == "string" and frame == "sub") or (type (frame) == "number" and frame == 2)) then
|
|
Tercio@11
|
2356
|
|
Tercio@11
|
2357 frameTable = CoolTip.StatusBarTableSub
|
|
Tercio@11
|
2358
|
|
Tercio@11
|
2359 local subMenuContainerStatusBar = frameTable [CoolTip.Indexes]
|
|
Tercio@11
|
2360 if (not subMenuContainerStatusBar) then
|
|
Tercio@11
|
2361 subMenuContainerStatusBar = {}
|
|
Tercio@11
|
2362 frameTable [CoolTip.Indexes] = subMenuContainerStatusBar
|
|
Tercio@11
|
2363 end
|
|
Tercio@11
|
2364
|
|
Tercio@11
|
2365 if (CoolTip.isSpecial) then
|
|
Tercio@11
|
2366 statusbarTable = {}
|
|
Tercio@11
|
2367 _table_insert (subMenuContainerStatusBar, CoolTip.SubIndexes, statusbarTable)
|
|
Tercio@11
|
2368 else
|
|
Tercio@11
|
2369 statusbarTable = subMenuContainerStatusBar [CoolTip.SubIndexes]
|
|
Tercio@11
|
2370 if (not statusbarTable) then
|
|
Tercio@11
|
2371 statusbarTable = {}
|
|
Tercio@11
|
2372 _table_insert (subMenuContainerStatusBar, CoolTip.SubIndexes, statusbarTable)
|
|
Tercio@11
|
2373 end
|
|
Tercio@11
|
2374 end
|
|
Tercio@11
|
2375 else
|
|
Tercio@11
|
2376 print ("unknow frame")
|
|
Tercio@11
|
2377 return --> error
|
|
Tercio@11
|
2378 end
|
|
Tercio@11
|
2379
|
|
Tercio@11
|
2380 statusbarTable [1] = statusbarValue
|
|
Tercio@11
|
2381 statusbarTable [2] = ColorR
|
|
Tercio@11
|
2382 statusbarTable [3] = ColorG
|
|
Tercio@11
|
2383 statusbarTable [4] = ColorB
|
|
Tercio@11
|
2384 statusbarTable [5] = ColorA
|
|
Tercio@11
|
2385 statusbarTable [6] = statusbarGlow
|
|
Tercio@11
|
2386 statusbarTable [7] = backgroundBar
|
|
Tercioo@29
|
2387 statusbarTable [8] = barTexture
|
|
Tercio@11
|
2388
|
|
Tercio@11
|
2389 end
|
|
Tercio@11
|
2390
|
|
Tercio@11
|
2391 frame1.frameWallpaper:Hide()
|
|
Tercio@11
|
2392 frame2.frameWallpaper:Hide()
|
|
Tercio@11
|
2393
|
|
Tercio@11
|
2394 function CoolTip:SetWallpaper (index, texture, texcoord, color, desaturate)
|
|
Tercio@11
|
2395
|
|
Tercio@11
|
2396 if (CoolTip.Indexes == 0) then
|
|
Tercio@11
|
2397 return --> return error
|
|
Tercio@11
|
2398 end
|
|
Tercio@11
|
2399
|
|
Tercio@11
|
2400 local frameTable
|
|
Tercio@11
|
2401 local wallpaperTable
|
|
Tercio@11
|
2402
|
|
Tercio@11
|
2403 if ( (type (index) == "number" and index == 1) or (type (index) == "string" and index == "main") ) then
|
|
Tercio@11
|
2404 wallpaperTable = CoolTip.WallpaperTable
|
|
Tercio@11
|
2405
|
|
Tercio@11
|
2406 elseif ( (type (index) == "number" and index == 2) or (type (index) == "string" and index == "sub") ) then
|
|
Tercio@11
|
2407 frameTable = CoolTip.WallpaperTableSub
|
|
Tercio@11
|
2408
|
|
Tercio@11
|
2409 local subMenuContainerWallpapers = frameTable [CoolTip.Indexes]
|
|
Tercio@11
|
2410 if (not subMenuContainerWallpapers) then
|
|
Tercio@11
|
2411 subMenuContainerWallpapers = {}
|
|
Tercio@11
|
2412 frameTable [CoolTip.Indexes] = subMenuContainerWallpapers
|
|
Tercio@11
|
2413 end
|
|
Tercio@11
|
2414
|
|
Tercio@11
|
2415 wallpaperTable = subMenuContainerWallpapers
|
|
Tercio@11
|
2416 end
|
|
Tercio@11
|
2417
|
|
Tercio@11
|
2418 wallpaperTable [1] = texture
|
|
Tercio@11
|
2419 if (texcoord) then
|
|
Tercio@11
|
2420 wallpaperTable [2] = texcoord [1]
|
|
Tercio@11
|
2421 wallpaperTable [3] = texcoord [2]
|
|
Tercio@11
|
2422 wallpaperTable [4] = texcoord [3]
|
|
Tercio@11
|
2423 wallpaperTable [5] = texcoord [4]
|
|
Tercio@11
|
2424 else
|
|
Tercio@11
|
2425 wallpaperTable [2] = 0
|
|
Tercio@11
|
2426 wallpaperTable [3] = 1
|
|
Tercio@11
|
2427 wallpaperTable [4] = 0
|
|
Tercio@11
|
2428 wallpaperTable [5] = 1
|
|
Tercio@11
|
2429 end
|
|
Tercio@11
|
2430 wallpaperTable [6] = color
|
|
Tercio@11
|
2431 wallpaperTable [7] = desaturate
|
|
Tercio@11
|
2432 end
|
|
Tercio@11
|
2433
|
|
Tercio@11
|
2434 function CoolTip:SetBannerText (index, text, anchor, color, fontsize, fontface, fontflag)
|
|
Tercio@11
|
2435 local fontstring
|
|
Tercio@11
|
2436
|
|
Tercio@11
|
2437 if (index == 1) then
|
|
Tercio@11
|
2438 fontstring = frame1.upperImageText
|
|
Tercio@11
|
2439 elseif (index == 2) then
|
|
Tercio@11
|
2440 fontstring = frame1.upperImageText2
|
|
Tercio@11
|
2441 end
|
|
Tercio@11
|
2442
|
|
Tercio@11
|
2443 fontstring:SetText (text or "")
|
|
Tercio@11
|
2444
|
|
Tercio@11
|
2445 if (anchor and index == 1) then
|
|
Tercio@11
|
2446 local myAnchor, hisAnchor, x, y = unpack (anchor)
|
|
Tercio@11
|
2447 fontstring:SetPoint (myAnchor, frame1.upperImage, hisAnchor or myAnchor, x or 0, y or 0)
|
|
Tercio@11
|
2448 elseif (anchor and index == 2) then
|
|
Tercio@11
|
2449 local myAnchor, hisAnchor, x, y = unpack (anchor)
|
|
Tercio@11
|
2450 fontstring:SetPoint (myAnchor, frame1, hisAnchor or myAnchor, x or 0, y or 0)
|
|
Tercio@11
|
2451 end
|
|
Tercio@11
|
2452
|
|
Tercio@11
|
2453 if (color) then
|
|
Tercio@11
|
2454 local r, g, b, a = DF:ParseColors (color)
|
|
Tercio@11
|
2455 fontstring:SetTextColor (r, g, b, a)
|
|
Tercio@11
|
2456 end
|
|
Tercio@11
|
2457
|
|
Tercio@11
|
2458 local face, size, flags = fontstring:GetFont()
|
|
Tercio@11
|
2459 face = fontface or [[Fonts\FRIZQT__.TTF]]
|
|
Tercio@11
|
2460 size = fontsize or 13
|
|
Tercio@11
|
2461 flags = fontflag or nil
|
|
Tercio@11
|
2462 fontstring:SetFont (face, size, flags)
|
|
Tercio@11
|
2463 fontstring:Show()
|
|
Tercio@11
|
2464 end
|
|
Tercio@11
|
2465
|
|
Tercio@11
|
2466 function CoolTip:SetBackdrop (index, backdrop, backdropcolor, bordercolor)
|
|
Tercio@11
|
2467
|
|
Tercio@11
|
2468 local f
|
|
Tercio@11
|
2469 if (index == 1) then
|
|
Tercio@11
|
2470 f = frame1
|
|
Tercio@11
|
2471 elseif (index == 2) then
|
|
Tercio@11
|
2472 f = frame2
|
|
Tercio@11
|
2473 end
|
|
Tercio@11
|
2474
|
|
Tercio@11
|
2475 if (backdrop) then
|
|
Tercio@11
|
2476 f:SetBackdrop (backdrop)
|
|
Tercio@11
|
2477 end
|
|
Tercio@11
|
2478 if (backdropcolor) then
|
|
Tercio@11
|
2479 local r, g, b, a = DF:ParseColors (backdropcolor)
|
|
Tercio@11
|
2480 f:SetBackdropColor (r, g, b, a)
|
|
Tercio@11
|
2481 end
|
|
Tercio@11
|
2482 if (bordercolor) then
|
|
Tercio@11
|
2483 local r, g, b, a = DF:ParseColors (bordercolor)
|
|
Tercio@11
|
2484 f:SetBackdropBorderColor (r, g, b, a)
|
|
Tercio@11
|
2485 end
|
|
Tercio@11
|
2486
|
|
Tercio@11
|
2487 end
|
|
Tercio@11
|
2488
|
|
Tercio@11
|
2489 function CoolTip:SetBannerImage (index, texturepath, width, height, anchor, texcoord, overlay)
|
|
Tercio@11
|
2490
|
|
Tercio@11
|
2491 local texture
|
|
Tercio@11
|
2492
|
|
Tercio@11
|
2493 if (index == 1) then
|
|
Tercio@11
|
2494 texture = frame1.upperImage
|
|
Tercio@11
|
2495 elseif (index == 2) then
|
|
Tercio@11
|
2496 texture = frame1.upperImage2
|
|
Tercio@11
|
2497 end
|
|
Tercio@11
|
2498
|
|
Tercio@11
|
2499 if (texturepath) then
|
|
Tercio@11
|
2500 texture:SetTexture (texturepath)
|
|
Tercio@11
|
2501 end
|
|
Tercio@11
|
2502
|
|
Tercio@11
|
2503 if (width) then
|
|
Tercio@11
|
2504 texture:SetWidth (width)
|
|
Tercio@11
|
2505 end
|
|
Tercio@11
|
2506 if (height) then
|
|
Tercio@11
|
2507 texture:SetHeight (height)
|
|
Tercio@11
|
2508 end
|
|
Tercio@11
|
2509
|
|
Tercio@11
|
2510 if (anchor) then
|
|
Tercio@11
|
2511 if (type (anchor[1]) == "table") then
|
|
Tercio@11
|
2512 for _, t in _ipairs (anchor) do
|
|
Tercio@11
|
2513 local myAnchor, hisAnchor, x, y = unpack (t)
|
|
Tercio@11
|
2514 texture:SetPoint (myAnchor, frame1, hisAnchor or myAnchor, x or 0, y or 0)
|
|
Tercio@11
|
2515 end
|
|
Tercio@11
|
2516 else
|
|
Tercio@11
|
2517 local myAnchor, hisAnchor, x, y = unpack (anchor)
|
|
Tercio@11
|
2518 texture:SetPoint (myAnchor, frame1, hisAnchor or myAnchor, x or 0, y or 0)
|
|
Tercio@11
|
2519 end
|
|
Tercio@11
|
2520 end
|
|
Tercio@11
|
2521
|
|
Tercio@11
|
2522 if (texcoord) then
|
|
Tercio@11
|
2523 local L, R, T, B = unpack (texcoord)
|
|
Tercio@11
|
2524 texture:SetTexCoord (L, R, T, B)
|
|
Tercio@11
|
2525 end
|
|
Tercio@11
|
2526
|
|
Tercio@11
|
2527 if (overlay) then
|
|
Tercio@11
|
2528 texture:SetVertexColor (unpack (overlay))
|
|
Tercio@11
|
2529 end
|
|
Tercio@11
|
2530
|
|
Tercio@11
|
2531 CoolTip.Banner [index] = true
|
|
Tercio@11
|
2532 texture:Show()
|
|
Tercio@11
|
2533
|
|
Tercio@11
|
2534 end
|
|
Tercio@11
|
2535
|
|
Tercio@11
|
2536 ----------------------------------------------------------------------
|
|
Tercio@11
|
2537 --> adds a icon to the last line added.
|
|
Tercio@11
|
2538 --> only works with cooltip type 1 and 2 (tooltip and tooltip with bars)
|
|
Tercio@11
|
2539 --> parameters: icon [, width [, height [, TexCoords L R T B ]]]
|
|
Tercio@11
|
2540 --> texture support string path or texture object
|
|
Tercio@11
|
2541
|
|
Tercio@11
|
2542 function CoolTip:AddTexture (iconTexture, frame, side, iconWidth, iconHeight, L, R, T, B, overlayColor, point, desaturated)
|
|
Tercio@11
|
2543 return CoolTip:AddIcon (iconTexture, frame, side, iconWidth, iconHeight, L, R, T, B, overlayColor, point, desaturated)
|
|
Tercio@11
|
2544 end
|
|
Tercio@11
|
2545 function CoolTip:AddIcon (iconTexture, frame, side, iconWidth, iconHeight, L, R, T, B, overlayColor, point, desaturated)
|
|
Tercio@11
|
2546
|
|
Tercio@11
|
2547 --> need a previous line
|
|
Tercio@11
|
2548 if (CoolTip.Indexes == 0) then
|
|
Tercio@11
|
2549 return --> return error
|
|
Tercio@11
|
2550 end
|
|
Tercio@11
|
2551
|
|
Tercio@11
|
2552 --> check data integrity
|
|
Tercio@39
|
2553 if ( (type (iconTexture) ~= "string" and type (iconTexture) ~= "number") and (type (iconTexture) ~= "table" or not iconTexture.GetObjectType or iconTexture:GetObjectType() ~= "Texture") ) then
|
|
Tercio@11
|
2554 return --> return error
|
|
Tercio@11
|
2555 end
|
|
Tercio@11
|
2556
|
|
Tercio@11
|
2557 side = side or 1
|
|
Tercio@11
|
2558
|
|
Tercio@11
|
2559 local frameTable
|
|
Tercio@11
|
2560 local iconTable
|
|
Tercio@11
|
2561
|
|
Tercio@11
|
2562 if (not frame or (type (frame) == "string" and frame == "main") or (type (frame) == "number" and frame == 1)) then
|
|
Tercio@11
|
2563
|
|
Tercio@11
|
2564 if (not side or (type (side) == "string" and side == "left") or (type (side) == "number" and side == 1)) then
|
|
Tercio@11
|
2565 frameTable = CoolTip.LeftIconTable
|
|
Tercio@11
|
2566
|
|
Tercio@11
|
2567 elseif ((type (side) == "string" and side == "right") or (type (side) == "number" and side == 2)) then
|
|
Tercio@11
|
2568 frameTable = CoolTip.RightIconTable
|
|
Tercio@11
|
2569
|
|
Tercio@11
|
2570 end
|
|
Tercio@11
|
2571
|
|
Tercio@11
|
2572 if (CoolTip.isSpecial) then
|
|
Tercio@11
|
2573 iconTable = {}
|
|
Tercio@11
|
2574 _table_insert (frameTable, CoolTip.Indexes, iconTable)
|
|
Tercio@11
|
2575 else
|
|
Tercio@11
|
2576 iconTable = frameTable [CoolTip.Indexes]
|
|
Tercio@11
|
2577 if (not iconTable) then
|
|
Tercio@11
|
2578 iconTable = {}
|
|
Tercio@11
|
2579 _table_insert (frameTable, CoolTip.Indexes, iconTable)
|
|
Tercio@11
|
2580 --frameTable [CoolTip.Indexes] = iconTable
|
|
Tercio@11
|
2581 end
|
|
Tercio@11
|
2582 end
|
|
Tercio@11
|
2583
|
|
Tercio@11
|
2584 elseif ((type (frame) == "string" and frame == "sub") or (type (frame) == "number" and frame == 2)) then
|
|
Tercio@11
|
2585
|
|
Tercio@11
|
2586 if ((type (side) == "string" and side == "left") or (type (side) == "number" and side == 1)) then
|
|
Tercio@11
|
2587 frameTable = CoolTip.LeftIconTableSub
|
|
Tercio@11
|
2588 elseif ((type (side) == "string" and side == "right") or (type (side) == "number" and side == 2)) then
|
|
Tercio@11
|
2589 frameTable = CoolTip.RightIconTableSub
|
|
Tercio@11
|
2590 elseif ((type (side) == "string" and side == "top") or (type (side) == "number" and side == 3)) then
|
|
Tercio@11
|
2591 CoolTip.TopIconTableSub [CoolTip.Indexes] = CoolTip.TopIconTableSub [CoolTip.Indexes] or {}
|
|
Tercio@11
|
2592 CoolTip.TopIconTableSub [CoolTip.Indexes] [1] = iconTexture
|
|
Tercio@11
|
2593 CoolTip.TopIconTableSub [CoolTip.Indexes] [2] = iconWidth or 16
|
|
Tercio@11
|
2594 CoolTip.TopIconTableSub [CoolTip.Indexes] [3] = iconHeight or 16
|
|
Tercio@11
|
2595 CoolTip.TopIconTableSub [CoolTip.Indexes] [4] = L or 0
|
|
Tercio@11
|
2596 CoolTip.TopIconTableSub [CoolTip.Indexes] [5] = R or 1
|
|
Tercio@11
|
2597 CoolTip.TopIconTableSub [CoolTip.Indexes] [6] = T or 0
|
|
Tercio@11
|
2598 CoolTip.TopIconTableSub [CoolTip.Indexes] [7] = B or 1
|
|
Tercio@11
|
2599 CoolTip.TopIconTableSub [CoolTip.Indexes] [8] = overlayColor or _default_color
|
|
Tercio@11
|
2600 CoolTip.TopIconTableSub [CoolTip.Indexes] [9] = desaturated
|
|
Tercio@11
|
2601 return
|
|
Tercio@11
|
2602 end
|
|
Tercio@11
|
2603
|
|
Tercio@11
|
2604 local subMenuContainerIcons = frameTable [CoolTip.Indexes]
|
|
Tercio@11
|
2605 if (not subMenuContainerIcons) then
|
|
Tercio@11
|
2606 subMenuContainerIcons = {}
|
|
Tercio@11
|
2607 frameTable [CoolTip.Indexes] = subMenuContainerIcons
|
|
Tercio@11
|
2608 end
|
|
Tercio@11
|
2609
|
|
Tercio@11
|
2610 if (CoolTip.isSpecial) then
|
|
Tercio@11
|
2611 iconTable = {}
|
|
Tercio@11
|
2612 subMenuContainerIcons [CoolTip.SubIndexes] = iconTable
|
|
Tercio@11
|
2613 else
|
|
Tercio@11
|
2614 iconTable = subMenuContainerIcons [CoolTip.SubIndexes]
|
|
Tercio@11
|
2615 if (not iconTable) then
|
|
Tercio@11
|
2616 iconTable = {}
|
|
Tercio@11
|
2617 subMenuContainerIcons [CoolTip.SubIndexes] = iconTable
|
|
Tercio@11
|
2618 end
|
|
Tercio@11
|
2619 end
|
|
Tercio@11
|
2620
|
|
Tercio@11
|
2621 else
|
|
Tercio@11
|
2622 return --> error
|
|
Tercio@11
|
2623 end
|
|
Tercio@11
|
2624
|
|
Tercio@11
|
2625 iconTable [1] = iconTexture
|
|
Tercio@11
|
2626 iconTable [2] = iconWidth or 16 --> default 16
|
|
Tercio@11
|
2627 iconTable [3] = iconHeight or 16 --> default 16
|
|
Tercio@11
|
2628 iconTable [4] = L or 0 --> default 0
|
|
Tercio@11
|
2629 iconTable [5] = R or 1 --> default 1
|
|
Tercio@11
|
2630 iconTable [6] = T or 0 --> default 0
|
|
Tercio@11
|
2631 iconTable [7] = B or 1 --> default 1
|
|
Tercio@11
|
2632 iconTable [8] = overlayColor or _default_color --> default 1, 1, 1
|
|
Tercio@11
|
2633 iconTable [9] = desaturated
|
|
Tercio@11
|
2634
|
|
Tercio@11
|
2635 return true
|
|
Tercio@11
|
2636 end
|
|
Tercio@11
|
2637
|
|
Tercio@11
|
2638 ----------------------------------------------------------------------
|
|
Tercio@20
|
2639 --> popup frame
|
|
Tercio@20
|
2640 function CoolTip:AddPopUpFrame (func_on_show, func_on_hide, param1, param2)
|
|
Tercio@20
|
2641
|
|
Tercio@20
|
2642 -- act like a sub menu
|
|
Tercio@20
|
2643 if (CoolTip.Indexes > 0) then
|
|
Tercio@20
|
2644 CoolTip.PopupFrameTable [CoolTip.Indexes] = {func_on_show or false, func_on_hide or false, param1, param2}
|
|
Tercio@20
|
2645 end
|
|
Tercio@20
|
2646
|
|
Tercio@20
|
2647 end
|
|
Tercio@20
|
2648
|
|
Tercio@20
|
2649 ----------------------------------------------------------------------
|
|
Tercio@11
|
2650 --> adds a line.
|
|
Tercio@11
|
2651 --> only works with cooltip type 1 and 2 (tooltip and tooltip with bars)
|
|
Tercio@11
|
2652 --> parameters: left text, right text [, L color R, L color G, L color B, L color A [, R color R, R color G, R color B, R color A [, wrap]]]
|
|
Tercio@11
|
2653
|
|
Tercio@11
|
2654 --> alias
|
|
Tercio@11
|
2655 function CoolTip:AddDoubleLine (leftText, rightText, frame, ColorR1, ColorG1, ColorB1, ColorA1, ColorR2, ColorG2, ColorB2, ColorA2, fontSize, fontFace, fontFlag)
|
|
Tercio@11
|
2656 return CoolTip:AddLine (leftText, rightText, frame, ColorR1, ColorG1, ColorB1, ColorA1, ColorR2, ColorG2, ColorB2, ColorA2, fontSize, fontFace, fontFlag)
|
|
Tercio@11
|
2657 end
|
|
Tercio@11
|
2658
|
|
Tercio@11
|
2659 --> adds a line for tooltips
|
|
Tercio@11
|
2660 function CoolTip:AddLine (leftText, rightText, frame, ColorR1, ColorG1, ColorB1, ColorA1, ColorR2, ColorG2, ColorB2, ColorA2, fontSize, fontFace, fontFlag)
|
|
Tercio@11
|
2661
|
|
Tercio@11
|
2662 --> check data integrity
|
|
Tercio@11
|
2663 local t = type (leftText)
|
|
Tercio@11
|
2664 if (t ~= "string") then
|
|
Tercio@11
|
2665 if (t == "number") then
|
|
Tercio@11
|
2666 leftText = tostring (leftText)
|
|
Tercio@11
|
2667 else
|
|
Tercio@11
|
2668 leftText = ""
|
|
Tercio@11
|
2669 end
|
|
Tercio@11
|
2670 end
|
|
Tercio@11
|
2671
|
|
Tercio@11
|
2672 local t = type (rightText)
|
|
Tercio@11
|
2673 if (t ~= "string") then
|
|
Tercio@11
|
2674 if (t == "number") then
|
|
Tercio@11
|
2675 rightText = tostring (rightText)
|
|
Tercio@11
|
2676 else
|
|
Tercio@11
|
2677 rightText = ""
|
|
Tercio@11
|
2678 end
|
|
Tercio@11
|
2679 end
|
|
Tercio@11
|
2680
|
|
Tercio@11
|
2681 if (type (ColorR1) ~= "number") then
|
|
Tercio@11
|
2682 ColorR2, ColorG2, ColorB2, ColorA2, fontSize, fontFace, fontFlag = ColorG1, ColorB1, ColorA1, ColorR2, ColorG2, ColorB2, ColorA2
|
|
Tercio@11
|
2683
|
|
Tercio@11
|
2684 if (type (ColorR1) == "boolean" or not ColorR1) then
|
|
Tercio@11
|
2685 ColorR1, ColorG1, ColorB1, ColorA1 = 0, 0, 0, 0
|
|
Tercio@11
|
2686 else
|
|
Tercio@11
|
2687 ColorR1, ColorG1, ColorB1, ColorA1 = DF:ParseColors (ColorR1)
|
|
Tercio@11
|
2688 end
|
|
Tercio@11
|
2689 end
|
|
Tercio@11
|
2690
|
|
Tercio@11
|
2691 if (type (ColorR2) ~= "number") then
|
|
Tercio@11
|
2692 fontSize, fontFace, fontFlag = ColorG2, ColorB2, ColorA2
|
|
Tercio@11
|
2693
|
|
Tercio@11
|
2694 if (type (ColorR2) == "boolean" or not ColorR2) then
|
|
Tercio@11
|
2695 ColorR2, ColorG2, ColorB2, ColorA2 = 0, 0, 0, 0
|
|
Tercio@11
|
2696 else
|
|
Tercio@11
|
2697 ColorR2, ColorG2, ColorB2, ColorA2 = DF:ParseColors (ColorR2)
|
|
Tercio@11
|
2698 end
|
|
Tercio@11
|
2699 end
|
|
Tercio@11
|
2700
|
|
Tercio@11
|
2701 local frameTableLeft
|
|
Tercio@11
|
2702 local frameTableRight
|
|
Tercio@11
|
2703 local lineTable_left
|
|
Tercio@11
|
2704 local lineTable_right
|
|
Tercio@11
|
2705
|
|
Tercio@11
|
2706 if (not frame or (type (frame) == "string" and frame == "main") or (type (frame) == "number" and frame == 1)) then
|
|
Tercio@11
|
2707
|
|
Tercio@11
|
2708 CoolTip.Indexes = CoolTip.Indexes + 1
|
|
Tercio@11
|
2709
|
|
Tercio@11
|
2710 if (not CoolTip.IndexesSub [CoolTip.Indexes]) then
|
|
Tercio@11
|
2711 CoolTip.IndexesSub [CoolTip.Indexes] = 0
|
|
Tercio@11
|
2712 end
|
|
Tercio@11
|
2713
|
|
Tercio@11
|
2714 CoolTip.SubIndexes = 0
|
|
Tercio@11
|
2715
|
|
Tercio@11
|
2716 frameTableLeft = CoolTip.LeftTextTable
|
|
Tercio@11
|
2717 frameTableRight = CoolTip.RightTextTable
|
|
Tercio@11
|
2718
|
|
Tercio@11
|
2719 if (CoolTip.isSpecial) then
|
|
Tercio@11
|
2720 lineTable_left = {}
|
|
Tercio@11
|
2721 _table_insert (frameTableLeft, CoolTip.Indexes, lineTable_left)
|
|
Tercio@11
|
2722 lineTable_right = {}
|
|
Tercio@11
|
2723 _table_insert (frameTableRight, CoolTip.Indexes, lineTable_right)
|
|
Tercio@11
|
2724 else
|
|
Tercio@11
|
2725 lineTable_left = frameTableLeft [CoolTip.Indexes]
|
|
Tercio@11
|
2726 lineTable_right = frameTableRight [CoolTip.Indexes]
|
|
Tercio@11
|
2727
|
|
Tercio@11
|
2728 if (not lineTable_left) then
|
|
Tercio@11
|
2729 lineTable_left = {}
|
|
Tercio@11
|
2730 _table_insert (frameTableLeft, CoolTip.Indexes, lineTable_left)
|
|
Tercio@11
|
2731 end
|
|
Tercio@11
|
2732 if (not lineTable_right) then
|
|
Tercio@11
|
2733 lineTable_right = {}
|
|
Tercio@11
|
2734 _table_insert (frameTableRight, CoolTip.Indexes, lineTable_right)
|
|
Tercio@11
|
2735 end
|
|
Tercio@11
|
2736 end
|
|
Tercio@11
|
2737
|
|
Tercio@11
|
2738 elseif ((type (frame) == "string" and frame == "sub") or (type (frame) == "number" and frame == 2)) then
|
|
Tercio@11
|
2739
|
|
Tercio@11
|
2740 CoolTip.SubIndexes = CoolTip.SubIndexes + 1
|
|
Tercio@11
|
2741 CoolTip.IndexesSub [CoolTip.Indexes] = CoolTip.IndexesSub [CoolTip.Indexes] + 1
|
|
Tercio@11
|
2742 CoolTip.HaveSubMenu = true
|
|
Tercio@11
|
2743
|
|
Tercio@11
|
2744 frameTableLeft = CoolTip.LeftTextTableSub
|
|
Tercio@11
|
2745 frameTableRight = CoolTip.RightTextTableSub
|
|
Tercio@11
|
2746
|
|
Tercio@11
|
2747 local subMenuContainerTexts = frameTableLeft [CoolTip.Indexes]
|
|
Tercio@11
|
2748 if (not subMenuContainerTexts) then
|
|
Tercio@11
|
2749 subMenuContainerTexts = {}
|
|
Tercio@11
|
2750 _table_insert (frameTableLeft, CoolTip.Indexes, subMenuContainerTexts)
|
|
Tercio@11
|
2751 end
|
|
Tercio@11
|
2752
|
|
Tercio@11
|
2753 if (CoolTip.isSpecial) then
|
|
Tercio@11
|
2754 lineTable_left = {}
|
|
Tercio@11
|
2755 _table_insert (subMenuContainerTexts, CoolTip.SubIndexes, lineTable_left)
|
|
Tercio@11
|
2756 else
|
|
Tercio@11
|
2757 lineTable_left = subMenuContainerTexts [CoolTip.SubIndexes]
|
|
Tercio@11
|
2758 if (not lineTable_left) then
|
|
Tercio@11
|
2759 lineTable_left = {}
|
|
Tercio@11
|
2760 --subMenuContainerTexts [CoolTip.SubIndexes] = lineTable_left
|
|
Tercio@11
|
2761 _table_insert (subMenuContainerTexts, CoolTip.SubIndexes, lineTable_left)
|
|
Tercio@11
|
2762 end
|
|
Tercio@11
|
2763 end
|
|
Tercio@11
|
2764
|
|
Tercio@11
|
2765 local subMenuContainerTexts = frameTableRight [CoolTip.Indexes]
|
|
Tercio@11
|
2766 if (not subMenuContainerTexts) then
|
|
Tercio@11
|
2767 subMenuContainerTexts = {}
|
|
Tercio@11
|
2768 _table_insert (frameTableRight, CoolTip.Indexes, subMenuContainerTexts)
|
|
Tercio@11
|
2769 --frameTableRight [CoolTip.Indexes] = subMenuContainerTexts
|
|
Tercio@11
|
2770 end
|
|
Tercio@11
|
2771
|
|
Tercio@11
|
2772 if (CoolTip.isSpecial) then
|
|
Tercio@11
|
2773 lineTable_right = {}
|
|
Tercio@11
|
2774 _table_insert (subMenuContainerTexts, CoolTip.SubIndexes, lineTable_right)
|
|
Tercio@11
|
2775 else
|
|
Tercio@11
|
2776 lineTable_right = subMenuContainerTexts [CoolTip.SubIndexes]
|
|
Tercio@11
|
2777 if (not lineTable_right) then
|
|
Tercio@11
|
2778 lineTable_right = {}
|
|
Tercio@11
|
2779 _table_insert (subMenuContainerTexts, CoolTip.SubIndexes, lineTable_right)
|
|
Tercio@11
|
2780 --subMenuContainerTexts [CoolTip.SubIndexes] = lineTable_right
|
|
Tercio@11
|
2781 end
|
|
Tercio@11
|
2782 end
|
|
Tercio@11
|
2783 else
|
|
Tercio@11
|
2784 return --> error
|
|
Tercio@11
|
2785 end
|
|
Tercio@11
|
2786
|
|
Tercio@11
|
2787 lineTable_left [1] = leftText --> line text
|
|
Tercio@11
|
2788 lineTable_left [2] = ColorR1
|
|
Tercio@11
|
2789 lineTable_left [3] = ColorG1
|
|
Tercio@11
|
2790 lineTable_left [4] = ColorB1
|
|
Tercio@11
|
2791 lineTable_left [5] = ColorA1
|
|
Tercio@11
|
2792 lineTable_left [6] = fontSize
|
|
Tercio@11
|
2793 lineTable_left [7] = fontFace
|
|
Tercio@11
|
2794 lineTable_left [8] = fontFlag
|
|
Tercio@11
|
2795
|
|
Tercio@11
|
2796 lineTable_right [1] = rightText --> line text
|
|
Tercio@11
|
2797 lineTable_right [2] = ColorR2
|
|
Tercio@11
|
2798 lineTable_right [3] = ColorG2
|
|
Tercio@11
|
2799 lineTable_right [4] = ColorB2
|
|
Tercio@11
|
2800 lineTable_right [5] = ColorA2
|
|
Tercio@11
|
2801 lineTable_right [6] = fontSize
|
|
Tercio@11
|
2802 lineTable_right [7] = fontFace
|
|
Tercio@11
|
2803 lineTable_right [8] = fontFlag
|
|
Tercio@11
|
2804 end
|
|
Tercio@11
|
2805
|
|
Tercio@11
|
2806 function CoolTip:AddSpecial (widgetType, index, subIndex, ...)
|
|
Tercio@11
|
2807
|
|
Tercio@11
|
2808 local currentIndex = CoolTip.Indexes
|
|
Tercio@11
|
2809 local currentSubIndex = CoolTip.SubIndexes
|
|
Tercio@11
|
2810 CoolTip.isSpecial = true
|
|
Tercio@11
|
2811
|
|
Tercio@11
|
2812 widgetType = string.lower (widgetType)
|
|
Tercio@11
|
2813
|
|
Tercio@11
|
2814 if (widgetType == "line") then
|
|
Tercio@11
|
2815
|
|
Tercio@11
|
2816 if (subIndex) then
|
|
Tercio@11
|
2817 CoolTip.Indexes = index
|
|
Tercio@11
|
2818 CoolTip.SubIndexes = subIndex-1
|
|
Tercio@11
|
2819 else
|
|
Tercio@11
|
2820 CoolTip.Indexes = index-1
|
|
Tercio@11
|
2821 end
|
|
Tercio@11
|
2822
|
|
Tercio@11
|
2823 CoolTip:AddLine (...)
|
|
Tercio@11
|
2824
|
|
Tercio@11
|
2825 if (subIndex) then
|
|
Tercio@11
|
2826 CoolTip.Indexes = currentIndex
|
|
Tercio@11
|
2827 CoolTip.SubIndexes = currentSubIndex+1
|
|
Tercio@11
|
2828 else
|
|
Tercio@11
|
2829 CoolTip.Indexes = currentIndex+1
|
|
Tercio@11
|
2830 end
|
|
Tercio@11
|
2831
|
|
Tercio@11
|
2832 elseif (widgetType == "icon") then
|
|
Tercio@11
|
2833
|
|
Tercio@11
|
2834 CoolTip.Indexes = index
|
|
Tercio@11
|
2835 if (subIndex) then
|
|
Tercio@11
|
2836 CoolTip.SubIndexes = subIndex
|
|
Tercio@11
|
2837 end
|
|
Tercio@11
|
2838
|
|
Tercio@11
|
2839 CoolTip:AddIcon (...)
|
|
Tercio@11
|
2840
|
|
Tercio@11
|
2841 CoolTip.Indexes = currentIndex
|
|
Tercio@11
|
2842 if (subIndex) then
|
|
Tercio@11
|
2843 CoolTip.SubIndexes = currentSubIndex
|
|
Tercio@11
|
2844 end
|
|
Tercio@11
|
2845
|
|
Tercio@11
|
2846 elseif (widgetType == "statusbar") then
|
|
Tercio@11
|
2847
|
|
Tercio@11
|
2848 CoolTip.Indexes = index
|
|
Tercio@11
|
2849 if (subIndex) then
|
|
Tercio@11
|
2850 CoolTip.SubIndexes = subIndex
|
|
Tercio@11
|
2851 end
|
|
Tercio@11
|
2852
|
|
Tercio@11
|
2853 CoolTip:AddStatusBar (...)
|
|
Tercio@11
|
2854
|
|
Tercio@11
|
2855 CoolTip.Indexes = currentIndex
|
|
Tercio@11
|
2856 if (subIndex) then
|
|
Tercio@11
|
2857 CoolTip.SubIndexes = currentSubIndex
|
|
Tercio@11
|
2858 end
|
|
Tercio@11
|
2859
|
|
Tercio@11
|
2860 elseif (widgetType == "menu") then
|
|
Tercio@11
|
2861
|
|
Tercio@11
|
2862 CoolTip.Indexes = index
|
|
Tercio@11
|
2863 if (subIndex) then
|
|
Tercio@11
|
2864 CoolTip.SubIndexes = subIndex
|
|
Tercio@11
|
2865 end
|
|
Tercio@11
|
2866
|
|
Tercio@11
|
2867 CoolTip:AddMenu (...)
|
|
Tercio@11
|
2868
|
|
Tercio@11
|
2869 CoolTip.Indexes = currentIndex
|
|
Tercio@11
|
2870 if (subIndex) then
|
|
Tercio@11
|
2871 CoolTip.SubIndexes = currentSubIndex
|
|
Tercio@11
|
2872 end
|
|
Tercio@11
|
2873
|
|
Tercio@11
|
2874 end
|
|
Tercio@11
|
2875
|
|
Tercio@11
|
2876 CoolTip.isSpecial = false
|
|
Tercio@11
|
2877
|
|
Tercio@11
|
2878 end
|
|
Tercio@11
|
2879
|
|
Tercio@11
|
2880 --> search key: ~fromline
|
|
Tercio@11
|
2881 function CoolTip:AddFromTable (_table)
|
|
Tercio@11
|
2882 for index, menu in _ipairs (_table) do
|
|
Tercio@11
|
2883 if (menu.func) then
|
|
Tercio@11
|
2884 CoolTip:AddMenu (menu.type or 1, menu.func, menu.param1, menu.param2, menu.param3, nil, menu.icon)
|
|
Tercio@11
|
2885 elseif (menu.statusbar) then
|
|
Tercio@11
|
2886 CoolTip:AddStatusBar (menu.value, menu.type or 1, menu.color, true)
|
|
Tercio@11
|
2887 elseif (menu.icon) then
|
|
Tercio@11
|
2888 CoolTip:AddIcon (menu.icon, menu.type or 1, menu.side or 1, menu.width, menu.height, menu.l, menu.r, menu.t, menu.b, menu.color)
|
|
Tercio@11
|
2889 elseif (menu.textleft or menu.textright or menu.text) then
|
|
Tercio@11
|
2890 CoolTip:AddLine (menu.text, "", menu.type, menu.color, menu.color)
|
|
Tercio@11
|
2891 end
|
|
Tercio@11
|
2892 end
|
|
Tercio@11
|
2893 end
|
|
Tercio@11
|
2894
|
|
Tercio@11
|
2895 ----------------------------------------------------------------------
|
|
Tercio@11
|
2896 --> show cooltip
|
|
Tercio@11
|
2897
|
|
Tercio@11
|
2898 --> serach key: ~start
|
|
Tercio@11
|
2899 function CoolTip:Show (frame, menuType, color)
|
|
Tercio@20
|
2900 CoolTip.had_interaction = false
|
|
Tercio@11
|
2901 return CoolTip:ShowCooltip (frame, menuType, color)
|
|
Tercio@11
|
2902 end
|
|
Tercio@11
|
2903
|
|
Tercio@11
|
2904 function CoolTip:ShowCooltip (frame, menuType, color)
|
|
Tercio@11
|
2905
|
|
Tercio@40
|
2906 frame1:SetFrameStrata ("TOOLTIP")
|
|
Tercio@40
|
2907 frame2:SetFrameStrata ("TOOLTIP")
|
|
Tercio@40
|
2908 frame1:SetParent (UIParent)
|
|
Tercio@40
|
2909 frame2:SetParent (UIParent)
|
|
Tercio@40
|
2910
|
|
Tercio@20
|
2911 CoolTip.had_interaction = false
|
|
Tercio@20
|
2912
|
|
Tercio@11
|
2913 if (frame) then
|
|
Tercio@11
|
2914 --> details framework
|
|
Tercio@11
|
2915 if (frame.dframework) then
|
|
Tercio@11
|
2916 frame = frame.widget
|
|
Tercio@11
|
2917 end
|
|
Tercio@11
|
2918 CoolTip:SetHost (frame)
|
|
Tercio@11
|
2919 end
|
|
Tercio@11
|
2920 if (menuType) then
|
|
Tercio@11
|
2921 CoolTip:SetType (menuType)
|
|
Tercio@11
|
2922 end
|
|
Tercio@11
|
2923 if (color) then
|
|
Tercio@11
|
2924 CoolTip:SetColor (1, color)
|
|
Tercio@11
|
2925 CoolTip:SetColor (2, color)
|
|
Tercio@11
|
2926 end
|
|
Tercio@11
|
2927
|
|
Tercio@11
|
2928 if (CoolTip.Type == 1 or CoolTip.Type == 2) then
|
|
Tercio@11
|
2929 return CoolTip:monta_tooltip()
|
|
Tercio@11
|
2930
|
|
Tercio@11
|
2931 elseif (CoolTip.Type == 3) then
|
|
Tercio@11
|
2932 return CoolTip:monta_cooltip()
|
|
Tercio@11
|
2933
|
|
Tercio@11
|
2934 end
|
|
Tercio@11
|
2935 end
|
|
Tercio@11
|
2936
|
|
Tercio@11
|
2937 local emptyOptions = {}
|
|
Tercio@11
|
2938
|
|
Tercio@11
|
2939 function CoolTip:Hide()
|
|
Tercio@11
|
2940 return CoolTip:Close()
|
|
Tercio@11
|
2941 end
|
|
Tercio@11
|
2942
|
|
Tercio@11
|
2943 function CoolTip:Close()
|
|
Tercio@11
|
2944 CoolTip.active = false
|
|
Tercio@11
|
2945 CoolTip.Host = nil
|
|
Tercio@26
|
2946 DF:FadeFrame (frame1, 1)
|
|
Tercio@26
|
2947 DF:FadeFrame (frame2, 1)
|
|
Tercio@11
|
2948 end
|
|
Tercio@11
|
2949
|
|
Tercio@53
|
2950
|
|
Tercio@53
|
2951
|
|
Tercio@11
|
2952 --> old function call
|
|
Tercio@11
|
2953 function CoolTip:ShowMe (host, arg2)
|
|
Tercio@11
|
2954 --> ignore if mouse is up me
|
|
Tercio@11
|
2955 if (CoolTip.mouseOver) then
|
|
Tercio@11
|
2956 return
|
|
Tercio@11
|
2957 end
|
|
Tercio@11
|
2958
|
|
Tercio@11
|
2959 if (not host or not arg2) then --> hideme
|
|
Tercio@11
|
2960 CoolTip:Close()
|
|
Tercio@11
|
2961 end
|
|
Tercio@11
|
2962 end
|
|
Tercio@11
|
2963
|
|
Tercio@11
|
2964 --> search key: ~inject
|
|
Tercio@11
|
2965 function CoolTip:ExecFunc (host, fromClick)
|
|
Tercio@11
|
2966
|
|
Tercio@11
|
2967 if (host.dframework) then
|
|
Tercio@11
|
2968 if (not host.widget.CoolTip) then
|
|
Tercio@11
|
2969 host.widget.CoolTip = host.CoolTip
|
|
Tercio@11
|
2970 end
|
|
Tercio@11
|
2971 host = host.widget
|
|
Tercio@11
|
2972 end
|
|
Tercio@11
|
2973
|
|
Tercio@11
|
2974 CoolTip:Reset()
|
|
Tercio@11
|
2975 CoolTip:SetType (host.CoolTip.Type)
|
|
Tercio@11
|
2976 CoolTip:SetFixedParameter (host.CoolTip.FixedValue)
|
|
Tercio@11
|
2977 CoolTip:SetColor ("main", host.CoolTip.MainColor or "transparent")
|
|
Tercio@11
|
2978 CoolTip:SetColor ("sec", host.CoolTip.SubColor or "transparent")
|
|
Tercio@11
|
2979
|
|
Tercio@56
|
2980 local okay, errortext = pcall (host.CoolTip.BuildFunc, host, host.CoolTip and host.CoolTip.FixedValue) --resetting anchors
|
|
Tercio@56
|
2981 if (not okay) then
|
|
Tercio@56
|
2982 print ("Cooltip Injected Fucntion Error:", errortext)
|
|
Tercio@56
|
2983 end
|
|
Tercio@56
|
2984
|
|
Tercio@11
|
2985 CoolTip:SetOwner (host, host.CoolTip.MyAnchor, host.CoolTip.HisAnchor, host.CoolTip.X, host.CoolTip.Y)
|
|
Tercio@11
|
2986
|
|
Tercio@11
|
2987 local options = host.CoolTip.Options
|
|
Tercio@11
|
2988 if (type (options) == "function") then
|
|
Tercio@11
|
2989 options = options()
|
|
Tercio@11
|
2990 end
|
|
Tercio@11
|
2991 if (options) then
|
|
Tercio@11
|
2992 for optionName, optionValue in pairs (options) do
|
|
Tercio@11
|
2993 CoolTip:SetOption (optionName, optionValue)
|
|
Tercio@11
|
2994 end
|
|
Tercio@11
|
2995 end
|
|
Tercio@11
|
2996
|
|
Tercio@11
|
2997 if (CoolTip.Indexes == 0) then
|
|
Tercio@11
|
2998 if (host.CoolTip.Default) then
|
|
Tercio@11
|
2999 CoolTip:SetType ("tooltip")
|
|
Tercio@11
|
3000 CoolTip:AddLine (host.CoolTip.Default, nil, 1, "white")
|
|
Tercio@11
|
3001 end
|
|
Tercio@11
|
3002 end
|
|
Tercio@56
|
3003
|
|
Tercio@11
|
3004 CoolTip:ShowCooltip()
|
|
Tercio@11
|
3005
|
|
Tercio@11
|
3006 if (fromClick) then
|
|
Tercio@11
|
3007 --UIFrameFlash (frame1, )
|
|
Tercio@11
|
3008 frame1:Flash (0.05, 0.05, 0.2, true, 0, 0)
|
|
Tercio@11
|
3009 end
|
|
Tercio@11
|
3010 end
|
|
Tercio@11
|
3011
|
|
Tercio@11
|
3012 local wait = 0.2
|
|
Tercio@11
|
3013
|
|
Tercio@11
|
3014 local InjectOnUpdateEnter = function (self, elapsed)
|
|
Tercio@11
|
3015 elapsedTime = elapsedTime+elapsed
|
|
Tercio@11
|
3016 if (elapsedTime > wait) then
|
|
Tercio@11
|
3017 self:SetScript ("OnUpdate", nil)
|
|
Tercio@11
|
3018 CoolTip:ExecFunc (self)
|
|
Tercio@11
|
3019 end
|
|
Tercio@11
|
3020 end
|
|
Tercio@11
|
3021
|
|
Tercio@11
|
3022 local InjectOnUpdateLeave = function (self, elapsed)
|
|
Tercio@11
|
3023 elapsedTime = elapsedTime+elapsed
|
|
Tercio@11
|
3024 if (elapsedTime > 0.2) then
|
|
Tercio@11
|
3025 if (not CoolTip.mouseOver and not CoolTip.buttonOver and self == CoolTip.Host) then
|
|
Tercio@11
|
3026 CoolTip:ShowMe (false)
|
|
Tercio@11
|
3027 end
|
|
Tercio@11
|
3028 self:SetScript ("OnUpdate", nil)
|
|
Tercio@11
|
3029 end
|
|
Tercio@11
|
3030 end
|
|
Tercio@11
|
3031
|
|
Tercio@11
|
3032 local InjectOnLeave = function (self)
|
|
Tercio@11
|
3033 CoolTip.buttonOver = false
|
|
Tercio@11
|
3034
|
|
Tercio@11
|
3035 if (CoolTip.active) then
|
|
Tercio@11
|
3036 elapsedTime = 0
|
|
Tercio@11
|
3037 self:SetScript ("OnUpdate", InjectOnUpdateLeave)
|
|
Tercio@11
|
3038 else
|
|
Tercio@11
|
3039 self:SetScript ("OnUpdate", nil)
|
|
Tercio@11
|
3040 end
|
|
Tercio@11
|
3041
|
|
Tercio@11
|
3042 if (self.CoolTip.OnLeaveFunc) then
|
|
Tercio@11
|
3043 self.CoolTip.OnLeaveFunc (self)
|
|
Tercio@11
|
3044 end
|
|
Tercio@11
|
3045
|
|
Tercio@11
|
3046 if (self.OldOnLeaveScript) then
|
|
Tercio@11
|
3047 self:OldOnLeaveScript()
|
|
Tercio@11
|
3048 end
|
|
Tercio@11
|
3049 end
|
|
Tercio@11
|
3050
|
|
Tercio@11
|
3051 local InjectOnEnter = function (self)
|
|
Tercio@11
|
3052 CoolTip.buttonOver = true
|
|
Tercio@11
|
3053 if (CoolTip.active) then
|
|
Tercio@11
|
3054 CoolTip:ExecFunc (self)
|
|
Tercio@11
|
3055 else
|
|
Tercio@11
|
3056 elapsedTime = 0
|
|
Tercio@11
|
3057 wait = self.CoolTip.ShowSpeed or 0.2
|
|
Tercio@11
|
3058 self:SetScript ("OnUpdate", InjectOnUpdateEnter)
|
|
Tercio@11
|
3059 end
|
|
Tercio@11
|
3060
|
|
Tercio@11
|
3061 if (self.CoolTip.OnEnterFunc) then
|
|
Tercio@11
|
3062 self.CoolTip.OnEnterFunc (self)
|
|
Tercio@11
|
3063 end
|
|
Tercio@11
|
3064
|
|
Tercio@11
|
3065 if (self.OldOnEnterScript) then
|
|
Tercio@11
|
3066 self:OldOnEnterScript()
|
|
Tercio@11
|
3067 end
|
|
Tercio@11
|
3068 end
|
|
Tercio@11
|
3069
|
|
Tercio@11
|
3070 function CoolTip:CoolTipInject (host, openOnClick)
|
|
Tercio@11
|
3071 if (host.dframework) then
|
|
Tercio@11
|
3072 if (not host.widget.CoolTip) then
|
|
Tercio@11
|
3073 host.widget.CoolTip = host.CoolTip
|
|
Tercio@11
|
3074 end
|
|
Tercio@11
|
3075 host = host.widget
|
|
Tercio@11
|
3076 end
|
|
Tercio@11
|
3077
|
|
Tercio@11
|
3078 local coolTable = host.CoolTip
|
|
Tercio@11
|
3079 if (not coolTable) then
|
|
Tercio@11
|
3080 print ("Host nao tem uma CoolTable.")
|
|
Tercio@11
|
3081 return false
|
|
Tercio@11
|
3082 end
|
|
Tercio@11
|
3083
|
|
Tercio@11
|
3084 host.OldOnEnterScript = host:GetScript ("OnEnter")
|
|
Tercio@11
|
3085 host.OldOnLeaveScript = host:GetScript ("OnLeave")
|
|
Tercio@11
|
3086
|
|
Tercio@11
|
3087 host:SetScript ("OnEnter", InjectOnEnter)
|
|
Tercio@11
|
3088 host:SetScript ("OnLeave", InjectOnLeave)
|
|
Tercio@11
|
3089
|
|
Tercio@11
|
3090 if (openOnClick) then
|
|
Tercio@11
|
3091 if (host:GetObjectType() == "Button") then
|
|
Tercio@11
|
3092 host:SetScript ("OnClick", function() CoolTip:ExecFunc (host, true) end)
|
|
Tercio@11
|
3093 end
|
|
Tercio@11
|
3094 end
|
|
Tercio@11
|
3095
|
|
Tercio@11
|
3096 return ture
|
|
Tercio@11
|
3097 end
|
|
Tercio@11
|
3098
|
|
Tercio@11
|
3099 --> all done
|
|
Tercio@11
|
3100 CoolTip:ClearAllOptions()
|
|
Tercio@11
|
3101
|
|
Tercio@39
|
3102 -- local preset2_backdrop = {bgFile = [[Interface\DialogFrame\UI-DialogBox-Background-Dark]], edgeFile = DF.folder .. "border_3", tile=true,
|
|
Tercio@39
|
3103 -- edgeSize = 16, tileSize = 64, insets = {left = 3, right = 3, top = 4, bottom = 4}}
|
|
Tercio@11
|
3104
|
|
Tercio@39
|
3105 local preset2_backdrop = {bgFile = DF.folder .. "background", edgeFile = [[Interface\Buttons\WHITE8X8]], tile = true,
|
|
Tercio@39
|
3106 edgeSize = 1, tileSize = 16, insets = {left = 0, right = 0, top = 0, bottom = 0}}
|
|
Tercio@39
|
3107 local default_backdrop_color = {0.09019, 0.09019, 0.18823, 0.8}
|
|
Tercio@39
|
3108 local default_backdropborder_color = {1, 1, 1, 1}
|
|
Tercio@39
|
3109
|
|
Tercio@39
|
3110 local gray_table = {0.37, 0.37, 0.37, 0.95}
|
|
Tercio@11
|
3111 local white_table = {1, 1, 1, 1}
|
|
Tercio@39
|
3112 local black_table = {0.2, 0.2, 0.2, 1}
|
|
Tercio@11
|
3113
|
|
Tercio@11
|
3114 function CoolTip:Preset (number)
|
|
Tercio@11
|
3115 self:Reset()
|
|
Tercio@11
|
3116
|
|
Tercio@11
|
3117 if (number == 1) then
|
|
Tercio@11
|
3118 self:SetOption ("TextFont", "Friz Quadrata TT")
|
|
Tercio@11
|
3119 self:SetOption ("TextColor", "orange")
|
|
Tercio@11
|
3120 self:SetOption ("TextSize", 12)
|
|
Tercio@11
|
3121 self:SetOption ("ButtonsYMod", -4)
|
|
Tercio@11
|
3122 self:SetOption ("YSpacingMod", -4)
|
|
Tercio@11
|
3123 self:SetOption ("IgnoreButtonAutoHeight", true)
|
|
Tercio@11
|
3124 self:SetColor (1, 0.5, 0.5, 0.5, 0.5)
|
|
Tercio@11
|
3125
|
|
Tercio@11
|
3126 elseif (number == 2) then
|
|
Tercio@11
|
3127 self:SetOption ("TextFont", "Friz Quadrata TT")
|
|
Tercio@11
|
3128 self:SetOption ("TextColor", "orange")
|
|
Tercio@11
|
3129 self:SetOption ("TextSize", 12)
|
|
Tercio@11
|
3130 self:SetOption ("FixedWidth", 220)
|
|
Tercio@11
|
3131 self:SetOption ("ButtonsYMod", -4)
|
|
Tercio@11
|
3132 self:SetOption ("YSpacingMod", -4)
|
|
Tercio@11
|
3133 self:SetOption ("IgnoreButtonAutoHeight", true)
|
|
Tercio@11
|
3134
|
|
Tercio@39
|
3135 self:SetColor (1, 0.5, 0.5, 0.5, 0)
|
|
Tercio@39
|
3136
|
|
Tercio@39
|
3137 self:SetBackdrop (1, preset2_backdrop, gray_table, black_table)
|
|
Tercio@40
|
3138 self:SetBackdrop (2, preset2_backdrop, gray_table, black_table)
|
|
Tercio@11
|
3139 end
|
|
Tercio@11
|
3140 end
|
|
Tercio@11
|
3141
|
|
Tercio@11
|
3142 return CoolTip
|
|
Tercio@11
|
3143
|
|
Tercio@11
|
3144 end
|
|
Tercio@11
|
3145
|
|
Tercio@58
|
3146 DF:CreateCoolTip()
|