@@ -1,7 +1,17 @@
 <Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
 ..\..\FrameXML\UI.xsd">
 	<Script file="Blizzard_BindingUI.lua"/>
-	<Button name="KeyBindingFrameBindingButtonTemplate" inherits="UIPanelButtonTemplate" virtual="true">
+	<Button name="KeyBindingFrameBindingButtonTemplate" inherits="UIMenuButtonStretchTemplate" virtual="true">
+		<Layers>
+			<Layer level="OVERLAY">
+				<Texture parentKey="selectedHighlight" file="Interface\Buttons\UI-Silver-Button-Select" alphaMode="ADD" hidden="true">
+					<Size x="180" y="20"/>
+					<Anchors>
+						<Anchor point="CENTER" x="0" y="-3"/>
+					</Anchors>
+				</Texture>
+			</Layer>
+		</Layers>
 		<Scripts>
 			<OnClick>
 				KeyBindingButton_OnClick(self, button, down);
@@ -15,546 +25,271 @@
 		<HighlightFont style="GameFontHighlightSmall"/>
 	</Button>
 	<Frame name="KeyBindingFrameBindingTemplate" virtual="true">
-		<Size>
-			<AbsDimension x="560" y="25"/>
-		</Size>
+		<Size x="560" y="25"/>
 		<Layers>
 			<Layer level="BACKGROUND">
-				<FontString name="$parentDescription" inherits="GameFontNormalSmall" justifyH="LEFT">
-					<Size>
-						<AbsDimension x="170" y="24"/>
-					</Size>
+				<FontString parentKey="description" inherits="GameFontNormalSmall" justifyH="LEFT">
+					<Size x="170" y="24"/>
 					<Anchors>
-						<Anchor point="LEFT">
-							<Offset>
-								<AbsDimension x="0" y="0"/>
-							</Offset>
-						</Anchor>
+						<Anchor point="LEFT"/>
 					</Anchors>
 				</FontString>
-				<FontString name="$parentHeader" inherits="GameFontHighlight">
+				<FontString parentKey="header" inherits="GameFontHighlight">
 					<Anchors>
-						<Anchor point="LEFT">
-							<Offset>
-								<AbsDimension x="0" y="0"/>
-							</Offset>
-						</Anchor>
+						<Anchor point="LEFT"/>
 					</Anchors>
 				</FontString>
 			</Layer>
 		</Layers>
 		<Frames>
-			<Button name="$parentKey1Button" inherits="KeyBindingFrameBindingButtonTemplate" id="1">
-				<Size>
-					<AbsDimension x="180" y="22"/>
-				</Size>
-				<Anchors>
-					<Anchor point="LEFT">
-						<Offset>
-							<AbsDimension x="175" y="0"/>
-						</Offset>
-					</Anchor>
+			<Button name="$parentKey1Button" parentKey="key1Button" inherits="KeyBindingFrameBindingButtonTemplate" id="1">
+				<Size x="180" y="22"/>
+				<Anchors>
+					<Anchor point="LEFT" x="185" y="0"/>
 				</Anchors>
 			</Button>
-			<Button name="$parentKey2Button" inherits="KeyBindingFrameBindingButtonTemplate" id="2">
-				<Size>
-					<AbsDimension x="180" y="22"/>
-				</Size>
-				<Anchors>
-					<Anchor point="LEFT" relativeTo="$parentKey1Button" relativePoint="RIGHT">
-						<Offset>
-							<AbsDimension x="0" y="0"/>
-						</Offset>
-					</Anchor>
+			<Button name="$parentKey2Button" parentKey="key2Button" inherits="KeyBindingFrameBindingButtonTemplate" id="2">
+				<Size x="180" y="22"/>
+				<Anchors>
+					<Anchor point="LEFT" relativeTo="$parentKey1Button" relativePoint="RIGHT"/>
 				</Anchors>
 			</Button>
 		</Frames>
 	</Frame>
