madcatzinc@13: --~ 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@18: ------------------------------------------------------------------------------ madcatzinc@0: madcatzinc@18: local RatPageController_methods = {} madcatzinc@18: local RatPageController_mt = {__index=RatPageController_methods} madcatzinc@0: madcatzinc@18: local function RatPageController() madcatzinc@18: local self = {} madcatzinc@18: -- CyborgMMO_RatPageModel:SetMode(1) madcatzinc@18: setmetatable(self, RatPageController_mt) madcatzinc@18: return self madcatzinc@18: end madcatzinc@18: madcatzinc@18: function RatPageController_methods:SlotClicked(slot) madcatzinc@18: local slotObject = nil madcatzinc@18: slotObject = CyborgMMO_RatPageModel:GetObjectOnButton(slot.Id) madcatzinc@18: CyborgMMO_RatPageModel:SetObjectOnButton(slot.Id, CyborgMMO_RatPageModel:GetMode(), self:GetCursorObject()) madcatzinc@18: madcatzinc@18: if slotObject then madcatzinc@25: slotObject:Pickup() madcatzinc@18: end madcatzinc@18: end madcatzinc@18: madcatzinc@18: function RatPageController_methods:ModeClicked(mode) madcatzinc@18: CyborgMMO_DPrint("Setting mode "..tostring(mode.Id)) madcatzinc@18: CyborgMMO_RatPageModel:SetMode(mode.Id) madcatzinc@18: end madcatzinc@18: madcatzinc@18: function RatPageController_methods:GetCursorObject() madcatzinc@18: local cursorObject = nil madcatzinc@18: if GetCursorInfo() then madcatzinc@25: cursorObject = CyborgMMO_CreateWowObject(GetCursorInfo()) madcatzinc@18: ClearCursor() madcatzinc@18: end madcatzinc@18: return cursorObject madcatzinc@18: end madcatzinc@18: madcatzinc@18: function RatPageController_methods:CallbackDropped(callbackObject) madcatzinc@18: local slot = nil madcatzinc@18: local observers = CyborgMMO_RatPageModel:GetAllObservers() madcatzinc@18: for i=1,#observers do madcatzinc@18: if MouseIsOver(observers[i]) then madcatzinc@18: slot = observers[i] madcatzinc@18: break madcatzinc@0: end madcatzinc@18: end madcatzinc@18: if slot then madcatzinc@18: CyborgMMO_RatPageModel:SetObjectOnButton(slot.Id, CyborgMMO_RatPageModel:GetMode(), callbackObject.wowObject) madcatzinc@18: end madcatzinc@18: end madcatzinc@0: madcatzinc@18: ------------------------------------------------------------------------------ madcatzinc@0: madcatzinc@18: CyborgMMO_RatPageController = RatPageController() madcatzinc@13: