annotate CallbackFactory.lua @ 4:d186f8cd5000

Renamed functions to avoid conflicts
author madcatzinc@35b17cf1-18cd-47ff-9ca3-31d6b526ef09
date Mon, 28 May 2012 15:54:52 +0000
parents bf9220814fb5
children 6cb9a2936580
rev   line source
madcatzinc@0 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@0 24 self.Frame = CreateFrame("Frame","CallbackFactoryFrame", UIParent);
madcatzinc@0 25 self.Callbacks = {}
madcatzinc@0 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@0 31 self.Callbacks[name]:SetScript("OnClick", fn);
madcatzinc@0 32 self.Id = self.Id + 1;
madcatzinc@0 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@4 39
madcatzinc@4 40 self.GetCallback = function(callbackName)
madcatzinc@4 41 local callback = nil
madcatzinc@4 42 if("Map" == callbackName) then
madcatzinc@4 43 callback = self.ToggleMap;
madcatzinc@4 44 elseif("CharacterPage" == callbackName) then
madcatzinc@4 45 callback = self.ToggleCharacterPage;
madcatzinc@4 46 elseif("Spellbook" == callbackName) then
madcatzinc@4 47 callback = self.ToggleSpellbook;
madcatzinc@4 48 elseif("Macros" == callbackName) then
madcatzinc@4 49 callback = self.ToggleMacros;
madcatzinc@4 50 elseif("QuestLog" == callbackName) then
madcatzinc@4 51 callback = self.ToggleQuests;
madcatzinc@4 52 elseif("Achievement" == callbackName) then
madcatzinc@4 53 callback = self.ToggleAchievements;
madcatzinc@4 54 elseif("Inventory" == callbackName) then
madcatzinc@4 55 callback = self.ToggleBags;
madcatzinc@4 56 end;
madcatzinc@4 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@4 71 if(SpellBookFrame:IsShown()) then
madcatzinc@4 72 SpellbookMicroButton:SetButtonState("PUSHED", 1);
madcatzinc@4 73 else
madcatzinc@4 74 SpellbookMicroButton:SetButtonState("NORMAL");
madcatzinc@4 75 end
madcatzinc@4 76 end
madcatzinc@4 77
madcatzinc@4 78 self.ToggleMacros = function()
madcatzinc@4 79 if(MacroFrame:IsShown() and MacroFrame:IsVisible()) then
madcatzinc@4 80 HideUIPanel(MacroFrame);
madcatzinc@4 81 else
madcatzinc@4 82 ShowMacroFrame();
madcatzinc@4 83 end
madcatzinc@4 84 end
madcatzinc@4 85
madcatzinc@4 86 self.ToggleQuests = function()
madcatzinc@4 87 ToggleFrame(QuestLogFrame);
madcatzinc@4 88 if ( QuestLogFrame:IsShown() ) then
madcatzinc@4 89 QuestLogMicroButton:SetButtonState("PUSHED", 1);
madcatzinc@4 90 else
madcatzinc@4 91 QuestLogMicroButton:SetButtonState("NORMAL");
madcatzinc@4 92 end
madcatzinc@4 93 end
madcatzinc@4 94
madcatzinc@4 95 self.ToggleAchievements = function()
madcatzinc@4 96 ToggleAchievementFrame();
madcatzinc@4 97 if ( AchievementFrame and AchievementFrame:IsShown() ) then
madcatzinc@4 98 AchievementMicroButton:SetButtonState("PUSHED", 1);
madcatzinc@4 99 else
madcatzinc@4 100 if ( ( HasCompletedAnyAchievement() or IsInGuild() ) and CanShowAchievementUI() ) then
madcatzinc@4 101 AchievementMicroButton:Enable();
madcatzinc@4 102 AchievementMicroButton:SetButtonState("NORMAL");
madcatzinc@4 103 else
madcatzinc@4 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@4 110 ToggleAllBags();
madcatzinc@4 111 end
madcatzinc@0 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@4 118 if(nil == CyborgMMO_CallbackFactory.m_Instance) then
madcatzinc@4 119 CyborgMMO_CallbackFactory.m_Instance = CyborgMMO_CallbackFactory.new();
madcatzinc@0 120 end
madcatzinc@4 121 return CyborgMMO_CallbackFactory.m_Instance;
madcatzinc@0 122 end
madcatzinc@0 123
madcatzinc@4 124
madcatzinc@0 125 }
madcatzinc@0 126
madcatzinc@0 127