# HG changeset patch
# User Tercio
# Date 1472684114 10800
# Node ID a960d5372b0cbcae5f856a10ae4fdad8fc14f569
# Parent 7944c081e5b4c37f9c09874eae73365a9aee017a
- framework update from v22 to v44.
diff -r 7944c081e5b4 -r a960d5372b0c Libs/DF/colors.lua
--- a/Libs/DF/colors.lua Tue Jul 19 13:23:40 2016 -0300
+++ b/Libs/DF/colors.lua Wed Aug 31 19:55:14 2016 -0300
@@ -18,7 +18,8 @@
["WARRIOR"] = {0.78, 0.61, 0.43},
["DEATHKNIGHT"] = {0.77, 0.12, 0.23},
["MONK"] = {0.0, 1.00, 0.59},
-
+ ["DEMONHUNTER"] = {0.64, 0.19, 0.79},
+
["aliceblue"] = {0.941176, 0.972549, 1, 1},
["antiquewhite"] = {0.980392, 0.921569, 0.843137, 1},
["aqua"] = {0, 1, 1, 1},
diff -r 7944c081e5b4 -r a960d5372b0c Libs/DF/cooltip.lua
--- a/Libs/DF/cooltip.lua Tue Jul 19 13:23:40 2016 -0300
+++ b/Libs/DF/cooltip.lua Wed Aug 31 19:55:14 2016 -0300
@@ -156,6 +156,10 @@
frame1 = CreateFrame ("Frame", "GameCooltipFrame1", UIParent, "DFCooltipMainFrameTemplate")
tinsert (UISpecialFrames, "GameCooltipFrame1")
DF:CreateFlashAnimation (frame1)
+
+ if (DF.CreateBorder) then
+ DF:CreateBorder (frame1, .3, .1, .03)
+ end
else
frame1 = GameCooltipFrame1
end
@@ -174,11 +178,15 @@
tinsert (UISpecialFrames, "GameCooltipFrame2")
DF:CreateFlashAnimation (frame2)
frame2:SetClampedToScreen (true)
+
+ if (DF.CreateBorder) then
+ DF:CreateBorder (frame2, .3, .1, .03)
+ end
else
frame2 = GameCooltipFrame2
end
- frame2:SetPoint ("bottomleft", frame1, "bottomright")
+ frame2:SetPoint ("bottomleft", frame1, "bottomright", 4, 0)
GameCooltipFrame2_FrameBackgroundCenter:SetTexture (DF.folder .. "cooltip_background")
GameCooltipFrame2_FrameBackgroundCenter:SetTexCoord (0.10546875, 0.89453125, 0, 1)
@@ -593,16 +601,16 @@
frame.selectedTop:ClearAllPoints()
frame.selectedBottom:ClearAllPoints()
- frame.selectedTop:SetPoint ("topleft", button, "topleft", left, top) --
- frame.selectedTop:SetPoint ("topright", button, "topright", right, top) --
+ frame.selectedTop:SetPoint ("topleft", button, "topleft", left+1, top) --
+ frame.selectedTop:SetPoint ("topright", button, "topright", right-1, top) --
- frame.selectedBottom:SetPoint ("bottomleft", button, "bottomleft", left, bottom) --
- frame.selectedBottom:SetPoint ("bottomright", button, "bottomright", right, bottom) --
+ frame.selectedBottom:SetPoint ("bottomleft", button, "bottomleft", left+1, bottom) --
+ frame.selectedBottom:SetPoint ("bottomright", button, "bottomright", right-1, bottom) --
CoolTip:ShowSelectedTexture (frame)
end
- local OnClickFunctionButtonPrincipal = function (self)
+ local OnClickFunctionButtonPrincipal = function (self, button)
if (CoolTip.IndexesSub [self.index] and CoolTip.IndexesSub [self.index] > 0) then
CoolTip:ShowSub (self.index)
CoolTip.last_button = self.index
@@ -619,18 +627,18 @@
if (CoolTip.FunctionsTableMain [self.index]) then
local parameterTable = CoolTip.ParametersTableMain [self.index]
- CoolTip.FunctionsTableMain [self.index] (_, CoolTip.FixedValue, parameterTable [1], parameterTable [2], parameterTable [3])
+ CoolTip.FunctionsTableMain [self.index] (_, CoolTip.FixedValue, parameterTable [1], parameterTable [2], parameterTable [3], button)
end
end
- local OnClickFunctionButtonSecundario = function (self)
+ local OnClickFunctionButtonSecundario = function (self, button)
CoolTip.buttonClicked = true
CoolTip:SetSelectedAnchor (frame2, self)
if (CoolTip.FunctionsTableSub [self.mainIndex] and CoolTip.FunctionsTableSub [self.mainIndex] [self.index]) then
local parameterTable = CoolTip.ParametersTableSub [self.mainIndex] [self.index]
- CoolTip.FunctionsTableSub [self.mainIndex] [self.index] (_, CoolTip.FixedValue, parameterTable [1], parameterTable [2], parameterTable [3])
+ CoolTip.FunctionsTableSub [self.mainIndex] [self.index] (_, CoolTip.FixedValue, parameterTable [1], parameterTable [2], parameterTable [3], button)
end
local botao_p = frame1.Lines [self.mainIndex]
@@ -757,12 +765,6 @@
menuButton.rightText:SetWidth (0)
end
- if (CoolTip.OptionsTable.RightTextHeight) then
- menuButton.rightText:SetHeight (CoolTip.OptionsTable.RightTextHeight)
- else
- menuButton.rightText:SetHeight (0)
- end
-
if (CoolTip.OptionsTable.TextFont and not rightTextTable [7]) then
if (_G [CoolTip.OptionsTable.TextFont]) then
menuButton.rightText:SetFontObject (CoolTip.OptionsTable.TextFont)
@@ -852,9 +854,18 @@
menuButton.rightIcon:SetHeight (CoolTip.OptionsTable.IconSize)
end
+ menuButton.leftText:SetHeight (0)
+ menuButton.rightText:SetHeight (0)
+
if (CoolTip.Type == 2) then
CoolTip:LeftTextSpace (menuButton)
end
+ if (CoolTip.OptionsTable.LeftTextHeight) then
+ menuButton.leftText:SetHeight (CoolTip.OptionsTable.LeftTextHeight)
+ end
+ if (CoolTip.OptionsTable.RightTextHeight) then
+ menuButton.rightText:SetHeight (CoolTip.OptionsTable.RightTextHeight)
+ end
--> string length
if (not isSub) then --> main frame
@@ -866,7 +877,7 @@
end
end
else
- menuButton.leftText:SetWidth (CoolTip.OptionsTable.FixedWidth - menuButton.leftIcon:GetWidth() - menuButton.rightText:GetStringWidth() - menuButton.rightIcon:GetWidth() - 30)
+ menuButton.leftText:SetWidth (CoolTip.OptionsTable.FixedWidth - menuButton.leftIcon:GetWidth() - menuButton.rightText:GetStringWidth() - menuButton.rightIcon:GetWidth() - 22)
end
else
if (not CoolTip.OptionsTable.FixedWidthSub) then
@@ -877,7 +888,7 @@
end
end
else
- menuButton.leftText:SetWidth (CoolTip.OptionsTable.FixedWidthSub - menuButton.leftIcon:GetWidth() - 20)
+ menuButton.leftText:SetWidth (CoolTip.OptionsTable.FixedWidthSub - menuButton.leftIcon:GetWidth() - 12)
end
end
@@ -1011,15 +1022,14 @@
--> setup statusbar
CoolTip:StatusBar (menuButton, CoolTip.StatusBarTableSub [mainMenuIndex] and CoolTip.StatusBarTableSub [mainMenuIndex] [index])
-
--> click
menuButton:RegisterForClicks ("LeftButtonDown")
menuButton:ClearAllPoints()
menuButton:SetPoint ("center", frame2, "center")
menuButton:SetPoint ("top", frame2, "top", 0, (((index-1)*20)*-1)-3)
- menuButton:SetPoint ("left", frame2, "left")
- menuButton:SetPoint ("right", frame2, "right")
+ menuButton:SetPoint ("left", frame2, "left", -4, 0)
+ menuButton:SetPoint ("right", frame2, "right", 4, 0)
DF:FadeFrame (menuButton, 0)
@@ -1160,8 +1170,8 @@
menuButton:ClearAllPoints()
menuButton:SetPoint ("center", frame2, "center")
- menuButton:SetPoint ("left", frame2, "left")
- menuButton:SetPoint ("right", frame2, "right")
+ menuButton:SetPoint ("left", frame2, "left", -4, 0)
+ menuButton:SetPoint ("right", frame2, "right", 4, 0)
menuButton.rightText:SetText ("")
@@ -1204,8 +1214,8 @@
if (CoolTip.OptionsTable.YSpacingModSub) then
spacing = spacing + CoolTip.OptionsTable.YSpacingModSub
end
- menuButton:SetPoint ("left", frame2, "left")
- menuButton:SetPoint ("right", frame2, "right")
+ menuButton:SetPoint ("left", frame2, "left", -4, 0)
+ menuButton:SetPoint ("right", frame2, "right", 4, 0)
if (menuButton.divbar) then
menuButton.divbar:Hide()
@@ -1248,21 +1258,21 @@
local button = frame1.Lines [index]
frame2:ClearAllPoints()
- frame2:SetPoint ("left", button, "right")
+ frame2:SetPoint ("left", button, "right", 4, 0)
elseif (CoolTip.OptionsTable.SubFollowButton and CoolTip.frame2_leftside) then
local button = frame1.Lines [index]
frame2:ClearAllPoints()
- frame2:SetPoint ("right", button, "left")
+ frame2:SetPoint ("right", button, "left", -4, 0)
elseif (CoolTip.frame2_leftside) then
frame2:ClearAllPoints()
- frame2:SetPoint ("bottomright", frame1, "bottomleft")
+ frame2:SetPoint ("bottomright", frame1, "bottomleft", -4, 0)
else
frame2:ClearAllPoints()
- frame2:SetPoint ("bottomleft", frame1, "bottomright")
+ frame2:SetPoint ("bottomleft", frame1, "bottomright", 4, 0)
end
end
@@ -1339,8 +1349,8 @@
menuButton:ClearAllPoints()
menuButton:SetPoint ("center", frame1, "center")
- menuButton:SetPoint ("left", frame1, "left")
- menuButton:SetPoint ("right", frame1, "right")
+ menuButton:SetPoint ("left", frame1, "left", -4, 0)
+ menuButton:SetPoint ("right", frame1, "right", 4, 0)
--> height
if (CoolTip.OptionsTable.AlignAsBlizzTooltip) then
@@ -1531,8 +1541,8 @@
menuButton:SetHeight (4)
--> points
menuButton:ClearAllPoints()
- menuButton:SetPoint ("left", frame1, "left")
- menuButton:SetPoint ("right", frame1, "right")
+ menuButton:SetPoint ("left", frame1, "left", -4, 0)
+ menuButton:SetPoint ("right", frame1, "right", 4, 0)
menuButton:SetPoint ("center", frame1, "center")
local div_size_up = tonumber (CoolTip.LeftTextTable [i] [2])
@@ -1574,8 +1584,8 @@
if (CoolTip.OptionsTable.YSpacingMod) then
spacing = spacing + CoolTip.OptionsTable.YSpacingMod
end
- menuButton:SetPoint ("left", frame1, "left")
- menuButton:SetPoint ("right", frame1, "right")
+ menuButton:SetPoint ("left", frame1, "left", -4, 0)
+ menuButton:SetPoint ("right", frame1, "right", 4, 0)
if (menuButton.divbar) then
menuButton.divbar:Hide()
@@ -1711,7 +1721,7 @@
CoolTip.overlap_checked = true
frame2:ClearAllPoints()
- frame2:SetPoint ("bottomright", frame1, "bottomleft")
+ frame2:SetPoint ("bottomright", frame1, "bottomleft", 4, 0)
CoolTip.frame2_leftside = true
--> diff
return CoolTip:SetMyPoint (host, CoolTip.internal_x_mod , CoolTip.internal_y_mod)
@@ -1743,7 +1753,7 @@
local diff = f2_start_point - f1_end_point
frame2:ClearAllPoints()
- frame2:SetPoint ("bottomright", frame1, "bottomleft")
+ frame2:SetPoint ("bottomright", frame1, "bottomleft", 4, 0)
CoolTip.frame2_leftside = true
end
@@ -1971,8 +1981,13 @@
function CoolTip:Reset()
frame2:ClearAllPoints()
- frame2:SetPoint ("bottomleft", frame1, "bottomright")
-
+ frame2:SetPoint ("bottomleft", frame1, "bottomright", 4, 0)
+
+ frame1:SetParent (UIParent)
+ frame2:SetParent (UIParent)
+ frame1:SetFrameStrata ("TOOLTIP")
+ frame2:SetFrameStrata ("TOOLTIP")
+
CoolTip:HideSelectedTexture (frame1)
CoolTip:HideSelectedTexture (frame2)
@@ -2846,6 +2861,11 @@
function CoolTip:ShowCooltip (frame, menuType, color)
+ frame1:SetFrameStrata ("TOOLTIP")
+ frame2:SetFrameStrata ("TOOLTIP")
+ frame1:SetParent (UIParent)
+ frame2:SetParent (UIParent)
+
CoolTip.had_interaction = false
if (frame) then
@@ -3066,10 +3086,10 @@
self:SetOption ("YSpacingMod", -4)
self:SetOption ("IgnoreButtonAutoHeight", true)
- --self:SetColor (1, 0.5, 0.5, 0.5, 0.5)
self:SetColor (1, 0.5, 0.5, 0.5, 0)
self:SetBackdrop (1, preset2_backdrop, gray_table, black_table)
+ self:SetBackdrop (2, preset2_backdrop, gray_table, black_table)
end
end
diff -r 7944c081e5b4 -r a960d5372b0c Libs/DF/cooltip.xml
--- a/Libs/DF/cooltip.xml Tue Jul 19 13:23:40 2016 -0300
+++ b/Libs/DF/cooltip.xml Wed Aug 31 19:55:14 2016 -0300
@@ -69,8 +69,8 @@
-
-
+
+
diff -r 7944c081e5b4 -r a960d5372b0c Libs/DF/dropdown.lua
--- a/Libs/DF/dropdown.lua Tue Jul 19 13:23:40 2016 -0300
+++ b/Libs/DF/dropdown.lua Wed Aug 31 19:55:14 2016 -0300
@@ -592,7 +592,8 @@
local name = button:GetName() .. "Row" .. i
local parent = scrollChild
- _this_row = CreateFrame ("Button", name, parent, "DetailsFrameworkDropDownOptionTemplate")
+ --_this_row = CreateFrame ("Button", name, parent, "DetailsFrameworkDropDownOptionTemplate")
+ _this_row = DF:CreateDropdownButton (parent, name)
local anchor_i = i-1
_this_row:SetPoint ("topleft", parent, "topleft", 5, (-anchor_i*20)-5)
_this_row:SetPoint ("topright", parent, "topright", -5, (-anchor_i*20)-5)
@@ -600,6 +601,9 @@
object.menus [i] = _this_row
end
+ _this_row:SetFrameStrata (_this_row:GetParent():GetFrameStrata())
+ _this_row:SetFrameLevel (_this_row:GetParent():GetFrameLevel()+10)
+
_this_row.icon:SetTexture (_table.icon)
if (_table.icon) then
@@ -697,8 +701,8 @@
scrollFrame:SetWidth (frame_witdh+20)
scrollChild:SetWidth (frame_witdh+20)
--height
- scrollBorder:SetHeight (size+20)
- scrollFrame:SetHeight (size)
+ scrollBorder:SetHeight (size+2)
+ scrollFrame:SetHeight (size+2)
scrollChild:SetHeight ((showing*20)+20)
--mouse over texture
mouseOverTexture:SetWidth (frame_witdh-7)
@@ -718,8 +722,8 @@
scrollFrame:SetWidth (frame_witdh)
scrollChild:SetWidth (frame_witdh)
--height
- scrollBorder:SetHeight ((showing*20) + 25)
- scrollFrame:SetHeight ((showing*20) + 25)
+ scrollBorder:SetHeight ((showing*20) + 10)
+ scrollFrame:SetHeight ((showing*20) + 10)
--mouse over texture
mouseOverTexture:SetWidth (frame_witdh-10)
--selected
@@ -933,7 +937,9 @@
--> misc
DropDownObject.container = container
- DropDownObject.dropdown = CreateFrame ("Button", name, parent, "DetailsFrameworkDropDownTemplate")
+ --DropDownObject.dropdown = CreateFrame ("Button", name, parent, "DetailsFrameworkDropDownTemplate")
+ DropDownObject.dropdown = DF:CreateNewDropdownFrame (parent, name)
+
DropDownObject.widget = DropDownObject.dropdown
DropDownObject.__it = {nil, nil}
@@ -1022,4 +1028,135 @@
return DropDownObject
-end
\ No newline at end of file
+end
+
+local default_backdrop = {bgFile = [[Interface\DialogFrame\UI-DialogBox-Background]], edgeFile = [[Interface\DialogFrame\UI-DialogBox-Border]],
+edgeSize = 1, tile = true, tileSize = 16, insets = {left = 1, right = 1, top = 0, bottom = 1}}
+local border_backdrop = {edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, insets = {left = 0, right = 0, top = 0, bottom = 0}}
+local child_backdrop = {bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 256, insets = {left = 0, right = 0, top = 0, bottom = 0}}
+
+function DF:CreateNewDropdownFrame (parent, name)
+ local f = CreateFrame ("button", name, parent)
+ f:SetBackdrop (default_backdrop)
+ f:SetSize (150, 20)
+
+ local statusbar = f:CreateTexture ("$parent_StatusBarTexture", "BACKGROUND")
+ statusbar:SetPoint ("topleft", f, "topleft", 3, -3)
+ statusbar:SetPoint ("bottomright", f, "bottomright", -3, 3)
+ f.statusbar = statusbar
+
+ local icon = f:CreateTexture ("$parent_IconTexture", "ARTWORK")
+ icon:SetPoint ("left", f, "left", 2, 0)
+ icon:SetSize (20, 20)
+ icon:SetTexture ([[Interface\COMMON\UI-ModelControlPanel]])
+ icon:SetTexCoord (0.625, 0.78125, 0.328125, 0.390625)
+ icon:SetVertexColor (1, 1, 1, 0.4)
+ f.icon = icon
+
+ local text = f:CreateFontString ("$parent_Text", "ARTWORK", "GameFontHighlightSmall")
+ text:SetPoint ("left", icon, "right", 5, 0)
+ text:SetJustifyH ("left")
+ text:SetText ("no option selected")
+ text:SetTextColor (1, 1, 1, 0.4)
+ DF:SetFontSize (text, 10)
+ f.text = text
+
+ local arrow = f:CreateTexture ("$parent_ArrowTexture2", "OVERLAY")
+ arrow:SetPoint ("right", f, "right", 5, -1)
+ arrow:SetBlendMode ("ADD")
+ arrow:SetTexture ([[Interface\Buttons\UI-ScrollBar-ScrollDownButton-Highlight]])
+ arrow:Hide()
+ arrow:SetSize (32, 28)
+ f.arrowTexture2 = arrow
+
+ local buttonTexture = f:CreateTexture ("$parent_ArrowTexture", "OVERLAY")
+ buttonTexture:SetPoint ("right", f, "right", 5, -1)
+ buttonTexture:SetTexture ([[Interface\Buttons\UI-ScrollBar-ScrollDownButton-Up]])
+ buttonTexture:SetSize (32, 28)
+ f.arrowTexture = buttonTexture
+
+ --scripts
+ f:SetScript ("OnSizeChanged", DetailsFrameworkDropDownOnSizeChanged)
+ f:SetScript ("OnMouseDown", DetailsFrameworkDropDownOnMouseDown)
+
+ --on load
+ f:SetBackdropColor (1, 1, 1, .5)
+ f.arrowTexture:SetDrawLayer ("OVERLAY", 1)
+ f.arrowTexture2:SetDrawLayer ("OVERLAY", 2)
+
+ --dropdown
+ local border = CreateFrame ("frame", "$Parent_Border", f)
+ border:Hide()
+ border:SetFrameStrata ("FULLSCREEN")
+ border:SetSize (150, 150)
+ border:SetPoint ("topleft", f, "bottomleft")
+ border:SetBackdrop (border_backdrop)
+ border:SetScript ("OnHide", DetailsFrameworkDropDownOptionsFrameOnHide)
+ border:SetBackdropColor (0, 0, 0, 0.92)
+ border:SetBackdropBorderColor (0, 0, 0, 1)
+ f.dropdownborder = border
+
+ local scroll = CreateFrame ("ScrollFrame", "$Parent_ScrollFrame", f)
+ scroll:Hide()
+ scroll:SetFrameStrata ("FULLSCREEN")
+ scroll:SetSize (150, 150)
+ scroll:SetPoint ("topleft", f, "bottomleft", 0, 0)
+ f.dropdownframe = scroll
+
+ local child = CreateFrame ("frame", "$Parent_ScrollChild", scroll)
+ child:SetSize (150, 150)
+ child:SetPoint ("topleft", scroll, "topleft", 0, 0)
+ child:SetBackdrop (child_backdrop)
+ child:SetBackdropColor (0, 0, 0, 1)
+
+ local selected = child:CreateTexture ("$parent_SelectedTexture", "BACKGROUND")
+ selected:SetSize (150, 16)
+ selected:Hide()
+ selected:SetPoint ("left", child, "left", 2, 0)
+ selected:SetTexture ([[Interface\RAIDFRAME\Raid-Bar-Hp-Fill]])
+ child.selected = selected
+
+ local mouseover = child:CreateTexture ("$parent_MouseOverTexture", "ARTWORK")
+ mouseover:SetBlendMode ("ADD")
+ mouseover:Hide()
+ mouseover:SetTexture ([[Interface\Buttons\UI-Listbox-Highlight]])
+ mouseover:SetSize (150, 15)
+ mouseover:SetPoint ("left", child, "left", 2, 0)
+ child.mouseover = mouseover
+
+ scroll:SetScrollChild (child)
+ tinsert (UISpecialFrames, f.dropdownborder:GetName())
+ tinsert (UISpecialFrames, f.dropdownframe:GetName())
+
+ return f
+end
+
+function DF:CreateDropdownButton (parent, name)
+
+ local f = CreateFrame ("button", name, parent)
+ f:SetSize (150, 20)
+
+ local statusbar = f:CreateTexture ("$parent_StatusBarTexture", "ARTWORK")
+ statusbar:SetPoint ("left", f, "left", 1, 0)
+ statusbar:SetPoint ("right", f, "right", -10, 0)
+ statusbar:SetSize (150, 20)
+ f.statusbar = statusbar
+
+ local icon = f:CreateTexture ("$parent_IconTexture", "OVERLAY")
+ icon:SetPoint ("left", f, "left", 2, 0)
+ icon:SetSize (20, 20)
+ icon:SetTexture ([[Interface\ICONS\Spell_ChargePositive]])
+ f.icon = icon
+
+ local text = f:CreateFontString ("$parent_Text", "OVERLAY", "GameFontHighlightSmall")
+ text:SetPoint ("left", icon, "right", 5, 0)
+ text:SetJustifyH ("left")
+ DF:SetFontSize (text, 10)
+ f.label = text
+
+ f:SetScript ("OnMouseDown", DetailsFrameworkDropDownOptionClick)
+ f:SetScript ("OnEnter", DetailsFrameworkDropDownOptionOnEnter)
+ f:SetScript ("OnLeave", DetailsFrameworkDropDownOptionOnLeave)
+
+ return f
+end
diff -r 7944c081e5b4 -r a960d5372b0c Libs/DF/dropdown.xml
--- a/Libs/DF/dropdown.xml Tue Jul 19 13:23:40 2016 -0300
+++ b/Libs/DF/dropdown.xml Wed Aug 31 19:55:14 2016 -0300
@@ -79,13 +79,10 @@
-
+
-
-
-
@@ -104,7 +101,7 @@
-
+
@@ -112,12 +109,21 @@
-
+
+
+
+
+
+
+
+
+
+
@@ -222,6 +228,10 @@
+
+ self:SetFrameStrata (self:GetParent():GetFrameStrata())
+ self:SetFrameLevel (self:GetParent():GetFrameLevel()+10)
+
DetailsFrameworkDropDownOptionClick (self);
diff -r 7944c081e5b4 -r a960d5372b0c Libs/DF/fw.lua
--- a/Libs/DF/fw.lua Tue Jul 19 13:23:40 2016 -0300
+++ b/Libs/DF/fw.lua Wed Aug 31 19:55:14 2016 -0300
@@ -1,5 +1,5 @@
-local dversion = 22
+local dversion = 44
local major, minor = "DetailsFramework-1.0", dversion
local DF, oldminor = LibStub:NewLibrary (major, minor)
@@ -110,6 +110,11 @@
"SetFrameworkDebugState",
"FindHighestParent",
"OpenInterfaceProfile",
+ "CreateInCombatTexture",
+ "CreateAnimationHub",
+ "CreateAnimation",
+ "CreateScrollBox",
+ "CreateBorder",
}
DF.table = {}
@@ -562,6 +567,10 @@
slider.widget_type = "range"
slider:SetHook ("OnValueChange", widget_table.set)
+ if (widget_table.thumbscale) then
+ slider:SetThumbSize (slider.thumb:GetWidth()*widget_table.thumbscale, nil)
+ end
+
local label = DF:NewLabel (parent, nil, "$parentLabel" .. index, nil, widget_table.name .. (use_two_points and ": " or ""), "GameFontNormal", widget_table.text_template or text_template or 12)
slider:SetPoint ("left", label, "right", 2)
label:SetPoint (cur_x, cur_y)
@@ -683,6 +692,34 @@
end
end)
+
+ function DF:CreateInCombatTexture (frame)
+ if (DF.debug and not frame) then
+ error ("Details! Framework: CreateInCombatTexture invalid frame on parameter 1.")
+ end
+
+ local in_combat_background = DF:CreateImage (frame)
+ in_combat_background:SetColorTexture (.6, 0, 0, .1)
+ in_combat_background:Hide()
+
+ local in_combat_label = Plater:CreateLabel (frame, "you are in combat", 24, "silver")
+ in_combat_label:SetPoint ("right", in_combat_background, "right", -10, 0)
+ in_combat_label:Hide()
+
+ frame:RegisterEvent ("PLAYER_REGEN_DISABLED")
+ frame:RegisterEvent ("PLAYER_REGEN_ENABLED")
+ frame:SetScript ("OnEvent", function (self, event)
+ if (event == "PLAYER_REGEN_DISABLED") then
+ in_combat_background:Show()
+ in_combat_label:Show()
+ elseif (event == "PLAYER_REGEN_ENABLED") then
+ in_combat_background:Hide()
+ in_combat_label:Hide()
+ end
+ end)
+
+ return in_combat_background
+ end
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--> tutorials
@@ -1051,6 +1088,7 @@
image = "DF_ImageMetaFunctions",
slider = "DF_SliderMetaFunctions",
split_bar = "DF_SplitBarMetaFunctions",
+ aura_tracker = "DF_AuraTracker",
}
function DF:AddMemberForWidget (widgetName, memberType, memberName, func)
@@ -1126,3 +1164,251 @@
return object;
end
+
+-----------------------------
+--> animations
+
+function DF:CreateAnimationHub (parent, onPlay, onFinished)
+ local newAnimation = parent:CreateAnimationGroup()
+ newAnimation:SetScript ("OnPlay", onPlay)
+ newAnimation:SetScript ("OnFinished", onFinished)
+ newAnimation.NextAnimation = 1
+ return newAnimation
+end
+
+function DF:CreateAnimation (animation, type, order, duration, arg1, arg2, arg3, arg4, arg5, arg6, arg7)
+ local anim = animation:CreateAnimation (type)
+
+ anim:SetOrder (order or animation.NextAnimation)
+ anim:SetDuration (duration)
+
+ type = string.upper (type)
+
+ if (type == "ALPHA") then
+ anim:SetFromAlpha (arg1)
+ anim:SetToAlpha (arg2)
+
+ elseif (type == "SCALE") then
+ anim:SetFromScale (arg1, arg2)
+ anim:SetToScale (arg3, arg4)
+ anim:SetOrigin (arg5 or "center", arg6 or 0, arg7 or 0) --point, x, y
+
+ elseif (type == "ROTATION") then
+ anim:SetDegrees (arg1) --degree
+ anim:SetOrigin (arg2 or "center", arg3 or 0, arg4 or 0) --point, x, y
+
+ elseif (type == "TRANSLATION") then
+ anim:SetOffset (arg1, arg2)
+
+ end
+
+ animation.NextAnimation = animation.NextAnimation + 1
+ return anim
+end
+
+
+-----------------------------
+--> borders
+
+local default_border_color1 = .5
+local default_border_color2 = .3
+local default_border_color3 = .1
+
+local SetBorderAlpha = function (self, alpha1, alpha2, alpha3)
+ self.Borders.Alpha1 = alpha1 or self.Borders.Alpha1
+ self.Borders.Alpha2 = alpha2 or self.Borders.Alpha2
+ self.Borders.Alpha3 = alpha3 or self.Borders.Alpha3
+
+ for _, texture in ipairs (self.Borders.Layer1) do
+ texture:SetAlpha (self.Borders.Alpha1)
+ end
+ for _, texture in ipairs (self.Borders.Layer2) do
+ texture:SetAlpha (self.Borders.Alpha2)
+ end
+ for _, texture in ipairs (self.Borders.Layer3) do
+ texture:SetAlpha (self.Borders.Alpha3)
+ end
+end
+
+function DF:CreateBorder (parent, alpha1, alpha2, alpha3)
+
+ parent.Borders = {
+ Layer1 = {},
+ Layer2 = {},
+ Layer3 = {},
+ Alpha1 = alpha1 or default_border_color1,
+ Alpha2 = alpha2 or default_border_color2,
+ Alpha3 = alpha3 or default_border_color3,
+ }
+
+ parent.SetBorderAlpha = SetBorderAlpha
+
+ local border1 = parent:CreateTexture (nil, "background")
+ border1:SetPoint ("topleft", parent, "topleft", -1, 1)
+ border1:SetPoint ("bottomleft", parent, "bottomleft", -1, -1)
+ border1:SetColorTexture (0, 0, 0, alpha1 or default_border_color1)
+ local border2 = parent:CreateTexture (nil, "background")
+ border2:SetPoint ("topleft", parent, "topleft", -2, 2)
+ border2:SetPoint ("bottomleft", parent, "bottomleft", -2, -2)
+ border2:SetColorTexture (0, 0, 0, alpha2 or default_border_color2)
+ local border3 = parent:CreateTexture (nil, "background")
+ border3:SetPoint ("topleft", parent, "topleft", -3, 3)
+ border3:SetPoint ("bottomleft", parent, "bottomleft", -3, -3)
+ border3:SetColorTexture (0, 0, 0, alpha3 or default_border_color3)
+
+ tinsert (parent.Borders.Layer1, border1)
+ tinsert (parent.Borders.Layer2, border2)
+ tinsert (parent.Borders.Layer3, border3)
+
+ local border1 = parent:CreateTexture (nil, "background")
+ border1:SetPoint ("topleft", parent, "topleft", 0, 1)
+ border1:SetPoint ("topright", parent, "topright", 1, 1)
+ border1:SetColorTexture (0, 0, 0, alpha1 or default_border_color1)
+ local border2 = parent:CreateTexture (nil, "background")
+ border2:SetPoint ("topleft", parent, "topleft", -1, 2)
+ border2:SetPoint ("topright", parent, "topright", 2, 2)
+ border2:SetColorTexture (0, 0, 0, alpha2 or default_border_color2)
+ local border3 = parent:CreateTexture (nil, "background")
+ border3:SetPoint ("topleft", parent, "topleft", -2, 3)
+ border3:SetPoint ("topright", parent, "topright", 3, 3)
+ border3:SetColorTexture (0, 0, 0, alpha3 or default_border_color3)
+
+ tinsert (parent.Borders.Layer1, border1)
+ tinsert (parent.Borders.Layer2, border2)
+ tinsert (parent.Borders.Layer3, border3)
+
+ local border1 = parent:CreateTexture (nil, "background")
+ border1:SetPoint ("topright", parent, "topright", 1, 0)
+ border1:SetPoint ("bottomright", parent, "bottomright", 1, -1)
+ border1:SetColorTexture (0, 0, 0, alpha1 or default_border_color1)
+ local border2 = parent:CreateTexture (nil, "background")
+ border2:SetPoint ("topright", parent, "topright", 2, 1)
+ border2:SetPoint ("bottomright", parent, "bottomright", 2, -2)
+ border2:SetColorTexture (0, 0, 0, alpha2 or default_border_color2)
+ local border3 = parent:CreateTexture (nil, "background")
+ border3:SetPoint ("topright", parent, "topright", 3, 2)
+ border3:SetPoint ("bottomright", parent, "bottomright", 3, -3)
+ border3:SetColorTexture (0, 0, 0, alpha3 or default_border_color3)
+
+ tinsert (parent.Borders.Layer1, border1)
+ tinsert (parent.Borders.Layer2, border2)
+ tinsert (parent.Borders.Layer3, border3)
+
+ local border1 = parent:CreateTexture (nil, "background")
+ border1:SetPoint ("bottomleft", parent, "bottomleft", 0, -1)
+ border1:SetPoint ("bottomright", parent, "bottomright", 0, -1)
+ border1:SetColorTexture (0, 0, 0, alpha1 or default_border_color1)
+ local border2 = parent:CreateTexture (nil, "background")
+ border2:SetPoint ("bottomleft", parent, "bottomleft", -1, -2)
+ border2:SetPoint ("bottomright", parent, "bottomright", 1, -2)
+ border2:SetColorTexture (0, 0, 0, alpha2 or default_border_color2)
+ local border3 = parent:CreateTexture (nil, "background")
+ border3:SetPoint ("bottomleft", parent, "bottomleft", -2, -3)
+ border3:SetPoint ("bottomright", parent, "bottomright", 2, -3)
+ border3:SetColorTexture (0, 0, 0, alpha3 or default_border_color3)
+
+ tinsert (parent.Borders.Layer1, border1)
+ tinsert (parent.Borders.Layer2, border2)
+ tinsert (parent.Borders.Layer3, border3)
+
+end
+
+function DF:ReskinSlider (slider, heightOffset)
+ if (slider.slider) then
+ slider.cima:SetNormalTexture ([[Interface\Buttons\Arrow-Up-Up]])
+ slider.cima:SetPushedTexture ([[Interface\Buttons\Arrow-Up-Down]])
+ slider.cima:SetDisabledTexture ([[Interface\Buttons\Arrow-Up-Disabled]])
+ slider.cima:GetNormalTexture():ClearAllPoints()
+ slider.cima:GetPushedTexture():ClearAllPoints()
+ slider.cima:GetDisabledTexture():ClearAllPoints()
+ slider.cima:GetNormalTexture():SetPoint ("center", slider.cima, "center", 1, 1)
+ slider.cima:GetPushedTexture():SetPoint ("center", slider.cima, "center", 1, 1)
+ slider.cima:GetDisabledTexture():SetPoint ("center", slider.cima, "center", 1, 1)
+ slider.cima:SetSize (16, 16)
+ slider.cima:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\AddOns\Details\images\background]]})
+ slider.cima:SetBackdropColor (0, 0, 0, 0.3)
+ slider.cima:SetBackdropBorderColor (0, 0, 0, 1)
+
+ slider.baixo:SetNormalTexture ([[Interface\Buttons\Arrow-Down-Up]])
+ slider.baixo:SetPushedTexture ([[Interface\Buttons\Arrow-Down-Down]])
+ slider.baixo:SetDisabledTexture ([[Interface\Buttons\Arrow-Down-Disabled]])
+ slider.baixo:GetNormalTexture():ClearAllPoints()
+ slider.baixo:GetPushedTexture():ClearAllPoints()
+ slider.baixo:GetDisabledTexture():ClearAllPoints()
+ slider.baixo:GetNormalTexture():SetPoint ("center", slider.baixo, "center", 1, -5)
+ slider.baixo:GetPushedTexture():SetPoint ("center", slider.baixo, "center", 1, -5)
+ slider.baixo:GetDisabledTexture():SetPoint ("center", slider.baixo, "center", 1, -5)
+ slider.baixo:SetSize (16, 16)
+ slider.baixo:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\AddOns\Details\images\background]]})
+ slider.baixo:SetBackdropColor (0, 0, 0, 0.35)
+ slider.baixo:SetBackdropBorderColor (0, 0, 0, 1)
+
+ slider.slider:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\AddOns\Details\images\background]]})
+ slider.slider:SetBackdropColor (0, 0, 0, 0.35)
+ slider.slider:SetBackdropBorderColor (0, 0, 0, 1)
+
+ --slider.slider:Altura (164)
+ slider.slider:cimaPoint (0, 13)
+ slider.slider:baixoPoint (0, -13)
+ slider.slider.thumb:SetTexture ([[Interface\AddOns\Details\images\icons2]])
+ slider.slider.thumb:SetTexCoord (482/512, 492/512, 104/512, 120/512)
+ slider.slider.thumb:SetSize (12, 12)
+ slider.slider.thumb:SetVertexColor (0.6, 0.6, 0.6, 0.95)
+ else
+
+ slider.ScrollBar.ScrollUpButton:SetNormalTexture ([[Interface\Buttons\Arrow-Up-Up]])
+ slider.ScrollBar.ScrollUpButton:GetNormalTexture():SetTexCoord (0, 1, 0, 1)
+ slider.ScrollBar.ScrollUpButton:SetPushedTexture ([[Interface\Buttons\Arrow-Up-Down]])
+ slider.ScrollBar.ScrollUpButton:GetPushedTexture():SetTexCoord (0, 1, 0, 1)
+ slider.ScrollBar.ScrollUpButton:SetDisabledTexture ([[Interface\Buttons\Arrow-Up-Disabled]])
+ slider.ScrollBar.ScrollUpButton:GetDisabledTexture():SetTexCoord (0, 1, 0, 1)
+
+ slider.ScrollBar.ScrollUpButton:SetSize (16, 16)
+ slider.ScrollBar.ScrollUpButton:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = "Interface\\Tooltips\\UI-Tooltip-Background"})
+ slider.ScrollBar.ScrollUpButton:SetBackdropColor (0, 0, 0, 0.3)
+ slider.ScrollBar.ScrollUpButton:SetBackdropBorderColor (0, 0, 0, 1)
+
+ slider.ScrollBar.ScrollUpButton:GetNormalTexture():ClearAllPoints()
+ slider.ScrollBar.ScrollUpButton:GetPushedTexture():ClearAllPoints()
+ slider.ScrollBar.ScrollUpButton:GetDisabledTexture():ClearAllPoints()
+ slider.ScrollBar.ScrollUpButton:GetNormalTexture():SetPoint ("center", slider.ScrollBar.ScrollUpButton, "center", 1, 1)
+ slider.ScrollBar.ScrollUpButton:GetPushedTexture():SetPoint ("center", slider.ScrollBar.ScrollUpButton, "center", 1, 1)
+ slider.ScrollBar.ScrollUpButton:GetDisabledTexture():SetPoint ("center", slider.ScrollBar.ScrollUpButton, "center", 1, 1)
+
+ --
+
+ slider.ScrollBar.ScrollDownButton:SetNormalTexture ([[Interface\Buttons\Arrow-Down-Up]])
+ slider.ScrollBar.ScrollDownButton:GetNormalTexture():SetTexCoord (0, 1, 0, 1)
+ slider.ScrollBar.ScrollDownButton:SetPushedTexture ([[Interface\Buttons\Arrow-Down-Down]])
+ slider.ScrollBar.ScrollDownButton:GetPushedTexture():SetTexCoord (0, 1, 0, 1)
+ slider.ScrollBar.ScrollDownButton:SetDisabledTexture ([[Interface\Buttons\Arrow-Down-Disabled]])
+ slider.ScrollBar.ScrollDownButton:GetDisabledTexture():SetTexCoord (0, 1, 0, 1)
+
+ slider.ScrollBar.ScrollDownButton:SetSize (16, 16)
+ slider.ScrollBar.ScrollDownButton:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = "Interface\\Tooltips\\UI-Tooltip-Background"})
+ slider.ScrollBar.ScrollDownButton:SetBackdropColor (0, 0, 0, 0.3)
+ slider.ScrollBar.ScrollDownButton:SetBackdropBorderColor (0, 0, 0, 1)
+
+ slider.ScrollBar.ScrollDownButton:GetNormalTexture():ClearAllPoints()
+ slider.ScrollBar.ScrollDownButton:GetPushedTexture():ClearAllPoints()
+ slider.ScrollBar.ScrollDownButton:GetDisabledTexture():ClearAllPoints()
+ slider.ScrollBar.ScrollDownButton:GetNormalTexture():SetPoint ("center", slider.ScrollBar.ScrollDownButton, "center", 1, -5)
+ slider.ScrollBar.ScrollDownButton:GetPushedTexture():SetPoint ("center", slider.ScrollBar.ScrollDownButton, "center", 1, -5)
+ slider.ScrollBar.ScrollDownButton:GetDisabledTexture():SetPoint ("center", slider.ScrollBar.ScrollDownButton, "center", 1, -5)
+
+ --
+ slider.ScrollBar:SetPoint ("TOPLEFT", slider, "TOPRIGHT", 6, -16)
+ slider.ScrollBar:SetPoint ("BOTTOMLEFT", slider, "BOTTOMRIGHT", 6, 16 + (heightOffset and heightOffset*-1 or 0))
+
+ slider.ScrollBar.ThumbTexture:SetColorTexture (.5, .5, .5, .3)
+ slider.ScrollBar.ThumbTexture:SetSize (12, 8)
+
+ --
+
+ slider.ScrollBar:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = "Interface\\Tooltips\\UI-Tooltip-Background"})
+ slider.ScrollBar:SetBackdropColor (0, 0, 0, 0.35)
+ slider.ScrollBar:SetBackdropBorderColor (0, 0, 0, 1)
+ end
+end
+
+--doo elsee
\ No newline at end of file
diff -r 7944c081e5b4 -r a960d5372b0c Libs/DF/load.xml
--- a/Libs/DF/load.xml Tue Jul 19 13:23:40 2016 -0300
+++ b/Libs/DF/load.xml Wed Aug 31 19:55:14 2016 -0300
@@ -20,4 +20,5 @@
+
\ No newline at end of file
diff -r 7944c081e5b4 -r a960d5372b0c Libs/DF/normal_bar.lua
--- a/Libs/DF/normal_bar.lua Tue Jul 19 13:23:40 2016 -0300
+++ b/Libs/DF/normal_bar.lua Wed Aug 31 19:55:14 2016 -0300
@@ -509,12 +509,12 @@
--> timer
function BarMetaFunctions:OnTimerEnd()
- if (self.OnTimerEndHook) then
- local interrupt = self.OnTimerEndHook (self)
- if (interrupt) then
- return
- end
+ local capsule = self
+ local kill = capsule:RunHooksForWidget ("OnTimerEnd", self.widget, capsule)
+ if (kill) then
+ return
end
+
self.timer_texture:Hide()
self.timer_textureR:Hide()
self.div_timer:Hide()
@@ -720,6 +720,7 @@
OnShow = {},
OnMouseDown = {},
OnMouseUp = {},
+ OnTimerEnd = {},
}
BarObject.statusbar:SetScript ("OnEnter", OnEnter)
diff -r 7944c081e5b4 -r a960d5372b0c Libs/DF/panel.lua
--- a/Libs/DF/panel.lua Tue Jul 19 13:23:40 2016 -0300
+++ b/Libs/DF/panel.lua Wed Aug 31 19:55:14 2016 -0300
@@ -1496,7 +1496,7 @@
function DF:CreateScaleBar (frame, config)
local scaleBar = DF:CreateSlider (frame, 120, 14, 0.6, 1.6, 0.1, config.scale, true, "ScaleBar", nil, "Scale:", DF:GetTemplate ("slider", "OPTIONS_SLIDER_TEMPLATE"), DF:GetTemplate ("font", "OPTIONS_FONT_TEMPLATE"))
- scaleBar:SetPoint ("right", frame.Close, "left", -2, 0)
+ scaleBar:SetPoint ("right", frame.Close, "left", -26, 0)
scaleBar:SetFrameLevel (DF.FRAMELEVEL_OVERLAY)
scaleBar.OnValueChanged = function (_, _, value)
config.scale = value
@@ -2523,7 +2523,7 @@
local pixel = self.Graphic:GetWidth() / self.TimeScale
local index = 1
- local r, g, b = unpack (color)
+ local r, g, b = unpack (color or line_default_color)
for i = 1, #overlayData, 2 do
local aura_start = overlayData [i]
@@ -3009,7 +3009,7 @@
local timeline = f:CreateFontString (nil, "overlay", "GameFontNormal")
timeline:SetPoint ("bottomright", f, "bottomright", -2, 0)
- _detalhes:SetFontSize (timeline, 8)
+ DF:SetFontSize (timeline, 8)
f.timeline = timeline
return f
@@ -3050,8 +3050,11 @@
end
end
+ self.MaxValue = max_value
+
local o = 1
local lastvalue = self:GetHeight()/2
+ max_value = math.max (max_value, 0.0000001)
for i = 1, min (amtlines, self._maxlines) do
@@ -3096,6 +3099,8 @@
f.Reset = gframe_reset
f.UpdateLines = gframe_update
+ f.MaxValue = 0
+
f._lines = {}
f._onenter_line = onenter
@@ -3330,10 +3335,263 @@
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- ~listbox
+local simple_list_box_ResetWidgets = function (self)
+ for _, widget in ipairs (self.widgets) do
+ widget:Hide()
+ end
+ self.nextWidget = 1
+end
+local simple_list_box_onenter = function (self, capsule)
+ self:GetParent().options.onenter (self, capsule, capsule.value)
+end
+local simple_list_box_onleave = function (self, capsule)
+ self:GetParent().options.onleave (self, capsule, capsule.value)
+ GameTooltip:Hide()
+end
+local simple_list_box_GetOrCreateWidget = function (self)
+ local index = self.nextWidget
+ local widget = self.widgets [index]
+ if (not widget) then
+ widget = DF:CreateButton (self, function()end, self.options.width, self.options.row_height, "", nil, nil, nil, nil, nil, nil, DF:GetTemplate ("button", "OPTIONS_BUTTON_TEMPLATE"))
+ widget:SetHook ("OnEnter", simple_list_box_onenter)
+ widget:SetHook ("OnLeave", simple_list_box_onleave)
+ widget.textcolor = self.options.textcolor
+ tinsert (self.widgets, widget)
+ end
+ self.nextWidget = self.nextWidget + 1
+ return widget
+end
+local simple_list_box_RefreshWidgets = function (self)
+ self:ResetWidgets()
+ local amt = 0
+ for value, _ in pairs (self.list_table) do
+ local widget = self:GetOrCreateWidget()
+ widget:SetPoint ("topleft", self, "topleft", 1, -self.options.row_height * (self.nextWidget-2) - 4)
+ widget:SetPoint ("topright", self, "topright", -1, -self.options.row_height * (self.nextWidget-2) - 4)
+ widget:SetClickFunction (self.func, value)
+ widget.value = value
+
+ if (self.options.icon) then
+ if (type (self.options.icon) == "string" or type (self.options.icon) == "number") then
+ widget:SetIcon (self.options.icon, self.options.row_height, self.options.row_height)
+ elseif (type (self.options.icon) == "function") then
+ local icon = self.options.icon (value)
+ if (icon) then
+ widget:SetIcon (icon, self.options.row_height, self.options.row_height)
+ end
+ end
+ else
+ widget:SetIcon ("", self.options.row_height, self.options.row_height)
+ end
+
+ if (self.options.text) then
+ if (type (self.options.text) == "function") then
+ local text = self.options.text (value)
+ if (text) then
+ widget:SetText (text)
+ else
+ widget:SetText ("")
+ end
+ else
+ widget:SetText (self.options.text or "")
+ end
+ else
+ widget:SetText ("")
+ end
+
+ widget.value = value
+ widget:Show()
+ amt = amt + 1
+ end
+ if (amt == 0) then
+ self.EmptyLabel:Show()
+ else
+ self.EmptyLabel:Hide()
+ end
+end
+local backdrop = {bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 16, edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1}
+local default_options = {
+ height = 400,
+ row_height = 16,
+ width = 230,
+ icon = false,
+ text = "",
+ textcolor = "wheat",
+ onenter = function (self, capsule)
+ if (capsule) then
+ capsule.textcolor = "white"
+ end
+ end,
+ onleave = function (self, capsule)
+ if (capsule) then
+ capsule.textcolor = self:GetParent().options.textcolor
+ end
+ GameTooltip:Hide()
+ end,
+}
+local simple_list_box_SetData = function (self, t)
+ self.list_table = t
+end
+
+function DF:CreateSimpleListBox (parent, name, title, empty_text, list_table, onclick, options)
+ local f = CreateFrame ("frame", name, parent)
+
+ f.ResetWidgets = simple_list_box_ResetWidgets
+ f.GetOrCreateWidget = simple_list_box_GetOrCreateWidget
+ f.Refresh = simple_list_box_RefreshWidgets
+ f.SetData = simple_list_box_SetData
+ f.nextWidget = 1
+ f.list_table = list_table
+ f.func = function (self, button, value)
+ onclick (value)
+ f:Refresh()
+ end
+ f.widgets = {}
+ f:SetBackdrop (backdrop)
+ f:SetBackdropColor (0, 0, 0, 0.3)
+ f:SetBackdropBorderColor (0, 0, 0, 0.5)
+ f.options = options or {}
+ self.table.deploy (f.options, default_options)
+
+ f:SetSize (f.options.width + 2, f.options.height)
+
+ local name = DF:CreateLabel (f, title, 12, "silver")
+ name:SetTemplate (DF:GetTemplate ("font", "OPTIONS_FONT_TEMPLATE"))
+ name:SetPoint ("bottomleft", f, "topleft", 0, 2)
+ f.Title = name
+
+ local emptyLabel = DF:CreateLabel (f, empty_text, 12, "gray")
+ emptyLabel:SetAlpha (.6)
+ emptyLabel:SetSize (f.options.width-10, f.options.height)
+ emptyLabel:SetPoint ("center", 0, 0)
+ emptyLabel:Hide()
+ emptyLabel.align = "center"
+ f.EmptyLabel = emptyLabel
+
+ return f
+end
+
+
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- ~scrollbox
+
+
+-- preciso de uma fauxscroll que seja facil de lidar
+-- ele cria scroll aqui, preciso falar a função que cria a linha e a função que atualiza
+-- precisa passsar o tamanho em height width quantas barras vai mostrar
+-- search box incluso opcionalmente
+
+
+DF.SortFunctions = {}
+
+local SortMember = ""
+local SortByMember = function (t1, t2)
+ return t1[SortMember] > t2[SortMember]
+end
+local SortByMemberReverse = function (t1, t2)
+ return t1[SortMember] < t2[SortMember]
+end
+
+DF.SortFunctions.Sort = function (self, t, by, is_reverse)
+ SortMember = by
+ if (not is_reverse) then
+ table.sort (t, SortByMember)
+ else
+ table.sort (t, SortByMemberReverse)
+ end
+end
+
+
+DF.ScrollBoxFunctions = {}
+
+DF.ScrollBoxFunctions.Refresh = function (self)
+ for _, frame in ipairs (self.Frames) do
+ frame:Hide()
+ frame._InUse = nil
+ end
+
+ local offset = 0
+ if (self.IsFauxScroll) then
+ FauxScrollFrame_Update (self, #self.data, self.LineAmount, self.LineHeight+1)
+ offset = FauxScrollFrame_GetOffset (self)
+ end
+
+ local okay, totalLines = pcall (self.refresh_func, self, self.data, offset, #self.Frames)
+ if (not okay) then
+ error ("Details! FrameWork: Refresh(): " .. totalLines)
+ end
+
+ for _, frame in ipairs (self.Frames) do
+ if (not frame._InUse) then
+ frame:Hide()
+ else
+ frame:Show()
+ end
+ end
+
+ self:Show()
+
+ return self.Frames
+end
+
+DF.ScrollBoxFunctions.OnVerticalScroll = function (self, offset)
+ FauxScrollFrame_OnVerticalScroll (self, offset, self.LineHeight, self.Refresh)
+ return true
+end
+
+DF.ScrollBoxFunctions.CreateLine = function (self, func)
+ local okay, newLine = pcall (func, self, #self.Frames+1)
+ if (okay) then
+ tinsert (self.Frames, newLine)
+ return newLine
+ else
+ error ("Details! FrameWork: CreateLine(): " .. newLine)
+ end
+end
+
+DF.ScrollBoxFunctions.GetLine = function (self, line_index)
+ local line = self.Frames [line_index]
+ if (line) then
+ line._InUse = true
+ end
+ return line
+end
+
+DF.ScrollBoxFunctions.SetData = function (self, data)
+ self.data = data
+end
+DF.ScrollBoxFunctions.GetData = function (self)
+ return self.data
+end
+
+function DF:CreateScrollBox (parent, name, refresh_func, data, width, height, line_amount, line_height)
+ local scroll = CreateFrame ("scrollframe", name, parent, "FauxScrollFrameTemplate")
+
+ scroll:SetSize (width, height)
+ scroll.LineAmount = line_amount
+ scroll.LineHeight = line_height
+ scroll.IsFauxScroll = true
+ scroll.Frames = {}
+
+ DF:Mixin (scroll, DF.SortFunctions)
+ DF:Mixin (scroll, DF.ScrollBoxFunctions)
+
+ scroll.refresh_func = refresh_func
+ scroll.data = data
+
+ scroll:SetScript ("OnVerticalScroll", scroll.OnVerticalScroll)
+
+ return scroll
+end
+
+
+
diff -r 7944c081e5b4 -r a960d5372b0c Libs/DF/textentry.lua
--- a/Libs/DF/textentry.lua Tue Jul 19 13:23:40 2016 -0300
+++ b/Libs/DF/textentry.lua Wed Aug 31 19:55:14 2016 -0300
@@ -655,7 +655,7 @@
OnTextChanged = {},
OnTabPressed = {},
}
-
+
TextEntryObject.editbox:SetScript ("OnEnter", OnEnter)
TextEntryObject.editbox:SetScript ("OnLeave", OnLeave)
TextEntryObject.editbox:SetScript ("OnHide", OnHide)