annotate RatPageModel.lua @ 17:e4dec2d465f5

Removed the Load methods in WowObjects, they were never called (and likely broken).
author madcatzinc@35b17cf1-18cd-47ff-9ca3-31d6b526ef09
date Thu, 25 Apr 2013 01:30:05 +0000
parents 80192bc4a108
children cccc7661a2e6
rev   line source
madcatzinc@13 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@13 22 local RAT7 = {
madcatzinc@13 23 BUTTONS = 13,
madcatzinc@13 24 MODES = 3,
madcatzinc@13 25 SHIFT = 0,
madcatzinc@13 26 }
madcatzinc@0 27
madcatzinc@13 28 local MIDDLEMOUSE = 1
madcatzinc@0 29
madcatzinc@4 30 CyborgMMO_RatPageModel = {
madcatzinc@0 31 new = function()
madcatzinc@13 32 local self = {}
madcatzinc@13 33 self.m_Mode = 1
madcatzinc@13 34 self.ObserverCount = 0
madcatzinc@0 35 self.ObserverList = {}
madcatzinc@0 36 self.Data = {}
madcatzinc@0 37
madcatzinc@13 38 for i=1,RAT7.MODES do
madcatzinc@0 39 self.Data[i] = {}
madcatzinc@13 40 for j=1,RAT7.BUTTONS do
madcatzinc@13 41 self.Data[i][j] = {}
madcatzinc@0 42 end
madcatzinc@0 43 end
madcatzinc@0 44
madcatzinc@0 45 self.InitSaveData = function(data)
madcatzinc@13 46 for i=1,RAT7.MODES do
madcatzinc@13 47 if not data["Rat"][i] then
madcatzinc@0 48 data["Rat"][i] = {}
madcatzinc@0 49 end
madcatzinc@13 50 for j=1,RAT7.BUTTONS do
madcatzinc@13 51 if not data["Rat"][i][j] then
madcatzinc@0 52 data["Rat"][i][j] = {}
madcatzinc@0 53 end
madcatzinc@0 54 end
madcatzinc@0 55 end
madcatzinc@0 56 end
madcatzinc@0 57
madcatzinc@0 58 self.LoadData = function()
madcatzinc@15 59 CyborgMMO_DPrint("Loading...")
madcatzinc@13 60 local data = CyborgMMO_GetSaveData()
madcatzinc@0 61
madcatzinc@13 62 if not data["Rat"] then
madcatzinc@0 63 data["Rat"] = {}
madcatzinc@13 64 self.InitSaveData(data)
madcatzinc@0 65 end
madcatzinc@0 66
madcatzinc@0 67 self.Data = data["Rat"]
madcatzinc@13 68 if data then
madcatzinc@13 69 for mode=1,RAT7.MODES do
madcatzinc@13 70 for button=1,RAT7.BUTTONS do
madcatzinc@13 71 if self.Data[mode][button] then
madcatzinc@14 72 local object = CyborgMMO_WowObject.Create(self.Data[mode][button].Type, self.Data[mode][button].Detail, self.Data[mode][button].Subdetail)
madcatzinc@13 73 self.SetObjectOnButtonNoUpdate(button, mode, object)
madcatzinc@0 74 else
madcatzinc@14 75 local object = CyborgMMO_WowObject.Create("", "", "")
madcatzinc@13 76 self.SetObjectOnButtonNoUpdate(button, mode, object)
madcatzinc@13 77 self.Data[mode][button] = object
madcatzinc@0 78 end
madcatzinc@0 79 end
madcatzinc@0 80 end
madcatzinc@13 81 self.UpdateObservers()
madcatzinc@0 82 end
madcatzinc@0 83 end
madcatzinc@0 84
madcatzinc@0 85 self.SaveData = function()
madcatzinc@15 86 CyborgMMO_DPrint("Saving...")
madcatzinc@13 87 CyborgMMO_SetSaveData(self.Data, "Rat")
madcatzinc@0 88 end
madcatzinc@0 89
madcatzinc@0 90 self.SetMode = function(mode)
madcatzinc@13 91 self.m_Mode = mode
madcatzinc@13 92 self.UpdateObservers()
madcatzinc@0 93 end
madcatzinc@0 94
madcatzinc@0 95 self.GetMode = function()
madcatzinc@13 96 return self.m_Mode
madcatzinc@0 97 end
madcatzinc@0 98
madcatzinc@0 99 self.GetData = function()
madcatzinc@13 100 return self.Data,self.m_Mode
madcatzinc@0 101 end
madcatzinc@0 102
madcatzinc@0 103 self.GetObjectOnButton = function(button)
madcatzinc@13 104 if not self.Data[self.m_Mode][button] then
madcatzinc@13 105 return nil
madcatzinc@0 106 else
madcatzinc@0 107 return self.Data[self.m_Mode][button]
madcatzinc@0 108 end
madcatzinc@0 109 end
madcatzinc@0 110
madcatzinc@0 111 self.SetObjectOnButtonNoUpdate = function(button, mode, object)
madcatzinc@15 112 -- CyborgMMO_DPrint("button = "..tostring(button).." mode = "..tostring(mode))
madcatzinc@13 113 self.Data[mode][button] = object
madcatzinc@0 114
madcatzinc@13 115 if object then
madcatzinc@13 116 object.SetBinding(CyborgMMO_WowCommands[((mode-1)*RAT7.BUTTONS)+button])
madcatzinc@0 117 if("callback" == object.Type) then
madcatzinc@15 118 CyborgMMO_DPrint("trying to set texture")
madcatzinc@13 119 local slot = getglobal("CyborgMMO_MainPageSlotListSlot"..button)
madcatzinc@0 120 slot:SetNormalTexture(object.Texture)
madcatzinc@0 121 end
madcatzinc@0 122 else
madcatzinc@15 123 CyborgMMO_DPrint("clearing "..button)
madcatzinc@5 124 CyborgMMO_WowObject.ClearBinding(CyborgMMO_WowCommands[((mode-1)*RAT7.BUTTONS)+button])
madcatzinc@0 125 end
madcatzinc@0 126 end
madcatzinc@0 127
madcatzinc@0 128 self.SetObjectOnButton = function(button, mode, object)
madcatzinc@13 129 self.SetObjectOnButtonNoUpdate(button, mode, object)
madcatzinc@0 130 self.UpdateObservers()
madcatzinc@0 131 end
madcatzinc@0 132
madcatzinc@0 133 self.AddObserver = function(view)
madcatzinc@13 134 table.insert(self.ObserverList, view)
madcatzinc@13 135 self.observerCount = #self.ObserverList
madcatzinc@0 136 end
madcatzinc@13 137
madcatzinc@0 138 self.GetAllObservers = function()
madcatzinc@13 139 return self.ObserverList
madcatzinc@0 140 end
madcatzinc@0 141
madcatzinc@0 142 self.UpdateObservers = function()
madcatzinc@13 143 for i=1,#self.ObserverList do
madcatzinc@0 144 self.ObserverList[i].Update(self.Data, self.m_Mode)
madcatzinc@0 145 end
madcatzinc@0 146 self.SaveData()
madcatzinc@0 147 end
madcatzinc@13 148
madcatzinc@13 149 return self
madcatzinc@0 150 end,
madcatzinc@0 151
madcatzinc@0 152 m_Instance = nil,
madcatzinc@0 153
madcatzinc@0 154 Instance = function()
madcatzinc@13 155 if not CyborgMMO_RatPageModel.m_Instance then
madcatzinc@13 156 CyborgMMO_RatPageModel.m_Instance = CyborgMMO_RatPageModel.new()
madcatzinc@0 157 end
madcatzinc@13 158 return CyborgMMO_RatPageModel.m_Instance
madcatzinc@13 159 end,
madcatzinc@0 160 }
madcatzinc@13 161