From b758307f6f1213f3d456225ab4ed99f9fd467325 Mon Sep 17 00:00:00 2001 From: James Whitehead II Date: Mon, 3 May 2010 09:37:04 +0000 Subject: [PATCH] Added an option to trigger spellcast on the down portion of a click This option can be found in the Clique UI, under the 'options' panel. When this option is active, any buttons that register for click-casting will be registered for 'AnyDown', which will cause spells to trigger on the down portion of the click. By default, Clique continues to function as usual, triggering spellcasts on the up portion of a click. --- Clique.lua | 21 ++++++++++++++++----- CliqueOptions.lua | 20 ++++++++++++++++++-- Localization.enUS.lua | 3 +++ 3 files changed, 37 insertions(+), 7 deletions(-) diff --git a/Clique.lua b/Clique.lua index 0951ea3..85f3e8f 100644 --- a/Clique.lua +++ b/Clique.lua @@ -11,9 +11,6 @@ if Clique.version == "wowi:revision" then Clique.version = "SVN" end local L = Clique.Locals -function Clique:Initialize() -end - function Clique:Enable() -- Grab the localisation header L = Clique.Locals @@ -33,6 +30,7 @@ function Clique:Enable() }, char = { switchSpec = false, + downClick = false, }, } @@ -276,7 +274,8 @@ function Clique:RegisterFrame(frame) end end - frame:RegisterForClicks("AnyUp") + -- Register AnyUp or AnyDown on this frame, depending on configuration + self:SetClickType(frame) if frame:CanChangeAttribute() or frame:CanChangeProtectedState() then if InCombatLockdown() then @@ -727,6 +726,19 @@ function Clique:ACTIVE_TALENT_GROUP_CHANGED(event, newGroup, prevGroup) end end +function Clique:SetClickType(frame) + local clickType = Clique.db.char.downClick and "AnyDown" or "AnyUp" + if frame then + frame:RegisterForClicks(clickType) + else + for frame, enabled in pairs(self.ccframes) do + if enabled then + frame:RegisterForClicks(clickType) + end + end + end +end + function Clique:EnableArenaFrames() local arenaFrames = { ArenaEnemyFrame1, @@ -741,7 +753,6 @@ function Clique:EnableArenaFrames() end end - function Clique:ADDON_LOADED(event, addon) if addon == "Blizzard_ArenaUI" then self:EnableArenaFrames() diff --git a/CliqueOptions.lua b/CliqueOptions.lua index d9ce488..001f86a 100644 --- a/CliqueOptions.lua +++ b/CliqueOptions.lua @@ -1854,8 +1854,11 @@ function Clique:CreateOptionsWidgets(parent) button:SetPoint("TOPRIGHT", -5, 3) button:SetScript("OnClick", function(self) Clique:ButtonOnClick(self) end) - local switchSpec = makeCheckbox(parent, "CliqueOptionsSpecSwitch", "Change profile when switching talent specs", 300) - switchSpec:SetPoint("TOPLEFT", 5, -25) + local downClick = makeCheckbox(parent, "CliqueOptionsAnyDown", L.DOWNCLICK_LABEL, 300) + downClick:SetPoint("TOPLEFT", 5, -25) + + local switchSpec = makeCheckbox(parent, "CliqueOptionsSpecSwitch", L.SPECSWITCH_LABEL, 300) + switchSpec:SetPoint("TOPLEFT", 5, -45) local priDropdown = CreateFrame("Frame", "CliquePriSpecDropDown", parent, "UIDropDownMenuTemplate") priDropdown:ClearAllPoints() @@ -1942,7 +1945,10 @@ function Clique:CreateOptionsWidgets(parent) local function refreshOptions(self) -- Hide the dropdowns if the spec switch option isn't selected local switchSpec = Clique.db.char.switchSpec + local downClick = Clique.db.char.downClick CliqueOptionsSpecSwitch:SetChecked(switchSpec) + CliqueOptionsAnyDown:SetChecked(downClick) + if switchSpec then CliquePriSpecDropDown:Show() CliqueSecSpecDropDown:Show() @@ -1957,6 +1963,7 @@ function Clique:CreateOptionsWidgets(parent) CliqueSecSpecDropDown:Hide() end end + parent:SetScript("OnShow", refreshOptions) switchSpec:SetScript("OnClick", function(self) if Clique.db.char.switchSpec then @@ -1967,4 +1974,13 @@ function Clique:CreateOptionsWidgets(parent) refreshOptions(parent) Clique:UpdateClicks() end) + downClick:SetScript("OnClick", function(self) + if Clique.db.char.downClick then + Clique.db.char.downClick = false + else + Clique.db.char.downClick = true + end + refreshOptions(parent) + Clique:SetClickType() + end) end diff --git a/Localization.enUS.lua b/Localization.enUS.lua index 9231a82..f2519a4 100644 --- a/Localization.enUS.lua +++ b/Localization.enUS.lua @@ -114,8 +114,11 @@ if GetLocale() then L.PROFILES = "Profiles" L.DELETE = "Delete" L.EDIT = "Edit" + L["Clique Options"] = "Clique Options" L["Primary:"] = "Primary:" L["Secondary:"] = "Secondary:" + L.DOWNCLICK_LABEL = "Trigger clicks on the 'down' portion of the click" + L.SPECSWITCH_LABEL = "Change profile when switching talent specs" end -- 1.7.9.5