changeset 1:a4e2eaf9cad9

Initial Fixes for ticket 1: Added a menu to the interface options page to allow the syncing of the addon to the mouse profile. This should resolve i8n issues
author madcatzinc@35b17cf1-18cd-47ff-9ca3-31d6b526ef09
date Wed, 23 May 2012 08:26:07 +0000
parents bf9220814fb5
children 08c83fa555a5
files CyborgMMO7.lua CyborgMMO7.toc Localisation.lua OptionPage.xml OptionView.lua RatPageModel.lua
diffstat 6 files changed, 1030 insertions(+), 423 deletions(-) [+]
line wrap: on
line diff
--- a/CyborgMMO7.lua	Tue Jan 24 17:14:21 2012 +0000
+++ b/CyborgMMO7.lua	Wed May 23 08:26:07 2012 +0000
@@ -18,396 +18,12 @@
 --~ along with this program; if not, write to the Free Software
 --~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-Mode = {
-	["enUS"] = {
-		"ALT-CTRL-E",
-		"ALT-CTRL-F",
-		"ALT-CTRL-["
-	},
-	["frFR"] = {
-		"ALT-CTRL-E",
-		"ALT-CTRL-F",
-		"ALT-CTRL-^"
-	},
-	["deDE"] = {
-		"ALT-CTRL-E",
-		"ALT-CTRL-F",
-		"ALT-CTRL-ü"
-	},
-	["zhCN"] = {
-		"ALT-CTRL-E",
-		"ALT-CTRL-F",
-		"ALT-CTRL-["
-	},
-	["zhTW"] = {
-		"ALT-CTRL-E",
-		"ALT-CTRL-F",
-		"ALT-CTRL-["
-	},
-	["esES"] = {
-		"ALT-CTRL-E",
-		"ALT-CTRL-F",
-		"ALT-CTRL-'"
-	},
-	["esMX"] = {
-		"ALT-CTRL-E",
-		"ALT-CTRL-F",
-		"ALT-CTRL-'"
-	}
-}
 
