annotate CallbackFactory.lua @ 13:6cb9a2936580

Miscellanous Lua code consistency improvements: - no semicolon except between statements on same line - use of implicit cast to bool in if/while conditions, instead of various eq/neq against true, false or nil - no parenthesis around if/while conditions (C-ism) - avoid long function calls in if conditions - removed space in comma-separated expressions lists in multiple assignments - added spaces between arguments of functions calls - use tabs for indentation (in Lua files only) - don't reverse == in if conditions, like "if 42==foo then" (C-ism) - removed some extra parenthesis in complex expressions (C-ism) - added spaces around operators in most expressions for ease of reading - added comma after last element of table initializers - removed space after # operator - moved comment prefix of disabled code into tab (to keep disabled code aligned)
author madcatzinc@35b17cf1-18cd-47ff-9ca3-31d6b526ef09
date Thu, 25 Apr 2013 01:29:45 +0000
parents d186f8cd5000
children 3b1c0b676583
rev   line source
madcatzinc@13 1 --~ Warcraft Plugin for Cyborg MMO7
madcatzinc@0 2 --~ Filename: CalbackFactory.lua
madcatzinc@0 3 --~ Description: Creates lua callbacks that can be executed from a user keycombination
madcatzinc@0 4 --~ Copyright (C) 2012 Mad Catz Inc.
madcatzinc@0 5 --~ Author: Christopher Hooks
madcatzinc@0 6
madcatzinc@0 7 --~ This program is free software; you can redistribute it and/or
madcatzinc@0 8 --~ modify it under the terms of the GNU General Public License
madcatzinc@0 9 --~ as published by the Free Software Foundation; either version 2
madcatzinc@0 10 --~ of the License, or (at your option) any later version.
madcatzinc@0 11
madcatzinc@0 12 --~ This program is distributed in the hope that it will be useful,
madcatzinc@0 13 --~ but WITHOUT ANY WARRANTY; without even the implied warranty of
madcatzinc@0 14 --~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
madcatzinc@0 15 --~ GNU General Public License for more details.
madcatzinc@0 16
madcatzinc@0 17 --~ You should have received a copy of the GNU General Public License
madcatzinc@0 18 --~ along with this program; if not, write to the Free Software
madcatzinc@0 19 --~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
madcatzinc@0 20
madcatzinc@4 21 CyborgMMO_CallbackFactory = {
madcatzinc@0 22 new = function()
madcatzinc@0 23 local self = {}
madcatzinc@13 24 self.Frame = CreateFrame("Frame", "CallbackFactoryFrame", UIParent)
madcatzinc@0 25 self.Callbacks = {}
madcatzinc@13 26 self.Id = 1
madcatzinc@0 27
madcatzinc@0 28 self.AddCallback = function(fn)
madcatzinc@0 29 local name = "Button"..self.Id
madcatzinc@0 30 self.Callbacks[name] = CreateFrame("Button", name, self.Frame)
madcatzinc@13 31 self.Callbacks[name]:SetScript("OnClick", fn)
madcatzinc@13 32 self.Id = self.Id + 1
madcatzinc@13 33 return self.Callbacks[name],self.Frame,name
madcatzinc@0 34 end
madcatzinc@0 35
madcatzinc@0 36 self.RemoveCallback = function(name)
madcatzinc@0 37 self.Callbacks[name] = nil
madcatzinc@0 38 end
madcatzinc@13 39
madcatzinc@4 40 self.GetCallback = function(callbackName)
madcatzinc@4 41 local callback = nil
madcatzinc@13 42 if callbackName == "Map" then
madcatzinc@13 43 callback = self.ToggleMap
madcatzinc@13 44 elseif callbackName == "CharacterPage" then
madcatzinc@13 45 callback = self.ToggleCharacterPage
madcatzinc@13 46 elseif callbackName == "Spellbook" then
madcatzinc@13 47 callback = self.ToggleSpellbook
madcatzinc@13 48 elseif callbackName == "Macros" then
madcatzinc@13 49 callback = self.ToggleMacros
madcatzinc@13 50 elseif callbackName == "QuestLog" then
madcatzinc@13 51 callback = self.ToggleQuests
madcatzinc@13 52 elseif callbackName == "Achievement" then
madcatzinc@13 53 callback = self.ToggleAchievements
madcatzinc@13 54 elseif callbackName == "Inventory" then
madcatzinc@13 55 callback = self.ToggleBags
madcatzinc@13 56 end
madcatzinc@13 57 return callback
madcatzinc@4 58 end
madcatzinc@0 59
madcatzinc@4 60
madcatzinc@4 61 self.ToggleMap = function()
madcatzinc@4 62 ToggleFrame(WorldMapFrame)
madcatzinc@4 63 end
madcatzinc@4 64
madcatzinc@4 65 self.ToggleCharacterPage = function()
madcatzinc@4 66 ToggleCharacter("PaperDollFrame")
madcatzinc@4 67 end
madcatzinc@4 68
madcatzinc@4 69 self.ToggleSpellbook = function()
madcatzinc@4 70 ToggleFrame(SpellBookFrame)
madcatzinc@13 71 if SpellBookFrame:IsShown() then
madcatzinc@13 72 SpellbookMicroButton:SetButtonState("PUSHED", 1)
madcatzinc@4 73 else
madcatzinc@13 74 SpellbookMicroButton:SetButtonState("NORMAL")
madcatzinc@4 75 end
madcatzinc@4 76 end
madcatzinc@4 77
madcatzinc@4 78 self.ToggleMacros = function()
madcatzinc@13 79 if MacroFrame:IsShown() and MacroFrame:IsVisible() then
madcatzinc@13 80 HideUIPanel(MacroFrame)
madcatzinc@4 81 else
madcatzinc@13 82 ShowMacroFrame()
madcatzinc@4 83 end
madcatzinc@4 84 end
madcatzinc@4 85
madcatzinc@4 86 self.ToggleQuests = function()
madcatzinc@13 87 ToggleFrame(QuestLogFrame)
madcatzinc@13 88 if QuestLogFrame:IsShown() then
madcatzinc@13 89 QuestLogMicroButton:SetButtonState("PUSHED", 1)
madcatzinc@4 90 else
madcatzinc@13 91 QuestLogMicroButton:SetButtonState("NORMAL")
madcatzinc@4 92 end
madcatzinc@4 93 end
madcatzinc@4 94
madcatzinc@4 95 self.ToggleAchievements = function()
madcatzinc@13 96 ToggleAchievementFrame()
madcatzinc@13 97 if AchievementFrame and AchievementFrame:IsShown() then
madcatzinc@13 98 AchievementMicroButton:SetButtonState("PUSHED", 1)
madcatzinc@4 99 else
madcatzinc@13 100 if (HasCompletedAnyAchievement() or IsInGuild()) and CanShowAchievementUI() then
madcatzinc@13 101 AchievementMicroButton:Enable()
madcatzinc@13 102 AchievementMicroButton:SetButtonState("NORMAL")
madcatzinc@4 103 else
madcatzinc@13 104 AchievementMicroButton:Disable()
madcatzinc@4 105 end
madcatzinc@4 106 end
madcatzinc@4 107 end
madcatzinc@4 108
madcatzinc@4 109 self.ToggleBags = function()
madcatzinc@13 110 ToggleAllBags()
madcatzinc@4 111 end
madcatzinc@13 112 return self
madcatzinc@0 113 end,
madcatzinc@0 114
madcatzinc@0 115 m_Instance = nil,
madcatzinc@0 116
madcatzinc@0 117 Instance = function()
madcatzinc@13 118 if not CyborgMMO_CallbackFactory.m_Instance then
madcatzinc@13 119 CyborgMMO_CallbackFactory.m_Instance = CyborgMMO_CallbackFactory.new()
madcatzinc@0 120 end
madcatzinc@13 121 return CyborgMMO_CallbackFactory.m_Instance
madcatzinc@13 122 end,
madcatzinc@0 123 }
madcatzinc@0 124
madcatzinc@0 125