From fd9bc12f901463e4c73354730f2c20255f879f60 Mon Sep 17 00:00:00 2001 From: Xruptor Date: Sun, 1 Aug 2010 10:46:01 -0400 Subject: [PATCH] -Updated LibXMenu-1.0 --- XanReputation.toc | 2 +- libs/LibXMenu-1.0.lua | 26 +++++++++++++++++++------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/XanReputation.toc b/XanReputation.toc index af78833..fd7296b 100644 --- a/XanReputation.toc +++ b/XanReputation.toc @@ -2,7 +2,7 @@ ## Title: XanReputation ## Notes: A small window display current reputation xp ## Author: Xruptor -## Version: 1.2 +## Version: 1.3 ## SavedVariablesPerCharacter: XanREP_DB libs\LibStub.lua diff --git a/libs/LibXMenu-1.0.lua b/libs/LibXMenu-1.0.lua index f3a5179..2a0b175 100644 --- a/libs/LibXMenu-1.0.lua +++ b/libs/LibXMenu-1.0.lua @@ -42,7 +42,7 @@ --]] -local MAJOR, MINOR = "LibXMenu-1.0", 2 +local MAJOR, MINOR = "LibXMenu-1.0", 4 local lib = LibStub:NewLibrary(MAJOR, MINOR) if not lib then return end @@ -81,7 +81,7 @@ end NOTE: Value of the database element must be a boolean value. TRUE/FALSE. Example: db[value] = true arg1 - custom database variable, if arg2 is nil then value is used as element. Example: arg1[value] arg2 - custom database element for arg1. Example: arg1[arg2] - func - define custom function for menu item + func - override with custom function bOpt - define an optional variable to be passed to doUpdate. Example: button name or button ID. --]] @@ -142,7 +142,7 @@ end arg1 - REQUIRED: database variable, if arg2 then acts as primary database. Example: arg1[arg2] if not arg2 then arg1 is used as an element of the database table. Example: db[arg1] arg2 - custom database variable, if arg1 then acts as an element in arg1 table. Example: arg1[arg2] - func - define custom function for menu item + func - override with custom function bOpt - define an optional variable to be passed to doUpdate. Example: button name or button ID. --]] @@ -205,15 +205,25 @@ end lvl - menu level 1,2,3 etc... text - name of the menu item value - database element value or name. Example: db[value] + arg1 - (optional) use a secondary database, value is used as key. Example: arg1[value] bOpt - define an optional variable to be passed to doUpdate. Example: button name or button ID. + func - override with custom function + swatchFunc - override with custom function + opacityFunc - override with custom function + cancelFunc - override with custom function --]] -local function AddColor(self, lvl, text, value, bOpt) +local function AddColor(self, lvl, text, value, arg1, bOpt, func, swatchFunc, opacityFunc, cancelFunc) if not lvl then return end if not text then return end if not value then return end - local db = self.db[value] + local db + if arg1 then + db = arg1[value] + else + db = self.db[value] + end if not db then return end local SetColor = function(item) local colDB = _G[self:GetName()].db[UIDROPDOWNMENU_MENU_VALUE] @@ -232,9 +242,11 @@ local function AddColor(self, lvl, text, value, bOpt) self.info.hasColorSwatch = true self.info.hasOpacity = 1 self.info.r, self.info.g, self.info.b, self.info.opacity = db.r, db.g, db.b, 1 - db.a - self.info.swatchFunc, self.info.opacityFunc, self.info.cancelFunc = SetColor, SetColor, SetColor + self.info.swatchFunc = swatchFunc or SetColor + self.info.opacityFunc = opacityFunc or SetColor + self.info.cancelFunc = cancelFunc or SetColor self.info.value = value - self.info.func = UIDropDownMenuButton_OpenColorPicker + self.info.func = func or UIDropDownMenuButton_OpenColorPicker AddButton(self, lvl, text, nil) end -- 1.7.9.5