-	<Button name="KeyBindingFrame" toplevel="true" parent="UIParent" frameStrata="DIALOG" movable="true" enableMouse="true" hidden="true" enableKeyboard="true">
-		<Size>
-			<AbsDimension x="640" y="512"/>
-		</Size>
+	
+	<Button name="KeybindingsCategoryListButtonTemplate" inherits="OptionsListButtonTemplate" virtual="true">
+		<Scripts>
+			<OnLoad>
+				OptionsListButton_OnLoad(self);
+			</OnLoad>
+			<OnClick function="KeybindingsCategoryListButton_OnClick"/>
+		</Scripts>
+	</Button>
+	
+	<Button name="KeyBindingFrame" parent="UIParent" toplevel="true" frameStrata="DIALOG" movable="true" enableMouse="true" hidden="true" enableKeyboard="true">
+		<Size x="858" y="660"/>
 		<Anchors>
-			<Anchor point="TOP">
-				<Offset>
-					<AbsDimension x="0" y="-100"/>
-				</Offset>
-			</Anchor>
+			<Anchor point="CENTER"/>
 		</Anchors>
+		<Backdrop bgFile="Interface\DialogFrame\UI-DialogBox-Background" edgeFile="Interface\DialogFrame\UI-DialogBox-Border" tile="true">
+			<BackgroundInsets>
+				<AbsInset left="11" right="11" top="12" bottom="10"/>
+			</BackgroundInsets>
+			<TileSize>
+				<AbsValue val="32"/>
+			</TileSize>
+			<EdgeSize>
+				<AbsValue val="32"/>
+			</EdgeSize>
+		</Backdrop>
 		<Layers>
-			<Layer level="BACKGROUND">
-				<Texture file="Interface\KeyBindingFrame\UI-KeyBindingFrame-TopLeft">
-					<Size>
-						<AbsDimension x="256" y="256"/>
-					</Size>
-					<Anchors>
-						<Anchor point="TOPLEFT"/>
-					</Anchors>
-				</Texture>
-				<Texture file="Interface\KeyBindingFrame\UI-KeyBindingFrame-Top">
-					<Size>
-						<AbsDimension x="256" y="256"/>
-					</Size>
+			<Layer level="BORDER">
+				<Texture parentKey="topSeparator">
+					<Size x="550" y="1"/>
 					<Anchors>
-						<Anchor point="TOPLEFT">
-							<Offset>
-								<AbsDimension x="256" y="0"/>
-							</Offset>
-						</Anchor>
+						<Anchor point="TOP" relativeTo="$parent" relativePoint="TOP" x="90" y="-70"/>
 					</Anchors>
+					<Color r="0.25" g="0.25" b="0.25"/>
 				</Texture>
-				<Texture file="Interface\KeyBindingFrame\UI-KeyBindingFrame-TopRight">
-					<Size>
-						<AbsDimension x="128" y="256"/>
-					</Size>
+				<FontString parentKey="commandLabel" inherits="GameFontWhite" text="COMMAND">
 					<Anchors>
-						<Anchor point="TOPRIGHT"/>
-					</Anchors>
-				</Texture>
-			</Layer>
-			<Layer level="BACKGROUND">
-				<Texture file="Interface\KeyBindingFrame\UI-KeyBindingFrame-BotLeft">
-					<Size>
-						<AbsDimension x="256" y="256"/>
-					</Size>
-					<Anchors>
-						<Anchor point="BOTTOMLEFT"/>
-					</Anchors>
-				</Texture>
-				<Texture file="Interface\KeyBindingFrame\UI-KeyBindingFrame-Bot">
-					<Size>
-						<AbsDimension x="256" y="256"/>
-					</Size>
-					<Anchors>
-						<Anchor point="BOTTOMLEFT">
-							<Offset>
-								<AbsDimension x="256" y="0"/>
-							</Offset>
-						</Anchor>
-					</Anchors>
-				</Texture>
-				<Texture file="Interface\KeyBindingFrame\UI-KeyBindingFrame-BotRight">
-					<Size>
-						<AbsDimension x="128" y="256"/>
-					</Size>
-					<Anchors>
-						<Anchor point="BOTTOMRIGHT"/>
-					</Anchors>
-				</Texture>
-				<FontString name="KeyBindingFrameCommandLabel" inherits="GameFontNormal" text="COMMAND">
-					<Anchors>
-						<Anchor point="TOPLEFT">
-							<Offset>
-								<AbsDimension x="26" y="-35"/>
-							</Offset>
-						</Anchor>
+						<Anchor point="TOP" x="-141" y="-50"/>
 					</Anchors>
 				</FontString>
-				<FontString name="KeyBindingFrameKey1Label" inherits="GameFontNormal" text="KEY1">
+				<FontString parentKey="key1Label" inherits="GameFontWhite" text="KEY1">
 					<Anchors>
-						<Anchor point="LEFT" relativeTo="KeyBindingFrameCommandLabel" relativePoint="RIGHT">
-							<Offset>
-								<AbsDimension x="185" y="0"/>
-							</Offset>
-						</Anchor>
+						<Anchor point="LEFT" relativeKey="$parent.commandLabel" relativePoint="RIGHT" x="185" y="0"/>
 					</Anchors>
 				</FontString>
-				<FontString name="KeyBindingFrameKey2Label" inherits="GameFontNormal" text="KEY2">
+				<FontString parentKey="key2Label" inherits="GameFontWhite" text="KEY2">
 					<Anchors>
-						<Anchor point="LEFT" relativeTo="KeyBindingFrameKey1Label" relativePoint="RIGHT">
-							<Offset>
-								<AbsDimension x="145" y="0"/>
-							</Offset>
-						</Anchor>
+						<Anchor point="LEFT" relativeKey="$parent.key1Label" relativePoint="RIGHT" x="145" y="0"/>
 					</Anchors>
 				</FontString>
-				<FontString name="KeyBindingFrameOutputText" inherits="GameFontNormal">
+				<Texture parentKey="bottomSeparator">
+					<Size x="550" y="1"/>
 					<Anchors>
-						<Anchor point="BOTTOM">
-							<Offset>
-								<AbsDimension x="0" y="52"/>
-							</Offset>
-						</Anchor>
-					</Anchors>
-				</FontString>
-			</Layer>
-			<Layer level="ARTWORK">
-				<Texture name="KeyBindingFrameHeader" file="Interface\DialogFrame\UI-DialogBox-Header">
-					<Size>
-						<AbsDimension x="400" y="64"/>
-					</Size>
-					<Anchors>
-						<Anchor point="TOP">
-							<Offset>
-								<AbsDimension x="-30" y="12"/>
-							</Offset>
-						</Anchor>
+						<Anchor point="BOTTOM" x="90" y="90"/>
 					</Anchors>
+					<Color r="0.25" g="0.25" b="0.25"/>
 				</Texture>
-				<FontString name="KeyBindingFrameHeaderText" inherits="GameFontNormal" text="KEY_BINDINGS">
-					<Size>
-						<AbsDimension x="175" y="13"/>
-					</Size>
+				<FontString parentKey="outputText" inherits="GameFontWhite">
 					<Anchors>
-						<Anchor point="TOP" relativeTo="KeyBindingFrameHeader">
-							<Offset>
-								<AbsDimension x="0" y="-13"/>
-							</Offset>
-						</Anchor>
+						<Anchor point="BOTTOM" x="90" y="70"/>
 					</Anchors>
 				</FontString>
 			</Layer>
 		</Layers>
 		<Frames>
-			<Frame name="KeyBindingFrameBinding1" inherits="KeyBindingFrameBindingTemplate" id="1">
-				<Anchors>
-					<Anchor point="TOPLEFT">
-						<Offset>
-							<AbsDimension x="27" y="-53"/>
-						</Offset>
-					</Anchor>
-				</Anchors>
-			</Frame>
-			<Frame name="KeyBindingFrameBinding2" inherits="KeyBindingFrameBindingTemplate" id="2">
-				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="KeyBindingFrameBinding1" relativePoint="BOTTOMLEFT">
-						<Offset>
-							<AbsDimension x="0" y="2"/>
-						</Offset>
-					</Anchor>
-				</Anchors>
-			</Frame>
-			<Frame name="KeyBindingFrameBinding3" inherits="KeyBindingFrameBindingTemplate" id="3">
-				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="KeyBindingFrameBinding2" relativePoint="BOTTOMLEFT">
-						<Offset>
-							<AbsDimension x="0" y="2"/>
-						</Offset>
-					</Anchor>
-				</Anchors>
-			</Frame>
-			<Frame name="KeyBindingFrameBinding4" inherits="KeyBindingFrameBindingTemplate" id="4">
-				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="KeyBindingFrameBinding3" relativePoint="BOTTOMLEFT">
-						<Offset>
-							<AbsDimension x="0" y="2"/>
-						</Offset>
-					</Anchor>
-				</Anchors>
-			</Frame>
-			<Frame name="KeyBindingFrameBinding5" inherits="KeyBindingFrameBindingTemplate" id="5">
-				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="KeyBindingFrameBinding4" relativePoint="BOTTOMLEFT">
-						<Offset>
-							<AbsDimension x="0" y="2"/>
-						</Offset>
-					</Anchor>
-				</Anchors>
-			</Frame>
-			<Frame name="KeyBindingFrameBinding6" inherits="KeyBindingFrameBindingTemplate" id="6">
-				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="KeyBindingFrameBinding5" relativePoint="BOTTOMLEFT">
-						<Offset>
-							<AbsDimension x="0" y="2"/>
-						</Offset>
-					</Anchor>
-				</Anchors>
-			</Frame>
-			<Frame name="KeyBindingFrameBinding7" inherits="KeyBindingFrameBindingTemplate" id="7">
-				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="KeyBindingFrameBinding6" relativePoint="BOTTOMLEFT">
-						<Offset>
-							<AbsDimension x="0" y="2"/>
-						</Offset>
-					</Anchor>
-				</Anchors>
-			</Frame>
-			<Frame name="KeyBindingFrameBinding8" inherits="KeyBindingFrameBindingTemplate" id="8">
-				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="KeyBindingFrameBinding7" relativePoint="BOTTOMLEFT">
-						<Offset>
-							<AbsDimension x="0" y="2"/>
-						</Offset>
-					</Anchor>
-				</Anchors>
-			</Frame>
-			<Frame name="KeyBindingFrameBinding9" inherits="KeyBindingFrameBindingTemplate" id="9">
+			<Frame parentKey="header" inherits="TranslucentFrameTemplate">
+				<Size x="310" y="45"/>
 				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="KeyBindingFrameBinding8" relativePoint="BOTTOMLEFT">
-						<Offset>
-							<AbsDimension x="0" y="2"/>
-						</Offset>
-					</Anchor>
+					<Anchor point="CENTER" relativePoint="TOP" x="0" y="-8"/>
 				</Anchors>
+				<Layers>
+					<Layer level="BACKGROUND">
+						<Texture name="$parentRockBg" file="Interface\FrameGeneral\UI-Background-Rock" horizTile="true" vertTile="true">
+							<Anchors>
+								<Anchor point="TOPLEFT"  x="10" y="-10"/>
+								<Anchor point="BOTTOMRIGHT"  x="-10" y="10"/>
+							</Anchors>
+						</Texture>
+					</Layer>
+					<Layer level="ARTWORK">
+						<FontString parentKey="text" inherits="GameFontNormal" text="KEY_BINDINGS">
+							<Anchors>
+								<Anchor point="CENTER"/>
+							</Anchors>
+						</FontString>
+					</Layer>
+				</Layers>
 			</Frame>
-			<Frame name="KeyBindingFrameBinding10" inherits="KeyBindingFrameBindingTemplate" id="10">
+			<CheckButton parentKey="characterSpecificButton" inherits="UICheckButtonTemplate">
+				<Size x="20" y="20"/>
 				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="KeyBindingFrameBinding9" relativePoint="BOTTOMLEFT">
-						<Offset>
-							<AbsDimension x="0" y="2"/>
-						</Offset>
-					</Anchor>
+					<Anchor point="TOPLEFT" relativePoint="TOPRIGHT" x="-245" y="-20"/>
 				</Anchors>
-			</Frame>
-			<Frame name="KeyBindingFrameBinding11" inherits="KeyBindingFrameBindingTemplate" id="11">
+				<HitRectInsets>
+					<AbsInset left="0" right="-100" top="0" bottom="0"/>
+				</HitRectInsets>
+				<Scripts>
+					<OnLoad function="CharacterSpecificButton_OnLoad"/>
+					<OnClick function="CharacterSpecificButton_OnClick"/>
+					<OnEnter function="CharacterSpecificButton_OnEnter"/>
+					<OnLeave function="CharacterSpecificButton_OnHide"/>
+				</Scripts>
+			</CheckButton>
+			<Button parentKey="unbindButton" inherits="UIPanelButtonTemplate" text="UNBIND">
+				<Size x="130" y="22"/>
 				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="KeyBindingFrameBinding10" relativePoint="BOTTOMLEFT">
