madcatzinc@13: --~ Warcraft Plugin for Cyborg MMO7 madcatzinc@0: --~ Filename: OptionView.lua madcatzinc@0: --~ Description: The code for the Option page in the UI, not much here because we dont have many options. Probably could refactor. 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_OptionView = { madcatzinc@0: new = function(self) madcatzinc@62: self.name = CyborgMMO_StringTable.CyborgMMO_OptionPageTitle madcatzinc@55: self.default = CyborgMMO_SetDefaultSettings madcatzinc@13: InterfaceOptions_AddCategory(self) madcatzinc@0: return self madcatzinc@13: end, madcatzinc@0: } madcatzinc@1: madcatzinc@1: local lastButton = nil madcatzinc@1: madcatzinc@4: function CyborgMMO_BindButton(name) madcatzinc@2: lastButton = name madcatzinc@4: local index = CyborgMMO_GetButtonIndex(name) madcatzinc@2: local mode = 1 madcatzinc@13: while index > 13 do madcatzinc@2: mode = mode + 1 madcatzinc@2: index = index - 13 madcatzinc@2: end madcatzinc@13: local buttonStr = CyborgMMO_StringTable[("CyborgMMO_OptionPageRebindMouseRow"..index.."Name")] madcatzinc@13: madcatzinc@27: CyborgMMO_BindingFrameButtonName:SetText(buttonStr.." Mode "..mode) madcatzinc@29: CyborgMMO_BindingFrameKey:SetText(CyborgMMO_StringTable["CyborgMMO_CurrentBinding"].." "..CyborgMMO_ProfileKeyBindings[CyborgMMO_GetButtonIndex(lastButton)]) madcatzinc@4: CyborgMMO_BindingFrame:Show() madcatzinc@1: end madcatzinc@1: madcatzinc@26: function CyborgMMO_SetBindingButtonText(name) madcatzinc@29: local binding = CyborgMMO_ProfileKeyBindings[CyborgMMO_GetButtonIndex(name)] madcatzinc@1: getglobal(name):SetText(binding) madcatzinc@1: end madcatzinc@1: madcatzinc@4: function CyborgMMO_GetButtonIndex(name) madcatzinc@22: local row,mode = name:match('Row(.)Mode(.)') madcatzinc@22: row = tonumber(row, 16) madcatzinc@22: mode = tonumber(mode) madcatzinc@1: local modeStr = string.sub(name, mode +1,mode+2) madcatzinc@1: local rowStr = string.sub(name, row-1,row-1) madcatzinc@22: return (mode-1) * 13 + row madcatzinc@1: end madcatzinc@1: madcatzinc@5: function CyborgMMO_ShowProfileTooltip(self) madcatzinc@59: if not CyborgMMO_ModeDetected then madcatzinc@13: GameTooltip:SetOwner(self:GetParent(), "ANCHOR_RIGHT") madcatzinc@13: GameTooltip:SetText(CyborgMMO_StringTable["CyborgMMO_ToolTipLine1"], nil, nil, nil, nil, 1) madcatzinc@13: GameTooltip:AddLine(nil, 0.8, 1.0, 0.8) madcatzinc@13: GameTooltip:AddLine(CyborgMMO_StringTable["CyborgMMO_ToolTipLine2"], 0.8, 1.0, 0.8) madcatzinc@13: GameTooltip:AddLine(nil, 0.8, 1.0, 0.8) madcatzinc@13: GameTooltip:AddLine(CyborgMMO_StringTable["CyborgMMO_ToolTipLine3"], 0.8, 1.0, 0.8) madcatzinc@13: GameTooltip:AddLine(CyborgMMO_StringTable["CyborgMMO_ToolTipLine4"], 0.8, 1.0, 0.8) madcatzinc@13: GameTooltip:AddLine(CyborgMMO_StringTable["CyborgMMO_ToolTipLine5"], 0.8, 1.0, 0.8) madcatzinc@13: GameTooltip:AddLine(nil, 0.8, 1.0, 0.8) madcatzinc@13: GameTooltip:AddLine(CyborgMMO_StringTable["CyborgMMO_ToolTipLine6"], 0.8, 1.0, 0.8) madcatzinc@13: GameTooltip:Show() madcatzinc@5: end madcatzinc@5: end madcatzinc@5: madcatzinc@5: function CyborgMMO_HideProfileTooltip(self) madcatzinc@13: GameTooltip:Hide() madcatzinc@5: end madcatzinc@5: madcatzinc@4: function CyborgMMO_SetNewKeybind(keyOrButton) madcatzinc@29: CyborgMMO_ProfileKeyBindings[CyborgMMO_GetButtonIndex(lastButton)] = keyOrButton madcatzinc@26: CyborgMMO_SetBindingButtonText(lastButton) madcatzinc@4: CyborgMMO_BindingFrame:Hide() madcatzinc@18: CyborgMMO_RatPageModel:LoadData() madcatzinc@1: end madcatzinc@1: madcatzinc@4: function CyborgMMO_BindingFrameOnKeyDown(self, keyOrButton) madcatzinc@13: if keyOrButton == "ESCAPE" then madcatzinc@13: CyborgMMO_BindingFrame:Hide() madcatzinc@13: return madcatzinc@13: end madcatzinc@13: madcatzinc@13: if GetBindingFromClick(keyOrButton) == "SCREENSHOT" then madcatzinc@13: RunBinding("SCREENSHOT") madcatzinc@13: return madcatzinc@13: end madcatzinc@13: madcatzinc@13: local keyPressed = keyOrButton madcatzinc@13: madcatzinc@13: if keyPressed == "UNKNOWN" then madcatzinc@13: return madcatzinc@13: end madcatzinc@13: madcatzinc@13: -- Convert the mouse button names madcatzinc@13: if keyPressed == "LeftButton" then madcatzinc@13: keyPressed = "BUTTON1" madcatzinc@13: elseif keyPressed == "RightButton" then madcatzinc@13: keyPressed = "BUTTON2" madcatzinc@13: elseif keyPressed == "MiddleButton" then madcatzinc@13: keyPressed = "BUTTON3" madcatzinc@13: elseif keyPressed == "Button4" then madcatzinc@13: keyPressed = "BUTTON4" madcatzinc@13: elseif keyOrButton == "Button5" then madcatzinc@13: keyPressed = "BUTTON5" madcatzinc@13: elseif keyPressed == "Button6" then madcatzinc@13: keyPressed = "BUTTON6" madcatzinc@13: elseif keyOrButton == "Button7" then madcatzinc@13: keyPressed = "BUTTON7" madcatzinc@13: elseif keyPressed == "Button8" then madcatzinc@13: keyPressed = "BUTTON8" madcatzinc@13: elseif keyOrButton == "Button9" then madcatzinc@13: keyPressed = "BUTTON9" madcatzinc@13: elseif keyPressed == "Button10" then madcatzinc@13: keyPressed = "BUTTON10" madcatzinc@13: elseif keyOrButton == "Button11" then madcatzinc@13: keyPressed = "BUTTON11" madcatzinc@13: elseif keyPressed == "Button12" then madcatzinc@13: keyPressed = "BUTTON12" madcatzinc@13: elseif keyOrButton == "Button13" then madcatzinc@13: keyPressed = "BUTTON13" madcatzinc@13: elseif keyPressed == "Button14" then madcatzinc@13: keyPressed = "BUTTON14" madcatzinc@13: elseif keyOrButton == "Button15" then madcatzinc@13: keyPressed = "BUTTON15" madcatzinc@13: elseif keyPressed == "Button16" then madcatzinc@13: keyPressed = "BUTTON16" madcatzinc@13: elseif keyOrButton == "Button17" then madcatzinc@13: keyPressed = "BUTTON17" madcatzinc@13: elseif keyPressed == "Button18" then madcatzinc@13: keyPressed = "BUTTON18" madcatzinc@13: elseif keyOrButton == "Button19" then madcatzinc@13: keyPressed = "BUTTON19" madcatzinc@13: elseif keyPressed == "Button20" then madcatzinc@13: keyPressed = "BUTTON20" madcatzinc@13: elseif keyOrButton == "Button21" then madcatzinc@13: keyPressed = "BUTTON21" madcatzinc@13: elseif keyPressed == "Button22" then madcatzinc@13: keyPressed = "BUTTON22" madcatzinc@13: elseif keyOrButton == "Button23" then madcatzinc@13: keyPressed = "BUTTON23" madcatzinc@13: elseif keyPressed == "Button24" then madcatzinc@13: keyPressed = "BUTTON24" madcatzinc@13: elseif keyOrButton == "Button25" then madcatzinc@13: keyPressed = "BUTTON25" madcatzinc@13: elseif keyPressed == "Button26" then madcatzinc@13: keyPressed = "BUTTON26" madcatzinc@13: elseif keyOrButton == "Button27" then madcatzinc@13: keyPressed = "BUTTON27" madcatzinc@13: elseif keyPressed == "Button28" then madcatzinc@13: keyPressed = "BUTTON28" madcatzinc@13: elseif keyOrButton == "Button29" then madcatzinc@13: keyPressed = "BUTTON29" madcatzinc@13: elseif keyPressed == "Button30" then madcatzinc@13: keyPressed = "BUTTON30" madcatzinc@13: elseif keyOrButton == "Button31" then madcatzinc@13: keyPressed = "BUTTON31" madcatzinc@13: end madcatzinc@13: madcatzinc@13: if keyPressed == "LSHIFT" or madcatzinc@13: keyPressed == "RSHIFT" or madcatzinc@13: keyPressed == "LCTRL" or madcatzinc@13: keyPressed == "RCTRL" or madcatzinc@13: keyPressed == "LALT" or madcatzinc@13: keyPressed == "RALT" then madcatzinc@13: return madcatzinc@13: end madcatzinc@13: if IsShiftKeyDown() then madcatzinc@13: keyPressed = "SHIFT-"..keyPressed madcatzinc@13: end madcatzinc@13: if IsControlKeyDown() then madcatzinc@13: keyPressed = "CTRL-"..keyPressed madcatzinc@13: end madcatzinc@13: if IsAltKeyDown() then madcatzinc@13: keyPressed = "ALT-"..keyPressed madcatzinc@13: end madcatzinc@13: if keyPressed == "BUTTON1" or keyPressed == "BUTTON2" then madcatzinc@13: return madcatzinc@13: end madcatzinc@13: madcatzinc@13: CyborgMMO_SetNewKeybind(keyPressed) madcatzinc@1: end