Mercurial > wow > hansgar_and_franzok_assist
changeset 40:a960d5372b0c
- framework update from v22 to v44.
| author | Tercio |
|---|---|
| date | Wed, 31 Aug 2016 19:55:14 -0300 |
| parents | 7944c081e5b4 |
| children | b740f601e824 |
| files | Libs/DF/colors.lua Libs/DF/cooltip.lua Libs/DF/cooltip.xml Libs/DF/dropdown.lua Libs/DF/dropdown.xml Libs/DF/fw.lua Libs/DF/load.xml Libs/DF/normal_bar.lua Libs/DF/panel.lua Libs/DF/textentry.lua |
| diffstat | 10 files changed, 779 insertions(+), 65 deletions(-) [+] |
line wrap: on
line diff
--- 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},
--- 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
--- 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 @@ <Layer level="BACKGROUND" textureSubLevel="4"> <Texture name="$parent_FrameWallPaper" parentKey="frameWallpaper"> <Anchors> - <Anchor point="TOPLEFT" relativeTo="$parent" relativePoint="TOPLEFT" x="3" y="-3"/> - <Anchor point="BOTTOMRIGHT" relativeTo="$parent" relativePoint="BOTTOMRIGHT" x="-3" y="3"/> + <Anchor point="TOPLEFT" relativeTo="$parent" relativePoint="TOPLEFT" x="0" y="0"/> + <Anchor point="BOTTOMRIGHT" relativeTo="$parent" relativePoint="BOTTOMRIGHT" x="0" y="0"/> </Anchors> </Texture> </Layer>
--- 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
--- 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 @@ <Anchor point="TOPLEFT" relativeTo="$Parent" relativePoint="BOTTOMLEFT"/> </Anchors> - <Backdrop bgFile="Interface\FrameGeneral\UI-Background-Marble" edgeFile="Interface\Buttons\WHITE8X8" tile="true"> + <Backdrop edgeFile="Interface\Buttons\WHITE8X8"> <EdgeSize> <AbsValue val="1"/> </EdgeSize> - <TileSize> - <AbsValue val="256"/> - </TileSize> <BackgroundInsets> <AbsInset left="0" right="0" top="0" bottom="0"/> </BackgroundInsets> @@ -104,7 +101,7 @@ </Frame> <ScrollFrame name="$Parent_ScrollFrame" parentKey="dropdownframe" hidden="true" frameStrata="FULLSCREEN"> - <Size x="150" y="150"/> + <Size x="150" y="170"/> <Anchors> <Anchor point="TOPLEFT" relativeTo="$Parent" relativePoint="BOTTOMLEFT" x="0" y="-10" /> </Anchors> @@ -112,12 +109,21 @@ <ScrollChild> <Frame name="$Parent_ScrollChild" frameStrata="FULLSCREEN" parentKey="scrollchild"> - <Size x="150" y="150"/> + <Size x="150" y="170"/> <Anchors> <Anchor point="TOPLEFT" relativeTo="$Parent" relativePoint="TOPLEFT" x="0" y="0" /> </Anchors> + <Backdrop bgFile="Interface\FrameGeneral\UI-Background-Marble" tile="true"> + <TileSize> + <AbsValue val="256"/> + </TileSize> + <BackgroundInsets> + <AbsInset left="0" right="0" top="0" bottom="0"/> + </BackgroundInsets> + </Backdrop> + <Layers> <Layer level="BACKGROUND"> <!-- selected texture // we don't know where the file is it --> @@ -222,6 +228,10 @@ </Layers> <Scripts> + <OnLoad> + self:SetFrameStrata (self:GetParent():GetFrameStrata()) + self:SetFrameLevel (self:GetParent():GetFrameLevel()+10) + </OnLoad> <OnMouseDown> DetailsFrameworkDropDownOptionClick (self); </OnMouseDown>
--- 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
--- 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 @@ <Include file="panel.xml"/> <Script file="pictureedit.lua"/> + <Script file="auras.lua"/> </Ui> \ No newline at end of file
--- 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)
--- 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 + + +
--- 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)