-						<Offset>
-							<AbsDimension x="0" y="2"/>
-						</Offset>
-					</Anchor>
+					<Anchor point="BOTTOMRIGHT" x="-205" y="16"/>
 				</Anchors>
-			</Frame>
-			<Frame name="KeyBindingFrameBinding12" inherits="KeyBindingFrameBindingTemplate" id="12">
+				<Scripts>
+					<OnClick function="UnbindButton_OnClick"/>
+				</Scripts>
+			</Button>
+			<Button parentKey="okayButton" inherits="UIPanelButtonTemplate" text="OKAY">
+				<Size x="96" y="22"/>
 				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="KeyBindingFrameBinding11" relativePoint="BOTTOMLEFT">
-						<Offset>
-							<AbsDimension x="0" y="2"/>
-						</Offset>
-					</Anchor>
+					<Anchor point="BOTTOMLEFT" relativeKey="$parent.unbindButton" relativePoint="BOTTOMRIGHT"/>
 				</Anchors>
-			</Frame>
-			<Frame name="KeyBindingFrameBinding13" inherits="KeyBindingFrameBindingTemplate" id="13">
+				<Scripts>
+					<OnClick function="OkayButton_OnClick"/>
+				</Scripts>
+			</Button>
+			<Button parentKey="cancelButton" inherits="UIPanelButtonTemplate" text="CANCEL">
+				<Size x="96" y="22"/>
 				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="KeyBindingFrameBinding12" relativePoint="BOTTOMLEFT">
-						<Offset>
-							<AbsDimension x="0" y="2"/>
-						</Offset>
-					</Anchor>
+					<Anchor point="BOTTOMLEFT" relativeKey="$parent.okayButton" relativePoint="BOTTOMRIGHT"/>
 				</Anchors>
-			</Frame>
-			<Frame name="KeyBindingFrameBinding14" inherits="KeyBindingFrameBindingTemplate" id="14">
+				<Scripts>
+					<OnClick function="CancelButton_OnClick"/>
+				</Scripts>
+			</Button>
+			<Button parentKey="defaultsButton" inherits="UIPanelButtonTemplate" text="RESET_TO_DEFAULT">
+				<Size x="130" y="22"/>
 				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="KeyBindingFrameBinding13" relativePoint="BOTTOMLEFT">
-						<Offset>
-							<AbsDimension x="0" y="2"/>
-						</Offset>
-					</Anchor>
+					<Anchor point="BOTTOMLEFT" x="16" y="16"/>
 				</Anchors>
-			</Frame>
-			<Frame name="KeyBindingFrameBinding15" inherits="KeyBindingFrameBindingTemplate" id="15">
+				<Scripts>
+					<OnClick function="DefaultsButton_OnClick"/>
+				</Scripts>
+			</Button>
+			<Frame name="$parentCategoryList" parentKey="categoryList" inherits="OptionsFrameListTemplate">
+				<Size x="175" y="569"/>
 				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="KeyBindingFrameBinding14" relativePoint="BOTTOMLEFT">
-						<Offset>
-							<AbsDimension x="0" y="2"/>
-						</Offset>
-					</Anchor>
+					<Anchor point="TOPLEFT" x="22" y="-40"/>
 				</Anchors>
+				<Scripts>
+					<OnLoad>
+						self.labelText = CATEGORY;
+						OptionsList_OnLoad(self, "KeyBindingsCategoryListButtonTemplate");
+					</OnLoad>
+				</Scripts>
 			</Frame>
-			<Frame name="KeyBindingFrameBinding16" inherits="KeyBindingFrameBindingTemplate" id="16">
+			<Frame parentKey="bindingsContainer">
 				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="KeyBindingFrameBinding15" relativePoint="BOTTOMLEFT">
