madcatzinc@13: --~ Warcraft Plugin for Cyborg MMO7 madcatzinc@0: --~ Filename: RatPageView.lua madcatzinc@0: --~ Description: Interaction 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_RatPageView = { madcatzinc@0: new = function(self) madcatzinc@15: CyborgMMO_DPrint("new Rat Page View") madcatzinc@13: for _,child in ipairs(self:GetChildren()) do madcatzinc@13: child.Register() madcatzinc@0: end madcatzinc@13: madcatzinc@0: self.SlotClicked = function(slot) madcatzinc@15: CyborgMMO_DPrint("View Recieved Click") madcatzinc@18: CyborgMMO_RatPageController:SlotClicked(slot) madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.ModeClicked = function(mode) madcatzinc@15: CyborgMMO_DPrint("View Recieved Click") madcatzinc@18: CyborgMMO_RatPageController:ModeClicked(mode) madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.RegisterMode = function() madcatzinc@15: CyborgMMO_DPrint("ModeRegistered") madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.RegisterSlot = function() madcatzinc@15: CyborgMMO_DPrint("SlotRegistered") madcatzinc@0: end madcatzinc@13: madcatzinc@13: return self madcatzinc@13: end, madcatzinc@0: } madcatzinc@0: madcatzinc@4: CyborgMMO_RatQuickPageView = { madcatzinc@0: new = function(self) madcatzinc@13: for _,child in ipairs(self:GetChildren()) do madcatzinc@13: child.Register() madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.SlotClicked = function(slot) madcatzinc@18: CyborgMMO_RatPageController:SlotClicked(slot) madcatzinc@0: end madcatzinc@0: madcatzinc@13: return self madcatzinc@13: end, madcatzinc@0: } madcatzinc@0: madcatzinc@0: -- Slot Class -- madcatzinc@4: CyborgMMO_SlotView = { madcatzinc@0: new = function(self, parent) madcatzinc@13: self._assignedWowObject = nil madcatzinc@13: self:RegisterForClicks("LeftButtonUp", "RightButtonUp") madcatzinc@13: self.Id = self:GetID() madcatzinc@18: CyborgMMO_RatPageModel:AddObserver(self) madcatzinc@13: self.UnCheckedTexture = self:GetNormalTexture() madcatzinc@5: madcatzinc@0: -- Object Method -- madcatzinc@0: self.Clicked = function() madcatzinc@0: self:GetParent().SlotClicked(self) madcatzinc@0: madcatzinc@13: GameTooltip:SetOwner(self, "ANCHOR_RIGHT") madcatzinc@13: -- GameTooltip:SetText(self:GetID()) madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.Update = function(data, activeMode) madcatzinc@13: local icon = _G[self:GetName().."Icon"] madcatzinc@13: if data[activeMode][self.Id] then madcatzinc@13: self:SetChecked(true) madcatzinc@34: icon:SetTexture(data[activeMode][self.Id].texture) madcatzinc@0: else madcatzinc@13: icon:SetTexture(nil) madcatzinc@13: self:SetChecked(false) madcatzinc@0: end madcatzinc@0: madcatzinc@0: madcatzinc@0: end madcatzinc@0: madcatzinc@13: return self madcatzinc@0: end, madcatzinc@0: } madcatzinc@0: madcatzinc@4: CyborgMMO_SlotMiniView = { madcatzinc@0: new = function(self, parent) madcatzinc@13: self._assignedWowObject = nil madcatzinc@13: self.Id = self:GetID() madcatzinc@18: CyborgMMO_RatPageModel:AddObserver(self) madcatzinc@13: self.UnCheckedTexture = self:GetNormalTexture() madcatzinc@0: madcatzinc@0: self.Update = function(data, activeMode) madcatzinc@13: local icon = _G[self:GetName().."Icon"] madcatzinc@13: if data[activeMode][self.Id] then madcatzinc@13: self:SetChecked(true) madcatzinc@0: madcatzinc@34: icon:SetTexture(data[activeMode][self.Id].texture) madcatzinc@13: icon:SetAlpha(.5) madcatzinc@0: else madcatzinc@13: icon:SetTexture(nil) madcatzinc@13: self:SetChecked(false) madcatzinc@0: end madcatzinc@0: end madcatzinc@0: madcatzinc@13: return self madcatzinc@13: end, madcatzinc@0: } madcatzinc@0: madcatzinc@0: madcatzinc@0: -- ModeButton -- madcatzinc@4: CyborgMMO_ModeView = { madcatzinc@0: new = function(self) madcatzinc@13: self.Id = self:GetID() madcatzinc@13: self.Name = self:GetName() madcatzinc@18: CyborgMMO_RatPageModel:AddObserver(self) madcatzinc@13: if self.Id ~= 1 then madcatzinc@13: self:Hide() madcatzinc@13: end madcatzinc@0: madcatzinc@0: self.Clicked = function() madcatzinc@13: local nextMode madcatzinc@13: if self.Id == 1 then madcatzinc@13: nextMode = getglobal("Mode2") madcatzinc@13: elseif self.Id == 2 then madcatzinc@13: nextMode = getglobal("Mode3") madcatzinc@0: else madcatzinc@13: nextMode = getglobal("Mode1") madcatzinc@0: end madcatzinc@0: self:GetParent().ModeClicked(nextMode) madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.Update = function(data, activeMode) madcatzinc@13: if self.Id == activeMode then madcatzinc@0: self:Show() madcatzinc@0: else madcatzinc@0: self:Hide() madcatzinc@0: end madcatzinc@0: end madcatzinc@0: madcatzinc@13: return self madcatzinc@13: end, madcatzinc@0: }