-WowCommands = {
-	["enUS"] = {
-		"ALT-CTRL-NUMPAD1",
-		"ALT-CTRL-NUMPAD2",
-		"ALT-CTRL-NUMPAD3",
-		"ALT-CTRL-NUMPAD4",
-		"ALT-CTRL-NUMPAD5",
-		"ALT-CTRL-NUMPAD6",
-		"ALT-CTRL-NUMPAD7",
-		"ALT-CTRL-NUMPAD8",
-		"ALT-CTRL-NUMPAD9",
-		"ALT-CTRL-NUMPAD0",
-		"ALT-CTRL-1",
-		"ALT-CTRL-2",
-		"ALT-CTRL-3",
-		"ALT-CTRL-4",
-		"ALT-CTRL-5",
-		"ALT-CTRL-6",
-		"ALT-CTRL-7",
-		"ALT-CTRL-8",
-		"ALT-CTRL-9",
-		"ALT-CTRL-0",
-		"ALT-CTRL-F1",
-		"ALT-CTRL-F2",
-		"ALT-CTRL-F3",
-		"ALT-CTRL-F4",
-		"ALT-CTRL-F5",
-		"ALT-CTRL-F6",
-		"ALT-CTRL-F7",
-		"ALT-CTRL-F8",
-		"ALT-CTRL-F9",
-		"ALT-CTRL-F10",
-		"ALT-CTRL-F11",
-		"ALT-CTRL-F12",
-		"ALT-CTRL--",
-		"ALT-CTRL-H",
-		"ALT-CTRL-A",
-		"ALT-CTRL-B",
-		"ALT-CTRL-C",
-		"ALT-CTRL-D",
-		"ALT-CTRL-END"
-	},
-	["frFR"] = {
-		"ALT-CTRL-NUMPAD1",
-		"ALT-CTRL-NUMPAD2",
-		"ALT-CTRL-NUMPAD3",
-		"ALT-CTRL-NUMPAD4",
-		"ALT-CTRL-NUMPAD5",
-		"ALT-CTRL-NUMPAD6",
-		"ALT-CTRL-NUMPAD7",
-		"ALT-CTRL-NUMPAD8",
-		"ALT-CTRL-NUMPAD9",
-		"ALT-CTRL-NUMPAD0",
-		"ALT-CTRL-1",
-		"ALT-CTRL-2",
-		"ALT-CTRL-3",
-		"ALT-CTRL-4",
-		"ALT-CTRL-5",
-		"ALT-CTRL-6",
-		"ALT-CTRL-7",
-		"ALT-CTRL-8",
-		"ALT-CTRL-9",
-		"ALT-CTRL-0",
-		"ALT-CTRL-F1",
-		"ALT-CTRL-F2",
-		"ALT-CTRL-F3",
-		"ALT-CTRL-F4",
-		"ALT-CTRL-F5",
-		"ALT-CTRL-F6",
-		"ALT-CTRL-F7",
-		"ALT-CTRL-F8",
-		"ALT-CTRL-F9",
-		"ALT-CTRL-F10",
-		"ALT-CTRL-F11",
-		"ALT-CTRL-F12",
-		"ALT-CTRL-)",
-		"ALT-CTRL-H",
-		"ALT-CTRL-Q",
-		"ALT-CTRL-B",
-		"ALT-CTRL-C",
-		"ALT-CTRL-D",
-		"ALT-CTRL-END"
-	},
-	["deDE"] = {
-		"ALT-CTRL-NUMPAD1",
-		"ALT-CTRL-NUMPAD2",
-		"ALT-CTRL-NUMPAD3",
-		"ALT-CTRL-NUMPAD4",
-		"ALT-CTRL-NUMPAD5",
-		"ALT-CTRL-NUMPAD6",
-		"ALT-CTRL-NUMPAD7",
-		"ALT-CTRL-NUMPAD8",
-		"ALT-CTRL-NUMPAD9",
-		"ALT-CTRL-NUMPAD0",
-		"ALT-CTRL-1",
-		"ALT-CTRL-2",
-		"ALT-CTRL-3",
-		"ALT-CTRL-4",
-		"ALT-CTRL-5",
-		"ALT-CTRL-6",
-		"ALT-CTRL-7",
-		"ALT-CTRL-8",
-		"ALT-CTRL-9",
-		"ALT-CTRL-0",
-		"ALT-CTRL-F1",
-		"ALT-CTRL-F2",
-		"ALT-CTRL-F3",
-		"ALT-CTRL-F4",
-		"ALT-CTRL-F5",
-		"ALT-CTRL-F6",
-		"ALT-CTRL-F7",
-		"ALT-CTRL-F8",
-		"ALT-CTRL-F9",
-		"ALT-CTRL-F10",
-		"ALT-CTRL-F11",
-		"ALT-CTRL-F12",
-		"ALT-CTRL-ß",
-		"ALT-CTRL-H",
-		"ALT-CTRL-A",
-		"ALT-CTRL-B",
-		"ALT-CTRL-C",
-		"ALT-CTRL-D",
-		"ALT-CTRL-END"
-	},
-	["zhCN"] = {
-		"ALT-CTRL-NUMPAD1",
-		"ALT-CTRL-NUMPAD2",
-		"ALT-CTRL-NUMPAD3",
-		"ALT-CTRL-NUMPAD4",
-		"ALT-CTRL-NUMPAD5",
-		"ALT-CTRL-NUMPAD6",
-		"ALT-CTRL-NUMPAD7",
-		"ALT-CTRL-NUMPAD8",
-		"ALT-CTRL-NUMPAD9",
-		"ALT-CTRL-NUMPAD0",
-		"ALT-CTRL-1",
-		"ALT-CTRL-2",
-		"ALT-CTRL-3",
-		"ALT-CTRL-4",
-		"ALT-CTRL-5",
-		"ALT-CTRL-6",
-		"ALT-CTRL-7",
-		"ALT-CTRL-8",
-		"ALT-CTRL-9",
-		"ALT-CTRL-0",
-		"ALT-CTRL-F1",
-		"ALT-CTRL-F2",
-		"ALT-CTRL-F3",
-		"ALT-CTRL-F4",
-		"ALT-CTRL-F5",
-		"ALT-CTRL-F6",
-		"ALT-CTRL-F7",
-		"ALT-CTRL-F8",
-		"ALT-CTRL-F9",
-		"ALT-CTRL-F10",
-		"ALT-CTRL-F11",
-		"ALT-CTRL-F12",
-		"ALT-CTRL--",
-		"ALT-CTRL-H",
-		"ALT-CTRL-A",
-		"ALT-CTRL-B",
-		"ALT-CTRL-C",
-		"ALT-CTRL-D",
-		"ALT-CTRL-END"
-	},
-	["zhTW"] = {
-		"ALT-CTRL-NUMPAD1",
-		"ALT-CTRL-NUMPAD2",
-		"ALT-CTRL-NUMPAD3",
-		"ALT-CTRL-NUMPAD4",
-		"ALT-CTRL-NUMPAD5",
-		"ALT-CTRL-NUMPAD6",
-		"ALT-CTRL-NUMPAD7",
-		"ALT-CTRL-NUMPAD8",
-		"ALT-CTRL-NUMPAD9",
-		"ALT-CTRL-NUMPAD0",
-		"ALT-CTRL-1",
-		"ALT-CTRL-2",
-		"ALT-CTRL-3",
-		"ALT-CTRL-4",
-		"ALT-CTRL-5",
-		"ALT-CTRL-6",
-		"ALT-CTRL-7",
-		"ALT-CTRL-8",
-		"ALT-CTRL-9",
-		"ALT-CTRL-0",
-		"ALT-CTRL-F1",
-		"ALT-CTRL-F2",
-		"ALT-CTRL-F3",
-		"ALT-CTRL-F4",
-		"ALT-CTRL-F5",
-		"ALT-CTRL-F6",
-		"ALT-CTRL-F7",
-		"ALT-CTRL-F8",
-		"ALT-CTRL-F9",
-		"ALT-CTRL-F10",
-		"ALT-CTRL-F11",
-		"ALT-CTRL-F12",
-		"ALT-CTRL--",
-		"ALT-CTRL-H",
-		"ALT-CTRL-A",
-		"ALT-CTRL-B",
-		"ALT-CTRL-C",
-		"ALT-CTRL-D",
-		"ALT-CTRL-END"
-	},
-	["esES"] = {
-		"ALT-CTRL-NUMPAD1",
-		"ALT-CTRL-NUMPAD2",
-		"ALT-CTRL-NUMPAD3",
-		"ALT-CTRL-NUMPAD4",
-		"ALT-CTRL-NUMPAD5",
-		"ALT-CTRL-NUMPAD6",
-		"ALT-CTRL-NUMPAD7",
-		"ALT-CTRL-NUMPAD8",
-		"ALT-CTRL-NUMPAD9",
-		"ALT-CTRL-NUMPAD0",
-		"ALT-CTRL-1",
-		"ALT-CTRL-2",
-		"ALT-CTRL-3",
-		"ALT-CTRL-4",
-		"ALT-CTRL-5",
-		"ALT-CTRL-6",
-		"ALT-CTRL-7",
-		"ALT-CTRL-8",
-		"ALT-CTRL-9",
-		"ALT-CTRL-0",
-		"ALT-CTRL-F1",
-		"ALT-CTRL-F2",
-		"ALT-CTRL-F3",
-		"ALT-CTRL-F4",
-		"ALT-CTRL-F5",
-		"ALT-CTRL-F6",
-		"ALT-CTRL-F7",
-		"ALT-CTRL-F8",
-		"ALT-CTRL-F9",
-		"ALT-CTRL-F10",
-		"ALT-CTRL-F11",
-		"ALT-CTRL-F12",
-		"ALT-CTRL-'",
-		"ALT-CTRL-H",
-		"ALT-CTRL-A",
-		"ALT-CTRL-B",
-		"ALT-CTRL-C",
-		"ALT-CTRL-D",
-		"ALT-CTRL-END"
-	},
-	["esMX"] = {
-		"ALT-CTRL-NUMPAD1",
-		"ALT-CTRL-NUMPAD2",
-		"ALT-CTRL-NUMPAD3",
-		"ALT-CTRL-NUMPAD4",
-		"ALT-CTRL-NUMPAD5",
-		"ALT-CTRL-NUMPAD6",
-		"ALT-CTRL-NUMPAD7",
-		"ALT-CTRL-NUMPAD8",
-		"ALT-CTRL-NUMPAD9",
-		"ALT-CTRL-NUMPAD0",
-		"ALT-CTRL-1",
-		"ALT-CTRL-2",
-		"ALT-CTRL-3",
-		"ALT-CTRL-4",
-		"ALT-CTRL-5",
-		"ALT-CTRL-6",
-		"ALT-CTRL-7",
-		"ALT-CTRL-8",
-		"ALT-CTRL-9",
-		"ALT-CTRL-0",
-		"ALT-CTRL-F1",
-		"ALT-CTRL-F2",
-		"ALT-CTRL-F3",
-		"ALT-CTRL-F4",
-		"ALT-CTRL-F5",
-		"ALT-CTRL-F6",
-		"ALT-CTRL-F7",
-		"ALT-CTRL-F8",
-		"ALT-CTRL-F9",
-		"ALT-CTRL-F10",
-		"ALT-CTRL-F11",
-		"ALT-CTRL-F12",
-		"ALT-CTRL-'",
-		"ALT-CTRL-H",
-		"ALT-CTRL-A",
-		"ALT-CTRL-B",
-		"ALT-CTRL-C",
-		"ALT-CTRL-D",
-		"ALT-CTRL-END"
-	}
-}
 
 
-StringTable = {
-	["enUS"] = {
-		CyborgButtonTitle="Cyborg Button",
-		MiniMapButtonTitle="MiniMap Button",
-		OptionPageTitle="Cyborg MMO7",
-		OptionPageSetDefaults="Default",
-		CyborgSizeSliderTitle="Cyborg Head Size",
-		PluginSizeSliderTitle="Interface Window Size"
-	},
-	["frFR"] = {
-		CyborgButtonTitle="Bouton Cyborg",
-		MiniMapButtonTitle="Bouton minimap",
-		OptionPageTitle="Cyborg MMO7",
-		OptionPageSetDefaults="Par défaut",
-		CyborgSizeSliderTitle="Dimension de la tête Cyborg",
-		PluginSizeSliderTitle="Dimension de la fenêtre d'interface"
-	},
-	["deDE"] = {
-		CyborgButtonTitle="Cyborg-Taste",
-		MiniMapButtonTitle="MiniMap-Taste",
-		OptionPageTitle="Cyborg MMO7",
-		OptionPageSetDefaults="Standard",
-		CyborgSizeSliderTitle="Größe des Cyborg-Kopfes",
-		PluginSizeSliderTitle="Größe des Schnittstellenfensters"
-	},
-	["zhCN"] = {
-		CyborgButtonTitle="Cyborg 按钮",
-		MiniMapButtonTitle="“迷你地图”按钮",
-		OptionPageTitle="Cyborg MMO7",
-		OptionPageSetDefaults="默认",
-		CyborgSizeSliderTitle="Cyborg 标题大小",
-		PluginSizeSliderTitle="界面窗口大小"
-	},
-	["zhTW"] = {
-		CyborgButtonTitle="Cyborg 按鈕",
-		MiniMapButtonTitle="MiniMap 按鈕",
-		OptionPageTitle="Cyborg MMO7",
-		OptionPageSetDefaults="預設",
-		CyborgSizeSliderTitle="Cyborg 頭大小",
-		PluginSizeSliderTitle="介面視窗大小"
-	},
-	["esES"] = {
-		CyborgButtonTitle="Botón Cyborg",
-		MiniMapButtonTitle="Botón Minimapa",
-		OptionPageTitle="Cyborg MMO7",
-		OptionPageSetDefaults="Predeterminado",
-		CyborgSizeSliderTitle="Tamaño de la cabeza de Cyborg",
-		PluginSizeSliderTitle="Tamaño de la ventana de la interfaz"
-	},
-	["esMX"] = {
-		CyborgButtonTitle="Botón de Cyborg",
-		MiniMapButtonTitle="Botón de Minimapa",
-		OptionPageTitle="Cyborg MMO7",
-		OptionPageSetDefaults="Modo predeterminado",
-		CyborgSizeSliderTitle="Tamaño de la cabeza de Cyborg",
-		PluginSizeSliderTitle="Tamaño de la ventana de interfaz"
-	}
-}
 
 function LoadStrings(self)
