diff modules/State.lua @ 239:2669f737d9d7

Fold Action page state options into state.lua
author Flick
date Fri, 25 Mar 2011 16:28:25 -0700
parents b4c100011c75
children
line wrap: on
line diff
--- a/modules/State.lua	Thu Mar 24 14:27:56 2011 -0700
+++ b/modules/State.lua	Fri Mar 25 16:28:25 2011 -0700
@@ -238,6 +238,17 @@
           order = 1,
           type = "description"
         },
+        page = {
+          name     = L["Show Page #"],
+          order    = 11,
+          type     = "select",
+          width    = "half",
+          disabled = "IsPageDisabled",
+          hidden   = "IsPageHidden",
+          values   = "GetPageValues",
+          set      = "SetProp",
+          get      = "GetPage",
+        },
         hide = {
           name = L["Hide Bar"],
           order = 90,
@@ -649,6 +660,35 @@
     return not GetProperty(self.bar, self:GetName(), "anchorEnable")
   end
 
+  function StateHandler:IsPageDisabled()
+    local n = self.bar:GetConfig().nPages or 1
+    return not (n > 1)
+  end
+
+  function StateHandler:IsPageHidden()
+    return not self.bar:GetConfig().nPages
+  end
+
+  function StateHandler:GetPageValues()
+    if not self._pagevalues then
+      self._pagevalues = { }
+    end
+    local n = self.bar:GetConfig().nPages
+      -- cache the results
+    if self._npages ~= n then
+      self._npages = n
+      wipe(self._pagevalues)
+      for i = 1, n do
+        self._pagevalues["page"..i] = i
+      end
+    end
+    return self._pagevalues
+  end
+
+  function StateHandler:GetPage(info)
+    return self:GetProp(info) or 1
+  end
+
   function StateHandler:GetAnchorFrames(info)
     self._anchorframes = self._anchorframes or { }
     table.wipe(self._anchorframes)