-						<Offset>
-							<AbsDimension x="0" y="2"/>
-						</Offset>
-					</Anchor>
-				</Anchors>
+					<Anchor point="TOPLEFT" relativeKey="$parent.categoryList" relativePoint="TOPRIGHT" x="16" y="0"/>
+					<Anchor point="BOTTOMLEFT" relativeKey="$parent.categoryList" relativePoint="BOTTOMRIGHT" x="16" y="1"/>
+					<Anchor point="RIGHT" x="-22" y="0"/>
+				</Anchors>
+				<Backdrop edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true">
+					<EdgeSize>
+						<AbsValue val="16"/>
+					</EdgeSize>
+					<TileSize>
+						<AbsValue val="16"/>
+					</TileSize>
+					<BackgroundInsets>
+						<AbsInset left="5" right="5" top="5" bottom="5"/>
+					</BackgroundInsets>
+				</Backdrop>
+				<Scripts>
+					<OnLoad>
+						self:SetBackdropBorderColor(.6, .6, .6, 1);
+					</OnLoad>
+				</Scripts>
 			</Frame>
-			<Frame name="KeyBindingFrameBinding17" inherits="KeyBindingFrameBindingTemplate" id="17">
+			<ScrollFrame name="$parentScrollFrame" parentKey="scrollFrame" inherits="FauxScrollFrameTemplate">
+				<Size x="560" y="554"/>
 				<Anchors>
-					<Anchor point="TOPLEFT" relativeTo="KeyBindingFrameBinding16" relativePoint="BOTTOMLEFT">
-						<Offset>
-							<AbsDimension x="0" y="2"/>
-						</Offset>
-					</Anchor>
-				</Anchors>
-			</Frame>
-			<ScrollFrame name="KeyBindingFrameScrollFrame" inherits="FauxScrollFrameTemplate">
-				<Size>
-					<AbsDimension x="560" y="390"/>
-				</Size>
-				<Anchors>
-					<Anchor point="TOPLEFT">
-						<Offset>
-							<AbsDimension x="2" y="-53"/>
-						</Offset>
-					</Anchor>
+					<Anchor point="TOPRIGHT" x="-51" y="-49"/>
 				</Anchors>
+				<Layers>
+					<Layer level="BORDER">
+						<Texture parentKey="scrollBorderTop" file="Interface\PaperDollInfoFrame\UI-Character-ScrollBar">
+							<Size x="28" y="48"/>
+							<Anchors>
+								<Anchor point="TOPRIGHT" relativePoint="TOPRIGHT" x="28" y="4"/>
+							</Anchors>
+							<TexCoords left="0" right="0.484375" top="0" bottom="0.2"/>
+						</Texture>
+						<Texture parentKey="scrollBorderBottom" file="Interface\PaperDollInfoFrame\UI-Character-ScrollBar">
+							<Size x="28" y="67"/>
+							<Anchors>
+								<Anchor point="BOTTOMRIGHT" relativePoint="BOTTOMRIGHT" x="28" y="-2"/>
+							</Anchors>
+							<TexCoords left="0.515625" right="1.0" top="0.1440625" bottom="0.4140625"/>
+						</Texture>
+						<Texture parentKey="scrollBorderMiddle" file="Interface\PaperDollInfoFrame\UI-Character-ScrollBar">
+							<Anchors>
+								<Anchor point="TOPLEFT" relativeKey="$parent.scrollBorderTop" relativePoint="BOTTOMLEFT"/>
+								<Anchor point="BOTTOMRIGHT" relativeKey="$parent.scrollBorderBottom" relativePoint="TOPRIGHT"/>
+							</Anchors>
+							<TexCoords left="0" right="0.484375" top="0.1640625" bottom="1"/>
+						</Texture>
+					</Layer>
+					<Layer level="BACKGROUND">
+						<Texture parentKey="scrollFrameScrollBarBackground">
+							<Anchors>
+								<Anchor point="TOPLEFT" relativeKey="$parent.scrollBorderTop" relativePoint="TOPLEFT" x="2"/>
+								<Anchor point="BOTTOMRIGHT" relativeKey="$parent.scrollBorderBottom" relativePoint="BOTTOMRIGHT"/>
+							</Anchors>
+							<Color r="0" g="0" b="0"/>
+						</Texture>
+					</Layer>
+				</Layers>
 				<Scripts>
 					<OnVerticalScroll>
 						FauxScrollFrame_OnVerticalScroll(self, offset, KEY_BINDING_HEIGHT, KeyBindingFrame_Update);
 					</OnVerticalScroll>
 					<OnMouseWheel>
