diff OptionView.lua @ 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
line wrap: on
line diff
--- 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