From 05cf2d1da89ac979c3d3ba0002dcc92c569d7e14 Mon Sep 17 00:00:00 2001 From: Kevin Lyles Date: Sun, 11 Oct 2009 04:24:16 -0500 Subject: [PATCH] Scrollable, collapsable, tiered list working for categories/stats in ww_editWeight --- WeightsWatcher.xml | 37 ++++++++++++++++++++++++------------- config.lua | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 13 deletions(-) diff --git a/WeightsWatcher.xml b/WeightsWatcher.xml index e0d8d34..8826f6a 100644 --- a/WeightsWatcher.xml +++ b/WeightsWatcher.xml @@ -23,19 +23,30 @@ - - - - - - - - - - - - - + + + diff --git a/config.lua b/config.lua index 6b3228d..5e13642 100644 --- a/config.lua +++ b/config.lua @@ -123,19 +123,57 @@ function createStatFontStrings() end table.insert(ww_categoryFrameTable, newCategoryFrame) table.insert(ww_statFrameTable, newCategoryFrame.text) + newCategoryFrame.position = #(ww_statFrameTable) for j, stat in ipairs(stats) do newElementFrame = CreateFrame("Frame", nil, ww_categoryFrameTable[i], "ww_elementFrame") newElementFrame.text:SetText(stat) + newElementFrame.name = stat newElementFrame:SetPoint("TOPLEFT", 0, -20 * j) table.insert(ww_statFrameTable, newElementFrame) newCategoryFrame.length = newCategoryFrame.length + 1 end newCategoryFrame:SetHeight(20 * newCategoryFrame.length) + newCategoryFrame.collapsed = false i = i + 1 end end +function toggleCollapse(categoryFrame) + if categoryFrame.length == 1 then + return + end + if categoryFrame.collapsed then + for i, stat in ipairs({categoryFrame:GetChildren()}) do + if stat.name then + table.insert(ww_statFrameTable, categoryFrame.position + i - 1, stat) + end + end + for _, category in ipairs(ww_categoryFrameTable) do + if category.position > categoryFrame.position then + category.position = category.position + categoryFrame.length - 1 + end + end + categoryFrame.collapsed = false + categoryFrame:SetHeight(20 * categoryFrame.length) + else + for _, stat in ipairs({categoryFrame:GetChildren()}) do + if stat.name then + stat:Hide() + table.remove(ww_statFrameTable, categoryFrame.position + 1) + end + end + for _, category in ipairs(ww_categoryFrameTable) do + if category.position > categoryFrame.position then + category.position = category.position - categoryFrame.length + 1 + end + end + categoryFrame.collapsed = true + categoryFrame:SetHeight(20) + end + scrollBarUpdate() +end + trackedStats = { ["General"] = { "Stamina", -- 1.7.9.5