-						if ( KeyBindingFrame.selected ) then
-							if ( delta > 0 ) then
-								KeyBindingFrame_OnKeyDown(self, "MOUSEWHEELUP");
-							else
-								KeyBindingFrame_OnKeyDown(self, "MOUSEWHEELDOWN");
-							end
-						else
+						if ( not KeyBindingFrame.selected ) then
 							ScrollFrameTemplate_OnMouseWheel(self, delta);
+						else
+							KeyBindingFrame_OnMouseWheel(KeyBindingFrame, delta);
 						end
 					</OnMouseWheel>
 				</Scripts>
 			</ScrollFrame>
-			<CheckButton name="KeyBindingFrameCharacterButton" inherits="UICheckButtonTemplate">
-				<Size>
-					<AbsDimension x="20" y="20"/>
-				</Size>
-				<Anchors>
-					<Anchor point="TOPLEFT" relativePoint="TOPRIGHT">
-						<Offset>
-							<AbsDimension x="-245" y="-12"/>
-						</Offset>
-					</Anchor>
-				</Anchors>
-				<HitRectInsets>
-					<AbsInset left="0" right="-100" top="0" bottom="0"/>
-				</HitRectInsets>
-				<Scripts>
-					<OnLoad>
-						KeyBindingFrameCharacterButtonText:SetText(HIGHLIGHT_FONT_COLOR_CODE..CHARACTER_SPECIFIC_KEYBINDINGS..FONT_COLOR_CODE_CLOSE);
-					</OnLoad>
-					<OnClick>
-						if (self.enabled) then
-							PlaySound("igMainMenuOptionCheckBoxOn");
-						else
-							PlaySound("igMainMenuOptionCheckBoxOff");
-						end
-						if ( KeyBindingFrame.bindingsChanged ) then
-							StaticPopup_Show("CONFIRM_LOSE_BINDING_CHANGES");
-						else
-							KeyBindingFrame_ChangeBindingProfile();
-						end
-					</OnClick>
-					<OnEnter>
-						GameTooltip:SetOwner(self, "ANCHOR_RIGHT");
-						GameTooltip:SetText(CHARACTER_SPECIFIC_KEYBINDING_TOOLTIP, nil, nil, nil, nil, 1);
-					</OnEnter>
-					<OnLeave function="GameTooltip_Hide"/>
-				</Scripts>
-			</CheckButton>
-			<Button name="KeyBindingFrameDefaultButton" inherits="UIPanelButtonTemplate" text="RESET_TO_DEFAULT">
-				<Size>
-					<AbsDimension x="130" y="22"/>
-				</Size>
-				<Anchors>
-					<Anchor point="BOTTOMLEFT">
-						<Offset>
-							<AbsDimension x="10" y="21"/>
-						</Offset>
-					</Anchor>
-				</Anchors>
-				<Scripts>
-					<OnClick>
-						PlaySound("igMainMenuOptionCheckBoxOn");
-						LoadBindings(DEFAULT_BINDINGS);
-						KeyBindingFrameOutputText:SetText("");
-						KeyBindingFrame_SetSelected(nil);
-						KeyBindingFrame_Update();
-					</OnClick>
-				</Scripts>
-			</Button>
-			<Button name="KeyBindingFrameCancelButton" inherits="UIPanelButtonTemplate" text="CANCEL">
-				<Size>
-					<AbsDimension x="130" y="22"/>
-				</Size>
-				<Anchors>
-					<Anchor point="BOTTOMRIGHT">
-						<Offset>
-							<AbsDimension x="-50" y="21"/>
-						</Offset>
-					</Anchor>
-				</Anchors>
-				<Scripts>
-					<OnClick>
-						LoadBindings(GetCurrentBindingSet());
-						KeyBindingFrameOutputText:SetText("");
-						KeyBindingFrame_SetSelected(nil);
-						HideUIPanel(KeyBindingFrame);
-					</OnClick>
-				</Scripts>
-			</Button>
-			<Button name="KeyBindingFrameOkayButton" inherits="UIPanelButtonTemplate" text="OKAY">
-				<Size>
-					<AbsDimension x="130" y="22"/>
-				</Size>
-				<Anchors>
-					<Anchor point="RIGHT" relativeTo="KeyBindingFrameCancelButton" relativePoint="LEFT">
-						<Offset>
-							<AbsDimension x="0" y="0"/>
-						</Offset>
-					</Anchor>
-				</Anchors>
-				<Scripts>
-					<OnClick>
-						if ( KeyBindingFrameCharacterButton:GetChecked() ) then
-							KeyBindingFrame.which = CHARACTER_BINDINGS;
-						else
-							KeyBindingFrame.which = ACCOUNT_BINDINGS;
-							if ( GetCurrentBindingSet() == CHARACTER_BINDINGS ) then
-								if ( not CONFIRMED_DELETING_CHARACTER_SPECIFIC_BINDINGS ) then
-									StaticPopup_Show("CONFIRM_DELETING_CHARACTER_SPECIFIC_BINDINGS");
-									return;
-								end
-							end
-						end
-						SaveBindings(KeyBindingFrame.which);
-						KeyBindingFrameOutputText:SetText("");
-						KeyBindingFrame_SetSelected(nil);
-						HideUIPanel(KeyBindingFrame);
-					</OnClick>
-				</Scripts>
-			</Button>
-			<Button name="KeyBindingFrameUnbindButton" inherits="UIPanelButtonTemplate" text="UNBIND">
-				<Size>
-					<AbsDimension x="130" y="22"/>
-				</Size>
-				<Anchors>
-					<Anchor point="RIGHT" relativeTo="KeyBindingFrameOkayButton" relativePoint="LEFT">
-						<Offset>
-							<AbsDimension x="0" y="0"/>
-						</Offset>
-					</Anchor>
-				</Anchors>
-				<Scripts>
-					<OnClick>
-						PlaySound("igMainMenuOptionCheckBoxOn");
-						local key1, key2 = GetBindingKey(KeyBindingFrame.selected, KeyBindingFrame.mode);
-						if ( key1 ) then
-							SetBinding(key1, nil, KeyBindingFrame.mode);
-						end
-						if ( key2 ) then
-							SetBinding(key2, nil, KeyBindingFrame.mode);
-						end
-						if ( key1 and KeyBindingFrame.keyID == 1 ) then
-							KeyBindingFrame_SetBinding(key1, nil, key1);
-							if ( key2 ) then
-								SetBinding(key2, KeyBindingFrame.selected, KeyBindingFrame.mode);
-							end
-						else
-							if ( key1 ) then
-								KeyBindingFrame_SetBinding(key1, KeyBindingFrame.selected);
-							end
-							if ( key2 ) then
-								KeyBindingFrame_SetBinding(key2, nil, key2);
-							end
-						end
-						KeyBindingFrame_Update();
-						-- Button highlighting stuff
-						KeyBindingFrame_SetSelected(nil);
-						KeyBindingFrame.buttonPressed:UnlockHighlight();
-						KeyBindingFrame_UpdateUnbindKey();
-						KeyBindingFrameOutputText:SetText();
-					</OnClick>
-				</Scripts>
-			</Button>
 		</Frames>
 		<Scripts>
 			<OnClick function="KeyBindingFrame_OnKeyDown"/>
 			<OnKeyDown function="KeyBindingFrame_OnKeyDown"/>
+			<OnShow function="KeyBindingFrame_OnShow"/>
+			<OnHide function="KeyBindingFrame_OnHide"/>
 			<OnLoad function="KeyBindingFrame_OnLoad"/>
-			<OnShow>
-				KeyBindingFrame_OnShow(self);
-				Disable_BagButtons();
-				UpdateMicroButtons();
-			</OnShow>
-			<OnHide>
-				KeyBindingFrameOutputText:SetText("");
-				PlaySound("gsTitleOptionExit");
-				ShowUIPanel(GameMenuFrame); 
-				UpdateMicroButtons();
-			</OnHide>
+			<OnMouseWheel function="KeyBindingFrame_OnMouseWheel"/>
 		</Scripts>
 	</Button>
 </Ui>