From def153b6e047541b613d799ee015404e2891cb7a Mon Sep 17 00:00:00 2001 From: Petr Grabovoy Date: Thu, 26 May 2016 22:04:13 +0300 Subject: [PATCH] working HybridScrollFrame same functionality as before --- VarrenDevTool.lua | 28 +++++++++++++++++++--------- VarrenDevTool.xml | 24 ++++++++++++------------ 2 files changed, 31 insertions(+), 21 deletions(-) diff --git a/VarrenDevTool.lua b/VarrenDevTool.lua index 2a99b91..2523550 100644 --- a/VarrenDevTool.lua +++ b/VarrenDevTool.lua @@ -8,22 +8,24 @@ local _G = _G local MyMod_MEATATABLE_KEY = "$mt " -function MyMod_OnLoad() +function MyMod_OnLoad(self) print("load") MyMod_LoadData(_G) local prevButton; - + self.scrollFrame.update = MyModScrollBar_Update; + --[[ for i = 1, (700 / 16) do - local frame = CreateFrame("FRAME", "MyModEntry" .. i, MyMod, "MyModEntryTemplate"); + local frame = CreateFrame("FRAME", "MyModEntry" .. i, self, "MyModEntryTemplate"); if i == 1 then frame:SetPoint("TOPLEFT", MyModScrollBar, "TOPLEFT", 8, 0) else frame:SetPoint("TOPLEFT", MyModChildFrames[i - 1], "BOTTOMLEFT") end - MyModChildFrames[i] = frame - end + --MyModChildFrames[i] = frame + end--]] + HybridScrollFrame_CreateButtons(self.scrollFrame, "MyModEntryTemplate", 0, -2); MyModScrollBar:Show() end @@ -79,12 +81,16 @@ function MyMod_Table_Length(T) end function MyModScrollBar_Update() + print("ok: " ) + local lineplusoffset ; -- an index into our data calculated from the scroll offset + + local scrollFrame = MyModScrollBar + local buttons = scrollFrame.buttons; + local offset = HybridScrollFrame_GetOffset(scrollFrame) - local lineplusoffset; -- an index into our data calculated from the scroll offset - FauxScrollFrame_Update(MyModScrollBar, MyModData.count, 5, 16); - for k, v in pairs(MyModChildFrames) do + for k, v in pairs(buttons) do - lineplusoffset = k + FauxScrollFrame_GetOffset(MyModScrollBar); + lineplusoffset = k + offset; if lineplusoffset <= MyModData.count then MyMod_UpdateListItem(v, MyModData[lineplusoffset]) @@ -93,6 +99,10 @@ function MyModScrollBar_Update() v:Hide(); end end + + HybridScrollFrame_Update(scrollFrame, MyModData.count * 16, 700); + + print("UPDATED") end function MyMod_Back_Button_Click() diff --git a/VarrenDevTool.xml b/VarrenDevTool.xml index 5f6b6c2..c559848 100644 --- a/VarrenDevTool.xml +++ b/VarrenDevTool.xml @@ -27,9 +27,8 @@ - - MyMod_OnLoad() - + + @@ -44,7 +43,7 @@ -