annotate RatPageModel.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 a4e2eaf9cad9
children 8428fa7cf0e4
rev   line source
madcatzinc@0 1 --~ Warcraft Plugin for Cyborg MMO7
madcatzinc@0 2 --~ Filename: RatPageModel.lua
madcatzinc@0 3 --~ Description: Code model of the MMO7 mouse
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 -- Constants --
madcatzinc@0 21
madcatzinc@0 22 local RAT7 = { BUTTONS = 13, MODES = 3, SHIFT = 0}
madcatzinc@0 23
madcatzinc@0 24 local MIDDLEMOUSE = 1;
madcatzinc@0 25
madcatzinc@4 26 CyborgMMO_RatPageModel = {
madcatzinc@0 27 new = function()
madcatzinc@0 28 local self = {}
madcatzinc@0 29 self.m_Mode = 1;
madcatzinc@0 30 self.ObserverCount = 0;
madcatzinc@0 31 self.ObserverList = {}
madcatzinc@0 32 self.Data = {}
madcatzinc@0 33
madcatzinc@0 34 for i = 1,RAT7.MODES do
madcatzinc@0 35 self.Data[i] = {}
madcatzinc@0 36 for j = 1, RAT7.BUTTONS do
madcatzinc@0 37 self.Data[i][j] = {};
madcatzinc@0 38 end
madcatzinc@0 39 end
madcatzinc@0 40
madcatzinc@0 41 self.InitSaveData = function(data)
madcatzinc@0 42 for i = 1,RAT7.MODES do
madcatzinc@0 43 if (nil == data["Rat"][i]) then
madcatzinc@0 44 data["Rat"][i] = {}
madcatzinc@0 45 end
madcatzinc@0 46 for j = 1, RAT7.BUTTONS do
madcatzinc@0 47 if (nil == data["Rat"][i][j]) then
madcatzinc@0 48 data["Rat"][i][j] = {}
madcatzinc@0 49 end
madcatzinc@0 50 end
madcatzinc@0 51 end
madcatzinc@0 52 end
madcatzinc@0 53
madcatzinc@0 54
madcatzinc@0 55 self.LoadData = function()
madcatzinc@0 56 msg("Loading...")
madcatzinc@4 57 local data = CyborgMMO_GetSaveData();
madcatzinc@0 58
madcatzinc@0 59
madcatzinc@0 60 if (nil == data["Rat"]) then
madcatzinc@0 61 data["Rat"] = {}
madcatzinc@0 62 self.InitSaveData(data);
madcatzinc@0 63 end
madcatzinc@0 64
madcatzinc@0 65 self.Data = data["Rat"]
madcatzinc@0 66 if(data ~= nil) then
madcatzinc@0 67 for mode = 1,RAT7.MODES do
madcatzinc@0 68 for button = 1, RAT7.BUTTONS do
madcatzinc@0 69 if(self.Data[mode][button] ~= nil) then
madcatzinc@4 70 object = CyborgMMO_WowObject.Create(self.Data[mode][button].Type, self.Data[mode][button].Detail, self.Data[mode][button].Subdetail);
madcatzinc@0 71 self.SetObjectOnButtonNoUpdate(button, mode, object);
madcatzinc@0 72 else
madcatzinc@4 73 object = CyborgMMO_WowObject.Create("", "", "");
madcatzinc@0 74 self.SetObjectOnButtonNoUpdate(button, mode, object);
madcatzinc@0 75 self.Data[mode][button] = object;
madcatzinc@0 76 end
madcatzinc@0 77 end
madcatzinc@0 78 end
madcatzinc@0 79 self.UpdateObservers();
madcatzinc@0 80 end
madcatzinc@0 81 end
madcatzinc@0 82
madcatzinc@0 83 self.SaveData = function()
madcatzinc@0 84 msg("Saving...")
madcatzinc@4 85 CyborgMMO_SetSaveData(self.Data, "Rat");
madcatzinc@0 86 end
madcatzinc@0 87
madcatzinc@0 88 self.SetMode = function(mode)
madcatzinc@0 89 self.m_Mode = mode;
madcatzinc@0 90 self.UpdateObservers();
madcatzinc@0 91 end
madcatzinc@0 92
madcatzinc@0 93 self.GetMode = function()
madcatzinc@0 94 return self.m_Mode;
madcatzinc@0 95 end
madcatzinc@0 96
madcatzinc@0 97 self.GetData = function()
madcatzinc@0 98 return self.Data, self.m_Mode;
madcatzinc@0 99 end
madcatzinc@0 100
madcatzinc@0 101 self.GetObjectOnButton = function(button)
madcatzinc@0 102 if(nil == self.Data[self.m_Mode][button]) then
madcatzinc@0 103 return nil;
madcatzinc@0 104 else
madcatzinc@0 105 return self.Data[self.m_Mode][button]
madcatzinc@0 106 end
madcatzinc@0 107 end
madcatzinc@0 108
madcatzinc@0 109 self.SetObjectOnButtonNoUpdate = function(button, mode, object)
madcatzinc@0 110 --msg("button = "..tostring(button).." mode = "..tostring(mode))
madcatzinc@0 111 self.Data[mode][button] = object;
madcatzinc@0 112
madcatzinc@0 113 if(nil ~= object) then
madcatzinc@1 114 object.SetBinding(WowCommands[((mode-1)*RAT7.BUTTONS)+button]);
madcatzinc@0 115 if("callback" == object.Type) then
madcatzinc@0 116 msg("trying to set texture")
madcatzinc@4 117 local slot = getglobal("CyborgMMO_MainPageSlotListSlot"..button);
madcatzinc@0 118 slot:SetNormalTexture(object.Texture)
madcatzinc@0 119 end
madcatzinc@0 120 else
madcatzinc@0 121 msg("clearing "..button)
madcatzinc@4 122 CyborgMMO_WowObject.ClearBinding(WowCommands[((mode-1)*RAT7.BUTTONS)+button])
madcatzinc@0 123 end
madcatzinc@0 124 end
madcatzinc@0 125
madcatzinc@0 126 self.SetObjectOnButton = function(button, mode, object)
madcatzinc@0 127 self.SetObjectOnButtonNoUpdate(button, mode, object);
madcatzinc@0 128 self.UpdateObservers()
madcatzinc@0 129 end
madcatzinc@0 130
madcatzinc@0 131 self.AddObserver = function(view)
madcatzinc@0 132 table.insert(self.ObserverList,view)
madcatzinc@0 133 self.observerCount = # self.ObserverList
madcatzinc@0 134 end
madcatzinc@0 135
madcatzinc@0 136 self.GetAllObservers = function()
madcatzinc@0 137 return self.ObserverList;
madcatzinc@0 138 end
madcatzinc@0 139
madcatzinc@0 140 self.UpdateObservers = function()
madcatzinc@0 141 for i = 1, (# self.ObserverList) do
madcatzinc@0 142 self.ObserverList[i].Update(self.Data, self.m_Mode)
madcatzinc@0 143 end
madcatzinc@0 144 self.SaveData()
madcatzinc@0 145 end
madcatzinc@0 146 return self;
madcatzinc@0 147 end,
madcatzinc@0 148
madcatzinc@0 149 m_Instance = nil,
madcatzinc@0 150
madcatzinc@0 151 Instance = function()
madcatzinc@4 152 if(nil == CyborgMMO_RatPageModel.m_Instance) then
madcatzinc@4 153 CyborgMMO_RatPageModel.m_Instance = CyborgMMO_RatPageModel.new();
madcatzinc@0 154 end
madcatzinc@4 155 return CyborgMMO_RatPageModel.m_Instance;
madcatzinc@0 156 end
madcatzinc@0 157 }