-	self:SetText(StringTable[GetLocale()][self:GetName()]);
+	self:SetText(StringTable[self:GetName()]);
 end
 
 local VarsLoaded = false;
@@ -417,7 +33,6 @@
 local Settings = nil;
 
 
-
 function CyborgMiniMapButton_Reposition(pos)
 	CyborgMiniMapFrame:SetPoint("TOPLEFT",
 		"Minimap",
@@ -468,12 +83,21 @@
 	end
 end
 
+function LoadWowCommands()
+	if (ProfileKeyBindings == nil) then
+		ProfileKeyBindings = {}
+		ProfileKeyBindings = InternationalWowCommands[GetLocale()]
+	end
+	WowCommands = ProfileKeyBindings 
+end
+
 function GetSaveData()
 	if(VarsLoaded) then
 		if (CyborgMMO7SaveData == nil) then
 			CyborgMMO7SaveData = {};
 			CyborgMMO7SaveData[SaveName] = {}
 		end
+		LoadWowCommands()
 		return CyborgMMO7SaveData[SaveName];
 	end
 	return nil;
@@ -482,6 +106,7 @@
 function SetSaveData(data, index)
 	if(VarsLoaded) then
 		GetSaveData()[index] = data
+		ProfileKeyBindings = WowCommands
 	end
 end
 
@@ -496,7 +121,7 @@
 	elseif(event == nil) then
 		msg("Event is nil");
 	else
-		msg("Event is not nil");
+		msg("Event is " + event);
     end
 
 
@@ -569,7 +194,7 @@
 	end
 
 	local buttonFrame, parentFrame, name = CallbackFactory.Instance().AddCallback(fn);
-	if(1 ~= SetOverrideBindingClick(parentFrame, true, Mode[GetLocale()][modeNum], name, "LeftButton")) then
+	if(1 ~= SetOverrideBindingClick(parentFrame, true, Mode[modeNum], name, "LeftButton")) then
 		msg("Failed to Bind modeChange");
 	end
 end
--- a/CyborgMMO7.toc	Tue Jan 24 17:14:21 2012 +0000
+++ b/CyborgMMO7.toc	Wed May 23 08:26:07 2012 +0000
@@ -1,10 +1,16 @@
 ## Interface: 40300
 ## Title: Cyborg MMO7 Addon
 ## DefaultState: Enabled
-## Version: 1.0.0
+## Version: 1.1.0
 ## LoadOnDemand: 0
 ## SavedVariablesPerCharacter: CyborgMMO7SaveData
+## SavedVariables: ProfileKeyBindings
+## X-Curse-Packaged-Version: r2
+## X-Curse-Project-Name: Cyborg MMO7
+## X-Curse-Project-ID: cyborg-mmo7
+## X-Curse-Repository-ID: wow/cyborg-mmo7/mainline
 
+Localisation.lua
 OptionView.lua
 CallbackFactory.lua
 WowObjects.lua
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Localisation.lua	Wed May 23 08:26:07 2012 +0000
@@ -0,0 +1,425 @@
+--~ Warcraft Plugin for Cyborg MMO7 
+--~ Filename: Localisation.lua
+--~ Description: Localisation for Warcraft
+--~ Copyright (C) 2012 Mad Catz Inc.
+--~ Author: Christopher Hooks
+
+--~ This program is free software; you can redistribute it and/or
+--~ modify it under the terms of the GNU General Public License
+--~ as published by the Free Software Foundation; either version 2
+--~ of the License, or (at your option) any later version.
+
+--~ This program is distributed in the hope that it will be useful,
+--~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+--~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--~ GNU General Public License for more details.
+
+--~ You should have received a copy of the GNU General Public License
+--~ along with this program; if not, write to the Free Software
+--~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+InternationalMode = {
+	["enUS"] = {
+		"ALT-CTRL-E",
+		"ALT-CTRL-F",
+		"ALT-CTRL-["
+	},
+	["frFR"] = {
+		"ALT-CTRL-E",
+		"ALT-CTRL-F",
+		"ALT-CTRL-^"
+	},
+	["deDE"] = {
+		"ALT-CTRL-E",
+		"ALT-CTRL-F",
+		"ALT-CTRL-"
+	},
+	["zhCN"] = {
+		"ALT-CTRL-E",
+		"ALT-CTRL-F",
+		"ALT-CTRL-["
+	},
+	["zhTW"] = {
+		"ALT-CTRL-E",
+		"ALT-CTRL-F",
+		"ALT-CTRL-["
+	},
+	["esES"] = {
+		"ALT-CTRL-E",
+		"ALT-CTRL-F",
+		"ALT-CTRL-'"
+	},
+	["esMX"] = {
+		"ALT-CTRL-E",
+		"ALT-CTRL-F",
+		"ALT-CTRL-'"
+	}
+}
+
+
+
+InternationalWowCommands = {
+	["enUS"] = {
+		"ALT-CTRL-NUMPAD1",
+		"ALT-CTRL-NUMPAD2",
+		"ALT-CTRL-NUMPAD3",
+		"ALT-CTRL-NUMPAD4",
+		"ALT-CTRL-NUMPAD5",
+		"ALT-CTRL-NUMPAD6",
+		"ALT-CTRL-NUMPAD7",
+		"ALT-CTRL-NUMPAD8",
+		"ALT-CTRL-NUMPAD9",
+		"ALT-CTRL-NUMPAD0",
+		"ALT-CTRL-1",
+		"ALT-CTRL-2",
+		"ALT-CTRL-3",
+		"ALT-CTRL-4",
+		"ALT-CTRL-5",
+		"ALT-CTRL-6",
+		"ALT-CTRL-7",
+		"ALT-CTRL-8",
+		"ALT-CTRL-9",
+		"ALT-CTRL-0",
+		"ALT-CTRL-F1",
+		"ALT-CTRL-F2",
+		"ALT-CTRL-F3",
+		"ALT-CTRL-F4",
+		"ALT-CTRL-F5",
+		"ALT-CTRL-F6",
+		"ALT-CTRL-F7",
+		"ALT-CTRL-F8",
+		"ALT-CTRL-F9",
+		"ALT-CTRL-F10",
+		"ALT-CTRL-F11",
+		"ALT-CTRL-F12",
+		"ALT-CTRL--",
+		"ALT-CTRL-H",
+		"ALT-CTRL-A",
+		"ALT-CTRL-B",
+		"ALT-CTRL-C",
+		"ALT-CTRL-D",
+		"ALT-CTRL-END"
+	},
+	["frFR"] = {
+		"ALT-CTRL-NUMPAD1",
+		"ALT-CTRL-NUMPAD2",
+		"ALT-CTRL-NUMPAD3",
+		"ALT-CTRL-NUMPAD4",
+		"ALT-CTRL-NUMPAD5",
+		"ALT-CTRL-NUMPAD6",
+		"ALT-CTRL-NUMPAD7",
+		"ALT-CTRL-NUMPAD8",
+		"ALT-CTRL-NUMPAD9",
+		"ALT-CTRL-NUMPAD0",
+		"ALT-CTRL-1",
+		"ALT-CTRL-2",
+		"ALT-CTRL-3",
+		"ALT-CTRL-4",
+		"ALT-CTRL-5",
+		"ALT-CTRL-6",
+		"ALT-CTRL-7",
+		"ALT-CTRL-8",
+		"ALT-CTRL-9",
+		"ALT-CTRL-0",
+		"ALT-CTRL-F1",
+		"ALT-CTRL-F2",
+		"ALT-CTRL-F3",
+		"ALT-CTRL-F4",
+		"ALT-CTRL-F5",
+		"ALT-CTRL-F6",
+		"ALT-CTRL-F7",
+		"ALT-CTRL-F8",
+		"ALT-CTRL-F9",
+		"ALT-CTRL-F10",
+		"ALT-CTRL-F11",
+		"ALT-CTRL-F12",
+		"ALT-CTRL-)",
+		"ALT-CTRL-H",
+		"ALT-CTRL-Q",
+		"ALT-CTRL-B",
+		"ALT-CTRL-C",
+		"ALT-CTRL-D",
+		"ALT-CTRL-END"
+	},
+	["deDE"] = {
+		"ALT-CTRL-NUMPAD1",
+		"ALT-CTRL-NUMPAD2",
+		"ALT-CTRL-NUMPAD3",
+		"ALT-CTRL-NUMPAD4",
+		"ALT-CTRL-NUMPAD5",
+		"ALT-CTRL-NUMPAD6",
+		"ALT-CTRL-NUMPAD7",
+		"ALT-CTRL-NUMPAD8",
+		"ALT-CTRL-NUMPAD9",
+		"ALT-CTRL-NUMPAD0",
+		"ALT-CTRL-1",
+		"ALT-CTRL-2",
+		"ALT-CTRL-3",
+		"ALT-CTRL-4",
+		"ALT-CTRL-5",
+		"ALT-CTRL-6",
+		"ALT-CTRL-7",
+		"ALT-CTRL-8",
+		"ALT-CTRL-9",
+		"ALT-CTRL-0",
+		"ALT-CTRL-F1",
+		"ALT-CTRL-F2",
+		"ALT-CTRL-F3",
+		"ALT-CTRL-F4",
+		"ALT-CTRL-F5",
+		"ALT-CTRL-F6",
+		"ALT-CTRL-F7",
+		"ALT-CTRL-F8",
+		"ALT-CTRL-F9",
+		"ALT-CTRL-F10",
+		"ALT-CTRL-F11",
+		"ALT-CTRL-F12",
+		"ALT-CTRL-",
+		"ALT-CTRL-H",
+		"ALT-CTRL-A",
+		"ALT-CTRL-B",
+		"ALT-CTRL-C",
+		"ALT-CTRL-D",
+		"ALT-CTRL-END"
+	},
+	["zhCN"] = {
+		"ALT-CTRL-NUMPAD1",
+		"ALT-CTRL-NUMPAD2",
+		"ALT-CTRL-NUMPAD3",
+		"ALT-CTRL-NUMPAD4",
+		"ALT-CTRL-NUMPAD5",
+		"ALT-CTRL-NUMPAD6",
+		"ALT-CTRL-NUMPAD7",
+		"ALT-CTRL-NUMPAD8",
+		"ALT-CTRL-NUMPAD9",
+		"ALT-CTRL-NUMPAD0",
+		"ALT-CTRL-1",
+		"ALT-CTRL-2",
+		"ALT-CTRL-3",
+		"ALT-CTRL-4",
+		"ALT-CTRL-5",
+		"ALT-CTRL-6",
+		"ALT-CTRL-7",
+		"ALT-CTRL-8",
+		"ALT-CTRL-9",
+		"ALT-CTRL-0",
+		"ALT-CTRL-F1",
+		"ALT-CTRL-F2",
+		"ALT-CTRL-F3",
+		"ALT-CTRL-F4",
+		"ALT-CTRL-F5",
+		"ALT-CTRL-F6",
+		"ALT-CTRL-F7",
+		"ALT-CTRL-F8",
+		"ALT-CTRL-F9",
+		"ALT-CTRL-F10",
+		"ALT-CTRL-F11",
+		"ALT-CTRL-F12",
+		"ALT-CTRL--",
+		"ALT-CTRL-H",
+		"ALT-CTRL-A",
+		"ALT-CTRL-B",
+		"ALT-CTRL-C",
+		"ALT-CTRL-D",
+		"ALT-CTRL-END"
+	},
+	["zhTW"] = {
+		"ALT-CTRL-NUMPAD1",
+		"ALT-CTRL-NUMPAD2",
+		"ALT-CTRL-NUMPAD3",
+		"ALT-CTRL-NUMPAD4",
+		"ALT-CTRL-NUMPAD5",
+		"ALT-CTRL-NUMPAD6",
+		"ALT-CTRL-NUMPAD7",
+		"ALT-CTRL-NUMPAD8",
+		"ALT-CTRL-NUMPAD9",
+		"ALT-CTRL-NUMPAD0",
+		"ALT-CTRL-1",
+		"ALT-CTRL-2",
+		"ALT-CTRL-3",
+		"ALT-CTRL-4",
+		"ALT-CTRL-5",
+		"ALT-CTRL-6",
+		"ALT-CTRL-7",
+		"ALT-CTRL-8",
+		"ALT-CTRL-9",
+		"ALT-CTRL-0",
+		"ALT-CTRL-F1",
+		"ALT-CTRL-F2",
+		"ALT-CTRL-F3",
+		"ALT-CTRL-F4",
+		"ALT-CTRL-F5",
+		"ALT-CTRL-F6",
+		"ALT-CTRL-F7",
+		"ALT-CTRL-F8",
+		"ALT-CTRL-F9",
+		"ALT-CTRL-F10",
+		"ALT-CTRL-F11",
+		"ALT-CTRL-F12",
+		"ALT-CTRL--",
+		"ALT-CTRL-H",
+		"ALT-CTRL-A",
+		"ALT-CTRL-B",
+		"ALT-CTRL-C",
+		"ALT-CTRL-D",
+		"ALT-CTRL-END"
+	},
+	["esES"] = {
+		"ALT-CTRL-NUMPAD1",
+		"ALT-CTRL-NUMPAD2",
+		"ALT-CTRL-NUMPAD3",
+		"ALT-CTRL-NUMPAD4",
+		"ALT-CTRL-NUMPAD5",
+		"ALT-CTRL-NUMPAD6",
+		"ALT-CTRL-NUMPAD7",
+		"ALT-CTRL-NUMPAD8",
+		"ALT-CTRL-NUMPAD9",
+		"ALT-CTRL-NUMPAD0",
+		"ALT-CTRL-1",
+		"ALT-CTRL-2",
+		"ALT-CTRL-3",
+		"ALT-CTRL-4",
+		"ALT-CTRL-5",
+		"ALT-CTRL-6",
+		"ALT-CTRL-7",
+		"ALT-CTRL-8",
+		"ALT-CTRL-9",
+		"ALT-CTRL-0",
+		"ALT-CTRL-F1",
+		"ALT-CTRL-F2",
+		"ALT-CTRL-F3",
+		"ALT-CTRL-F4",
+		"ALT-CTRL-F5",
+		"ALT-CTRL-F6",
+		"ALT-CTRL-F7",
+		"ALT-CTRL-F8",
+		"ALT-CTRL-F9",
+		"ALT-CTRL-F10",
+		"ALT-CTRL-F11",
+		"ALT-CTRL-F12",
+		"ALT-CTRL-'",
+		"ALT-CTRL-H",
+		"ALT-CTRL-A",
+		"ALT-CTRL-B",
+		"ALT-CTRL-C",
+		"ALT-CTRL-D",
+		"ALT-CTRL-END"
+	},
+	["esMX"] = {
+		"ALT-CTRL-NUMPAD1",
+		"ALT-CTRL-NUMPAD2",
+		"ALT-CTRL-NUMPAD3",
+		"ALT-CTRL-NUMPAD4",
+		"ALT-CTRL-NUMPAD5",
+		"ALT-CTRL-NUMPAD6",
+		"ALT-CTRL-NUMPAD7",
+		"ALT-CTRL-NUMPAD8",
+		"ALT-CTRL-NUMPAD9",
+		"ALT-CTRL-NUMPAD0",
+		"ALT-CTRL-1",
+		"ALT-CTRL-2",
+		"ALT-CTRL-3",
+		"ALT-CTRL-4",
+		"ALT-CTRL-5",
+		"ALT-CTRL-6",
+		"ALT-CTRL-7",
+		"ALT-CTRL-8",
+		"ALT-CTRL-9",
+		"ALT-CTRL-0",
+		"ALT-CTRL-F1",
+		"ALT-CTRL-F2",
+		"ALT-CTRL-F3",
+		"ALT-CTRL-F4",
+		"ALT-CTRL-F5",
+		"ALT-CTRL-F6",
+		"ALT-CTRL-F7",
+		"ALT-CTRL-F8",
+		"ALT-CTRL-F9",
+		"ALT-CTRL-F10",
+		"ALT-CTRL-F11",
+		"ALT-CTRL-F12",
+		"ALT-CTRL-'",
+		"ALT-CTRL-H",
+		"ALT-CTRL-A",
+		"ALT-CTRL-B",
+		"ALT-CTRL-C",
+		"ALT-CTRL-D",
+		"ALT-CTRL-END"
+	}
+}
+
+InternationalStringTable = {
+	["enUS"] = {
+		CyborgButtonTitle="Cyborg Button",
+		MiniMapButtonTitle="MiniMap Button",
+		OptionPageTitle="Cyborg MMO7",
+		OptionPageSetDefaults="Default",
+		CyborgSizeSliderTitle="Cyborg Head Size",
+		PluginSizeSliderTitle="Interface Window Size",
+		MouseRowCName="Thumb Anticlockwise",
+		MouseRowDName="Thumb Clockwise",
+		MouseRow1Name="Scroll Button",
+		MouseRow2Name="Forwards Button",
+		MouseRow3Name="Button 2",
+		MouseRow4Name="Hat Top",
+		MouseRow7Name="Hat Left",
+		MouseRow5Name="Precision Aim",
+		MouseRow8Name="Hat Right",
+		MouseRow6Name="Hat Bottom",
+		MouseRow9Name="Button 1",
+		MouseRowBName="Button 3",
+		MouseRowAName="Back Button"
+	},
+	["frFR"] = {
+		CyborgButtonTitle="Bouton Cyborg",
+		MiniMapButtonTitle="Bouton minimap",
+		OptionPageTitle="Cyborg MMO7",
+		OptionPageSetDefaults="Par dfaut",
+		CyborgSizeSliderTitle="Dimension de la tte Cyborg",
+		PluginSizeSliderTitle="Dimension de la fentre d'interface"
+	},
+	["deDE"] = {
+		CyborgButtonTitle="Cyborg-Taste",
+		MiniMapButtonTitle="MiniMap-Taste",
+		OptionPageTitle="Cyborg MMO7",
+		OptionPageSetDefaults="Standard",
+		CyborgSizeSliderTitle="Gre des Cyborg-Kopfes",
+		PluginSizeSliderTitle="Gre des Schnittstellenfensters"
+	},
+	["zhCN"] = {
+		CyborgButtonTitle="Cyborg ??",
+		MiniMapButtonTitle="??????",
+		OptionPageTitle="Cyborg MMO7",
+		OptionPageSetDefaults="??",
+		CyborgSizeSliderTitle="Cyborg ????",
+		PluginSizeSliderTitle="??????"
+	},
+	["zhTW"] = {
+		CyborgButtonTitle="Cyborg ??",
+		MiniMapButtonTitle="MiniMap ??",
+		OptionPageTitle="Cyborg MMO7",
+		OptionPageSetDefaults="??",
+		CyborgSizeSliderTitle="Cyborg ???",
+		PluginSizeSliderTitle="??????"
+	},
+	["esES"] = {
+		CyborgButtonTitle="Botn Cyborg",
+		MiniMapButtonTitle="Botn Minimapa",
+		OptionPageTitle="Cyborg MMO7",
+		OptionPageSetDefaults="Predeterminado",
+		CyborgSizeSliderTitle="Tamao de la cabeza de Cyborg",
+		PluginSizeSliderTitle="Tamao de la ventana de la interfaz"
+	},
+	["esMX"] = {
+		CyborgButtonTitle="Botn de Cyborg",
+		MiniMapButtonTitle="Botn de Minimapa",
+		OptionPageTitle="Cyborg MMO7",
+		OptionPageSetDefaults="Modo predeterminado",
+		CyborgSizeSliderTitle="Tamao de la cabeza de Cyborg",
+		PluginSizeSliderTitle="Tamao de la ventana de interfaz"
+	}
+}
+
+Mode = InternationalMode[GetLocale()]
+WowCommands = nil
+StringTable = InternationalStringTable[GetLocale()]
\ No newline at end of file
--- a/OptionPage.xml	Tue Jan 24 17:14:21 2012 +0000
+++ b/OptionPage.xml	Wed May 23 08:26:07 2012 +0000
@@ -33,6 +33,39 @@
 		</Shadow>
 	</FontString>
 
+<Button name="standard" virtual="true">
+				<NormalTexture file="Interface\Buttons\UI-Panel-Button-Up">
+					<TexCoords left="0" right="0.625" top="0" bottom="0.6875" />
+				</NormalTexture>
+				<PushedTexture file="Interface\Buttons\UI-Panel-Button-Down">
+					<TexCoords left="0" right="0.625" top="0" bottom="0.6875" />
+				</PushedTexture>
+				<DisabledTexture file="Interface\Buttons\UI-Panel-Button-Disabled">
+					<TexCoords left="0" right="0.625" top="0" bottom="0.6875" />
+				</DisabledTexture>
+				<HighlightTexture file="Interface\Buttons\UI-Panel-Button-Highlight" alphaMode="ADD">
+					<TexCoords left="0" right="0.625" top="0" bottom="0.6875" />
+				</HighlightTexture>
+
+				<NormalFont style="GameFontNormal" />
+				<HighlightFont style="GameFontHighlight" />
+				<DisabledFont style="GameFontDisable" />
+				<Scripts>
+				<OnLoad>
+					self:RegisterEvent("VARIABLES_LOADED")
+				</OnLoad>
+				<OnEvent>
+					if(event == "VARIABLES_LOADED") then
+						GetBindingButtonText(self:GetName());
+					end
+
+				</OnEvent>
+				<OnClick>
+					BindButton(self:GetName())
+				</OnClick>
+				</Scripts>
+			</Button>
+
 	<FontString name="SliderTitle" font="Fonts\FRIZQT__.TTF" text="NoText" virtual="true">
 		<FontHeight>
 			<AbsValue val="14" />
@@ -45,8 +78,208 @@
 			</Offset>
 		</Shadow>
 	</FontString>
+	
+	<Frame name="ButtonRow" virtual="true">
+		<Size>
+			<AbsDimension x="160" y="28" />
+		</Size>
+		
+		<Layers>
+			<Layer level="ARTWORK">
+				<FontString name="$parentName" inherits="GameFontNormalLarge">
+					<Anchors>
+						<Anchor point="TOPLEFT" relativeTo="$parent">
+							<Offset>
+								<AbsDimension x="0" y="0" />
+							</Offset>
+						</Anchor>
+					</Anchors>
+				</FontString>
+			</Layer>
+		</Layers>
+		<Frames>
+		<Button name="$parentMode1" inherits="standard">
+			<Size>
+				<AbsDimension x="140" y="28" />
+			</Size>
+			<Anchors>
+				<Anchor point="TOPLEFT" relativeTo="$parent">
+				<Offset>
+					<AbsDimension x="150" y="5"/>
+				</Offset>
+				</Anchor>
+			</Anchors>
+		</Button>
+		<Button name="$parentMode2" inherits="standard">
+			<Size>
+				<AbsDimension x="140" y="28" />
+			</Size>
+			<Anchors>
+				<Anchor point="TOPLEFT" relativeTo="$parent">
+				<Offset>
+					<AbsDimension x="290" y="5"/>
+				</Offset>
+				</Anchor>
+			</Anchors>
+		</Button>
+		<Button name="$parentMode3" inherits="standard">
+			<Size>
+				<AbsDimension x="140" y="28" />
+			</Size>
+			<Anchors>
+				<Anchor point="TOPLEFT" relativeTo="$parent">
+				<Offset>
+					<AbsDimension x="430" y="5"/>
+				</Offset>
+				</Anchor>
+			</Anchors>
+		</Button>
+		</Frames>
+		<Scripts>
+			<OnLoad>
+				LoadStrings(getglobal(self:GetName().."Name"));
+			</OnLoad>
+		</Scripts>
+	</Frame>
 
-
+<!--Custom keybinds -->
+	<Frame name="MouseRebind"  virtual="true">
+		<Layers>
+			<Layer level="ARTWORK">
+				<FontString name="MouseRebindTitle" inherits="GameFontNormalLarge" text="MMO Keybinds:-">
+					<Anchors>
+						<Anchor point="TOPLEFT">
+							<Offset>
+								<AbsDimension x="-15" y="-15" />
+							</Offset>
+						</Anchor>
+					</Anchors>
+				</FontString>
+				
+			</Layer>
+		</Layers>
+		<Frames>
+			<Frame name="MouseRow1" inherits="ButtonRow">
+				<Anchors>
+					<Anchor point="TOPLEFT" relativeTo="$parent">
+						<Offset>
+							<AbsDimension x="0" y="-40" />
+						</Offset>
+					</Anchor>
+				</Anchors>
+			</Frame>
+			<Frame name="MouseRow2" inherits="ButtonRow">
+				<Anchors>
+					<Anchor point="TOPLEFT" relativeTo="MouseRow1">
+						<Offset>
+							<AbsDimension x="0" y="-30" />
+						</Offset>
+					</Anchor>
+				</Anchors>
+			</Frame>
+			<Frame name="MouseRow3" inherits="ButtonRow">
+				<Anchors>
+					<Anchor point="TOPLEFT" relativeTo="MouseRow2">
+						<Offset>
+							<AbsDimension x="0" y="-30" />
+						</Offset>
+					</Anchor>
+				</Anchors>
+			</Frame>
+			<Frame name="MouseRow4" inherits="ButtonRow">
+				<Anchors>
+					<Anchor point="TOPLEFT" relativeTo="MouseRow3">
+						<Offset>
+							<AbsDimension x="0" y="-30" />
+						</Offset>
+					</Anchor>
+				</Anchors>
+			</Frame>
+			<Frame name="MouseRow5" inherits="ButtonRow">
+				<Anchors>
+					<Anchor point="TOPLEFT" relativeTo="MouseRow4">
+						<Offset>
+							<AbsDimension x="0" y="-30" />
+						</Offset>
+					</Anchor>
+				</Anchors>
+			</Frame>
+			<Frame name="MouseRow6" inherits="ButtonRow">
+				<Anchors>
+					<Anchor point="TOPLEFT" relativeTo="MouseRow5">
+						<Offset>
+							<AbsDimension x="0" y="-30" />
+						</Offset>
+					</Anchor>
+				</Anchors>
+			</Frame>
+			<Frame name="MouseRow7" inherits="ButtonRow">
+				<Anchors>
+					<Anchor point="TOPLEFT" relativeTo="MouseRow6">
+						<Offset>
+							<AbsDimension x="0" y="-30" />
+						</Offset>
+					</Anchor>
+				</Anchors>
+			</Frame>
+			<Frame name="MouseRow8" inherits="ButtonRow">
+				<Anchors>
+					<Anchor point="TOPLEFT" relativeTo="MouseRow7">
+						<Offset>
+							<AbsDimension x="0" y="-30" />
+						</Offset>
+					</Anchor>
+				</Anchors>
+			</Frame>
+			<Frame name="MouseRow9" inherits="ButtonRow">
+				<Anchors>
+					<Anchor point="TOPLEFT" relativeTo="MouseRow8">
+						<Offset>
+							<AbsDimension x="0" y="-30" />
+						</Offset>
+					</Anchor>
+				</Anchors>
+			</Frame>
+			<Frame name="MouseRowA" inherits="ButtonRow">
+				<Anchors>
+					<Anchor point="TOPLEFT" relativeTo="MouseRow9">
+						<Offset>
+							<AbsDimension x="0" y="-30" />
+						</Offset>
+					</Anchor>
+				</Anchors>
+			</Frame>
+			<Frame name="MouseRowB" inherits="ButtonRow">
+				<Anchors>
+					<Anchor point="TOPLEFT" relativeTo="MouseRowA">
+						<Offset>
+							<AbsDimension x="0" y="-30" />
+						</Offset>
+					</Anchor>
+				</Anchors>
+			</Frame>
+			<Frame name="MouseRowC" inherits="ButtonRow">
+				<Anchors>
+					<Anchor point="TOPLEFT" relativeTo="MouseRowB">
+						<Offset>
+							<AbsDimension x="0" y="-30" />
+						</Offset>
+					</Anchor>
+				</Anchors>
+			</Frame>
+			<Frame name="MouseRowD" inherits="ButtonRow">
+				<Anchors>
+					<Anchor point="TOPLEFT" relativeTo="MouseRowC">
+						<Offset>
+							<AbsDimension x="0" y="-30" />
+						</Offset>
+					</Anchor>
+				</Anchors>
+			</Frame>
+		</Frames>
+		<OnLoad>
+		</OnLoad>
+	</Frame>
 
 	<Frame name="OptionPage">
 		<Layers>
@@ -71,7 +304,7 @@
 				<Anchors>
 					<Anchor point="TOPLEFT" relativeTo="$parentTitle">
 						<Offset>
-							<AbsDimension x="25" y="-60"/>
+							<AbsDimension x="15" y="-30"/>
 						</Offset>
 					</Anchor>
 				</Anchors>
@@ -108,9 +341,9 @@
 					<AbsDimension x="32" y="32"/>
 				</Size>
 				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="$parentTitle">
+					<Anchor point="TOPLEFT" relativeTo="MiniMapButton">
 						<Offset>
-							<AbsDimension x="25" y="-85"/>
+							<AbsDimension x="0" y="-30"/>
 						</Offset>
 					</Anchor>
 				</Anchors>
@@ -141,37 +374,17 @@
 				</Scripts>
 			</CheckButton>
 
-			<Button name="$parentSetDefaults">
+			<Button name="$parentSetDefaults" inherits="standard">
 				<Size>
 					<AbsDimension x="156" y="28" />
 				</Size>
 				<Anchors>
-				  <Anchor point="TOPLEFT" relativeTo="$parentTitle">>
+				  <Anchor point="TOPLEFT" relativeTo="CyborgButton">
 					<Offset>
-						<AbsDimension x="25" y="-220"/>
+						<AbsDimension x="0" y="-40"/>
 					</Offset>
 				  </Anchor>
 				</Anchors>
-				<NormalTexture file="Interface\Buttons\UI-Panel-Button-Up">
-					<TexCoords left="0" right="0.625" top="0" bottom="0.6875" />
-				</NormalTexture>
-				<PushedTexture file="Interface\Buttons\UI-Panel-Button-Down">
-					<TexCoords left="0" right="0.625" top="0" bottom="0.6875" />
-				</PushedTexture>
-				<DisabledTexture file="Interface\Buttons\UI-Panel-Button-Disabled">
-					<TexCoords left="0" right="0.625" top="0" bottom="0.6875" />
-				</DisabledTexture>
-				<HighlightTexture file="Interface\Buttons\UI-Panel-Button-Highlight" alphaMode="ADD">
-					<TexCoords left="0" right="0.625" top="0" bottom="0.6875" />
-				</HighlightTexture>
-				<ButtonText name="$parentText">
-					<FontHeight>
-						<AbsValue val="10" />
-					</FontHeight>
-				</ButtonText>
-				<NormalFont style="GameFontNormal" />
-				<HighlightFont style="GameFontHighlight" />
-				<DisabledFont style="GameFontDisable" />
 				<Scripts>
 					<OnLoad>
 						LoadStrings(getglobal(self:GetName()));
@@ -181,10 +394,10 @@
 					</OnClick>
 				</Scripts>
 			</Button>
-
-			<Frame name="CyborgSize">
+			
+			<Frame name="Rebind" inherits="MouseRebind">
 				<Size>
-					<AbsDimension x="198" y="60" />
+					<AbsDimension x="45" y="60" />
 				</Size>
 				<Anchors>
 					<Anchor point="TOPLEFT" relativeTo="$parentTitle">
@@ -193,6 +406,19 @@
 						</Offset>
 					</Anchor>
 				</Anchors>
+			</Frame>
+			
+			<Frame name="CyborgSize">
+				<Size>
+					<AbsDimension x="198" y="10" />
+				</Size>
+				<Anchors>
+					<Anchor point="TOPLEFT" relativeTo="$parentTitle">
+						<Offset>
+							<AbsDimension x="255" y="-20"/>
+						</Offset>
+					</Anchor>
+				</Anchors>
 				<Frames>
 					<Slider name="$parentSlider" enableMouse="true" minValue=".5" maxValue="1" defaultValue=".75" valueStep=".01" orientation="HORIZONTAL">
 						<Size>
@@ -251,9 +477,9 @@
 					<AbsDimension x="198" y="60" />
 				</Size>
 				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="$parentTitle">
+					<Anchor point="TOPLEFT" relativeTo="CyborgSize">
 						<Offset>
-							<AbsDimension x="25" y="-165"/>
+							<AbsDimension x="0" y="-40"/>
 						</Offset>
 					</Anchor>
 				</Anchors>
@@ -322,4 +548,147 @@
 			</OnLoad>
 		</Scripts>
 	</Frame>
+	
+	<Button name="BindingFrame" toplevel="true" parent="UIParent" frameStrata="DIALOG" movable="true" enableMouse="true" hidden="true" enableKeyboard="true">
+    <Size>
+      <AbsDimension x="400" y="200"/>
+    </Size>
+    <Anchors>
+      <Anchor point="CENTER">
+        <Offset>
+          <AbsDimension x="0" y="0"/>
+        </Offset>
+      </Anchor>
+    </Anchors>
+    <Backdrop bgFile="Interface\DialogFrame\UI-DialogBox-Background" edgeFile="Interface\DialogFrame\UI-DialogBox-Border" tile="true">
+      <BackgroundInsets>
+        <AbsInset left="11" right="12" top="12" bottom="11"/>
+      </BackgroundInsets>
+      <TileSize>
+        <AbsValue val="32"/>
+      </TileSize>
+      <EdgeSize>
+        <AbsValue val="32"/>
+      </EdgeSize>
+    </Backdrop>
+    <Layers>
+      <Layer level="ARTWORK">
+        <Texture name="$parentHeader" file="Interface\DialogFrame\UI-DialogBox-Header">
+          <Size>
+            <AbsDimension x="200" y="64"/>
+          </Size>
+          <Anchors>
+            <Anchor point="TOP">
+              <Offset>
+                <AbsDimension x="0" y="12"/>
+              </Offset>
+            </Anchor>
+          </Anchors>
+        </Texture>
+        <FontString name="$parentHeaderText" inherits="GameFontNormal" text="FillerText">
+          <Size>
+            <AbsDimension x="200" y="13"/>
+          </Size>
+          <Anchors>
+            <Anchor point="TOP" relativeTo="$parentHeader">
+              <Offset>
+                <AbsDimension x="0" y="-13"/>
+              </Offset>
+            </Anchor>
+          </Anchors>
+        </FontString>
+        <FontString inherits="GameFontNormal" text="BINDPAD_TEXT_PRESSKEY">
+          <Anchors>
+            <Anchor point="CENTER" relativeTo="$parent">
+              <Offset>
+                <AbsDimension x="0" y="32"/>
+              </Offset>
+            </Anchor>
+          </Anchors>
+        </FontString>
+        <FontString name="$parentAction" inherits="GameFontNormalLarge" text="no action">
+          <Anchors>
+            <Anchor point="CENTER" relativeTo="$parent">
+              <Offset>
+                <AbsDimension x="0" y="8"/>
+              </Offset>
+            </Anchor>
+          </Anchors>
+        </FontString>
+        <FontString name="$parentKey" inherits="GameFontNormal" text="unbinded">
+          <Anchors>
+            <Anchor point="CENTER" relativeTo="$parent">
+              <Offset>
+                <AbsDimension x="0" y="-16"/>
+              </Offset>
+            </Anchor>
+          </Anchors>
+        </FontString>
+      </Layer>
+    </Layers>
+    <Frames>
+      <Button name="$parentCloseButton" inherits="UIPanelCloseButton">
+        <Anchors>
+          <Anchor point="TOPRIGHT">
+            <Offset>
+              <AbsDimension x="-3" y="-3"/>
+            </Offset>
+          </Anchor>
+        </Anchors>
+      </Button>
+      <Button name="$parentExitButton" inherits="UIPanelButtonTemplate" text="BINDPAD_TEXT_EXIT">
+        <Size>
+          <AbsDimension x="80" y="26"/>
+        </Size>
+        <Anchors>
+          <Anchor point="BOTTOMRIGHT" relativeTo="$parent" relativePoint="BOTTOMRIGHT">
+            <Offset>
+              <AbsDimension x="-12" y="12"/>
+            </Offset>
+          </Anchor>
+        </Anchors>
+        <Scripts>
+          <OnClick>
+            HideUIPanel(self:GetParent());
+          </OnClick>
+        </Scripts>
+      </Button>
+      <Button name="$parentUnbindButton" inherits="UIPanelButtonTemplate" text="BINDPAD_TEXT_UNBIND">
+        <Size>
+          <AbsDimension x="80" y="26"/>
+        </Size>
+        <Anchors>
+          <Anchor point="BOTTOMRIGHT" relativeTo="$parentExitButton" relativePoint="BOTTOMLEFT">
+            <Offset>
+              <AbsDimension x="-2" y="0"/>
+            </Offset>
+          </Anchor>
+        </Anchors>
+        <Scripts>
+          <OnClick>
+            BindPadBindFrame_Unbind(self);
+          </OnClick>
+        </Scripts>
+      </Button>
+    </Frames>
+
+    <Scripts>
+      <OnLoad>
+        self:RegisterForClicks("AnyUp");
+      </OnLoad>
+      <OnClick>
+        BindingFrame_OnKeyDown(self, button);
+      </OnClick>
+      <OnKeyDown>
+        BindingFrame_OnKeyDown(self, key);
+      </OnKeyDown>
+      <OnMouseWheel>
+        if (delta > 0) then
+          BindingFrame_OnKeyDown(self, "MOUSEWHEELUP");
+        else
+          BindingFrame_OnKeyDown(self, "MOUSEWHEELDOWN");
+        end
+      </OnMouseWheel>
+    </Scripts>
+  </Button>
 </Ui>
--- a/OptionView.lua	Tue Jan 24 17:14:21 2012 +0000
+++ b/OptionView.lua	Wed May 23 08:26:07 2012 +0000
@@ -26,3 +26,185 @@
 
 	end
 }
