madcatzinc@0: --~ 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@0: RatPageView = { madcatzinc@0: new = function(self) madcatzinc@0: msg("new Rat Page View"); madcatzinc@0: for _, child in ipairs(self:GetChildren()) do madcatzinc@0: child.Register(); madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.SlotClicked = function(slot) madcatzinc@0: msg("View Recieved Click") madcatzinc@0: RatPageController.Instance().SlotClicked(slot) madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.ModeClicked = function(mode) madcatzinc@0: msg("View Recieved Click") madcatzinc@0: RatPageController.Instance().ModeClicked(mode) madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.RegisterMode = function() madcatzinc@0: msg("ModeRegistered") madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.RegisterSlot = function() madcatzinc@0: msg("SlotRegistered") madcatzinc@0: end madcatzinc@0: return self; madcatzinc@0: end madcatzinc@0: } madcatzinc@0: madcatzinc@0: RatQuickPageView = { madcatzinc@0: new = function(self) madcatzinc@0: for _, child in ipairs(self:GetChildren()) do madcatzinc@0: child.Register(); madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.SlotClicked = function(slot) madcatzinc@0: RatPageController.Instance().SlotClicked(slot) madcatzinc@0: end madcatzinc@0: madcatzinc@0: return self; madcatzinc@0: end madcatzinc@0: } madcatzinc@0: madcatzinc@0: -- Slot Class -- madcatzinc@0: SlotView = { madcatzinc@0: new = function(self, parent) madcatzinc@0: self._assignedWowObject = nil; madcatzinc@0: self:RegisterForClicks("LeftButtonUp", "RightButtonUp"); madcatzinc@0: self.Id = self:GetID(); madcatzinc@0: RatPageModel.Instance().AddObserver(self); madcatzinc@0: self.UnCheckedTexture = self:GetNormalTexture(); madcatzinc@0: madcatzinc@0: -- Object Method -- madcatzinc@0: self.Clicked = function() madcatzinc@0: self:GetParent().SlotClicked(self) madcatzinc@0: madcatzinc@0: GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); madcatzinc@0: --GameTooltip:SetText(self:GetID()); madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.Update = function(data, activeMode) madcatzinc@0: local icon = _G[self:GetName().."Icon"]; madcatzinc@0: if(nil ~= data[activeMode][self.Id]) then madcatzinc@0: self:SetChecked(true); madcatzinc@0: icon:SetTexture(data[activeMode][self.Id].Texture); madcatzinc@0: else madcatzinc@0: icon:SetTexture(nil); madcatzinc@0: self:SetChecked(false); madcatzinc@0: end madcatzinc@0: madcatzinc@0: madcatzinc@0: end madcatzinc@0: madcatzinc@0: return self; madcatzinc@0: end, madcatzinc@0: } madcatzinc@0: madcatzinc@0: SlotMiniView = { madcatzinc@0: new = function(self, parent) madcatzinc@0: self._assignedWowObject = nil; madcatzinc@0: self.Id = self:GetID(); madcatzinc@0: RatPageModel.Instance().AddObserver(self); madcatzinc@0: self.UnCheckedTexture = self:GetNormalTexture(); madcatzinc@0: madcatzinc@0: self.Update = function(data, activeMode) madcatzinc@0: local icon = _G[self:GetName().."Icon"]; madcatzinc@0: if(nil ~= data[activeMode][self.Id]) then madcatzinc@0: self:SetChecked(true); madcatzinc@0: madcatzinc@0: icon:SetTexture(data[activeMode][self.Id].Texture); madcatzinc@0: icon:SetAlpha(.5); madcatzinc@0: else madcatzinc@0: icon:SetTexture(nil); madcatzinc@0: self:SetChecked(false); madcatzinc@0: end madcatzinc@0: end madcatzinc@0: madcatzinc@0: return self; madcatzinc@0: end madcatzinc@0: } madcatzinc@0: madcatzinc@0: madcatzinc@0: -- ModeButton -- madcatzinc@0: ModeView = { madcatzinc@0: new = function(self) madcatzinc@0: self.Id = self:GetID(); madcatzinc@0: self.Name = self:GetName(); madcatzinc@0: RatPageModel.Instance().AddObserver(self); madcatzinc@0: if(self.Id ~= 1) then madcatzinc@0: self:Hide() madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.Clicked = function() madcatzinc@0: local nextMode; madcatzinc@0: if(self.Id == 1) then madcatzinc@0: nextMode = getglobal("Mode2"); madcatzinc@0: else madcatzinc@0: if(self.Id == 2) then madcatzinc@0: nextMode = getglobal("Mode3"); madcatzinc@0: else madcatzinc@0: nextMode = getglobal("Mode1"); madcatzinc@0: end madcatzinc@0: end madcatzinc@0: self:GetParent().ModeClicked(nextMode) madcatzinc@0: end madcatzinc@0: madcatzinc@0: self.Update = function(data, activeMode) madcatzinc@0: if(self.Id == activeMode) then madcatzinc@0: self:Show() madcatzinc@0: else madcatzinc@0: self:Hide() madcatzinc@0: end madcatzinc@0: madcatzinc@0: end madcatzinc@0: madcatzinc@0: return self; madcatzinc@0: end madcatzinc@0: }