Mercurial > wow > ouroloot
changeset 115:289c7667adab
When fixing up missing item cache during load, make sure GUI displays from scratch. Put the bang back on UI tips checkbox (widget fixed). Revent r112, widgets both fixed now.
author | Farmbuyer of US-Kilrogg <farmbuyer@gmail.com> |
---|---|
date | Tue, 14 Aug 2012 20:37:12 -0400 |
parents | 67bf97136273 |
children | fc2ff128835a |
files | AceGUIWidget-CheckBox.lua AceGUIWidget-Keybinding.lua Ouro_Loot.toc core.lua options.lua |
diffstat | 5 files changed, 2 insertions(+), 528 deletions(-) [+] |
line wrap: on
line diff
--- a/AceGUIWidget-CheckBox.lua Mon Aug 13 21:49:08 2012 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,295 +0,0 @@ ---[[----------------------------------------------------------------------------- -Checkbox Widget --------------------------------------------------------------------------------]] -local Type, Version = "CheckBox", 22 -local AceGUI = LibStub and LibStub("AceGUI-3.0", true) -if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end - --- Lua APIs -local select, pairs = select, pairs - --- WoW APIs -local PlaySound = PlaySound -local CreateFrame, UIParent = CreateFrame, UIParent - --- Global vars/functions that we don't upvalue since they might get hooked, or upgraded --- List them here for Mikk's FindGlobals script --- GLOBALS: SetDesaturation, GameFontHighlight - ---[[----------------------------------------------------------------------------- -Support functions --------------------------------------------------------------------------------]] -local function AlignImage(self) - local img = self.image:GetTexture() - self.text:ClearAllPoints() - if not img then - self.text:SetPoint("LEFT", self.checkbg, "RIGHT") - self.text:SetPoint("RIGHT") - else - self.text:SetPoint("LEFT", self.image,"RIGHT", 1, 0) - self.text:SetPoint("RIGHT") - end -end - ---[[----------------------------------------------------------------------------- -Scripts --------------------------------------------------------------------------------]] -local function Control_OnEnter(frame) - frame.obj:Fire("OnEnter") -end - -local function Control_OnLeave(frame) - frame.obj:Fire("OnLeave") -end - -local function CheckBox_OnMouseDown(frame) - local self = frame.obj - if not self.disabled then - if self.image:GetTexture() then - self.text:SetPoint("LEFT", self.image,"RIGHT", 2, -1) - else - self.text:SetPoint("LEFT", self.checkbg, "RIGHT", 1, -1) - end - end - AceGUI:ClearFocus() -end - -local function CheckBox_OnMouseUp(frame) - local self = frame.obj - if not self.disabled then - self:ToggleChecked() - - if self.checked then - PlaySound("igMainMenuOptionCheckBoxOn") - else -- for both nil and false (tristate) - PlaySound("igMainMenuOptionCheckBoxOff") - end - - self:Fire("OnValueChanged", self.checked) - AlignImage(self) - end -end - ---[[----------------------------------------------------------------------------- -Methods --------------------------------------------------------------------------------]] -local methods = { - ["OnAcquire"] = function(self) - self:SetType() - self:SetValue(false) - self:SetTriState(nil) - -- height is calculated from the width and required space for the description - self:SetWidth(200) - self:SetImage() - self:SetDisabled(nil) - self:SetDescription(nil) - end, - - -- ["OnRelease"] = nil, - - ["OnWidthSet"] = function(self, width) - if self.desc then - self.desc:SetWidth(width - 30) - if self.desc:GetText() and self.desc:GetText() ~= "" then - self:SetHeight(28 + self.desc:GetHeight()) - end - end - end, - - ["SetDisabled"] = function(self, disabled) - self.disabled = disabled - if disabled then - self.frame:Disable() - self.text:SetTextColor(0.5, 0.5, 0.5) - SetDesaturation(self.check, true) - if self.desc then - self.desc:SetTextColor(0.5, 0.5, 0.5) - end - else - self.frame:Enable() - self.text:SetTextColor(1, 1, 1) - if self.tristate and self.checked == nil then - SetDesaturation(self.check, true) - else - SetDesaturation(self.check, false) - end - if self.desc then - self.desc:SetTextColor(1, 1, 1) - end - end - end, - - ["SetValue"] = function(self,value) - local check = self.check - self.checked = value - if value then - SetDesaturation(self.check, false) - self.check:Show() - else - --Nil is the unknown tristate value - if self.tristate and value == nil then - SetDesaturation(self.check, true) - self.check:Show() - else - SetDesaturation(self.check, false) - self.check:Hide() - end - end - self:SetDisabled(self.disabled) - end, - - ["GetValue"] = function(self) - return self.checked - end, - - ["SetTriState"] = function(self, enabled) - self.tristate = enabled - self:SetValue(self:GetValue()) - end, - - ["SetType"] = function(self, type) - local checkbg = self.checkbg - local check = self.check - local highlight = self.highlight - - local size - if type == "radio" then - size = 16 - checkbg:SetTexture("Interface\\Buttons\\UI-RadioButton") - checkbg:SetTexCoord(0, 0.25, 0, 1) - check:SetTexture("Interface\\Buttons\\UI-RadioButton") - check:SetTexCoord(0.25, 0.5, 0, 1) - check:SetBlendMode("ADD") - highlight:SetTexture("Interface\\Buttons\\UI-RadioButton") - highlight:SetTexCoord(0.5, 0.75, 0, 1) - else - size = 24 - checkbg:SetTexture("Interface\\Buttons\\UI-CheckBox-Up") - checkbg:SetTexCoord(0, 1, 0, 1) - check:SetTexture("Interface\\Buttons\\UI-CheckBox-Check") - check:SetTexCoord(0, 1, 0, 1) - check:SetBlendMode("BLEND") - highlight:SetTexture("Interface\\Buttons\\UI-CheckBox-Highlight") - highlight:SetTexCoord(0, 1, 0, 1) - end - checkbg:SetHeight(size) - checkbg:SetWidth(size) - end, - - ["ToggleChecked"] = function(self) - local value = self:GetValue() - if self.tristate then - --cycle in true, nil, false order - if value then - self:SetValue(nil) - elseif value == nil then - self:SetValue(false) - else - self:SetValue(true) - end - else - self:SetValue(not self:GetValue()) - end - end, - - ["SetLabel"] = function(self, label) - self.text:SetText(label) - end, - - ["SetDescription"] = function(self, desc) - if desc then - if not self.desc then - local desc = self.frame:CreateFontString(nil, "OVERLAY", "GameFontHighlightSmall") - desc:ClearAllPoints() - desc:SetPoint("TOPLEFT", self.checkbg, "TOPRIGHT", 5, -21) - desc:SetWidth(self.frame.width - 30) - desc:SetJustifyH("LEFT") - desc:SetJustifyV("TOP") - self.desc = desc - end - self.desc:Show() - --self.text:SetFontObject(GameFontNormal) - self.desc:SetText(desc) - self:SetHeight(28 + self.desc:GetHeight()) - else - if self.desc then - self.desc:SetText("") - self.desc:Hide() - end - --self.text:SetFontObject(GameFontHighlight) - self:SetHeight(24) - end - end, - - ["SetImage"] = function(self, path, ...) - local image = self.image - image:SetTexture(path) - - if image:GetTexture() then - local n = select("#", ...) - if n == 4 or n == 8 then - image:SetTexCoord(...) - else - image:SetTexCoord(0, 1, 0, 1) - end - end - AlignImage(self) - end -} - ---[[----------------------------------------------------------------------------- -Constructor --------------------------------------------------------------------------------]] -local function Constructor() - local frame = CreateFrame("Button", nil, UIParent) - frame:Hide() - - frame:EnableMouse(true) - frame:SetScript("OnEnter", Control_OnEnter) - frame:SetScript("OnLeave", Control_OnLeave) - frame:SetScript("OnMouseDown", CheckBox_OnMouseDown) - frame:SetScript("OnMouseUp", CheckBox_OnMouseUp) - - local checkbg = frame:CreateTexture(nil, "ARTWORK") - checkbg:SetWidth(24) - checkbg:SetHeight(24) - checkbg:SetPoint("TOPLEFT") - checkbg:SetTexture("Interface\\Buttons\\UI-CheckBox-Up") - - local check = frame:CreateTexture(nil, "OVERLAY") - check:SetAllPoints(checkbg) - check:SetTexture("Interface\\Buttons\\UI-CheckBox-Check") - - local text = frame:CreateFontString(nil, "OVERLAY", "GameFontHighlight") - text:SetJustifyH("LEFT") - text:SetHeight(18) - text:SetPoint("LEFT", checkbg, "RIGHT") - text:SetPoint("RIGHT") - - local highlight = frame:CreateTexture(nil, "HIGHLIGHT") - highlight:SetTexture("Interface\\Buttons\\UI-CheckBox-Highlight") - highlight:SetBlendMode("ADD") - highlight:SetAllPoints(checkbg) - - local image = frame:CreateTexture(nil, "OVERLAY") - image:SetHeight(16) - image:SetWidth(16) - image:SetPoint("LEFT", checkbg, "RIGHT", 1, 0) - - local widget = { - checkbg = checkbg, - check = check, - text = text, - highlight = highlight, - image = image, - frame = frame, - type = Type - } - for method, func in pairs(methods) do - widget[method] = func - end - - return AceGUI:RegisterAsWidget(widget) -end - -AceGUI:RegisterWidgetType(Type, Constructor, Version)
--- a/AceGUIWidget-Keybinding.lua Mon Aug 13 21:49:08 2012 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,239 +0,0 @@ ---[[----------------------------------------------------------------------------- -Keybinding Widget -Set Keybindings in the Config UI. --------------------------------------------------------------------------------]] -local Type, Version = "Keybinding", 24 -local AceGUI = LibStub and LibStub("AceGUI-3.0", true) -if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end - --- Lua APIs -local pairs = pairs - --- WoW APIs -local IsShiftKeyDown, IsControlKeyDown, IsAltKeyDown = IsShiftKeyDown, IsControlKeyDown, IsAltKeyDown -local CreateFrame, UIParent = CreateFrame, UIParent - --- Global vars/functions that we don't upvalue since they might get hooked, or upgraded --- List them here for Mikk's FindGlobals script --- GLOBALS: NOT_BOUND - -local wowMoP -do - local _, _, _, interface = GetBuildInfo() - wowMoP = (interface >= 50000) -end - ---[[----------------------------------------------------------------------------- -Scripts --------------------------------------------------------------------------------]] - -local function Control_OnEnter(frame) - frame.obj:Fire("OnEnter") -end - -local function Control_OnLeave(frame) - frame.obj:Fire("OnLeave") -end - -local function Keybinding_OnClick(frame, button) - if button == "LeftButton" or button == "RightButton" then - local self = frame.obj - if self.waitingForKey then - frame:EnableKeyboard(false) - self.msgframe:Hide() - frame:UnlockHighlight() - self.waitingForKey = nil - else - frame:EnableKeyboard(true) - self.msgframe:Show() - frame:LockHighlight() - self.waitingForKey = true - end - end - AceGUI:ClearFocus() -end - -local ignoreKeys = { - ["BUTTON1"] = true, ["BUTTON2"] = true, - ["UNKNOWN"] = true, - ["LSHIFT"] = true, ["LCTRL"] = true, ["LALT"] = true, - ["RSHIFT"] = true, ["RCTRL"] = true, ["RALT"] = true, -} -local function Keybinding_OnKeyDown(frame, key) - local self = frame.obj - if self.waitingForKey then - local keyPressed = key - if keyPressed == "ESCAPE" then - keyPressed = "" - else - if ignoreKeys[keyPressed] then return end - if IsShiftKeyDown() then - keyPressed = "SHIFT-"..keyPressed - end - if IsControlKeyDown() then - keyPressed = "CTRL-"..keyPressed - end - if IsAltKeyDown() then - keyPressed = "ALT-"..keyPressed - end - end - - frame:EnableKeyboard(false) - self.msgframe:Hide() - frame:UnlockHighlight() - self.waitingForKey = nil - - if not self.disabled then - self:SetKey(keyPressed) - self:Fire("OnKeyChanged", keyPressed) - end - end -end - -local function Keybinding_OnMouseDown(frame, button) - if button == "LeftButton" or button == "RightButton" then - return - elseif button == "MiddleButton" then - button = "BUTTON3" - elseif button == "Button4" then - button = "BUTTON4" - elseif button == "Button5" then - button = "BUTTON5" - end - Keybinding_OnKeyDown(frame, button) -end - ---[[----------------------------------------------------------------------------- -Methods --------------------------------------------------------------------------------]] -local methods = { - ["OnAcquire"] = function(self) - self:SetWidth(200) - self:SetLabel("") - self:SetKey("") - self.waitingForKey = nil - self.msgframe:Hide() - self:SetDisabled(false) - self.button:EnableKeyboard(false) - end, - - -- ["OnRelease"] = nil, - - ["SetDisabled"] = function(self, disabled) - self.disabled = disabled - if disabled then - self.button:Disable() - self.label:SetTextColor(0.5,0.5,0.5) - else - self.button:Enable() - self.label:SetTextColor(1,1,1) - end - end, - - ["SetKey"] = function(self, key) - if (key or "") == "" then - self.button:SetText(NOT_BOUND) - self.button:SetNormalFontObject("GameFontNormal") - else - self.button:SetText(key) - self.button:SetNormalFontObject("GameFontHighlight") - end - end, - - ["GetKey"] = function(self) - local key = self.button:GetText() - if key == NOT_BOUND then - key = nil - end - return key - end, - - ["SetLabel"] = function(self, label) - self.label:SetText(label or "") - if (label or "") == "" then - self.alignoffset = nil - self:SetHeight(24) - else - self.alignoffset = 30 - self:SetHeight(44) - end - end, -} - ---[[----------------------------------------------------------------------------- -Constructor --------------------------------------------------------------------------------]] - -local ControlBackdrop = { - bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", - edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", - tile = true, tileSize = 16, edgeSize = 16, - insets = { left = 3, right = 3, top = 3, bottom = 3 } -} - -local function keybindingMsgFixWidth(frame) - frame:SetWidth(frame.msg:GetWidth() + 10) - frame:SetScript("OnUpdate", nil) -end - -local function Constructor() - local name = "AceGUI30KeybindingButton" .. AceGUI:GetNextWidgetNum(Type) - - local frame = CreateFrame("Frame", nil, UIParent) - local button = CreateFrame("Button", name, frame, wowMoP and "UIPanelButtonTemplate" or "UIPanelButtonTemplate2") - - button:EnableMouse(true) - button:RegisterForClicks("AnyDown") - button:SetScript("OnEnter", Control_OnEnter) - button:SetScript("OnLeave", Control_OnLeave) - button:SetScript("OnClick", Keybinding_OnClick) - button:SetScript("OnKeyDown", Keybinding_OnKeyDown) - button:SetScript("OnMouseDown", Keybinding_OnMouseDown) - button:SetPoint("BOTTOMLEFT") - button:SetPoint("BOTTOMRIGHT") - button:SetHeight(24) - button:EnableKeyboard(false) - - local text = button:GetFontString() - text:SetPoint("LEFT", 7, 0) - text:SetPoint("RIGHT", -7, 0) - - local label = frame:CreateFontString(nil, "OVERLAY", "GameFontHighlight") - label:SetPoint("TOPLEFT") - label:SetPoint("TOPRIGHT") - label:SetJustifyH("CENTER") - label:SetHeight(18) - - local msgframe = CreateFrame("Frame", nil, UIParent) - msgframe:SetHeight(30) - msgframe:SetBackdrop(ControlBackdrop) - msgframe:SetBackdropColor(0,0,0) - msgframe:SetFrameStrata("FULLSCREEN_DIALOG") - msgframe:SetFrameLevel(1000) - msgframe:SetToplevel(true) - - local msg = msgframe:CreateFontString(nil, "OVERLAY", "GameFontNormal") - msg:SetText("Press a key to bind, ESC to clear the binding or click the button again to cancel.") - msgframe.msg = msg - msg:SetPoint("TOPLEFT", 5, -5) - msgframe:SetScript("OnUpdate", keybindingMsgFixWidth) - msgframe:SetPoint("BOTTOM", button, "TOP") - msgframe:Hide() - - local widget = { - button = button, - label = label, - msgframe = msgframe, - frame = frame, - alignoffset = 30, - type = Type - } - for method, func in pairs(methods) do - widget[method] = func - end - button.obj = widget - - return AceGUI:RegisterAsWidget(widget) -end - -AceGUI:RegisterWidgetType(Type, Constructor, Version)
--- a/Ouro_Loot.toc Mon Aug 13 21:49:08 2012 -0400 +++ b/Ouro_Loot.toc Tue Aug 14 20:37:12 2012 -0400 @@ -33,10 +33,6 @@ AceGUIWidget-lib-st.lua AceGUIWidget-DoTimerEditBoxDropDown.lua #AceGUIWidget-CheckBoxSmallLabel.lua -# work around ace3 ticket 304 -AceGUIWidget-CheckBox.lua -# work around ace3 ticket 305 -AceGUIWidget-Keybinding.lua #locale-enUS.lua #locale-deDE.lua
--- a/core.lua Mon Aug 13 21:49:08 2012 -0400 +++ b/core.lua Tue Aug 14 20:37:12 2012 -0400 @@ -1883,6 +1883,7 @@ if self.DO_ITEMID_FIX then self.DO_ITEMID_FIX = nil self:do_item_cache_fixup(--[[force_silent=]]not self.author_debug) + self.loot_clean = nil end if IsInRaid() then self.dprint('flow', ">:Activate calling RRU")
--- a/options.lua Mon Aug 13 21:49:08 2012 -0400 +++ b/options.lua Tue Aug 14 20:37:12 2012 -0400 @@ -134,6 +134,7 @@ -- the nubtoggle! w = mktoggle('gui_noob', [[Show UI Tips]], stdw, [[Toggles display of the "helpful tips" box hanging off the right side. Useful if you've just installed/upgraded.]]) + w:SetImage[[Interface\OptionsFrame\UI-OptionsFrame-NewFeatureIcon]] container:AddChild(w) -- reminder popup