+
+local lastButton = nil
+
+function BindButton(name)
+	lastButton = name;
+	BindingFrame:Show()
+	
+end
+
+function GetBindingButtonText(name)
+	if(nil == WowCommands) then
+		LoadWowCommands();
+	end
+	
+	local binding = WowCommands[GetButtonIndex(name)]
+	getglobal(name):SetText(binding)
+end
+
+function GetButtonIndex(name)
+	local row,mode = string.find(name,"Mode")
+	local modeStr = string.sub(name, mode +1,mode+2)
+	local rowStr = string.sub(name, row-1,row-1)
+	return (GetNumberFromHexLetter(rowStr) + ((GetNumberFromHexLetter(modeStr) - 1) * 13))
+end
+
+function GetNumberFromHexLetter(str)
+	local number = 0
+	if("A" == str) then
+		number = 10
+	elseif("B" == str) then
+		number = 11
+	elseif("C" == str) then
+		number = 12
+	elseif("D" == str) then
+		number = 13
+	elseif("E" == str) then
+		number = 14
+	elseif("F" == str) then
+		number = 15
+	else 
+	 number = tonumber(str)
+	end
+	return number
+end
+
+function SetNewKeybind(keyOrButton)
+	local previous = WowCommands[GetButtonIndex(lastButton)]
+	WowCommands[GetButtonIndex(lastButton)] = keyOrButton;
+	GetBindingButtonText(lastButton);
+	BindingFrame:Hide()
+	RatPageModel.Instance().LoadData()
+end
+
+function BindingFrame_OnKeyDown(self, keyOrButton)
+   if keyOrButton=="ESCAPE" then
+      BindingFrame:Hide()
+      return
+   end
+   
+   if ( GetBindingFromClick(keyOrButton) == "SCREENSHOT" ) then
+      RunBinding("SCREENSHOT");
+      return;
+   end
+   
+   local keyPressed = keyOrButton;
+   
+   if ( keyPressed == "UNKNOWN" ) then
+      return;
+   end
+   
+   -- Convert the mouse button names
+   if ( keyPressed == "LeftButton" ) then
+      keyPressed = "BUTTON1";
+   elseif ( keyPressed == "RightButton" ) then
+      keyPressed = "BUTTON2";
+   elseif ( keyPressed == "MiddleButton" ) then
+      keyPressed = "BUTTON3";
+   elseif ( keyPressed == "Button4" ) then
+      keyPressed = "BUTTON4"
+   elseif ( keyOrButton == "Button5" ) then
+      keyPressed = "BUTTON5"
+   elseif ( keyPressed == "Button6" ) then
+      keyPressed = "BUTTON6"
+   elseif ( keyOrButton == "Button7" ) then
+      keyPressed = "BUTTON7"
+   elseif ( keyPressed == "Button8" ) then
+      keyPressed = "BUTTON8"
+   elseif ( keyOrButton == "Button9" ) then
+      keyPressed = "BUTTON9"
+   elseif ( keyPressed == "Button10" ) then
+      keyPressed = "BUTTON10"
+   elseif ( keyOrButton == "Button11" ) then
+      keyPressed = "BUTTON11"
+   elseif ( keyPressed == "Button12" ) then
+      keyPressed = "BUTTON12"
+   elseif ( keyOrButton == "Button13" ) then
+      keyPressed = "BUTTON13"
+   elseif ( keyPressed == "Button14" ) then
+      keyPressed = "BUTTON14"
+   elseif ( keyOrButton == "Button15" ) then
+      keyPressed = "BUTTON15"
+   elseif ( keyPressed == "Button16" ) then
+      keyPressed = "BUTTON16"
+   elseif ( keyOrButton == "Button17" ) then
+      keyPressed = "BUTTON17"
+   elseif ( keyPressed == "Button18" ) then
+      keyPressed = "BUTTON18"
+   elseif ( keyOrButton == "Button19" ) then
+      keyPressed = "BUTTON19"
+   elseif ( keyPressed == "Button20" ) then
+      keyPressed = "BUTTON20"
+   elseif ( keyOrButton == "Button21" ) then
+      keyPressed = "BUTTON21"
+   elseif ( keyPressed == "Button22" ) then
+      keyPressed = "BUTTON22"
+   elseif ( keyOrButton == "Button23" ) then
+      keyPressed = "BUTTON23"
+   elseif ( keyPressed == "Button24" ) then
+      keyPressed = "BUTTON24"
+   elseif ( keyOrButton == "Button25" ) then
+      keyPressed = "BUTTON25"
+   elseif ( keyPressed == "Button26" ) then
+      keyPressed = "BUTTON26"
+   elseif ( keyOrButton == "Button27" ) then
+      keyPressed = "BUTTON27"
+   elseif ( keyPressed == "Button28" ) then
+      keyPressed = "BUTTON28"
+   elseif ( keyOrButton == "Button29" ) then
+      keyPressed = "BUTTON29"
+   elseif ( keyPressed == "Button30" ) then
+      keyPressed = "BUTTON30"
+   elseif ( keyOrButton == "Button31" ) then
+      keyPressed = "BUTTON31"
+   end
+   
+   if ( keyPressed == "LSHIFT" or
+	keyPressed == "RSHIFT" or
+	keyPressed == "LCTRL" or
+	keyPressed == "RCTRL" or
+	keyPressed == "LALT" or
+	keyPressed == "RALT" ) then
+      return;
+   end
+   if ( IsShiftKeyDown() ) then
+      keyPressed = "SHIFT-"..keyPressed
+   end
+   if ( IsControlKeyDown() ) then
+      keyPressed = "CTRL-"..keyPressed
+   end
+   if ( IsAltKeyDown() ) then
+      keyPressed = "ALT-"..keyPressed
+   end
+   if ( keyPressed == "BUTTON1" or keyPressed == "BUTTON2" ) then
+      return;
+   end
+	 
+	 SetNewKeybind(keyPressed)
+	 
+--~    if keyPressed then
+--~       BindPadCore.keyPressed = keyPressed
+--~       local oldAction = GetBindingAction(keyPressed)
+--~       
+--~       local keyText = BindPadCore.GetBindingText(keyPressed, "KEY_");
+--~       if oldAction~="" and oldAction ~= BindPadCore.selectedSlot.action then
+--~ 	 if StaticPopupDialogs["BINDPAD_CONFIRM_BINDING"] == nil then
+--~ 	    StaticPopupDialogs["BINDPAD_CONFIRM_BINDING"] = {
+--~ 	       button1 = YES,
+--~ 	       button2 = NO,
+--~ 	       timeout = 0,
+--~ 	       hideOnEscape = 1,
+--~ 	       OnAccept = BindPadBindFrame_SetBindKey,
+--~ 	       OnCancel = BindPadBindFrame_Update,
+--~ 	       whileDead = 1
+--~ 	    }
+--~ 	 end
+--~ 	 StaticPopupDialogs["BINDPAD_CONFIRM_BINDING"].text = format(BINDPAD_TEXT_CONFIRM_BINDING, keyText, oldAction, keyText, BindPadCore.selectedSlot.action);
+--~ 	 StaticPopup_Show("BINDPAD_CONFIRM_BINDING")
+--~       else
+--~ 	 BindPadBindFrame_SetBindKey();
+--~       end
+--~    end
+end
--- a/RatPageModel.lua	Tue Jan 24 17:14:21 2012 +0000
+++ b/RatPageModel.lua	Wed May 23 08:26:07 2012 +0000
@@ -111,7 +111,7 @@
 			self.Data[mode][button] = object;
 
 			if(nil ~= object) then
-				object.SetBinding(WowCommands[GetLocale()][((mode-1)*RAT7.BUTTONS)+button]);
+				object.SetBinding(WowCommands[((mode-1)*RAT7.BUTTONS)+button]);
 				if("callback" == object.Type) then
 					msg("trying to set texture")
 					local slot = getglobal("defaultPageSlot"..button);
@@ -119,7 +119,7 @@
 				end
 			else
 				msg("clearing "..button)
-				WowObject.ClearBinding(WowCommands[GetLocale()][((mode-1)*RAT7.BUTTONS)+button])
+				WowObject.ClearBinding(WowCommands[((mode-1)*RAT7.BUTTONS)+button])
 			end
 		end