madcatzinc@0: --~ Warcraft Plugin for Cyborg MMO7 madcatzinc@0: --~ Filename: RatPageController.lua madcatzinc@0: --~ Description: Controller logic for the RatPage madcatzinc@0: --~ Copyright (C) 2012 Mad Catz Inc. madcatzinc@0: --~ Author: Christopher Hooks madcatzinc@0: madcatzinc@0: --~ This program is free software; you can redistribute it and/or madcatzinc@0: --~ modify it under the terms of the GNU General Public License madcatzinc@0: --~ as published by the Free Software Foundation; either version 2 madcatzinc@0: --~ of the License, or (at your option) any later version. madcatzinc@0: madcatzinc@0: --~ This program is distributed in the hope that it will be useful, madcatzinc@0: --~ but WITHOUT ANY WARRANTY; without even the implied warranty of madcatzinc@0: --~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the madcatzinc@0: --~ GNU General Public License for more details. madcatzinc@0: madcatzinc@0: --~ You should have received a copy of the GNU General Public License madcatzinc@0: --~ along with this program; if not, write to the Free Software madcatzinc@0: --~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. madcatzinc@0: madcatzinc@4: CyborgMMO_RatPageController = { madcatzinc@0: new = function() madcatzinc@0: local self = {}; madcatzinc@4: CyborgMMO_RatPageModel.Instance().SetMode(1); madcatzinc@0: madcatzinc@0: self.SlotClicked = function(slot) madcatzinc@0: local slotObject = nil madcatzinc@4: slotObject = CyborgMMO_RatPageModel.Instance().GetObjectOnButton(slot.Id) madcatzinc@4: CyborgMMO_RatPageModel.Instance().SetObjectOnButton(slot.Id, CyborgMMO_RatPageModel.Instance().GetMode(), self.GetCursorObject()); madcatzinc@0: madcatzinc@0: if(slotObject ~= nil) then madcatzinc@0: slotObject.Pickup(); madcatzinc@0: end madcatzinc@0: madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.ModeClicked = function(mode) madcatzinc@0: msg("Setting mode "..tostring(mode.Id)); madcatzinc@4: CyborgMMO_RatPageModel.Instance().SetMode(mode.Id); madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.GetCursorObject = function() madcatzinc@0: local cursorObject = nil; madcatzinc@0: if(nil ~= GetCursorInfo()) then madcatzinc@0: local type, detail, subdetail = GetCursorInfo(); madcatzinc@4: cursorObject = CyborgMMO_WowObject.Create(type, detail, subdetail); madcatzinc@0: ClearCursor(); madcatzinc@0: end madcatzinc@0: return cursorObject; madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.CallbackDropped = function(callbackObject) madcatzinc@0: local slot = nil; madcatzinc@4: local observers = CyborgMMO_RatPageModel.Instance().GetAllObservers(); madcatzinc@0: for i = 1, (# observers) do madcatzinc@0: if(MouseIsOver(observers[i])) then madcatzinc@0: slot = observers[i]; madcatzinc@0: break; madcatzinc@0: end madcatzinc@0: end madcatzinc@0: if(nil ~= slot) then madcatzinc@4: CyborgMMO_RatPageModel.Instance().SetObjectOnButton(slot.Id, CyborgMMO_RatPageModel.Instance().GetMode(), callbackObject.wowObject); madcatzinc@0: end madcatzinc@0: end madcatzinc@0: madcatzinc@0: madcatzinc@0: madcatzinc@0: self.Close = function() madcatzinc@0: madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.Open = function() madcatzinc@0: end madcatzinc@0: madcatzinc@0: return self; madcatzinc@0: end, madcatzinc@0: madcatzinc@0: m_Instance = nil, madcatzinc@0: madcatzinc@0: Instance = function() madcatzinc@4: if(nil == CyborgMMO_RatPageController.m_Instance) then madcatzinc@4: CyborgMMO_RatPageController.m_Instance = CyborgMMO_RatPageController.new(); madcatzinc@0: end madcatzinc@4: return CyborgMMO_RatPageController.m_Instance; madcatzinc@0: end madcatzinc@0: }